[sr-dev] contact with gruu and websockets

Alekzander Spiridonov alekz at li.ru
Thu Dec 4 11:39:21 CET 2014


AFAIK the only way to "match" reg and invite (by sip design) is to use
separate auth data for each reg. Client could use random port for UAC's and
e.g. 5060 for UAS, so you can't really rely on contact vs src host:port
matching.

2014-11-28 22:07 GMT+03:00 Luis Azedo <luis at 2600hz.com>:

>  Hi,
>
>  when using sip.js websocket client i got this sequence
>
>  REGISTER sip:mysip.com SIP/2.0
> Via: SIP/2.0/WSS 1pds95dm7slp.invalid;branch=z9hG4bK1393343
> Max-Forwards: 70
> To: <sip:1096 at mysip.com>
> From: <sip:1096 at mysip.com>;tag=99i9ka9951
> Call-ID: 1agj9ujebn5k2006qvosg7
> CSeq: 82 REGISTER
> Authorization: Digest algorithm=MD5, username="1096", realm="mysip.com",
> nonce="VHiXFFR4legH+zdoSro9zybQQclvFtcR", uri="sip:mysip.com",
> response="2d9843d09d94f295d0ebfa323233783c"
> Contact: <sip:n7o5lk6u at 1pds95dm7slp.invalid
> ;transport=ws>;reg-id=1;+sip.instance="<urn:uuid:d68a53c4-37e7-4f5c-87f2-68d7cca14b93>";expires=600
> Allow: ACK,CANCEL,BYE,OPTIONS,INFO,NOTIFY,INVITE,MESSAGE
> Supported: path,gruu,100rel,outbound
> User-Agent: SIP.js/0.6.3
> Content-Length: 0
>
>
>   SIP/2.0 200 OK
> Via: SIP/2.0/WSS
> sg6h3at19h29.invalid;branch=z9hG4bK4876180;rport=65377;received=X.X.X.X
> To: <sip:1096 at mysip.com>;tag=78e678a5264e254e660865f4df24edf3.e69b
> From: <sip:1096 at mysip.com>;tag=j39lvle827
> Call-ID: c0ofajiui4u2vtem662rdh
> CSeq: 86 REGISTER
> Contact: <sip:8umlvk34 at sg6h3at19h29.invalid
> ;transport=ws>;expires=600;pub-gruu="sip:1096 at mysip.com
> ;gr=urn:uuid:876de649-281f-4f7f-9a3e-7b2a7e11f3cc";temp-gruu="
> sip:uloc-5478bf26-4504-1-7fd4326 at mysip.com
> ;gr";+sip.instance="<urn:uuid:876de649-281f-4f7f-9a3e-7b2a7e11f3cc>";reg-id=1
> Content-Length: 0
>
>
>  INVITE sip:2134 at mysip.com SIP/2.0
> Via: SIP/2.0/WSS sg6h3at19h29.invalid;branch=z9hG4bK1752419
> Max-Forwards: 70
> To: <sip:2134 at mysip.com>
> From: <sip:1096 at mysip.com>;tag=6vii55tc02
> Call-ID: i3hndju3tgsge7ctnvo2
> CSeq: 4782 INVITE
> Contact: <sip:1096 at mysip.com
> ;gr=urn:uuid:876de649-281f-4f7f-9a3e-7b2a7e11f3cc>
> Allow: ACK,CANCEL,BYE,OPTIONS,INFO,NOTIFY,INVITE,MESSAGE
> Content-Type: application/sdp
> Supported: gruu,100rel,outbound
> User-Agent: SIP.js/0.6.3
> Content-Length: 2585
>
>
>  i issued kamctl show to view the registered user
>
>        AOR:: 1096 at mysip.com
>                 Contact:: sip:8umlvk34 at sg6h3at19h29.invalid;transport=ws
> Q=
>                         Expires:: 177
>                         Callid:: c0ofajiui4u2vtem662rdh
>                         Cseq:: 86
>                         User-agent:: SIP.js/0.6.3
>                         Received:: sip:X.X.X.X:65377;transport=WS
>                         State:: CS_SYNC
>                         Flags:: 0
>                         Cflag:: 6
>                         Socket:: tls:Y.Y.Y.Y:8443
>                         Methods:: 927
>                         Ruid:: uloc-5478bf26-4504-1
>                         Instance::
> <urn:uuid:876de649-281f-4f7f-9a3e-7b2a7e11f3cc>
>                         Reg-Id:: 1
>                         Last-Keepalive:: 1417200609
>                         Last-Modified:: 1417200609
>
>  what is the best way to check if the INVITE is from a registered user
> and how to get usrloc properties for the registered user ?
>
>  i tried this
>
>  reg_fetch_contacts("location", "$fu", "caller");
>  $var(i) = 0;
> $var(found) = 0;
>  $var(contact) = $(ct{nameaddr.uri});
>  while($var(found) == 0 && $var(i) < $(ulc(caller=>count)))
>    {
>       xlog("L_INFO", "$ci|log| checking against
> $(ulc(caller=>addr)[$var(i)])");
>       if($var(contact) == $(ulc(caller=>addr)[$var(i)]))
>       {
>           $var(found) = 1;
>           $var(caller_idx) = $var(i);
>           $var(userlocid) = $(ulc(caller=>ruid)[$var(i)]);
>       }
>       else
>            $var(i) = $var(i) + 1;
>    }
>
>
>  the problem i see is that the INVITE Contact doesn't match the one
> registered.
>
>  is this a problem with sip.js or am i missing something in kamailio.cfg
> or should kamailio save the contact info as sip.js is sending?
>
>  Thank you
>
>
>
>
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>


-- 
Best regards,
Alekzander Spiridonov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20141204/e2d71363/attachment-0001.html>


More information about the sr-dev mailing list