[asterisk-bugs] [JIRA] (ASTERISK-24143) pjsip: Outbound call to WebRTC UA fails to transmit ACK on received 200 OK

Matt Jordan (JIRA) noreply at issues.asterisk.org
Thu Aug 14 09:53:30 CDT 2014


    [ https://issues.asterisk.org/jira/browse/ASTERISK-24143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=221666#comment-221666 ] 

Matt Jordan commented on ASTERISK-24143:
----------------------------------------

The root cause of this problem appears to be Asterisk failing to respond to the 200 OK received from the websocket client. The root cause of this appears to be the resolver attempting to resolve an invalid hostname (which is expected with WebRTC requests/responses):

{noformat}
[Jul 31 10:23:59] DEBUG[348] pjsip: 	 inv0xb6812c94 ....Received Response msg 200/INVITE/cseq=9510 (rdata0xb683f30c), sending ACK
[Jul 31 10:23:59] DEBUG[348] pjsip: 	      endpoint ....Request msg ACK/cseq=9510 (tdta0xb6843280) created.
[Jul 31 10:23:59] DEBUG[348] pjsip: 	 dlg0xb6812c94 .....Sending Request msg ACK/cseq=9510 (tdta0xb6843280)
[Jul 31 10:23:59] DEBUG[348] pjsip: 	 sip_resolve.c .....Starting async DNS SRV query: target=_sip._udp.df7jal23ls0d.invalid, transport=WS, port=0
[Jul 31 10:23:59] DEBUG[348] pjsip: 	_sip._udp.df7j .....Starting async DNS SRV query_job: target=_sip._udp.df7jal23ls0d.invalid:5060
[Jul 31 10:23:59] DEBUG[348] pjsip: 	    resolver.c .....Nameserver 127.0.1.1:53 state changed Active --> Probing
[Jul 31 10:23:59] DEBUG[348] pjsip: 	    resolver.c .....Transmitting 48 bytes to NS 0 (127.0.1.1:53): DNS SRV query for _sip._udp.df7jal23ls0d.invalid: Success
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: Function session_inv_on_state_changed called on event TX_MSG
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The state change pertains to the session with 354
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The inv session still has an invite_tsx (0xb68399d4)
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: There is no transaction involved in this state change
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The current inv state is CONFIRMED
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: Sending request
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: Method is ACK
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: Function session_inv_on_tsx_state_changed called on event TSX_STATE
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The state change pertains to the session with 354
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The inv session does NOT have an invite_tsx
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The transaction involved in this state change is 0xb68399d4
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The current transaction state is Terminated
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The transaction state change event is RX_MSG
[Jul 31 10:23:59] DEBUG[348] res_pjsip_session.c: The current inv state is CONFIRMED
{noformat}

Unfortunately, {{res_pjsip_session}} is wrong: the ACK request is never actually sent.

By the time we get the BYE request from the WebRTC client (who initiates the hangup), things are now off the rails.

> pjsip: Outbound call to WebRTC UA fails to transmit ACK on received 200 OK
> --------------------------------------------------------------------------
>
>                 Key: ASTERISK-24143
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24143
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_pjsip, Resources/res_pjsip_transport_websocket
>    Affects Versions: 12.4.0
>         Environment: Ubuntu 14.04 
> PJProject(https://github.com/asterisk/pjproject 06/JUN/14)
> --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --with-external-srtp CFLAGS="-g -DNDEBUG" 
> chromium 35.0.1916.153(rev274914) (launch options: --use-fake-ui-for-media-stream --disable-webrtc-encryption)
> SIPml-api.js?svn=224
>            Reporter: Aleksei Kulakov
>            Assignee: Rusty Newton
>         Attachments: 354ChromeConsole.log, debuglog.1, pjsip.conf
>
>
> 1. WebRTC callee accepts call from caller of any type.
> 2. Caller hangup.
> 3. WebRTC callee does not get BYE sip packet(staying "in call" forever) and asterisk dumps following message to log:
> {quote}
> WARNING[348] pjsip: tsx0xb68399d4 ...Failed to send Request msg BYE/cseq=9511 (tdta0xb6804798)! err=320053 (DNS "Name Error" (PJLIB_UTIL_EDNS_NXDOMAIN))
> {quote}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list