Нет звука с PJSIP, Asterisk 17 и WebRT C с удаленными конечными точками - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть программный телефон, который работает в Chrome с Asterisk 17, используя WebRT C, когда клиентский компьютер и сервер Asterisk находятся в одной локальной сети. Когда я указываю программный телефон на удаленный сервер Asterisk с клиентским компьютером, который сидит за брандмауэром / маршрутизатором и выполняет NAT, я могу сделать вызов и принять вызов, но в любом случае я не получаю звук. При попытке отладки похоже, что сервер Asterisk использует мой IP-адрес в локальной сети при попытке установить RTP-соединение. Я пытался использовать различные настройки транспорта и конечной точки, но не смог выяснить, какая комбинация работает.

Выдержки из текущего файла pjsip.conf:

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
; local_net=192.168.0/24
; external_media_address=2.2.2.2
; external_signaling_address=2.2.2.2

[transport-wss]
type=transport
protocol=wss
bind=0.0.0.0

[200]
type=aor
max_contacts=5
remove_existing=yes
mailboxes=211@default

[200]
type=auth
auth_type=userpass
username=200
password=password

[200]
type=endpoint
aors=200
auth=200
dtls_auto_generate_cert=yes
webrtc=yes
context=phones
disallow=all
allow=ulaw
allow=t140
message_context=messages
mailboxes=200@default
mwi_from_user=211
voicemail_extension=211
rtp_symmetric=yes
force_rport=yes
; direct_media=no
; rewrite_contact=yes
; media_address=2.2.2.2
; bind_rtp_to_media_address=2.2.2.2
; send_rpid=yes

У меня также есть транк настроен с провайдером VOIP. Сервер Asterisk нормально регистрируется, и я могу совершать и принимать звонки как на свой мобильный телефон, так и на другие добавочные номера, настроенные на сервере Asterisk. Независимо от источника или назначения звонка, я не получаю никакого звука.

Ниже выводятся данные с консоли Asterisk (включая сообщения SIP) из вызова, поступающего с программного телефона (200) для проверки голосовой почты (211). ). Я заменил мой домашний IPL-адрес c на 1.1.1.1, IP-адрес сервера Asterisk c на 2.2.2.2 и IP-адрес в локальной сети на 192.168.0.1. Что бросается в глаза, так это строка с

Строгое обучение RTP после удаленного адреса, установленного на: 192.168.0.1:49394

Любые предложения по решению этой проблемы будут с благодарностью.

<--- Received SIP request (2459 bytes) from WSS:71.93.70.66:17509 --->
INVITE sip:211@2.2.2.2 SIP/2.0
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;branch=z9hG4bK2079750
Max-Forwards: 69
To: <sip:211@2.2.2.2>
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
Call-ID: rv22m41gouoodvh2710k
CSeq: 3284 INVITE
Contact: <sip:icdm8hp1@ejmrsma2ej4t.invalid;transport=ws;ob>
Content-Type: application/sdp
Session-Expires: 90
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY
Supported: timer,ice,replaces,outbound
User-Agent: JsSIP 3.3.11
Content-Length: 1858

v=0
o=- 4980355250915626769 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=msid-semantic: WMS mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw
m=audio 49394 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 192.168.0.1
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2769126049 1 udp 2122260223 192.168.0.1 49394 typ host generation 0 network-id 1
a=candidate:3951984209 1 tcp 1518280447 192.168.0.1 9 typ host tcptype active generation 0 network-id 1
a=ice-ufrag:nn/M
a=ice-pwd:wcD7t/K2UuyhCabxKQ2hWm+h
a=ice-options:trickle
a=fingerprint:sha-256 01:43:BD:47:18:28:FB:4A:AD:5F:10:B7:AF:92:5D:CB:EB:E1:38:28:A4:AA:99:60:A0:39:08:2E:05:C8:C5:6E
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendrecv
a=msid:mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw 59bf381e-63b7-4148-840b-3f88a803aed2
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
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:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:202760417 cname:tsqVoxWFkSs9igMF
a=ssrc:202760417 msid:mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw 59bf381e-63b7-4148-840b-3f88a803aed2
a=ssrc:202760417 mslabel:mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw
a=ssrc:202760417 label:59bf381e-63b7-4148-840b-3f88a803aed2

<--- Transmitting SIP response (519 bytes) to WSS:71.93.70.66:17509 --->
SIP/2.0 401 Unauthorized
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;rport=17509;received=71.93.70.66;branch=z9hG4bK2079750
Call-ID: rv22m41gouoodvh2710k
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
To: <sip:211@2.2.2.2>;tag=z9hG4bK2079750
CSeq: 3284 INVITE
WWW-Authenticate: Digest realm="asterisk",nonce="1582407198/4f60668f0935fdaae705c6b16e007a75",opaque="4f7f59de6198344a",algorithm=md5,qop="auth"
Server: Asterisk PBX 17.2.0
Content-Length:  0


