День добрый, пытаюсь реализовать связку 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,409 раз
Обновлен: 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 )редактировать