[SR-Users] Kamailio dispatcher

Evgeniy Spinov spinov_evgeniy at intalisan.com
Wed Jun 15 10:50:42 CEST 2011


On Wed, 2011-06-15 at 09:47 +0200, Daniel-Constantin Mierla wrote:
> 
> On 6/14/11 1:06 PM, Evgeniy Spinov wrote:
> > On Mon, 2011-06-13 at 12:12 +0200, Daniel-Constantin Mierla wrote:
> >
> > Ok, still unsolved problem.
> >
> > I've changed failover part of the script to use ds_next_dst(). It does
> > what it should and signalization works fine - calls are being connected.
> > However I've got no audio and message in logs:
> >
> > 7(9917) ERROR: rtpproxy [rtpproxy.c:2211]: incorrect port 0 in reply
> > from rtp proxy
> >
> > I've added force_rtp_proxy() after ds_next_dst() and message
> > disappeared, however still no audio on the failover call.
> >
> > RTP Proxy runs on the same server and is fine for not failover calls.
> > Success route script executes force_rtp_proxy() and fix_nated_contact()
> > in curtain conditions and that's it.
> >
> > Am I missing something in my logic?
> Try to do the rtpproxy thing in branch route -- anyhow this has nothing 
> to with dispatcher.
> 
> Cheers,
> Daniel
> 

It's done on the branch route, however it seems that branch route is not
being executed when the failure branch route is being ran. Anyhow, when
the call is not passing through failure route and ds_next_dst() it is
fine, no errors. When it goes there, error with rtp proxy in logs and no
audio. When I add force_rtp_proxy() on success of t_relay() in failure
route it gives no errors, but still no audio. 

I do not know where issue is related, and what is wrong, especially when
this scenario worked before.

Just to avoid misunderstanding, providing you a failure and a normal
branches of the script. Failure route:

        if (is_method("INVITE")
                        && (isbflagset("6") || isflagset(5))) {
                unforce_rtp_proxy();
        }

	... ( checks for different errors and messages output is skipped, not
related to this issue anyway )

            if( ds_next_dst() )
            {
                xlog( "L_NOTICE", "[$Tf] $ci Next gateway $fU -> $tU via
$du\n" );
                if( !t_relay() )
                {
                    xlog( "L_INFO", "[$Tf] $ci -- ERROR - Can not
t_relay()\n" );
                    return;
                };
                return;
            }
            else
            {
                     xlog( "L_INFO", "[$Tf] $ci No more routes available
\n" );
                t_reply("503", "Service unavailable -- no more gateways"
);
                exit;
            };


And success route completely:

        if ((isflagset(5) || isbflagset("6")) && status=~"(183)|(2[0-9][0-9])") {
                force_rtp_proxy();
        }
        if (isbflagset("6")) {
                fix_nated_contact();
        }


Thank you.






More information about the sr-users mailing list