<--- Received SIP request (478 bytes) from WSS:71.93.70.66:17509 --->
ACK sip:211@2.2.2.2 SIP/2.0
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;branch=z9hG4bK2079750
Max-Forwards: 69
To: <sip:211@2.2.2.2>;tag=z9hG4bK2079750
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
Call-ID: rv22m41gouoodvh2710k
CSeq: 3284 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY
Supported: outbound
User-Agent: JsSIP 3.3.11
Content-Length: 0


<--- Received SIP request (2756 bytes) from WSS:71.93.70.66:17509 --->
INVITE sip:211@2.2.2.2 SIP/2.0
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;branch=z9hG4bK2530034
Max-Forwards: 69
To: <sip:211@2.2.2.2>
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
Call-ID: rv22m41gouoodvh2710k
CSeq: 3285 INVITE
Authorization: Digest algorithm=MD5, username="200", realm="asterisk", nonce="1582407198/4f60668f0935fdaae705c6b16e007a75", uri="sip:211@2.2.2.2", response="38a40f00886c72dbd8ff0c7e92192d52", opaque="4f7f59de6198344a", qop=auth, cnonce="k1l1ck1uevja", nc=00000001
Contact: <sip:icdm8hp1@ejmrsma2ej4t.invalid;transport=ws;ob>
Content-Type: application/sdp
Session-Expires: 90
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY
Supported: timer,ice,replaces,outbound
User-Agent: JsSIP 3.3.11
Content-Length: 1858

v=0
o=- 4980355250915626769 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=msid-semantic: WMS mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw
m=audio 49394 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 192.168.0.1
a=rtcp:9 IN IP4 0.0.0.0
a=candidate:2769126049 1 udp 2122260223 192.168.0.1 49394 typ host generation 0 network-id 1
a=candidate:3951984209 1 tcp 1518280447 192.168.0.1 9 typ host tcptype active generation 0 network-id 1
a=ice-ufrag:nn/M
a=ice-pwd:wcD7t/K2UuyhCabxKQ2hWm+h
a=ice-options:trickle
a=fingerprint:sha-256 01:43:BD:47:18:28:FB:4A:AD:5F:10:B7:AF:92:5D:CB:EB:E1:38:28:A4:AA:99:60:A0:39:08:2E:05:C8:C5:6E
a=setup:actpass
a=mid:0
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid
a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
a=sendrecv
a=msid:mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw 59bf381e-63b7-4148-840b-3f88a803aed2
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
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:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:202760417 cname:tsqVoxWFkSs9igMF
a=ssrc:202760417 msid:mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw 59bf381e-63b7-4148-840b-3f88a803aed2
a=ssrc:202760417 mslabel:mU4gRc9gXkqEHZBZwKJB1rBfBxNnQu10POVw
a=ssrc:202760417 label:59bf381e-63b7-4148-840b-3f88a803aed2

  == Setting global variable 'SIPDOMAIN' to '2.2.2.2'
<--- Transmitting SIP response (348 bytes) to WSS:71.93.70.66:17509 --->
SIP/2.0 100 Trying
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;rport=17509;received=71.93.70.66;branch=z9hG4bK2530034
Call-ID: rv22m41gouoodvh2710k
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
To: <sip:211@2.2.2.2>
CSeq: 3285 INVITE
Server: Asterisk PBX 17.2.0
Content-Length:  0


    -- Executing [211@phones:1] NoOp("PJSIP/200-00000005", "") in new stack
    -- Executing [211@phones:2] VoiceMailMain("PJSIP/200-00000005", "s200@default") in new stack
       > 0x7fab0c019720 -- Strict RTP learning after remote address set to: 192.168.0.1:49394
<--- Transmitting SIP response (1538 bytes) to WSS:71.93.70.66:17509 --->
SIP/2.0 200 OK
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;rport=17509;received=71.93.70.66;branch=z9hG4bK2530034
Call-ID: rv22m41gouoodvh2710k
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
To: <sip:211@2.2.2.2>;tag=a597f01e-9224-4977-979f-7d619bb267ef
CSeq: 3285 INVITE
Server: Asterisk PBX 17.2.0
Contact: <sip:172.31.48.77:8089;transport=ws>
Allow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER
Supported: 100rel, timer, replaces, norefersub
Session-Expires: 90;refresher=uac
Require: timer
Content-Type: application/sdp
Content-Length:   862

