[OpenSIPS-Users] Paid Consultation Request

Geoffrey Mina geoffreymina at gmail.com
Thu Feb 12 00:05:18 CET 2009


Brett,
The 408 in this scenario is generated by OpenSIPS internally.  As
discussed previously, these systems are simply acting as IVR end
points.  They ALWAYS answer the call.  It is not dependant on anything
upstream or outside of the Asterisk server.  If OpenSIPS generates an
internal timeout... I know for a fact that my server has failed.  My
server will never provide a 408 in it's configuration.  The first
thing in my dialplan is a call to Answer().  Remember, this is a very
specific scenario deployment, so I can really narrow down what I need
to account for.

Thanks,
Geoff



On Wed, Feb 11, 2009 at 5:38 PM, Brett Nemeroff <brett at nemeroff.com> wrote:
> That 408 doesn't make sense to me..
> If you got a 408 back, the gateway you are sending to WORKS, but IT'S
> destination is failing.
> say for example you send to a gateway and that gateway sends to 10 different
> providers.. if this call routes to provider A, which doesn't respond, then
> your gateway may respond back with a 408. Where the failure isn't your
> gateway, it's your gateway's upstream..
> -Brett
>
> On Wed, Feb 11, 2009 at 4:10 PM, Iñaki Baz Castillo <ibc at aliax.net> wrote:
>>
>> I don't understand the following:
>>
>>
>> -----------------------------------------------
>> ########################################################################
>> ## Handles relay of INVITE messages
>> ## with round-robin load balancing
>> ########################################################################
>> route[1]{
>>        ds_select_domain("1","4");
>>        t_on_reply("1");
>>        t_on_failure("1");
>>        t_relay();
>> }
>>
>> [...]
>>
>> #######################################################################
>> ## Handles failure of INVITE forwarding
>> #######################################################################
>> failure_route[1]{
>>        xlog("L_INFO","Failure route, trying again\n");
>>
>>        if(t_check_status("408")){
>>                xlog("L_INFO","Got a 408 Timeout, flagging dest as
>> invalid\n");
>>                ds_mark_dst();
>>                route(1);
>> ----------------------------------------------
>>
>>
>> In failure_route[1] you call route[1], and in route[1] you
>> execute "ds_select_domain()".
>> According to the doc:
>>  http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id271282
>> "ds_select_domain()" can only be called from REQUEST_ROUTE, and not from
>> FAILURE_ROUTE.
>> I wonder why you don't get an error when starting your OpenSIPS. ¿?
>>
>> I expect you should use "ds_next_domain" in FAILURE_ROUTE:
>>  http://www.opensips.org/html/docs/modules/devel/dispatcher.html#id271328
>>
>> Are you 100% sure that this script works in your lab? How have you
>> simulated
>> the "408" from a server?
>>
>>
>> Other point: you consider the case of a 408 to dissable a gateway. I've
>> worked
>> with OpenSIPS in front of an Asterisk acting as PSTN gateway using PRI.
>> Sometimes, when the PSTN called doesn't answer after XX seconds, the telco
>> replies a ISUP code that Asterisk converts to "408". Be careful because if
>> that occurs your OpenSIPS will mark that Asterisk as "dead".
>>
>>
>> Other point: why do you only consider 408 to dissable a gateway? Imagine
>> that
>> the Asterisk has a problem and replies 500 (Internal Error) or 503. But if
>> you add those casees, be sure of adding "Hangup" at the end of each
>> possible
>> extension in your Asterisk dialplan. If not, Asterisk will reply 503.
>>
>>
>>
>>
>>
>>
>>
>> --
>> Iñaki Baz Castillo
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>



More information about the Users mailing list