Webrtc want hangup

Hi,

I have connection by chan_sip to VoIP operator and chan_pjsip for webrtc to connect agents. I can place a call, talk, etc. but when chan_sip are hanguped then my agent connected by pjsip has still channel up.

Strange thing is that, is pjsip channel from ‘pjsip show channels’ are disappear. Next thing is that, ‘pjsip show history’ shows that is Asterisk dont send BYE to agent after when i end call on chan_sip

serv250018*CLI> pjsip show history
No.   Timestamp  (Dir) Address                  SIP Message
===== ========== ============================== ===================================
00000 1605175905 * <== agent_IP:50952     REGISTER sip:my_domain SIP/2.0
00001 1605175905 * ==> agent_IP:50952     SIP/2.0 401 Unauthorized
00002 1605175905 * <== agent_IP:50952     REGISTER sip:my_domain SIP/2.0
00003 1605175905 * ==> agent_IP:50952     SIP/2.0 200 OK
00004 1605175933 * <== agent_IP:50952     INVITE sip:+48my_number@my_domain SIP/2.0
00005 1605175933 * ==> agent_IP:50952     SIP/2.0 401 Unauthorized
00006 1605175933 * <== agent_IP:50952     ACK sip:+48my_number@my_domain SIP/2.0
00007 1605175933 * <== agent_IP:50952     INVITE sip:+48my_number@my_domain SIP/2.0
00008 1605175933 * ==> agent_IP:50952     SIP/2.0 100 Trying
00009 1605175937 * ==> agent_IP:50952     SIP/2.0 183 Session Progress
00010 1605175939 * ==> agent_IP:50952     SIP/2.0 200 OK
00011 1605175939 * <== agent_IP:50952     ACK sips:asterisk_IP:8089;transport=ws SIP/2.0
00012 1605175956 * <== unrelated_IP:55344        REGISTER sip:my_realm SIP/2.0
00013 1605175956 * ==> unrelated_IP:55344        SIP/2.0 401 Unauthorized
00014 1605175956 * <== unrelated_IP:55344        REGISTER sip:my_realm SIP/2.0
00015 1605175956 * ==> unrelated_IP:55344        SIP/2.0 200 OK

; i manually close call as agent

00016 1605175958 * <== agent_IP:50952     BYE sips:asterisk_IP:8089;transport=ws SIP/2.0
00017 1605175958 * ==> agent_IP:50952     SIP/2.0 481 Call/Transaction Does Not Exist

I imagine that would happen if the agent dropped the WebRTC TCP connection, although I’d expect more complete logs to show the resulting failure to send BYE.

just say what you want to see and how to get it

short test produce about 20MB logs because it is working system, i upload logs in 6h when all agents go home

Hi,

There is log https://pastebin.com/ApthKNtU
I marked few things but I trusted it is still readable

One really needs the full log. However, to me, it seems that:

[Nov 12 18:18:07] DEBUG[544] res_pjsip_session.c: The transaction state change event is TRANSPORT_ERROR

is consistent with the TCP connection having been dropped before that point, making it impossible to send the BYE. (It looks like it tried and failed to connect back the other way, which is what will happen with Web-RTC, as only the browser is allowed to create connections.)

So i should use other webbrowser? Really, i have no Idea what next

serv250018*CLI> core set verbose 5
Console verbose was OFF and is now 5.
serv250018*CLI> core set debug 5
Core debug was OFF and is now 5.
serv250018*CLI> logger add channel debug_log_123456 notice,warning,error,debug,verbose,dtmf
  == WebSocket connection from 'agentIP:29621' for protocol 'sip' accepted using version '13'
