[OpenSIPS-Users] Cancel branch before failover on timeout

Bogdan-Andrei Iancu bogdan at opensips.org
Mon Jul 8 16:05:13 CEST 2013


Hi Ronald,

I never experienced such race (with multiple 200 oks on different
branches)....But depending on what kind of accounting you do:
 - transaction based = you will get 2 START records and 2 STOP records,
but with different TO tags....
 - cdr based = you will get the values of the last 200 OK (which will
overwrite the values of the first one)..

I guess the ACC module was never designed to deal with such scenarios.

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com


On 07/06/2013 02:25 AM, Ronald Cepres wrote:
> Bogdan,
>
> Understood, and thanks for the info.
>
> However, I have some concerns with regards to the resulting CDR using
> the acc and drouting modules. I think if both GWs sent 200 OK at the
> same time, it would result in a CDR with the values of AVPs specified
> by carrier_id_avp and gw_id_avp drouting parameters set only to GW2.
> Also, if GW1 is the last GW in the gwlist and this type of race
> condition happens, the value of the AVPs will be set to blank.
>
>
> On Fri, Jul 5, 2013 at 2:15 AM, Bogdan-Andrei Iancu
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
>     Hello Ronald,
>
>     If the first GW sent any reply before the timeout, than OpenSIPS
>     will cancel it before hitting the failure route. If no reply at
>     all sent by GW1, OpenSIPS will hit the failure route on timeout
>     without canceling. If after this point (call send to GW2) first GW
>     sends a reply :
>         1) if a provisional reply (<200), it will be canceled on the spot
>         2) if a 200 ok reply -> it will be accepted and fwd to calling
>     device
>             a) if the GW2 did not send a 200 OK, it will be canceled
>             b) if GW2 also sent a 200 OK in the same time, both 200 OK
>     will be sent to calling device and it that device will decide what
>     call to keep
>
>     Regards,
>
>     Bogdan-Andrei Iancu
>     OpenSIPS Founder and Developer
>     http://www.opensips-solutions.com
>
>
>     On 07/04/2013 07:41 PM, Ronald Cepres wrote:
>>
>>     Bogdan,
>>
>>     Thanks for the informative reply.
>>
>>     What I really want to solve is a problem I encounter when the
>>     first GW doesnt respond after a defined timeout then Opensips
>>     does failover to next GW. A few seconds after the call is routed
>>     to second  GW, the first GW responds with 200 OK, which may cause
>>     problems. It seems that the first GW has a slow response time.
>>
>>     The solution I am thinking of to prevent this is to send a cancel
>>     to the first GW before doing failover to next gateway. Does this
>>     make sense or is there a better solution?
>>
>>     Thanks.
>>
>>     -Ronald
>>
>>     On Jul 4, 2013 11:58 PM, "Bogdan-Andrei Iancu"
>>     <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>
>>         Hello Ronald,
>>
>>         When you hit the failure route, there is no ongoing branch
>>         left (doesn't matter how many you previously created) - so
>>         you should not worry about this.
>>
>>         By SIP definition, a transaction fails (and OpenSIPS gets
>>         into failure route) only when all branches failed.
>>
>>         Regards,
>>
>>         Bogdan-Andrei Iancu
>>         OpenSIPS Founder and Developer
>>         http://www.opensips-solutions.com
>>
>>
>>         On 07/03/2013 10:43 PM, Ronald Cepres wrote:
>>>         Hi all,
>>>
>>>         Is there a way I can cancel a pending branch before doing a
>>>         fail-over to next gateway (due to timeout from previous
>>>         gateway)? This way I can make sure that the call to the
>>>         previous gateway will not go through anymore after fail-over
>>>         to the next gateway, thus preventing us "double-charged"
>>>         situations if the previous gateway and the new gateway both
>>>         answered the call. 
>>>
>>>         Thanks in advance.
>>>
>>>
>>>         -- 
>>>
>>>         Regards,
>>>
>>>         Ronald
>>>
>>>
>>>         _______________________________________________
>>>         Users mailing list
>>>         Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>>         http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>
>
>
> -- 
>
> Regards,
>
> Ronald Cepres
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20130708/6e5db74a/attachment.htm>


More information about the Users mailing list