[OpenSIPS-Users] null dialog error on callee BYE
Kingsley Tart
kingsley at dns99.co.uk
Fri Jun 11 09:15:21 EST 2021
Aha! Thank you - that was it.
I was re-writing the host in the Contact header because I had
misunderstood the requirements from one of our carriers. Commenting out
the block of OpenSIPS code that did that fixed it.
Thank you once again :)
Cheers,
Kingsley.
On Fri, 2021-06-11 at 10:05 +0300, Răzvan Crainea wrote:
> Hi, Kingsley!
>
> The BYE that comes from gw1 does not appear to be right, as the r-uri
> domain points to OpenSIPS itself, therefore, after the first
> loose_route(), the BYE would loop back to OpenSIPS - that's probably
> when you get that error.
> The BYE coming from gw1 should have gw2 in R-URI (79.121.42.22:5060),
> not the proxy's IP. This is probably happening due to a bad contact sent
> to gw1, or perhaps a bad fixing of the contact of gw1 - I don't have the
> entire call flow, so I can't say exactly.
> What you could try though is after validate_dialog(), run
> fix_route_dialog() [1] - this might repair what gw1 is sending and point
> R-URI to gw2.
>
> [1] https://opensips.org/docs/modules/3.2.x/dialog.html#idp6271744
>
> Best regards,
>
> Răzvan Crainea
> OpenSIPS Core Developer
> http://www.opensips-solutions.com
>
> On 6/10/21 8:24 PM, Kingsley Tart wrote:
> > Hi,
> >
> > I'm getting null dialog errors when the callee hangs up, but not when
> > the caller hangs up.
> >
> > In this example, I'm calling from gw2 to gw1. The call gets answered.
> > If gw2 hangs up, all is good. If gw1 hangs up, it is not.
> >
> > This is the top of my routing script (xlog just for diags):
> >
> > if (has_totag()) {
> > if (is_method("ACK") && t_check_trans()) {
> > t_relay();
> > exit;
> > }
> > if (!loose_route()) {
> > xlog("NOT loose_route()\n");
> > send_reply(404, "Not here");
> > exit;
> > } else {
> > xlog("loose_route() OK\n");
> > }
> > if (!validate_dialog()) {
> > xlog("Ignoring $rm from $si due to invalid dialog; rc=$rc\n");
> > exit;
> > }
> > if (is_method("BYE")) {
> > route(acc_leg_set_end_reason);
> > }
> > route(relay);
> > exit;
> > }
> >
> >
> > And this is the dialog match mode:
> >
> > modparam("dialog", "dlg_match_mode", 1)
> >
> > I'm calling record_route() and then create_dialog("pP") when I receive
> > an INVITE.
> >
> >
> > If the call is answered and then gw1 sends the BYE, I get this in the
> > opensips log:
> >
> > loose_route() OK
> > ERROR:dialog:w_validate_dialog: null dialog
> > Ignoring BYE from 79.121.42.21 due to invalid dialog; rc=-4
> >
> >
> > and I see the following SIP messages coming from gw1, and re-trying
> > because I'm dropping the messages due to null dialog:
> >
> > (RX and TX from the perspective of OpenSIPS)
> >
> > RX<-gw1 U 2021/06/10 17:58:44.950661 79.121.42.21:5060 -> 79.121.42.45:5060 #29059
> > RX<-gw1 BYE sip:asterisk at 79.121.42.45:5060 SIP/2.0.
> > RX<-gw1 Via: SIP/2.0/UDP 79.121.42.21:5060;rport;branch=z9hG4bKPjc946d0af-e97d-4f85-b592-58df46d73d0e.
> > RX<-gw1 From: <sip:02030212929 at 79.121.42.21>;tag=0b7b5a28-2dc1-493f-8d74-c939674643f3.
> > RX<-gw1 To: <sip:01743272015 at 79.121.42.22>;tag=682e4380-74c8-4a53-a1f4-a339d758c986.
> > RX<-gw1 Call-ID: cc4f4b92-7ba0-4c43-9b8e-c467fa897460.
> > RX<-gw1 CSeq: 30163 BYE.
> > RX<-gw1 Route: <sip:79.121.42.45;lr;did=d9c.67fcbf86>.
> > RX<-gw1 Reason: Q.850;cause=16.
> > RX<-gw1 Max-Forwards: 70.
> > RX<-gw1 User-Agent: Asterisk PBX 13.27.0.
> > RX<-gw1 Content-Length: 0.
> > RX<-gw1 .
> >
> > RX<-gw1 U 2021/06/10 17:58:45.451242 79.121.42.21:5060 -> 79.121.42.45:5060 #29060
> > RX<-gw1 BYE sip:asterisk at 79.121.42.45:5060 SIP/2.0.
> > RX<-gw1 Via: SIP/2.0/UDP 79.121.42.21:5060;rport;branch=z9hG4bKPjc946d0af-e97d-4f85-b592-58df46d73d0e.
> > RX<-gw1 From: <sip:02030212929 at 79.121.42.21>;tag=0b7b5a28-2dc1-493f-8d74-c939674643f3.
> > RX<-gw1 To: <sip:01743272015 at 79.121.42.22>;tag=682e4380-74c8-4a53-a1f4-a339d758c986.
> > RX<-gw1 Call-ID: cc4f4b92-7ba0-4c43-9b8e-c467fa897460.
> > RX<-gw1 CSeq: 30163 BYE.
> > RX<-gw1 Route: <sip:79.121.42.45;lr;did=d9c.67fcbf86>.
> > RX<-gw1 Reason: Q.850;cause=16.
> > RX<-gw1 Max-Forwards: 70.
> > RX<-gw1 User-Agent: Asterisk PBX 13.27.0.
> > RX<-gw1 Content-Length: 0.
> > RX<-gw1 .
> >
> > RX<-gw1 U 2021/06/10 17:58:46.450860 79.121.42.21:5060 -> 79.121.42.45:5060 #29061
> > RX<-gw1 BYE sip:asterisk at 79.121.42.45:5060 SIP/2.0.
> > RX<-gw1 Via: SIP/2.0/UDP 79.121.42.21:5060;rport;branch=z9hG4bKPjc946d0af-e97d-4f85-b592-58df46d73d0e.
> > RX<-gw1 From: <sip:02030212929 at 79.121.42.21>;tag=0b7b5a28-2dc1-493f-8d74-c939674643f3.
> > RX<-gw1 To: <sip:01743272015 at 79.121.42.22>;tag=682e4380-74c8-4a53-a1f4-a339d758c986.
> > RX<-gw1 Call-ID: cc4f4b92-7ba0-4c43-9b8e-c467fa897460.
> > RX<-gw1 CSeq: 30163 BYE.
> > RX<-gw1 Route: <sip:79.121.42.45;lr;did=d9c.67fcbf86>.
> > RX<-gw1 Reason: Q.850;cause=16.
> > RX<-gw1 Max-Forwards: 70.
> > RX<-gw1 User-Agent: Asterisk PBX 13.27.0.
> > RX<-gw1 Content-Length: 0.
> > RX<-gw1 .
> >
> >
> > but if the caller (gw2) hangs up and sends the BYE, then all is fine:
> >
> > RX<-gw2 U 2021/06/10 17:57:37.506889 79.121.42.22:5060 -> 79.121.42.45:5060 #29043
> > RX<-gw2 BYE sip:79.121.42.21:5060 SIP/2.0.
> > RX<-gw2 Via: SIP/2.0/UDP 79.121.42.22:5060;rport;branch=z9hG4bKPjdf132a9c-ee20-4cbd-bbf4-ccb3d0aaab42.
> > RX<-gw2 From: <sip:01743272015 at 79.121.42.22>;tag=c91f69bc-9548-4245-86b9-a9202d0b33c8.
> > RX<-gw2 To: <sip:02030212929 at 79.121.42.45>;tag=3d0cfd81-357b-448f-92ab-712aadfdf895.
> > RX<-gw2 Call-ID: 38e1a3aa-54d3-456a-99b2-201295179c95.
> > RX<-gw2 CSeq: 9118 BYE.
> > RX<-gw2 Route: <sip:79.121.42.45;lr;did=fcb.680bf303>.
> > RX<-gw2 Reason: Q.850;cause=16.
> > RX<-gw2 Max-Forwards: 70.
> > RX<-gw2 User-Agent: Asterisk PBX 13.27.0.
> > RX<-gw2 Content-Length: 0.
> > RX<-gw2 .
> >
> > TX->gw1 U 2021/06/10 17:57:37.507451 79.121.42.45:5060 -> 79.121.42.21:5060 #29044
> > TX->gw1 BYE sip:79.121.42.21:5060 SIP/2.0.
> > TX->gw1 Via: SIP/2.0/UDP 79.121.42.45:5060;branch=z9hG4bK5071.80e2e516.0.
> > TX->gw1 Via: SIP/2.0/UDP 79.121.42.22:5060;received=79.121.42.22;rport=5060;branch=z9hG4bKPjdf132a9c-ee20-4cbd-bbf4-ccb3d0aaab42.
> > TX->gw1 From: <sip:01743272015 at 79.121.42.22>;tag=c91f69bc-9548-4245-86b9-a9202d0b33c8.
> > TX->gw1 To: <sip:02030212929 at 79.121.42.45>;tag=3d0cfd81-357b-448f-92ab-712aadfdf895.
> > TX->gw1 Call-ID: 38e1a3aa-54d3-456a-99b2-201295179c95.
> > TX->gw1 CSeq: 9118 BYE.
> > TX->gw1 Reason: Q.850;cause=16.
> > TX->gw1 Max-Forwards: 70.
> > TX->gw1 User-Agent: Asterisk PBX 13.27.0.
> > TX->gw1 Content-Length: 0.
> > TX->gw1 .
> >
> > RX<-gw1 U 2021/06/10 17:57:37.508346 79.121.42.21:5060 -> 79.121.42.45:5060 #29045
> > RX<-gw1 SIP/2.0 200 OK.
> > RX<-gw1 Via: SIP/2.0/UDP 79.121.42.45:5060;rport=5060;received=79.121.42.45;branch=z9hG4bK5071.80e2e516.0.
> > RX<-gw1 Via: SIP/2.0/UDP 79.121.42.22:5060;rport=5060;received=79.121.42.22;branch=z9hG4bKPjdf132a9c-ee20-4cbd-bbf4-ccb3d0aaab42.
> > RX<-gw1 Call-ID: 38e1a3aa-54d3-456a-99b2-201295179c95.
> > RX<-gw1 From: <sip:01743272015 at 79.121.42.22>;tag=c91f69bc-9548-4245-86b9-a9202d0b33c8.
> > RX<-gw1 To: <sip:02030212929 at 79.121.42.45>;tag=3d0cfd81-357b-448f-92ab-712aadfdf895.
> > RX<-gw1 CSeq: 9118 BYE.
> > RX<-gw1 Server: Asterisk PBX 13.27.0.
> > RX<-gw1 Content-Length: 0.
> > RX<-gw1 .
> >
> > TX->gw2 U 2021/06/10 17:57:37.509205 79.121.42.45:5060 -> 79.121.42.22:5060 #29046
> > TX->gw2 SIP/2.0 200 OK.
> > TX->gw2 Via: SIP/2.0/UDP 79.121.42.22:5060;rport=5060;received=79.121.42.22;branch=z9hG4bKPjdf132a9c-ee20-4cbd-bbf4-ccb3d0aaab42.
> > TX->gw2 Call-ID: 38e1a3aa-54d3-456a-99b2-201295179c95.
> > TX->gw2 From: <sip:01743272015 at 79.121.42.22>;tag=c91f69bc-9548-4245-86b9-a9202d0b33c8.
> > TX->gw2 To: <sip:02030212929 at 79.121.42.45>;tag=3d0cfd81-357b-448f-92ab-712aadfdf895.
> > TX->gw2 CSeq: 9118 BYE.
> > TX->gw2 Server: Asterisk PBX 13.27.0.
> > TX->gw2 Content-Length: 0.
> > TX->gw2 .
> >
> >
> > Am I doing something silly here?
> >
> > Cheers,
> > Kingsley.
> >
> >
> >
> > _______________________________________________
> > 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