[Nov 12 20:37:57] WARNING[32751]: res_pjsip/config_transport.c:676 transport_apply: Transport 'transport-ws' is not relo
    -- Added contact 'sips:agentExtension@agentIP:29621;transport=ws;rtcweb-breaker=no' to AOR 'agentExtension' with expiration of 2
  == Endpoint agentExtension is now Reachable
  == Setting global variable 'SIPDOMAIN' to 'imagosip.pl'
    -- Executing [+48myPhoneNumber@phones:1] NoOp("PJSIP/agentExtension-00000000", "Outgoing call to Poland") in new stack
    -- Executing [+48myPhoneNumber@phones:2] NoOp("PJSIP/agentExtension-00000000", "presentation_CPA") in new stack
    -- Executing [+48myPhoneNumber@phones:3] MSet("PJSIP/agentExtension-00000000", "CPB=148myPhoneNumber,FULL=+48myPhoneNumber") in new stack
    -- Executing [+48myPhoneNumber@phones:4] Gosub("PJSIP/agentExtension-00000000", "makeCall,s,1") in new stack
    -- Executing [s@makeCall:1] NoOp("PJSIP/agentExtension-00000000", "") in new stack
    -- Executing [s@makeCall:2] Gosub("PJSIP/agentExtension-00000000", "setsCall,s,1") in new stack
    -- Executing [s@setsCall:1] NoOp("PJSIP/agentExtension-00000000", "I set a variables on channel") in new stack
    -- Executing [s@setsCall:2] Set("PJSIP/agentExtension-00000000", "FILE=1605209883.0-agentExtension-148myPhoneNumber.WAV") in new stack
    -- Executing [s@setsCall:3] Set("PJSIP/agentExtension-00000000", "MIXMONITOR_FILENAME=1605209883.0-agentExtension-148myPhoneNumber.WAV") in
    -- Executing [s@setsCall:4] Set("PJSIP/agentExtension-00000000", "PROJECTID=2") in new stack
    -- Executing [s@setsCall:5] Set("PJSIP/agentExtension-00000000", "TRUNK=trunkName") in new stack
    -- Executing [s@setsCall:6] Set("PJSIP/agentExtension-00000000", "CDR(nagranie)=1605209883.0-agentExtension-148myPhoneNumber.WAV") in new st
    -- Executing [s@setsCall:7] MixMonitor("PJSIP/agentExtension-00000000", "1605209883.0-agentExtension-148myPhoneNumber.WAV,b") in new stack
    -- Executing [s@setsCall:8] Return("PJSIP/agentExtension-00000000", "") in new stack
    -- Executing [s@makeCall:3] NoOp("PJSIP/agentExtension-00000000", "PROJECTID: 2") in new stack
    -- Executing [s@makeCall:4] NoOp("PJSIP/agentExtension-00000000", "TRUNK: trunkName") in new stack
  == Begin MixMonitor Recording PJSIP/agentExtension-00000000
    -- Executing [s@makeCall:5] Dial("PJSIP/agentExtension-00000000", "SIP/trunkName/0048myPhoneNumber") in new stack
  == Using SIP RTP CoS mark 5
    -- Called SIP/trunkName/0048myPhoneNumber
       > 0x7fd6cc00f160 -- Strict RTP learning after remote address set to: 89.185.255.45:12286
    -- SIP/trunkName-00000000 is making progress passing it to PJSIP/agentExtension-00000000
       > 0x7fd67003c8f0 -- Strict RTP learning after remote address set to: agentLocalIP:60589
       > 0x7fd67003c8f0 -- Strict RTP learning after ICE completion
       > 0x7fd67003c8f0 -- Strict RTP learning after remote address set to: agentIP:23493
    -- PJSIP/agentExtension-00000000 requested media update control 26, passing it to SIP/trunkName-00000000
       > 0x7fd67003c8f0 -- Strict RTP switching to RTP target address agentIP:23493 as source
       > 0x7fd6cc00f160 -- Strict RTP switching to RTP target address 89.185.255.45:12286 as source
    -- SIP/trunkName-00000000 requested media update control 26, passing it to PJSIP/agentExtension-00000000
    -- SIP/trunkName-00000000 answered PJSIP/agentExtension-00000000
    -- Channel SIP/trunkName-00000000 joined 'simple_bridge' basic-bridge <25bbb62c-482f-4e8e-a61b-0ed9b8a2a826>
    -- Channel PJSIP/agentExtension-00000000 joined 'simple_bridge' basic-bridge <25bbb62c-482f-4e8e-a61b-0ed9b8a2a826>
       > 0x7fd6cc00f160 -- Strict RTP learning complete - Locking on source address 89.185.255.45:12286
       > 0x7fd67003c8f0 -- Strict RTP learning complete - Locking on source address agentIP:23493
    -- Channel SIP/trunkName-00000000 left 'simple_bridge' basic-bridge <25bbb62c-482f-4e8e-a61b-0ed9b8a2a826>
    -- Channel PJSIP/agentExtension-00000000 left 'simple_bridge' basic-bridge <25bbb62c-482f-4e8e-a61b-0ed9b8a2a826>
  == Spawn extension (makeCall, s, 5) exited non-zero on 'PJSIP/agentExtension-00000000'
  == MixMonitor close filestream (mixed)
  == End MixMonitor Recording PJSIP/agentExtension-00000000
  ;;; i end call on mobile phone
  ;;; agent have to hangup by self
  ;;; agent are logout
    -- Removed contact 'sips:agentExtension@agentIP:29621;transport=ws;rtcweb-breaker=no' from AOR 'agentExtension' due to request
  == Contact agentExtension/sips:agentExtension@agentIP:29621;transport=ws;rtcweb-breaker=no has been deleted
  == Endpoint agentExtension is now Unreachable
  == WebSocket connection from 'agentIP:29621' closed

Ok. I did it. I solved my issue. Maybe that is not solution but is workaround. I totally disable chan_sip and leave only chan_pjsip, then move configured sip endpoints to pjsip and all works now