[Users] get_redirects("*"), serialize_branches(0), next_branches() not working for me

Bogdan-Andrei Iancu bogdan at voice-system.ro
Mon Jun 5 11:16:27 CEST 2006


Hi Greg,

first of all you should not use "status" statement in failure route - it 
was intended to be used only in reply route. In failure route it access 
only bogus date - you should use the t_check_status() from TM module

if you run in full debug, you will get additional logs about the 
processing of both get_redirects() and serialize_branches() - like what 
contacts are set as branches and later what branches are loaded as AVPs 
for serial fork.

regards,
Bogdan

Greg Fausak wrote:

> I'm trying to play around with the current cvs head but can't get it to
> work.  I wonder if somebody could give me a hint!
>
>
> I built a redirect server:
> It basically does:
>
> rewritehost("ab5350.node-1.com");
> sl_send_reply("302", "Redirect");
>
> I forward to the redirect server setting up a failure block:
>
>                if(is_method("INVITE"))
>                {
>                        _QLOG(L_INFO, OUTBOUNDCALL, OUT);
>
>                        t_on_failure("3");
>
>                        record_route();
>                        setflag(1);
>                        setflag(2);
>
>                        rewritehostport(_QSTR
> (REDIRECTOBGATEWAYIP:REDIRECTOBGATEWAYPORT));
>
>                        if(!t_relay())
>                        {
>                                sl_reply_error();
>                        }
>                }
>
> The response below comes back from my redirect server:
>
> SIP/2.0 302 Redirect
> Via: SIP/2.0/UDP 12.46.104.47;branch=z9hG4bKa86.09801851.0
> Via: SIP/2.0/UDP 12.46.104.62:5061;branch=z9hG4bKa86.191c2c81.0
> Via: SIP/2.0/UDP 12.46.104.59;branch=z9hG4bKa86.dafc0771.0
> Via: SIP/2.0/UDP 71.252.176.37:5060;branch=z9hG4bK-d0702751
> From: +19722200434 <sip:+19722200434 at var-2.com>;tag=3a553a2b9373c699
> To: <sip:2143357976 at var-2.com>;tag=5531b0101f56e37a4889ece4b0eb40fa.417f
> Call-ID: f27483a5-50532031 at 71.252.176.37
> CSeq: 101 INVITE
> Contact: sip:+12143357976 at ab5350.node-1.com:5060
> Content-Length: 0
>
> My failure_route block picks up the routing:
>
> failure_route[3]
> {
>        _QLOG(L_WARN, FAILUREROUTE, here we are);
>
>        if(status =~ "3[0-9][0-9]")
>        {
>                _QLOG(L_WARN, FAILUREROUTE, status is 3xx);
>                get_redirects("*");
>                serialize_branches(0);
>        }
>        if(next_branches())
>        {
>                _QLOG(L_WARN, FAILUREROUTE, next branch);
>                t_on_failure("3");
>                t_relay();
>        }
>        _QLOG(L_WARN, FAILUREROUTE, no branches left);
>        if(!t_reply("404", "Not Found"))
>        {
>                _QLOG(L_WARN, FAILUREROUTE, Error);
>        }
> }
>
> My syslog shows QLOG messages.
> I see the 'status is 3xx' message, which shows the
> next command to be get_redirects("*");
>
> The next output I see in my syslog is 'no branches left', which
> indicates that the
> serialize_branches(0) and next_branches() aren't working as I expected.
>
> I've also tried getting rid of the serialize_branches and 
> next_branches and just
> doing a t_relay() after the get_redirects(), that doesn't work either.
>
> Since I'm trying to simulate the redirect server, and the redirect
> client, I'm sure I
> got one of them wrong.  Can somebody give me a hint?
>
> Thanks!
>
> -g
>
>
>





More information about the sr-users mailing list