LINUX.ORG.RU
ФорумAdmin

[РЕШЕНО] WebRTC Asterisk в частной сети звук есть из вне - нет

 , , , ,


0

1

Всем привет! Настроил webrtc экстешнен во FreePBX: freepbx1.png

Есть свой stun. Asterisk/FreePBX стоит за NAT (pfSense). Основные параметры по pfSense:

  1. Static ports для outbound настроены
  2. FW > NAT на 8088/8089 порты идут на asterisk
  3. UDP RTP порты 10000-20000 на asterisk

Лог freepbx при соединение экстеншена 250 на эхотест *43:

[2022-11-30 17:12:27] VERBOSE[5760] res_pjsip_registrar.c: Added contact 'sip:250@178.176.76.78:20008;transport=ws;rtcweb-breaker=no;x-ast-orig-host=df7jal23ls0d.invalid:0' to AOR '250' with expiration of 200 seconds
[2022-11-30 17:12:27] VERBOSE[9633] res_pjsip/pjsip_configuration.c: Endpoint 250 is now Reachable
[2022-11-30 17:12:27] VERBOSE[9633] res_pjsip/pjsip_options.c: Contact 250/sip:250@178.176.76.78:20008;transport=ws;rtcweb-breaker=no;x-ast-orig-host=df7jal23ls0d.invalid:0 is now Reachable.  RTT: 90.329 msec
[2022-11-30 17:12:28] VERBOSE[6124] res_pjsip_registrar.c: Removed contact 'sip:250@178.176.76.78:20008;transport=ws;rtcweb-breaker=no;x-ast-orig-host=df7jal23ls0d.invalid:0' from AOR '250' due to shutdown
[2022-11-30 17:12:28] VERBOSE[24832] res_pjsip/pjsip_options.c: Contact 250/sip:250@178.176.76.78:20008;transport=ws;rtcweb-breaker=no;x-ast-orig-host=df7jal23ls0d.invalid:0 has been deleted
[2022-11-30 17:12:28] VERBOSE[24832] res_pjsip/pjsip_configuration.c: Endpoint 250 is now Unreachable
[2022-11-30 17:12:28] VERBOSE[22453] res_http_websocket.c: WebSocket connection from '178.176.76.78:20008' closed
[2022-11-30 17:12:45] VERBOSE[31879] res_http_websocket.c: WebSocket connection from '178.176.76.78:23480' for protocol 'sip' accepted using version '13'
[2022-11-30 17:12:45] VERBOSE[5760] res_pjsip_registrar.c: Added contact 'sip:250@178.176.76.78:23480;transport=ws;rtcweb-breaker=no;x-ast-orig-host=df7jal23ls0d.invalid:0' to AOR '250' with expiration of 200 seconds
[2022-11-30 17:12:45] VERBOSE[6124] res_pjsip/pjsip_configuration.c: Endpoint 250 is now Reachable
[2022-11-30 17:12:45] VERBOSE[6124] res_pjsip/pjsip_options.c: Contact 250/sip:250@178.176.76.78:23480;transport=ws;rtcweb-breaker=no;x-ast-orig-host=df7jal23ls0d.invalid:0 is now Reachable.  RTT: 58.368 msec
[2022-11-30 17:12:46] VERBOSE[544] netsock2.c: Using SIP RTP Audio TOS bits 184
[2022-11-30 17:12:46] VERBOSE[544] netsock2.c: Using SIP RTP Audio CoS mark 5
[2022-11-30 17:12:46] VERBOSE[544] res_rtp_asterisk.c: DTLS ECDH initialized (automatic), faster PFS enabled
[2022-11-30 17:12:46] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:1] Set("PJSIP/250-000000b6", "CONNECTEDLINE(name-charset,i)=utf8") in new stack
[2022-11-30 17:12:46] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:2] Set("PJSIP/250-000000b6", "CONNECTEDLINE(name,i)=Echo Test") in new stack
[2022-11-30 17:12:46] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:3] Set("PJSIP/250-000000b6", "CONNECTEDLINE(num,i)=*43") in new stack
[2022-11-30 17:12:46] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:4] Answer("PJSIP/250-000000b6", "") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:5] Macro("PJSIP/250-000000b6", "user-callerid,") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:1] Set("PJSIP/250-000000b6", "TOUCH_MONITOR=1669817566.200") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:2] Set("PJSIP/250-000000b6", "CHANCONTEXT=") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:3] Set("PJSIP/250-000000b6", "CHANCONTEXT=") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:4] Set("PJSIP/250-000000b6", "CHANEXTENCONTEXT=250-000000b6") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:5] Set("PJSIP/250-000000b6", "CHANEXTEN=250-000000b6") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:6] Set("PJSIP/250-000000b6", "CALLERID(number)=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:7] Set("PJSIP/250-000000b6", "AMPUSER=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:8] Set("PJSIP/250-000000b6", "HOTDESCKCHAN=250-000000b6") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:9] Set("PJSIP/250-000000b6", "HOTDESKEXTEN=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:10] Set("PJSIP/250-000000b6", "HOTDESKCALL=0") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:11] ExecIf("PJSIP/250-000000b6", "0?Set(HOTDESKCALL=1)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:12] ExecIf("PJSIP/250-000000b6", "0?Set(CALLERID(name)=)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:13] GotoIf("PJSIP/250-000000b6", "0?report") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:14] ExecIf("PJSIP/250-000000b6", "1?Set(REALCALLERIDNUM=250)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:15] Set("PJSIP/250-000000b6", "AMPUSER=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:16] GotoIf("PJSIP/250-000000b6", "0?limit") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:17] Set("PJSIP/250-000000b6", "AMPUSERCIDNAME=Web_PanoMama") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:18] ExecIf("PJSIP/250-000000b6", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:19] GotoIf("PJSIP/250-000000b6", "0?report") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:20] Set("PJSIP/250-000000b6", "AMPUSERCID=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:21] Set("PJSIP/250-000000b6", "__DIAL_OPTIONS=HhTtr") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:22] Set("PJSIP/250-000000b6", "CALLERID(all)="Web_PanoMama" <250>") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:23] ExecIf("PJSIP/250-000000b6", "0?Set(CUSDIAL=)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:24] ExecIf("PJSIP/250-000000b6", "0?Set(CALLERID(all)="Web_PanoMama" <250>)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:25] GotoIf("PJSIP/250-000000b6", "0?limit") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:26] ExecIf("PJSIP/250-000000b6", "0?Set(GROUP(concurrency_limit)=250)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:27] ExecIf("PJSIP/250-000000b6", "0?Set(CHANNEL(language)=)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:28] NoOp("PJSIP/250-000000b6", "Macro Depth is 1") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:29] GotoIf("PJSIP/250-000000b6", "1?report2:macroerror") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx_builtins.c: Goto (macro-user-callerid,s,30)
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:30] GotoIf("PJSIP/250-000000b6", "0?continue") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:31] ExecIf("PJSIP/250-000000b6", "1?Set(__CALLEE_ACCOUNCODE=)") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:32] Set("PJSIP/250-000000b6", "__TTL=64") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:33] GotoIf("PJSIP/250-000000b6", "1?continue") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx_builtins.c: Goto (macro-user-callerid,s,49)
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:49] Set("PJSIP/250-000000b6", "CALLERID(number)=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:50] Set("PJSIP/250-000000b6", "CALLERID(name)=Web_PanoMama") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:51] GotoIf("PJSIP/250-000000b6", "0?cnum") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:52] Set("PJSIP/250-000000b6", "CDR(cnam)=Web_PanoMama") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:53] Set("PJSIP/250-000000b6", "CDR(cnum)=250") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [s@macro-user-callerid:54] Set("PJSIP/250-000000b6", "CHANNEL(language)=ru") in new stack
[2022-11-30 17:12:47] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:6] Wait("PJSIP/250-000000b6", "1") in new stack
[2022-11-30 17:12:48] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:7] BackGround("PJSIP/250-000000b6", "demo-echotest,,,app-echo-test-echo") in new stack
[2022-11-30 17:12:48] VERBOSE[31881][C-0000009a] file.c: <PJSIP/250-000000b6> Playing 'demo-echotest.g722' (language 'ru')
[2022-11-30 17:12:55] VERBOSE[31881][C-0000009a] pbx.c: Executing [*43@WebRTC_for_250:8] Goto("PJSIP/250-000000b6", "app-echo-test-echo,1,1") in new stack
[2022-11-30 17:12:55] VERBOSE[31881][C-0000009a] pbx_builtins.c: Goto (app-echo-test-echo,1,1)
[2022-11-30 17:12:55] VERBOSE[31881][C-0000009a] pbx.c: Executing [1@app-echo-test-echo:1] Echo("PJSIP/250-000000b6", "") in new stack
[2022-11-30 17:13:09] VERBOSE[31881][C-0000009a] pbx.c: Spawn extension (app-echo-test-echo, 1, 1) exited non-zero on 'PJSIP/250-000000b6'

По логу вроде как все ок. Проигрывается мелодия эхотеста. В итоге в частной сети - прекрасно все работает в обе стороны. Из вне - звука нет. Понимаю, что блокируются пакеты. Но где? На pfSense все открыто в сторону астера. Что делать, куда рыть? Спасибо за любую наводку!



Последнее исправление: alvian (всего исправлений: 2)

Ответ на: комментарий от Turbid

Там это на моб.телефоне. Проверил pfSense логи FW. Пакеты пропускает успешно. Буду дальше искать причину.

alvian
() автор топика

Отвечаю на свой же вопрос. Надо было вручную определить ICE кандидатов, т.е. из приватного IP принудительно сообщить WAN IP. Скрин: https://postimg.cc/mPQWSwt7

alvian
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.