[OpenSIPS-Users] dialog problems after forking in the far end

Bogdan-Andrei Iancu bogdan at opensips.org
Tue Jul 23 17:15:39 CEST 2013


Hello Marco,

The local Cancel requests are not triggering the local route.

Anyhow, could you send me offlist a pcap with a call capture from the
opensips machine ?

Regards,

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


On 07/19/2013 10:51 AM, Marco Hierl wrote:
> Hello Bogdan,
>
> thanks for your valuation.
>
> I'm logging the internal requests in the "local_route", but I did not see the CANCEL. Also I do not see the CANCEL in the sip trace (see below).
> But there is one point I like to say: Our OpenSIPS does neither belong to network A nor it belongs to network B. It's in between and it does NOT execute the forking. The proxy in network B (or later) is forking the call. We only notice the forking, because of the reception of two 180 REPLY's with different to_tags, which we both received from the gateway to network B.
>
> You said, that the UAC (in network A) must not send BYE or CANCEL. And I understood from RFC 3261 12.1. that 2 dialogs are created at the UAC, because it received two 180 REPLY with different to_tags. So what is the UAC supposed to do with the early dialog from UAS 2 ?
>
> Thanks and best regards
>   Marco
>
>
> Time                                      Source            Destination Info  
> 2013-07-19 09:07:42.00  GW_net_A    OpenSIPS    INVITE sip:+49xxx at we.de;transport=udp;user=phone, with session description
> 2013-07-19 09:07:42.00  OpenSIPS    GW_net_A    100 Giving a try
> 2013-07-19 09:07:42.00  OpenSIPS    GW_net_B         INVITE sip:+49xxx at network_B.de;transport=udp;user=phone, with session description
> 2013-07-19 09:07:42.01  GW_net_B    OpenSIPS         100 Trying
> 2013-07-19 09:07:42.23  GW_net_B    OpenSIPS         180 Ringing (to_tag2)
> 2013-07-19 09:07:42.23  OpenSIPS    GW_net_A    180 Ringing (to_tag2)
> 2013-07-19 09:07:42.24  GW_net_B    OpenSIPS         180 Ringing (to_tag1)
> 2013-07-19 09:07:42.24  OpenSIPS    GW_net_A    180 Ringing (to_tag1)
> 2013-07-19 09:07:49.22  GW_net_B    OpenSIPS         200 OK, with session description (to_tag1)
> 2013-07-19 09:07:49.23  OpenSIPS    GW_net_A    200 OK, with session description (to_tag1)
> 2013-07-19 09:07:49.24  GW_net_A     OpenSIPS   BYE sip:OpenSIPS;did=cf1.ae7c0a05 (to_tag2)
> 2013-07-19 09:07:49.24  OpenSIPS    GW_net_B         BYE sip:+4921173285891 at GW_net_B:5060;transport=udp (to_tag2)
> 2013-07-19 09:07:49.25  GW_net_B    OpenSIPS         200 OK (BYE) (to_tag2)
> 2013-07-19 09:07:49.25  OpenSIPS    GW_net_A    200 OK (BYE) (to_tag2)
> 2013-07-19 09:07:49.29  GW_net_A    OpenSIPS   ACK sip:OpenSIPS;did=cf1.ae7c0a05 (to_tag1)
> 2013-07-19 09:07:49.30  OpenSIPS    OpenSIPS       ACK   --- did not match the OpenSIPS dialog ----
> 2013-07-19 09:07:49.70  GW_net_B    OpenSIPS       200 OK, with session description (to_tag1)
>
>
>
>
>
>
> -----Ursprüngliche Nachricht-----
> Von: Bogdan-Andrei Iancu [mailto:bogdan at opensips.org] 
> Gesendet: Donnerstag, 18. Juli 2013 09:10
> An: OpenSIPS users mailling list
> Cc: Marco Hierl
> Betreff: Re: [OpenSIPS-Users] dialog problems after forking in the far end
>
> Hello Marco,
>
> When doing parallel forking (as you describe), OpenSIPS will automatically cancel the pending branches (still in early state) as soon as there is a 200 OK from one of the branches.
> So, in your case, as soon as UAS 1 sends 200 OK to OpenSIPS, OpenSIPS will send a cancel to the UAS 2. The UAC must send any BYE or CANCEL is this case.
>
> Regards,
>
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com
>
>
> On 07/17/2013 01:29 PM, Marco Hierl wrote:
>> Hello all,
>>
>> we are receiving an INVITE from an UAC, located in network A. Opensips does some stuff like create_dialog("B") and finally leads it on to network B. In network B forking will done to 2 different UAS's, located in network B. So we receive 2times 180 REPLY with different to_tags, which will be lead backward to the UAC. After a short time UAS 1 takes the call, sends 200OK to the UAC. Therefor the UAC stops the 2nd leg by sending a BYE with the correct (UAS 2) to_tag to UAS 2. When receiving this BYE Opensips stops the confirmed dialog of UAS 1, which is not correct in my eyes. The following ACK from the UAC for the received INVITE/200OK is not matching the dialog anymore.
>>
>> I saw that the $DLG_status becomes 2 (early state) after receiving the 180 REPLYs and I guess it was 3 (confirmed) after opensips got the 200 OK. (I need to guess it, because I printed $DLG_status in the onreply_route and the state seems to be updated after this is left) But after the BYE it was 5 (ended) and $DLG_count was decreased by 1 unit.
>> Topologie hiding is used and I tried dlg_match_mode 1&2.
>>
>> Do I understand something wrong or can anybody tell me what I need to change in order to keep the dialog?
>>
>> thanks for your ideas and best regards
>>   Marco
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>



More information about the Users mailing list