[sr-dev] pcscf_is_registered() internals

Carsten Bock carsten at ng-voice.com
Mon Dec 9 23:30:44 CET 2013


Hi Camille,

i've changed it in GIT master to the following behaviour:

1) Lookup based on Contact
1a) compare Received-Info (IP, Port, Proto), if Contact was found
2) Fallback to the old behaviour (directly looking for IP, Port,
Proto) otherwise.

I've also changed the pcscf_assert_identity to do the lookup based on
the contact.

If you modify the INVITE for initial requests (e.g. use a
contact-alias "add_contact_alias()" for NAT-Traversal), you'll have to
apply the changes first before you can do the check. I've added a
warning, in case the lookup based on the contact fails.
I've tested the changes with CSipSimple, Snom phones and AVM FritzBox.

Kind regards,
Carsten

2013/11/27 Camille Oudot <camille.oudot at orange.com>:
> Le Wed, 27 Nov 2013 18:30:32 +0100,
> Carsten Bock <carsten at ng-voice.com> a écrit :
>
> Hi Carsten,
>
>> I've implemented it that way in order to cope with NAT; however i can
>> probably simply replace it with the "add_contact_alias()" functions
>> from Nathelper...
>
> so, maybe the pcscf_is_registered() function could:
>     * retrieve the pcontact record in O(1) using the Contact URI hash
>       [should pcscf_is_registered() fail if no there is no Contact
>       header? Could the Contact URI somehow change between REGISTER and
>       other requests?]
>     * compare the request's source ip & port with those stored in the
>       pcontact record
>     * if both steps succeed, return true
>
> This should prevent performances issues if a lot of contacts are
> registered. Besides, this would allow to differentiate several UACs
> using the same network connection (as they very likely would provide
> different contact URIs).
> What do you think of this?
>
> Cheers,
> --
> Camille



-- 
Carsten Bock
CEO (Geschäftsführer)

ng-voice GmbH
Schomburgstr. 80
D-22767 Hamburg / Germany

http://www.ng-voice.com
mailto:carsten at ng-voice.com

Office +49 40 34927219
Fax +49 40 34927220

Sitz der Gesellschaft: Hamburg
Registergericht: Amtsgericht Hamburg, HRB 120189
Geschäftsführer: Carsten Bock
Ust-ID: DE279344284

Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
http://www.ng-voice.com/imprint/



More information about the sr-dev mailing list