[SR-Users] Handle '486 busy here' from upstream carrier

JR Richardson jmr.richardson at gmail.com
Fri Nov 12 03:17:16 CET 2010


On Thu, Nov 11, 2010 at 6:29 PM, Iñaki Baz Castillo <ibc at aliax.net> wrote:
> 2010/11/11 JR Richardson <jmr.richardson at gmail.com>:
>> I was thinking about including this in my failure route:
>>
>> if (t_check_status("486")) {
>>     append_branch();
>>     t_relay();
>> }
>>
>> Would that do any good?
>
> The above code instructs Kamailio to create a new branch to the same
> destination upon receipt of hte 486 response. So obviously it's wrong.
> What do you want to achieve with the above code??
>
>
> --
> Iñaki Baz Castillo
> <ibc at aliax.net>

Hello,

The idea is to receive the 486 from the carrier and not send the
INVITE SDP back to the carrier, this is causing the carrier to send a
482 loop detected.  I would like to recognize the 486 response from
the carrier as a busy and relay it to the original INVITE server then
exit, so then another route can be processed by the INVITE server and
not handled as a loop and dropped.

I don't understand why kamailio would send an ACK then an INVITE SDP
to the carrier after receiveng a 486 Busy?

So the append_branch should not be used, ok, what about just the
t_relay and exit?

if (t_check_status("486")) {
   t_relay();
   exit;
}

Would this work?

This is a production system, so I can't just throw trial and error
code at it and hope it works.  I'm not sure how to mock up and test
the various codes I'm seeing from the carrier.  My test lab works
great with basic functionality and execution, I'm only seeing some of
these scenarios in production.

Thanks for your suggestions.

JR
-- 
JR Richardson
Engineering for the Masses



More information about the sr-users mailing list