[Serdev] contribution: SER module implementing Path extension (RFC 3327) (previous was wrong)

Adrian Georgescu ag at ag-projects.com
Thu Jun 2 09:22:26 UTC 2005


Hi!

This is great! This is something which is quite useful!
comments inline


On May 31, 2005, at 5:21 PM, Fermín Galán Márquez wrote:

>
> store_path(): store the content of the "Path" header in the request 
> into a
> very simple database: key is the SIP URI in "From" (note that 
> store_path()
> it's intended to be used during registration in registrar servers) and 
> value
> is the "Path" content.

Is the path stored in a separate table? Why don't you store it in the 
location table? If you multiple registrations at the same account, the 
From: can't be used as key. The key must be the From: and the Contact:

>
> route_based_path(): retrieves the stored value (using the SIP URI in 
> the
> Request URI as key), put it in a "Route" header and forward the 
> request to
> that destination.

Does this also works with multiple branches (a forked call, parallel 
ringing)?

> An example of how to use both function to implement a simplified 
> S-CSCF is
> shown in the attached ser.cfg file.
>
> The code is attached in path.tgz file. Just uncompress it inside 
> modules/
> directory in the SER sources. It has been development for SER version 
> 0.8.14
> (but I think I would compile in newer versions without problem).
>
> Note that the code is very primitive, more a "proof-of-concept" that a
> strong and smart implementation. However, I think it could be 
> interesting
> for others, which maybe want to help to improve it. We aren't SER 
> gurus :)
> and maybe there are clever and smarter ways to do the same things in 
> the
> code. For example, putting the "Route" header in a smarter place (the
> current implementation put "Route" always after all other headers, 
> that is
> valid but not recommended in RFC 3261).
>
> Other thing that can be improved is the database. The current 
> implementation
> uses a simple text file and, if the "Path" header doesn't include 
> exactly
> one SIP URI (as in IMS, where "Path" is intend to include the SIP URI 
> of the
> P-CSCF from where the user is registering) the header handler routines 
> would
> fail.


I would suggest to add another column to the location table to store 
the path of an user agent.

regards,

Adrian & Klaus




More information about the Serdev mailing list