[SR-Users] Creating RURI ($ru) from Contact ($ct)

Vitaliy Aleksandrov vitalik.voip at gmail.com
Sat May 26 23:57:47 CEST 2012


On 05/26/2012 05:39 PM, Aft nix wrote:
> Hi,
>
> I'm trying to create a ruri from contact header like following :
>
> In request route I've saved contact header in a hashtable using htable module.
> request_route{
>
> ---------------------
> ---------------------
> #!ifdef WITH_HASH
>           if (is_method("INVITE")&&  !has_totag()){
>                   xdbg ("Contact [$ct] with Callid [$ci]");
>                   $sht(a=>$ci) = $ct;
>           }
>   #!endif
>
> ----------------
> }
>
> And in route[WITHINDLG]
>
> route[WITHINDLG] {
>
> ---------------------------
> ---------------------------
>   #!ifdef WITH_HASH
>                                   xdbg ("ruri [$ru]");
>                                   if ($sht(a=>$ci) != $ru){
>                                           $ru = ($sht(a=>$ci));
>                                           xdbg ("rewriting ruri to [$ru]");
>                                   }
>   #!endif
>
> But it log shows that its unable to parse the uri :
>
> [4039]: DEBUG:<core>  [parser/parse_uri.c:1277]: parse_uri: bad uri,
> state 0 parsed:<<sip>  (4) /<<sip:2020 at 103.23.169.2:64358>>  (29)
> : DEBUG:<core>  [parser/parse_uri.c:1327]: ERROR: parse_sip_msg_uri:
> bad uri<<sip:2020 at 103.23.169.2:64358>>
> [4039]: ERROR: pv [pv_core.c:232]: failed to parse the R-URI
> [4039]: DEBUG:<script>: rewriting ruri to [<null>]
>
>
> I'm not understanding what's wrong with that. May be the port part
> should be discarded, but how i'm gonna do that?

It looks like $sht(a=>$ci) is empty. I see that you have "xdbg ("Contact 
[$ct] with Callid [$ci]"); " line, but you didn't show us that line at 
the debug.
If you add $ci to the debug information at the route[WITHINDLG] and show 
full debug from INVITE to BYE it will help to find where the mistake is.

And i think it would be better if you change _if ($sht(a=>$ci) != $ru)_ 
to _if ( $sht(a=>$ci) != $null && $sht(a=>$ci) != $ru)_ , because when 
$sht() is empty it always not equal to $ru.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20120527/c2b5c3a8/attachment.htm>


More information about the sr-users mailing list