Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No response to UPDATE for unrecognized call leg #163

Open
rhondahollis opened this issue Jul 12, 2021 · 2 comments
Open

No response to UPDATE for unrecognized call leg #163

rhondahollis opened this issue Jul 12, 2021 · 2 comments

Comments

@rhondahollis
Copy link

Hi Dave. While running some tests for handling audit UPDATEs from Broadworks, I found that if an UPDATE is received for a call leg that no longer exists (Drachtio server was restarted mid-call), there is no response sent for the UPDATE. It looks like controller.processMessageStatelessly is not taking an UPDATE into consideration. I believe it should be handled just like the BYE and return a 481 response.

021-07-12 15:00:57.461847 recv 417 bytes from udp/[208.73.144.98]:5060 at 15:00:57.461783:
UPDATE sip:192.168.0.18:5060 SIP/2.0
Via: SIP/2.0/UDP 208.73.144.98:5060;branch=z9hG4bK3dh30c301899g4hng4m0sme8m6de0.1
From: sip:[email protected];tag=1001184656-1626126663895
To: sip:[email protected]:5060;tag=rr61qprf2r
Call-ID: 14648d7a-5dfe-123a-e882-ddf57cfa3a8c
CSeq: 240767772 UPDATE
Contact: sip:208.73.144.98:5060;transport=udp
Max-Forwards: 19
Content-Length: 0

2021-07-12 15:00:57.461882 tport.c:3051 tport_deliver() tport_deliver(0x7fd070617390): msg 0x7fd070409f10 (417 bytes) from udp/208.73.144.98:5060 next=0x0
2021-07-12 15:00:57.461907 nta.c:3039 agent_recv_request() nta: received UPDATE sip:192.168.0.18:5060 SIP/2.0 (CSeq 240767772)
2021-07-12 15:00:57.461936 nta.c:3408 agent_aliases() nta: canonizing sip:192.168.0.18:5060 with contact
2021-07-12 15:00:57.461961 nta.c:3254 agent_recv_request() nta: UPDATE (240767772) to message callback
2021-07-12 15:00:57.461979 processMessageStatelessly - incoming message with call-id 14648d7a-5dfe-123a-e882-ddf57cfa3a8c does not match an existing call leg, processed in thread 0x10ba835c0
2021-07-12 15:00:57.964184 tport.c:2777 tport_wakeup_pri() tport_wakeup_pri(0x7fd070617390): events IN
2021-07-12 15:00:57.964251 tport.c:2892 tport_recv_event() tport_recv_event(0x7fd070617390)
2021-07-12 15:00:57.964285 tport.c:3233 tport_recv_iovec() tport_recv_iovec(0x7fd070617390) msg 0x7fd07181cda0 from (udp/192.168.0.18:5060) has 433 bytes, veclen = 1
2021-07-12 15:00:57.964380 recv 417 bytes from udp/[208.73.144.98]:5060 at 15:00:57.964318:
UPDATE sip:192.168.0.18:5060 SIP/2.0
Via: SIP/2.0/UDP 208.73.144.98:5060;branch=z9hG4bK3dh30c301899g4hng4m0sme8m6de0.1
From: sip:[email protected];tag=1001184656-1626126663895
To: sip:[email protected]:5060;tag=rr61qprf2r
Call-ID: 14648d7a-5dfe-123a-e882-ddf57cfa3a8c
CSeq: 240767772 UPDATE
Contact: sip:208.73.144.98:5060;transport=udp
Max-Forwards: 19
Content-Length: 0

2021-07-12 15:00:57.964417 tport.c:3051 tport_deliver() tport_deliver(0x7fd070617390): msg 0x7fd07181cda0 (417 bytes) from udp/208.73.144.98:5060 next=0x0
2021-07-12 15:00:57.964442 nta.c:3039 agent_recv_request() nta: received UPDATE sip:192.168.0.18:5060 SIP/2.0 (CSeq 240767772)
2021-07-12 15:00:57.964471 nta.c:3408 agent_aliases() nta: canonizing sip:192.168.0.18:5060 with contact
2021-07-12 15:00:57.964496 nta.c:3254 agent_recv_request() nta: UPDATE (240767772) to message callback
2021-07-12 15:00:57.964515 processMessageStatelessly - incoming message with call-id 14648d7a-5dfe-123a-e882-ddf57cfa3a8c does not match an existing call leg, processed in thread 0x10ba835c0

@davehorton
Copy link
Collaborator

good point. Will look into this.

@rhondahollis
Copy link
Author

Hi Dave. I've attached a log that shows that when we get this scenario with the unanswered UPDATE, we also end up with the end of call transactions and dialogs not getting cleared properly. From a test that was run on 08/20, I still see data from that call on 08/23:

2021-08-23 08:51:14.129746 number of server-side transactions in the hash table 3
2021-08-23 08:51:14.129765 nta_incoming_t*: 0x560a20639c60 BYE 3782 remote tag: FK4vm76BQD34c alive 235992 secs
2021-08-23 08:51:14.129793 nta_incoming_t*: 0x560a2064a3f0 BYE 852595739 r
[drachtio_postWebrtcproxyRestart.txt]
emote tag: apf674l9c0 alive 235952 secs
2021-08-23 08:51:14.129814 nta_incoming_t*: 0x560a2063a850 UPDATE 3781 remote tag: FK4vm76BQD34c alive 236024 secs

2021-08-23 08:51:14.130392 m_mapDialogs size: 2
2021-08-23 08:51:14.130401 dialog id: ipsbnfiugomf57cumu74;from-tag=apf674l9c0
2021-08-23 08:51:14.130410 dialog id: 202e0ea5-7ca7-123a-57a3-00505692178c;from-tag=apf674l9c0

(https://github.com/drachtio/drachtio-server/files/7035734/drachtio_postWebrtcproxyRestart.txt)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants