[OpenSIPS-Users] dialog problems after forking in the far end
Marco Hierl
marco.hierl at next-id.de
Fri Jul 19 09:51:14 CEST 2013
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