[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