v=0
o=- 2987642641 4 IN IP4 172.31.48.77
s=Asterisk
c=IN IP4 172.31.48.77
t=0 0
a=msid-semantic:WMS *
a=group:BUNDLE 0
m=audio 11646 UDP/TLS/RTP/SAVPF 0 126
a=connection:new
a=setup:active
a=fingerprint:SHA-256 9A:74:CA:47:23:A7:35:F1:E0:4B:18:66:B7:DD:2C:3F:82:93:9A:35:FA:EE:BE:8D:89:DF:C7:26:B8:55:A7:43
a=ice-ufrag:0331d4c1355b8d687a5745d67f7a88f9
a=ice-pwd:2260732f4b548dd844307d4956c0a652
a=candidate:H917d0dce 1 UDP 2130706431 fe80::1047:45ff:fe2a:c2ab 11646 typ host
a=candidate:Hac1f304d 1 UDP 2130706431 172.31.48.77 11646 typ host
a=rtpmap:0 PCMU/8000
a=rtpmap:126 telephone-event/8000
a=fmtp:126 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
a=rtcp-mux
a=ssrc:1696880435 cname:94cde2be-c096-432c-80ac-33e9a053846a
a=msid:d4076600-39db-4ac2-9819-ea51edb344a7 7353e383-d43e-4d4b-9c05-5d94066f5746
a=rtcp-fb:* transport-cc
a=mid:0

<--- Received SIP request (487 bytes) from WSS:71.93.70.66:17509 --->
ACK sip:172.31.48.77:8089;transport=ws SIP/2.0
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;branch=z9hG4bK3069569
Max-Forwards: 69
To: <sip:211@2.2.2.2>;tag=a597f01e-9224-4977-979f-7d619bb267ef
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
Call-ID: rv22m41gouoodvh2710k
CSeq: 3285 ACK
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY
Supported: outbound
User-Agent: JsSIP 3.3.11
Content-Length: 0


    -- <PJSIP/200-00000005> Playing 'vm-youhave.gsm' (language 'en')
<--- Received SIP request (550 bytes) from WSS:71.93.70.66:17509 --->
INFO sip:172.31.48.77:8089;transport=ws SIP/2.0
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;branch=z9hG4bK8207021
Max-Forwards: 69
To: <sip:211@2.2.2.2>;tag=a597f01e-9224-4977-979f-7d619bb267ef
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
Call-ID: rv22m41gouoodvh2710k
CSeq: 3286 INFO
Content-Type: application/dtmf-relay
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY
Supported: outbound
User-Agent: JsSIP 3.3.11
Content-Length: 22

Signal=#
Duration=100
<--- Transmitting SIP response (383 bytes) to WSS:71.93.70.66:17509 --->
SIP/2.0 200 OK
Via: SIP/2.0/WSS ejmrsma2ej4t.invalid;rport=17509;received=71.93.70.66;branch=z9hG4bK8207021
Call-ID: rv22m41gouoodvh2710k
From: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
To: <sip:211@2.2.2.2>;tag=a597f01e-9224-4977-979f-7d619bb267ef
CSeq: 3286 INFO
Server: Asterisk PBX 17.2.0
Content-Length:  0


    -- <PJSIP/200-00000005> Playing 'vm-goodbye.gsm' (language 'en')
    -- Executing [211@phones:3] Hangup("PJSIP/200-00000005", "") in new stack
  == Spawn extension (phones, 211, 3) exited non-zero on 'PJSIP/200-00000005'
<--- Transmitting SIP request (480 bytes) to WSS:71.93.70.66:17509 --->
BYE sip:icdm8hp1@71.93.70.66:17509;transport=ws;ob SIP/2.0
Via: SIP/2.0/WSS 172.31.48.77:8089;rport;branch=z9hG4bKPja3492028-3fee-470d-a4a9-5e57f7753f51;alias
From: <sip:211@2.2.2.2>;tag=a597f01e-9224-4977-979f-7d619bb267ef
To: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
Call-ID: rv22m41gouoodvh2710k
CSeq: 20794 BYE
Reason: Q.850;cause=16
Max-Forwards: 70
User-Agent: Asterisk PBX 17.2.0
Content-Length:  0


<--- Received SIP response (381 bytes) from WSS:71.93.70.66:17509 --->
SIP/2.0 200 OK
Via: SIP/2.0/WSS 172.31.48.77:8089;rport;branch=z9hG4bKPja3492028-3fee-470d-a4a9-5e57f7753f51;alias
To: "200" <sip:200@2.2.2.2>;tag=8uo1koqru8
From: <sip:211@2.2.2.2>;tag=a597f01e-9224-4977-979f-7d619bb267ef
Call-ID: rv22m41gouoodvh2710k
CSeq: 20794 BYE
Supported: outbound
Content-Length: 0
...