Есть свой stun.
Asterisk/FreePBX стоит за NAT (pfSense).
Основные параметры по pfSense:
[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 все открыто в сторону астера.
Что делать, куда рыть? Спасибо за любую наводку!