День добрый, пытаюсь реализовать связку Asterisk + JsSip на Amazon EC2 для совершения звонка из браузера в браузер. Как известно Amazon находится за своим NAT и внешний (Elastic IP) разнится с внутренним. Для решения этой проблемы необходимо использовать STUN а точнее ICE. Так вот, собрал я Asterisk 11.13.1 + srtp. для тестов завел несколько аккаунтов, звонок по SIP при помощи обычного 3CX Phone проходит (И нет, без использования directmedia, canreinvite и прочего функционала какой пытается заставлять звонить клиентов друг другу на прямую) звонок идет именно через сервер, в консоли в RTP дебаге прекрасно вижу бегающий трафик, так же как и обычным tcpdump. Но при попытке позвонить при помощи WebRTC медиапоток в виде RTP я не получаю, соответственно и голос тоже... Хотя если я совершаю звонок с из веб на софтфон то RTP между хостами я так же наблюдаю. Предполагаю, что моя проблема связана с ICE но куда смотреть уже незнаю... Прошу помоши, прилагаю свои конфиги
rtp.conf [general] rtpstart=10000 rtpend=20000 icesupport=yes stunaddr=stun.l.google.com:19302 sip.conf [general] udpbindaddr=0.0.0.0:5060 realm=myhostname transport=udp,ws,wss externip=myextip context=realtime rtcachefriends=yes rtsavesysname=yes language=en localnet=172.0.0.0/20 nat=force_rport,comedia icesupport=yes accept_outofcall_message=yes outofcall_message_context=messages ;auth_message_requests = no [101] type=friend username=101 host=dynamic secret=101 icesupport=no nat=comedia qualify=yes context=testcontext disallow=all allow=ulaw allow=alaw directmedia=nonat canreinvite=no [102] type=friend username=102 host=dynamic secret=102 icesupport=no nat=comedia qualify=yes context=test disallow=all allow=ulaw allow=alaw directmedia=nonat canreinvite=no [777] type=friend username=777 host=dynamic secret=777 encryption=yes avpf=yes icesupport=yes nat=force_rport,comedia context=testcontext directmedia=nonat canreinvite=no transport=ws,udp force_avp=yes dtlsenable=yes dtlsverify=no dtlscertfile=/etc/asterisk/keys/asterisk.pem dtlsprivatekey=/etc/asterisk/keys/asterisk.pem dtlscafile=/etc/asterisk/keys/ca.crt dtlssetup=actpass srtpcapable=yes disallow=all allow=ulaw allow=alaw [888] type=friend username=888 host=dynamic secret=888 encryption=yes avpf=yes icesupport=yes nat=force_rport,comedia context=testcontext directmedia=nonat canreinvite=no transport=ws,udp force_avp=yes dtlsenable=yes dtlsverify=no dtlscertfile=/etc/asterisk/keys/asterisk.pem dtlsprivatekey=/etc/asterisk/keys/asterisk.pem dtlscafile=/etc/asterisk/keys/ca.crt dtlssetup=actpass srtpcapable=yes disallow=all allow=ulaw allow=alaw
пользователи 101 и 102 созданы для теста по SIP, 777 и 888 пользователи которых пытаюсь использовать для WebRTC.
Дебаг из веб:
888: voip.js?v10:25 init jssip-0.6.18.js:21376 JsSIP version 0.6.18 +0ms jssip-0.6.18.js:21376 rtcninja version 0.5.0 +6ms jssip-0.6.18.js:21376 rtcninja detected browser: Chrome 39.0 [mobile:false, tablet:false, android:false, ios:false] +2ms jssip-0.6.18.js:21376 JsSIP:UA configuration parameters after validation: +66ms jssip-0.6.18.js:21376 JsSIP:UA - via_host: "192.0.2.68" +1ms jssip-0.6.18.js:21376 JsSIP:UA - password: NOT SHOWN +0ms jssip-0.6.18.js:21376 JsSIP:UA - register_expires: 600 +0ms jssip-0.6.18.js:21376 JsSIP:UA - register: true +0ms jssip-0.6.18.js:21376 JsSIP:UA - registrar_server: sip:54.200.180.31 +1ms jssip-0.6.18.js:21376 JsSIP:UA - ws_server_max_reconnection: 3 +0ms jssip-0.6.18.js:21376 JsSIP:UA - ws_server_reconnection_timeout: 4 +0ms jssip-0.6.18.js:21376 JsSIP:UA - connection_recovery_min_interval: 2 +0ms jssip-0.6.18.js:21376 JsSIP:UA - connection_recovery_max_interval: 30 +0ms jssip-0.6.18.js:21376 JsSIP:UA - use_preloaded_route: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - no_answer_timeout: 60000 +0ms jssip-0.6.18.js:21376 JsSIP:UA - session_timers: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - hack_via_tcp: false +1ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - hack_via_ws: false +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - hack_ip_in_contact: true +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - node_websocket_options: {} +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - uri: sip:888@54.200.180.31 +1ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - ws_servers: [{"ws_uri":"ws://54.200.180.31:8088/ws","sip_uri":"<sip:54.200.180.31:8088;transport=ws;lr>","weight":0,"status":0,"scheme":"WS"}] +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - display_name: "888" +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - instance_id: "0afee81f-ce1f-41a2-b377-d3e0a4c2b1d3" +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - jssip_id: "2inrp" +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - hostport_params: "54.200.180.31" +1ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA - authorization_user: "888" +0ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 rtcninja WebRTC supported +1ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:UA start() +1ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:Transport connecting to WebSocket ws://54.200.180.31:8088/ws +1ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:Transport WebSocket ws://54.200.180.31:8088/ws connected +451ms voip.js:268 message Connection success voip.js:25 ready voip.js:764 UA :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: REGISTER sip:54.200.180.31 SIP/2.0 Via: SIP/2.0/WS 192.0.2.68;branch=z9hG4bK5160676 Max-Forwards: 69 To: <sip:888@54.200.180.31> From: "888" <sip:888@54.200.180.31>;tag=h5o5autqle Call-ID: uv31655tk91b6f24havq4v CSeq: 1 REGISTER Contact: <sip:kk2q0bsv@192.0.2.68;transport=ws>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:0afee81f-ce1f-41a2-b377-d3e0a4c2b1d3>";expires=600 Expires: 600 Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS Supported: path,gruu,outbound User-Agent: JsSIP 0.6.18 Content-Length: 0 +10ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 401 Unauthorized Via: SIP/2.0/WS 192.0.2.68;branch=z9hG4bK5160676;received=178.219.174.6;rport=42908 From: "888" <sip:888@54.200.180.31>;tag=h5o5autqle To: <sip:888@54.200.180.31>;tag=as612041cf Call-ID: uv31655tk91b6f24havq4v CSeq: 1 REGISTER Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="54.200.180.31", nonce="3835a6a1" Content-Length: 0 +228ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: REGISTER sip:54.200.180.31 SIP/2.0 Via: SIP/2.0/WS 192.0.2.68;branch=z9hG4bK2287834 Max-Forwards: 69 To: <sip:888@54.200.180.31> From: "888" <sip:888@54.200.180.31>;tag=h5o5autqle Call-ID: uv31655tk91b6f24havq4v CSeq: 2 REGISTER Authorization: Digest algorithm=MD5, username="888", realm="54.200.180.31", nonce="3835a6a1", uri="sip:54.200.180.31", response="eaba67db026a42f0d1b69f132710c877" Contact: <sip:kk2q0bsv@192.0.2.68;transport=ws>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:0afee81f-ce1f-41a2-b377-d3e0a4c2b1d3>";expires=600 Expires: 600 Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS Supported: path,gruu,outbound User-Agent: JsSIP 0.6.18 Content-Length: 0 +22ms :59880/voip/js/jssip/jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 200 OK Via: SIP/2.0/WS 192.0.2.68;branch=z9hG4bK2287834;received=178.219.174.6;rport=42908 From: "888" <sip:888@54.200.180.31>;tag=h5o5autqle To: <sip:888@54.200.180.31>;tag=as612041cf Call-ID: uv31655tk91b6f24havq4v CSeq: 2 REGISTER Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Expires: 600 Contact: <sip:kk2q0bsv@192.0.2.68;transport=ws>;expires=600 Date: Tue, 17 Feb 2015 14:26:23 GMT Content-Length: 0 +227ms voip.js:268 message Registered voip.js:25 status.active voip.js?v10:25 status.inactive jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: INVITE sip:kk2q0bsv@192.0.2.68;transport=ws SIP/2.0 Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK22c34220;rport Max-Forwards: 70 From: "777" <sip:777@54.200.180.31:0>;tag=as1d66f2c7 To: <sip:kk2q0bsv@192.0.2.68;transport=ws> Contact: <sip:777@54.200.180.31:0;transport=WS> Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 102 INVITE User-Agent: Asterisk PBX 11.13.1 Date: Tue, 17 Feb 2015 14:26:31 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Content-Type: application/sdp Content-Length: 809 v=0 o=root 760910156 760910156 IN IP4 54.200.180.31 s=Asterisk PBX 11.13.1 c=IN IP4 54.200.180.31 t=0 0 m=audio 18942 RTP/SAVPF 0 8 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20 a=ice-ufrag:6eef9bfc044636cf4a2ed49137f09e82 a=ice-pwd:0c139f73247bfcc61fd76bd924c2c2bc a=candidate:Hac1f0f11 1 UDP 2130706431 172.31.15.17 18942 typ host a=candidate:S36c8b41f 1 UDP 1694498815 54.200.180.31 18942 typ srflx a=candidate:Hac1f0f11 2 UDP 2130706430 172.31.15.17 18943 typ host a=candidate:S36c8b41f 2 UDP 1694498814 54.200.180.31 18943 typ srflx a=connection:new a=setup:actpass a=fingerprint:SHA-256 34:1F:33:1C:B5:14:3D:D9:F4:25:7E:29:60:96:8A:61:53:F0:B9:B4:47:1E:A5:E4:5A:82:DC:A5:1E:FF:1E:94 a=sendrecv +9s jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: SIP/2.0 100 Trying Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK22c34220;rport To: <sip:kk2q0bsv@192.0.2.68;transport=ws> From: "777" <sip:777@54.200.180.31:0>;tag=as1d66f2c7 Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 102 INVITE Supported: ice,outbound Content-Length: 0 +17ms jssip-0.6.18.js:21376 JsSIP:RTCSession new +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession init_incoming() +1ms jssip-0.6.18.js:21376 JsSIP:Dialog new UAS dialog created with status EARLY +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession newRTCSession +1ms voip.js?v10:262 debug newRTCSession Object {originator: "remote", session: RTCSession, request: IncomingRequest} voip.js?v10:262 debug add session RTCSession {ua: UA, status: 4, dialog: null, earlyDialogs: Object, connection: null…} voip.js?v10:268 message Incoming call from 777 voip.js?v10:25 incomingCall.wait jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: SIP/2.0 180 Ringing Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK22c34220;rport To: <sip:kk2q0bsv@192.0.2.68;transport=ws>;tag=l4r7likalc From: "777" <sip:777@54.200.180.31:0>;tag=as1d66f2c7 Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 102 INVITE Contact: <sip:kk2q0bsv@192.0.2.68;transport=ws> Supported: ice,outbound Content-Length: 0 +13ms jssip-0.6.18.js:21376 JsSIP:RTCSession session progress +0ms voip.js?v10:25 answer.before voip.js?v10:262 debug answer RTCSession {ua: UA, status: 4, dialog: null, earlyDialogs: Object, connection: null…} jssip-0.6.18.js:21376 JsSIP:RTCSession answer() +2s jssip-0.6.18.js:21376 JsSIP:Dialog dialog 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0l4r7likalcas1d66f2c7 changed to CONFIRMED state +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection new | pcConfig: +5ms Object {iceServers: Array[1]} jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setConfigurationAndOptions | processed pcConfig: +2ms Object {iceServers: Array[1]} jssip-0.6.18.js:21376 rtcninja:Adapter getUserMedia() | constraints: +7ms Object {audio: true, video: false} voip.js?v10:25 answer voip.js?v10:25 incomingCall.connect jssip-0.6.18.js:21376 rtcninja:Adapter getUserMedia() | success +1s jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection addStream() | stream: +1ms MediaStream {onremovetrack: null, onaddtrack: null, onended: null, ended: false, id: "EyY0Tc0pJ65tdsLIXubTvwT4bLn4j5G4PIXt"…} jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setRemoteDescription() +3ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onnegotiationneeded() +4ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onsignalingstatechange() | signalingState: have-remote-offer +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onaddstream() | stream: +1ms MediaStream {onremovetrack: null, onaddtrack: null, onended: null, ended: false, id: "default"…} voip.js?v10:262 debug addstream Object {stream: MediaStream} jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setRemoteDescription() | success +3ms jssip-0.6.18.js:21376 JsSIP:RTCSession session connecting +1ms voip.js?v10:268 message Connecting with user... jssip-0.6.18.js:21376 JsSIP:RTCSession createLocalDescription() +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection createAnswer() +2ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection createAnswer() | success +8ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setLocalDescription() +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onsignalingstatechange() | signalingState: stable +4ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection oniceconnectionstatechange() | iceConnectionState: checking +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setLocalDescription() | success +2ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:3859917557 1 udp 2122260223 192.168.1.96 46996 typ host generation 0 +5ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:3859917557 2 udp 2122260222 192.168.1.96 44342 typ host generation 0 +2ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:268555041 2 udp 1686052606 178.219.174.6 44342 typ srflx raddr 192.168.1.96 rport 44342 generation 0 +48ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:268555041 1 udp 1686052607 178.219.174.6 46996 typ srflx raddr 192.168.1.96 rport 46996 generation 0 +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:2828162565 1 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 +43ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:2828162565 2 tcp 1518280446 192.168.1.96 0 typ host tcptype active generation 0 +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | end of candidates +49ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: SIP/2.0 200 OK Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK22c34220;rport To: <sip:kk2q0bsv@192.0.2.68;transport=ws>;tag=l4r7likalc From: "777" <sip:777@54.200.180.31:0>;tag=as1d66f2c7 Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 102 INVITE Contact: <sip:kk2q0bsv@192.0.2.68;transport=ws> Supported: ice,outbound Content-Type: application/sdp Content-Length: 1361 v=0 o=- 2838487268634674867 2 IN IP4 127.0.0.1 s=- t=0 0 a=msid-semantic: WMS EyY0Tc0pJ65tdsLIXubTvwT4bLn4j5G4PIXt m=audio 46996 RTP/SAVPF 0 8 101 c=IN IP4 178.219.174.6 a=rtcp:44342 IN IP4 178.219.174.6 a=candidate:3859917557 1 udp 2122260223 192.168.1.96 46996 typ host generation 0 a=candidate:3859917557 2 udp 2122260222 192.168.1.96 44342 typ host generation 0 a=candidate:268555041 2 udp 1686052606 178.219.174.6 44342 typ srflx raddr 192.168.1.96 rport 44342 generation 0 a=candidate:268555041 1 udp 1686052607 178.219.174.6 46996 typ srflx raddr 192.168.1.96 rport 46996 generation 0 a=candidate:2828162565 1 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 a=candidate:2828162565 2 tcp 1518280446 192.168.1.96 0 typ host tcptype active generation 0 a=ice-ufrag:NMOpTzsqDzC8nTe9 a=ice-pwd:sxxTmu6xPcU/5CCuGadJyQx2 a=fingerprint:sha-256 9A:C1:2D:20:4C:16:6A:C7:A4:17:06:E8:02:14:48:25:EA:A3:37:5D:F4:34:E9:76:2C:83:75:C2:C5:63:5A:0B a=setup:active a=mid:audio a=sendrecv a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=ssrc:4004630173 cname:K7wrCyJqVTInewVD a=ssrc:4004630173 msid:EyY0Tc0pJ65tdsLIXubTvwT4bLn4j5G4PIXt f29fcfc2-3ff5-4535-995f-6b108c7c7fba a=ssrc:4004630173 mslabel:EyY0Tc0pJ65tdsLIXubTvwT4bLn4j5G4PIXt a=ssrc:4004630173 label:f29fcfc2-3ff5-4535-995f-6b108c7c7fba +3ms jssip-0.6.18.js:21376 JsSIP:RTCSession session accepted +2ms voip.js?v10:262 debug call accepted Object {originator: "local", response: null} jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: ACK sip:kk2q0bsv@192.0.2.68;transport=ws SIP/2.0 Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK21d51b89;rport Max-Forwards: 70 From: "777" <sip:777@54.200.180.31:0>;tag=as1d66f2c7 To: <sip:kk2q0bsv@192.0.2.68;transport=ws>;tag=l4r7likalc Contact: <sip:777@54.200.180.31:0;transport=WS> Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 102 ACK User-Agent: Asterisk PBX 11.13.1 Content-Length: 0 +355ms jssip-0.6.18.js:21376 JsSIP:RTCSession receiveRequest() +8ms jssip-0.6.18.js:21376 JsSIP:RTCSession session confirmed +1ms voip.js?v10:262 debug call confirmed Object {originator: "remote", ack: IncomingRequest} voip.js?v10:268 message Speaking... voip.js?v10:25 incomingCall.speak voip.js?v10:712 call confirmed voip.js?v10:268 777: 00:00:01 voip.js?v10:268 777: 00:00:02 voip.js?v10:268 777: 00:00:03 voip.js?v10:268 777: 00:00:04 voip.js?v10:268 777: 00:00:05 voip.js?v10:268 777: 00:00:06 voip.js?v10:268 777: 00:00:07 voip.js?v10:268 777: 00:00:08 voip.js?v10:268 777: 00:00:09 voip.js?v10:268 777: 00:00:10 voip.js?v10:25 hangUp.before voip.js?v10:262 debug hang up RTCSession {ua: UA, status: 9, dialog: Dialog, earlyDialogs: Object, connection: RTCPeerConnection…} jssip-0.6.18.js:21376 JsSIP:RTCSession terminate() +10s jssip-0.6.18.js:21376 JsSIP:RTCSession terminating session +0ms jssip-0.6.18.js:21376 JsSIP:RTCSession sendRequest() +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession:Request new | BYE +0ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: BYE sip:777@54.200.180.31:0;transport=ws SIP/2.0 Via: SIP/2.0/WS 192.0.2.68;branch=z9hG4bK8905896 Max-Forwards: 69 To: <sip:777@54.200.180.31:0>;tag=as1d66f2c7 From: "888" <sip:kk2q0bsv@192.0.2.68;transport=ws>;tag=l4r7likalc Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 9790 BYE Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS Supported: outbound User-Agent: JsSIP 0.6.18 Content-Length: 0 +4ms jssip-0.6.18.js:21376 JsSIP:RTCSession session ended +0ms jssip-0.6.18.js:21376 JsSIP:RTCSession close() +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection close() +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession close() | closing local MediaStream +2ms jssip-0.6.18.js:21376 rtcninja:Adapter closeMediaStream() | calling stop() on all the MediaStreamTrack +1ms jssip-0.6.18.js:21376 JsSIP:Dialog dialog 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0l4r7likalcas1d66f2c7 deleted +1ms voip.js?v10:262 debug call ended Object {originator: "local", message: null, cause: "Rejected"} voip.js?v10:268 message Call ended voip.js?v10:25 incomingCall.end voip.js?v10:25 hangUp jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection oniceconnectionstatechange() | iceConnectionState: closed +3ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onsignalingstatechange() | signalingState: closed +0ms jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 200 OK Via: SIP/2.0/WS 192.0.2.68;branch=z9hG4bK8905896;received=178.219.174.6;rport=42908 From: "888" <sip:kk2q0bsv@192.0.2.68;transport=ws>;tag=l4r7likalc To: <sip:777@54.200.180.31:0>;tag=as1d66f2c7 Call-ID: 7288e1c61bb4bb33643429d376828d68@54.200.180.31:0 CSeq: 9790 BYE Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Content-Length: 0 +218ms jssip-0.6.18.js:21376 JsSIP:RTCSession:Request onSuccessResponse +9ms jssip-0.6.18.js:21376 JsSIP:InviteServerTransaction Timer L expired for transaction z9hG4bK22c34220 +21s 777: voip.js?v10:25 init jssip-0.6.18.js:21376 JsSIP version 0.6.18 +0ms jssip-0.6.18.js:21376 rtcninja version 0.5.0 +7ms jssip-0.6.18.js:21376 rtcninja detected browser: Chrome 39.0 [mobile:false, tablet:false, android:false, ios:false] +1ms jssip-0.6.18.js:21376 JsSIP:UA configuration parameters after validation: +56ms jssip-0.6.18.js:21376 JsSIP:UA - via_host: "192.0.2.190" +1ms jssip-0.6.18.js:21376 JsSIP:UA - password: NOT SHOWN +0ms jssip-0.6.18.js:21376 JsSIP:UA - register_expires: 600 +0ms jssip-0.6.18.js:21376 JsSIP:UA - register: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - registrar_server: sip:54.200.180.31 +0ms jssip-0.6.18.js:21376 JsSIP:UA - ws_server_max_reconnection: 3 +0ms jssip-0.6.18.js:21376 JsSIP:UA - ws_server_reconnection_timeout: 4 +1ms jssip-0.6.18.js:21376 JsSIP:UA - connection_recovery_min_interval: 2 +0ms jssip-0.6.18.js:21376 JsSIP:UA - connection_recovery_max_interval: 30 +0ms jssip-0.6.18.js:21376 JsSIP:UA - use_preloaded_route: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - no_answer_timeout: 60000 +0ms jssip-0.6.18.js:21376 JsSIP:UA - session_timers: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - hack_via_tcp: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - hack_via_ws: false +0ms jssip-0.6.18.js:21376 JsSIP:UA - hack_ip_in_contact: true +0ms jssip-0.6.18.js:21376 JsSIP:UA - node_websocket_options: {} +1ms jssip-0.6.18.js:21376 JsSIP:UA - uri: sip:777@54.200.180.31 +0ms jssip-0.6.18.js:21376 JsSIP:UA - ws_servers: [{"ws_uri":"ws://54.200.180.31:8088/ws","sip_uri":"<sip:54.200.180.31:8088;transport=ws;lr>","weight":0,"status":0,"scheme":"WS"}] +0ms jssip-0.6.18.js:21376 JsSIP:UA - display_name: "777" +0ms jssip-0.6.18.js:21376 JsSIP:UA - instance_id: "bc14a359-7a87-4125-b1ec-c5da4d22b1a8" +0ms jssip-0.6.18.js:21376 JsSIP:UA - jssip_id: "vm16c" +0ms jssip-0.6.18.js:21376 JsSIP:UA - hostport_params: "54.200.180.31" +0ms jssip-0.6.18.js:21376 JsSIP:UA - authorization_user: "777" +1ms jssip-0.6.18.js:21376 rtcninja WebRTC supported +1ms jssip-0.6.18.js:21376 JsSIP:UA start() +1ms jssip-0.6.18.js:21376 JsSIP:Transport connecting to WebSocket ws://54.200.180.31:8088/ws +0ms jssip-0.6.18.js:21376 JsSIP:Transport WebSocket ws://54.200.180.31:8088/ws connected +449ms voip.js?v10:268 message Connection success voip.js?v10:25 ready voip.js?v10:25 callUp.before voip.js?v10:262 callUp_before 888 voip.js?v10:268 message Give access to your microphone jssip-0.6.18.js:21376 JsSIP:UA call() +4ms jssip-0.6.18.js:21376 JsSIP:RTCSession new +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession connect() +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection new | pcConfig: +9ms Object jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setConfigurationAndOptions | processed pcConfig: +1ms Object jssip-0.6.18.js:21376 JsSIP:RTCSession newRTCSession +1ms voip.js?v10:262 debug newRTCSession Object voip.js?v10:262 debug add session RTCSession jssip-0.6.18.js:21376 rtcninja:Adapter getUserMedia() | constraints: +1ms Object voip.js?v10:25 callUp voip.js?v10:764 UA jssip-0.6.18.js:21376 rtcninja:Adapter getUserMedia() | success +1s jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection addStream() | stream: +1ms MediaStream jssip-0.6.18.js:21376 JsSIP:RTCSession session connecting +0ms voip.js?v10:268 message Connecting with user... voip.js?v10:25 outgoingCall.connect jssip-0.6.18.js:21376 JsSIP:RTCSession createLocalDescription() +5ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection createOffer() +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onnegotiationneeded() +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection createOffer() | success +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setLocalDescription() +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onsignalingstatechange() | signalingState: have-local-offer +4ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setLocalDescription() | success +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:3859917557 1 udp 2122260223 192.168.1.96 49040 typ host generation 0 +12ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:3859917557 2 udp 2122260223 192.168.1.96 49040 typ host generation 0 +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:2828162565 1 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 +89ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:2828162565 2 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:268555041 1 udp 1686052607 178.219.174.6 49040 typ srflx raddr 192.168.1.96 rport 49040 generation 0 +15ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | m0(audio) candidate:268555041 2 udp 1686052607 178.219.174.6 49040 typ srflx raddr 192.168.1.96 rport 49040 generation 0 +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onicecandidate() | end of candidates +34ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: INVITE sip:888@54.200.180.31 SIP/2.0 Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK3369694 Max-Forwards: 69 To: <sip:888@54.200.180.31> From: "777" <sip:777@54.200.180.31>;tag=runhooterc Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5786 INVITE Contact: <sip:uvqkt7q5@192.0.2.190;transport=ws;ob> Content-Type: application/sdp Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS Supported: ice,outbound User-Agent: JsSIP 0.6.18 Content-Length: 1755 v=0 o=- 5379936291811845382 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio a=msid-semantic: WMS qS2aF1xV8mHW0295EerOolXjVOEjIuFdbxTl m=audio 49040 RTP/SAVPF 111 103 104 0 8 106 105 13 126 c=IN IP4 178.219.174.6 a=rtcp:49040 IN IP4 178.219.174.6 a=candidate:3859917557 1 udp 2122260223 192.168.1.96 49040 typ host generation 0 a=candidate:3859917557 2 udp 2122260223 192.168.1.96 49040 typ host generation 0 a=candidate:2828162565 1 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 a=candidate:2828162565 2 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 a=candidate:268555041 1 udp 1686052607 178.219.174.6 49040 typ srflx raddr 192.168.1.96 rport 49040 generation 0 a=candidate:268555041 2 udp 1686052607 178.219.174.6 49040 typ srflx raddr 192.168.1.96 rport 49040 generation 0 a=ice-ufrag:byVbgYD7ht+TtMDu a=ice-pwd:P58JbmbRDLcAW6CEa8XmP3Wm a=ice-options:google-ice a=fingerprint:sha-256 9A:C1:2D:20:4C:16:6A:C7:A4:17:06:E8:02:14:48:25:EA:A3:37:5D:F4:34:E9:76:2C:83:75:C2:C5:63:5A:0B a=setup:actpass a=mid:audio a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=sendrecv a=rtcp-mux a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000 a=rtpmap:13 CN/8000 a=rtpmap:126 telephone-event/8000 a=maxptime:60 a=ssrc:2100607185 cname:a9WADR7qZ7mR7TFe a=ssrc:2100607185 msid:qS2aF1xV8mHW0295EerOolXjVOEjIuFdbxTl 37ea7d5d-1c9d-4e08-b619-b9245a60230c a=ssrc:2100607185 mslabel:qS2aF1xV8mHW0295EerOolXjVOEjIuFdbxTl a=ssrc:2100607185 label:37ea7d5d-1c9d-4e08-b619-b9245a60230c +5ms jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 401 Unauthorized Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK3369694;received=178.219.174.6;rport=42912 From: "777" <sip:777@54.200.180.31>;tag=runhooterc To: <sip:888@54.200.180.31>;tag=as4b0121bd Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5786 INVITE Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="54.200.180.31", nonce="46a1b05e" Content-Length: 0 +233ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: ACK sip:888@54.200.180.31 SIP/2.0 Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK3369694 To: <sip:888@54.200.180.31>;tag=as4b0121bd From: "777" <sip:777@54.200.180.31>;tag=runhooterc Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5786 ACK Content-Length: 0 +17ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: INVITE sip:888@54.200.180.31 SIP/2.0 Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK890423 Max-Forwards: 69 To: <sip:888@54.200.180.31> From: "777" <sip:777@54.200.180.31>;tag=runhooterc Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5787 INVITE Authorization: Digest algorithm=MD5, username="777", realm="54.200.180.31", nonce="46a1b05e", uri="sip:888@54.200.180.31", response="35f0428fbaa480f4c3f108b35df6bc1f" Contact: <sip:uvqkt7q5@192.0.2.190;transport=ws;ob> Content-Type: application/sdp Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS Supported: ice,outbound User-Agent: JsSIP 0.6.18 Content-Length: 1755 v=0 o=- 5379936291811845382 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE audio a=msid-semantic: WMS qS2aF1xV8mHW0295EerOolXjVOEjIuFdbxTl m=audio 49040 RTP/SAVPF 111 103 104 0 8 106 105 13 126 c=IN IP4 178.219.174.6 a=rtcp:49040 IN IP4 178.219.174.6 a=candidate:3859917557 1 udp 2122260223 192.168.1.96 49040 typ host generation 0 a=candidate:3859917557 2 udp 2122260223 192.168.1.96 49040 typ host generation 0 a=candidate:2828162565 1 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 a=candidate:2828162565 2 tcp 1518280447 192.168.1.96 0 typ host tcptype active generation 0 a=candidate:268555041 1 udp 1686052607 178.219.174.6 49040 typ srflx raddr 192.168.1.96 rport 49040 generation 0 a=candidate:268555041 2 udp 1686052607 178.219.174.6 49040 typ srflx raddr 192.168.1.96 rport 49040 generation 0 a=ice-ufrag:byVbgYD7ht+TtMDu a=ice-pwd:P58JbmbRDLcAW6CEa8XmP3Wm a=ice-options:google-ice a=fingerprint:sha-256 9A:C1:2D:20:4C:16:6A:C7:A4:17:06:E8:02:14:48:25:EA:A3:37:5D:F4:34:E9:76:2C:83:75:C2:C5:63:5A:0B a=setup:actpass a=mid:audio a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=sendrecv a=rtcp-mux a=rtpmap:111 opus/48000/2 a=fmtp:111 minptime=10 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000 a=rtpmap:13 CN/8000 a=rtpmap:126 telephone-event/8000 a=maxptime:60 a=ssrc:2100607185 cname:a9WADR7qZ7mR7TFe a=ssrc:2100607185 msid:qS2aF1xV8mHW0295EerOolXjVOEjIuFdbxTl 37ea7d5d-1c9d-4e08-b619-b9245a60230c a=ssrc:2100607185 mslabel:qS2aF1xV8mHW0295EerOolXjVOEjIuFdbxTl a=ssrc:2100607185 label:37ea7d5d-1c9d-4e08-b619-b9245a60230c +5ms jssip-0.6.18.js:21376 JsSIP:InviteClientTransaction Timer D expired for transaction z9hG4bK3369694 +0ms jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 100 Trying Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK890423;received=178.219.174.6;rport=42912 From: "777" <sip:777@54.200.180.31>;tag=runhooterc To: <sip:888@54.200.180.31> Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5787 INVITE Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Contact: <sip:888@54.200.180.31:0;transport=WS> Content-Length: 0 +484ms jssip-0.6.18.js:21376 JsSIP:RTCSession receiveInviteResponse() +10ms jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 180 Ringing Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK890423;received=178.219.174.6;rport=42912 From: "777" <sip:777@54.200.180.31>;tag=runhooterc To: <sip:888@54.200.180.31>;tag=as0278aeb5 Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5787 INVITE Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Contact: <sip:888@54.200.180.31:0;transport=WS> Content-Length: 0 +117ms jssip-0.6.18.js:21376 JsSIP:RTCSession receiveInviteResponse() +6ms jssip-0.6.18.js:21376 JsSIP:Dialog new UAC dialog created with status EARLY +2ms jssip-0.6.18.js:21376 JsSIP:RTCSession session progress +0ms voip.js?v10:262 debug call progress Object voip.js?v10:268 message Calling... voip.js?v10:25 outgoingCall.wait jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 180 Ringing Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK890423;received=178.219.174.6;rport=42912 From: "777" <sip:777@54.200.180.31>;tag=runhooterc To: <sip:888@54.200.180.31>;tag=as0278aeb5 Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5787 INVITE Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Contact: <sip:888@54.200.180.31:0;transport=WS> Content-Length: 0 +251ms jssip-0.6.18.js:21376 JsSIP:RTCSession receiveInviteResponse() +6ms jssip-0.6.18.js:21376 JsSIP:RTCSession session progress +1ms voip.js?v10:262 debug call progress Object voip.js?v10:268 message Calling... voip.js?v10:25 outgoingCall.wait jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: SIP/2.0 200 OK Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK890423;received=178.219.174.6;rport=42912 From: "777" <sip:777@54.200.180.31>;tag=runhooterc To: <sip:888@54.200.180.31>;tag=as0278aeb5 Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5787 INVITE Server: Asterisk PBX 11.13.1 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Contact: <sip:888@54.200.180.31:0;transport=WS> Content-Type: application/sdp Content-Length: 808 v=0 o=root 204618965 204618965 IN IP4 54.200.180.31 s=Asterisk PBX 11.13.1 c=IN IP4 54.200.180.31 t=0 0 m=audio 13664 RTP/SAVPF 0 8 126 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:126 telephone-event/8000 a=fmtp:126 0-16 a=silenceSupp:off - - - - a=ptime:20 a=ice-ufrag:4333a3aa4329771746ddd5a504a6d30b a=ice-pwd:7fc0a5a868a3f4b842d75dca216b1e10 a=candidate:Hac1f0f11 1 UDP 2130706431 172.31.15.17 13664 typ host a=candidate:S36c8b41f 1 UDP 1694498815 54.200.180.31 13664 typ srflx a=candidate:Hac1f0f11 2 UDP 2130706430 172.31.15.17 13665 typ host a=candidate:S36c8b41f 2 UDP 1694498814 54.200.180.31 13665 typ srflx a=connection:new a=setup:active a=fingerprint:SHA-256 34:1F:33:1C:B5:14:3D:D9:F4:25:7E:29:60:96:8A:61:53:F0:B9:B4:47:1E:A5:E4:5A:82:DC:A5:1E:FF:1E:94 a=sendrecv +4s jssip-0.6.18.js:21376 JsSIP:RTCSession receiveInviteResponse() +4ms jssip-0.6.18.js:21376 JsSIP:Dialog dialog vm16crlhg9d5g8d56tr6runhootercas0278aeb5 changed to CONFIRMED state +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setRemoteDescription() +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onsignalingstatechange() | signalingState: stable +3ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onaddstream() | stream: +1ms MediaStream voip.js?v10:262 debug addstream Object jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection oniceconnectionstatechange() | iceConnectionState: checking +1ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection setRemoteDescription() | success +0ms jssip-0.6.18.js:21376 JsSIP:RTCSession session accepted +0ms voip.js?v10:262 debug call accepted Object jssip-0.6.18.js:21376 JsSIP:RTCSession sendRequest() +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession:Request new | ACK +0ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: ACK sip:888@54.200.180.31:0;transport=ws SIP/2.0 Via: SIP/2.0/WS 192.0.2.190;branch=z9hG4bK101623 Max-Forwards: 69 To: <sip:888@54.200.180.31>;tag=as0278aeb5 From: "777" <sip:777@54.200.180.31>;tag=runhooterc Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 5787 ACK Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS Supported: outbound User-Agent: JsSIP 0.6.18 Content-Length: 0 +2ms jssip-0.6.18.js:21376 JsSIP:RTCSession session confirmed +0ms voip.js?v10:262 debug call confirmed Object voip.js?v10:268 message Speaking... voip.js?v10:25 outgoingCall.speak voip.js?v10:712 call confirmed voip.js?v10:268 00:00:01 voip.js?v10:268 00:00:02 voip.js?v10:268 00:00:03 voip.js?v10:268 00:00:04 voip.js?v10:268 00:00:05 voip.js?v10:268 00:00:06 voip.js?v10:268 00:00:07 voip.js?v10:268 00:00:08 voip.js?v10:268 00:00:09 voip.js?v10:268 00:00:10 jssip-0.6.18.js:21376 JsSIP:Transport received WebSocket text message: BYE sip:uvqkt7q5@192.0.2.190;transport=ws;ob SIP/2.0 Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK1ebe6a01;rport Max-Forwards: 70 From: <sip:888@54.200.180.31>;tag=as0278aeb5 To: "777" <sip:777@54.200.180.31>;tag=runhooterc Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 102 BYE User-Agent: Asterisk PBX 11.13.1 Proxy-Authorization: Digest username="777", realm="54.200.180.31", algorithm=MD5, uri="sip:54.200.180.31", nonce="46a1b05e", response="86d9aff55bcae52746307cd3542b6184" X-Asterisk-HangupCause: Normal Clearing X-Asterisk-HangupCauseCode: 16 Content-Length: 0 +11s jssip-0.6.18.js:21376 JsSIP:RTCSession receiveRequest() +12ms jssip-0.6.18.js:21376 JsSIP:Transport sending WebSocket message: SIP/2.0 200 OK Via: SIP/2.0/WS 54.200.180.31:0;branch=z9hG4bK1ebe6a01;rport To: "777" <sip:777@54.200.180.31>;tag=runhooterc From: <sip:888@54.200.180.31>;tag=as0278aeb5 Call-ID: vm16crlhg9d5g8d56tr6 CSeq: 102 BYE Supported: outbound Content-Length: 0 +1ms jssip-0.6.18.js:21376 JsSIP:RTCSession session ended +0ms jssip-0.6.18.js:21376 JsSIP:RTCSession close() +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection close() +0ms jssip-0.6.18.js:21376 JsSIP:RTCSession close() | closing local MediaStream +2ms jssip-0.6.18.js:21376 rtcninja:Adapter closeMediaStream() | calling stop() on all the MediaStreamTrack +0ms jssip-0.6.18.js:21376 JsSIP:Dialog dialog vm16crlhg9d5g8d56tr6runhootercas0278aeb5 deleted +0ms voip.js?v10:262 debug call ended Object voip.js?v10:268 message Call ended voip.js?v10:25 outgoingCall.end voip.js?v10:268 Call ended, duration 00:00:10 jssip-0.6.18.js:21376 JsSIP:NonInviteServerTransaction Timer J expired for transaction z9hG4bK1ebe6a01 +2ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection oniceconnectionstatechange() | iceConnectionState: closed +0ms jssip-0.6.18.js:21376 rtcninja:RTCPeerConnection onsignalingstatechange() | signalingState: closed +0ms jssip-0.6.18.js:21376 JsSIP:InviteClientTransaction Timer B expired for transaction z9hG4bK890423 +16s jssip-0.6.18.js:21376 JsSIP:InviteClientTransaction Timer M expired for transaction z9hG4bK890423 +5s
Итак в процессе тестирования могу дать еще вот такую информацию к размышлению:
Если звонить из софтфона в софтфон то имеем вот что (ну и голос соответственно): Ситуация Когда Asterisk за Amazon NAT, первый клиент за моим офисным NAT и второй за NAT в другом офисе:
Sent RTP P2P packet to 178.219.174.6:40034 (type 00, len 000160) Sent RTP P2P packet to 193.110.113.107:40044 (type 00, len 000160)
Ситуация когда оба клиента за моим офисным NAT и сервер за Амазоном (голос так же есть):
Sent RTP P2P packet to 178.219.174.6:40044 (type 00, len 000080) Sent RTP P2P packet to 178.219.174.6:40044 (type 00, len 000080) Sent RTP P2P packet to 178.219.174.6:40000 (type 00, len 000160) Sent RTP P2P packet to 178.219.174.6:40000 (type 00, len 000160) Sent RTP P2P packet to 178.219.174.6:40044 (type 00, len 000080)
Если звонить из веб аппликации в софтфон RTP вот такой (голоса нет): Аппликация и софтфон за одним NAT:
Got RTP packet from 178.219.174.6:40046 (type 00, seq 003111, ts 033771, len000160) Sent RTP packet to 0.0.0.0:9 (type 00, seq 034702, ts 033768, len 000160)
Аппликация и софтфон за разными NAT:
Got RTP packet from 193.110.113.107:40046 (type 00, seq 020120, ts 256628, len 000160) Sent RTP packet to 0.0.0.0:9 (type 00, seq 020306, ts 256624, len 000160)
Задан: 2015-02-17 15:56:47 +0400
Просмотрен: 2,509 раз
Обновлен: Feb 18 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.
Дебаг с веб-приложения!
zzuz ( 2015-02-17 17:51:45 +0400 )редактироватьДобавил дебаг в статью, извиняюсь низкая карма не дает приложить файл к посту.
pu100sh ( 2015-02-17 18:31:18 +0400 )редактироватьдля 777 sdp пакет странный. тут нужно более детально изучить топологию звонка.
zzuz ( 2015-02-17 18:49:00 +0400 )редактироватьЧто еще могу предоставить?* Могу дать лог из астериска с rtp либо sip дебагом. Какой хотите?*
pu100sh ( 2015-02-17 18:57:50 +0400 )редактироватьТопология в общем такова: Астериск стоит за натом (Amazon) два клиента которые звонят так же за натом (Мой нат в офисе). Использую гугловый стан для обхода натов, показываю его в приложении и в rtp.conf
pu100sh ( 2015-02-17 19:00:07 +0400 )редактироватьexternip в sip.conf так и не увидел
Zavr2008 ( 2015-02-17 21:25:15 +0400 )редактироватьАвтор говорит про NAT с изменяемым адресом.
zzuz ( 2015-02-17 21:53:42 +0400 )редактироватьна амазон адрес в пределах сесси не изменяется. надо прописать externaddr=. скорее всего все запустится. но я бы сначала добился работы webrtc на вирталке hetzner.de со статическим адресом. у него и так проблем хватает. а потом бы разбирался с натом.
meral ( 2015-02-18 01:36:33 +0400 )редактироватьУ меня есть Elastic IP для данного инстанса, но, я пробовал прописать его как externadrr, и увы ничего не вышло....
pu100sh ( 2015-02-18 11:06:49 +0400 )редактироватьВарианты не Амазон рассматривал, но не хотелось бы уходить от данного хостинга.
pu100sh ( 2015-02-18 11:07:22 +0400 )редактироватьДобавил варианты RTP дебага разных ситуаций, может натолкнет кого то на какие то идеи.... Буду благодарен за любую помощь.
pu100sh ( 2015-02-18 13:31:39 +0400 )редактироватья бы сначала попытался завести WebRTC на асте с прямым IP адресом, а потом исключив косяки WebRTC перенести за нат. На астериске с прямым IP у меня WebRTC работает четко.
еще можно попробовать поднять свой стан, посмотреть нормально ли определяются внешние адреса.
Рекомендую http://sipjs.com/ для клиента, это форк jssip'а.
obamo ( 2015-02-18 20:16:02 +0400 )редактироватьПо поводу WebRTC на асте с прямым IP адресом, у меня есть это решение и оно работает, вопрос в том чтобы вытянуть все это за Амазоновский NAT. Про свой stun, я думаю это лиш прибавит проблем....
pu100sh ( 2015-02-18 21:10:23 +0400 )редактироватьдля rtpproxy я просто делал патч в котором указывал адрес. сделайте такойже для webrtc. он же известый. вообще амазон очень дорогой сервис для rtp траффика.
meral ( 2015-02-18 22:46:30 +0400 )редактироватьmeral, а можно поподробнее о вашем патче?*
pu100sh ( 2015-02-19 11:21:19 +0400 )редактировать