[Serusers] "Best practice" document, was Warning: sl_send_reply: I won't send a reply for ACK!!

Steve Blair blairs at isc.upenn.edu
Mon Feb 21 13:28:02 CET 2005


Greger V. Teigre wrote:

> Paul, I fully support the approach: Make one reference design with a 
> complete ser.cfg.  This will give us a Getting Started.  We can later 
> add sections on the more advanced stuff like redundancy, radius, etc. 
> Thanks for your review of the components in such a reference design 
> (I'll relate to those further below).
>
>    I believe there are two hurdles to get on top of ser: Get a first 
> working config up and running and then understanding the concepts good 
> enough to start tweaking.  Many will not have all the components of 
> the full reference system you describe, Paul, so a starting point with 
> a minimum system is probably needed.  I.e. Get a UA registered without 
> auth, etc (I see some questions on this too)
>
I'd like to add a third hurdle, keeping this or any documentation 
up-to-date. One of the biggest issues
I've faced is keeping a working, production supporting, configuration 
"correct" across release changes.
The situation doesn't get better if there is alot of out dated 
documentation.

In addition to a few core examples I'd suggest a clearly worded 
changelog. The changelog needs to
be clearly show what has changed and what is impacted by the change on a 
release by release basis.

$0.02

>    I thus see the following things that must be addressed:
> - How to read the basic ser.cfg
> - The basic ser.cfg, what does it do, what is the reference design (is 
> the ser.cfg in cvs appropriate?)
> - A description of the reference design with a "component list"
> - The complete ser.cfg
> - Conceptual explanations of each logical part of the ser.cfg
> - External systems (Asterisk, mediaproxy/nathelper), configs, etc
>
> See my inline comments with regards to a reference design.
>
>> My setup uses SER v0.9 and Asterisk-1.0.2. The Asterisk server is used
>> __ONLY__ for voicemail because - well lets face it, Asterisk sucks as
>> a SIP router because it just isn't designed to be one.
>>
>> So all users are managed by SER and Asterisk only comes into play for
>> voicemail and for playing recordings such as "the party you are
>> calling has blocked your call" when a call block is enabled.
>
>
>
> We also use 0.9, but does not yet support voicemail.  I think we 
> should concentrate on 0.9 capabilities and forget about 0.8.14.  Most 
> people starting up now will probably use 0.9, at least shortly when it 
> is released as stable.
>
>    Voicemail adds a layer of complexity in terms of scalability and 
> redundancy.  IMHO we should leave out voicemail from the reference 
> design, not because it is something most people would not want, but 
> because it introduces an external component and complexity that is 
> better added later in the document (like redundancy). That being said, 
> I think we should include voicemail and voiceprompts as part of the 
> initial work on this document, just not leave it as the main reference 
> design.
>    Sems is a bit less complex than Asterisk and uses the same style 
> config, could it be an alternativ in the reference design?
>
>> We should leave redundancy out of the picture for now because fault
>> tolerant SER is still something many users don't use and it's
>> something that is still maturing in SER. Besides, my opinion on this
>> matter is that a "ser clustering" should be a product of the Linux HA
>> technologies (expect for registration functionality).
>
>
> Yes, I agree that we should leave redundancy out. Using Linux HA does 
> not necessary make it simpler...  Also, in order to get network 
> redundancy when you have distributed users, you need geographic 
> distribution of ser servers. But, again, the complex stuff should be 
> left until later.
>
>> The ser.cfg we present should also show how to use MySQL for
>> accounting, usrloc, etc.
>
>
> Agree. We use RADIUS-based authentication and authorization with 
> distributed RADIUS servers. Only usrloc is stored in mysql (we use 
> avp_radius_load), but we do accounting to mysql.  I can maybe 
> volunteer to do a RADIUS-section later, covering auth, uri, avps etc, 
> but we should concentre on the basics first.
>
>> serweb should be avoided altogether because this is nothing more than
>> a reference implementation that I believe not a primetime offering,
>> again, just my humble opinion.
>
>
> Agree. But, maybe somebody will volunteer to add an add-on section on 
> serweb?
>
>> Failover PSTN gateways must be covered as well as NAT traversal. The
>> NAT traversal I use is mediaproxy because it seems to just work
>> better, especially in distributed deployments.
>
>
> NAT Traversal, I agree. Failover PSTN GW is a more advanced option. 
> Especially if that means introducing the new lcr module from cvs head. 
> :-)
>
>> On this NAT note, my ser.cfg only proxies RTP streams when one or more
>> SIP clients is behind a NAT firewall. The exception to this is when a
>> SIP client needs to hit the Asterisk server. The reason for this is
>> that the Asterisk server is physically a differenet machine that does
>> not have direct access to the internet. Instead I use the SER server
>> with two (2) ethernet interfaces, whereby eth0 is the public interface
>> and eth1 is a 10.0.0.0 private network and I use a crossover cable to
>> the Asterisk server, which has only one private 10.0.0.0 interface.
>
>
> We use rtpproxy where ser is located on one server and the rtpproxy on 
> another.  They communicate across udp (inside an ipsec tunnel). I.e. 
> they are geographically distributed to keep the rtpproxy server as 
> close as possible to the subscribers.
>    Our UAs are configured with STUN and the RTP streams are only run 
> through our proxy server if an UA is behind a symmetric NAT and gets 
> an incoming conversation (or both are behind symmetric NAT).
>    Calls where both UAs are behind the same NAT will always be forced 
> through the rtpproxy (to avoid hairpin problem).
>
>> Since almost all serusers seem to be interested in voicemail I'd
>> suggest detail instructions on the Asterisk integration. I use the
>> ast_data patch, which is kindly provided by bwsys because this makes
>> managing Asterisk mailboxes a function of the MySQL database. And the
>> only other real hard part to Asterisk integration is the Message
>> Waiting Indicator, which I have modifed the app_voicemail.c file in
>> Asterisk to handing SUBSCRIBE messages a bit differently and I use
>> sipsak to send NOTIFY messages back to SER, which then proxies the
>> NOTIFY message to registered SIP clients to turn their MWI on or off.
>
>
> IMHO, this is not a basic reference design, but rather advanced... 
> ;-)  Of course, there are many people who would love to see this 
> design described.
>
>> Call features should also be covered in the ser.cfg. Things like call
>> blocking, speed dialing, click2dial, etc. Things like 3-way calling,
>> call waiting, etc should not be covered because they are functions
>> usually implemented as IAD features.
>
>
> Agree.
>
>> Our company has a full tcp/ip networking patch that we plan to release
>> to the ser project. This tcp/ip patch gives us full FIFO functionality
>> as a TCP socket, and this is something we hope would be commited to
>> CVS and maintained in the core. As far as we can tell the networking
>> patch is stable, but we need to prove this further.
>
>
> Good news! You have probably seen Andreas' effort in this same 
> direction using XMLRPC. I guess you have patched the core like Juha 
> suggested in the XMLRPC dialogue? This is an area where a lot of 
> parallel work can be avoided.
>
>> So in closing, if anyone things we're better off coming up with a
>> ser.cfg in private, then let me know. If everyone things that the
>> serusers list is the place to do this then lets start for the benefit
>> of everyone!
>
>
> If you start out by making an initial draft by dumping in you config 
> and making some headers, you can send it to us for adding content.  If 
> you submit it on the list with a call to submit suggestions and 
> wishes, we can either rotate the document edit privilege or work on 
> different parts of it?!
>
> Best regards,
> g-) aka
> Greger V. Teigre
> AxxessAnywhere, Oslo, Norway
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers


-- 
  
ISC Network Engineering
The University of Pennsylvania
3401 Walnut Street, Suite 221A
Philadelphia, PA 19104  


voice: 215-573-8396 

       215-746-8001

fax: 215-898-9348    

sip:blairs at upenn.edu




More information about the sr-users mailing list