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@103.23.169.2:64358>> (29)
: DEBUG:<core> [parser/parse_uri.c:1327]: ERROR: parse_sip_msg_uri:
bad uri<<sip:2020@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.