[sovled] Zulu not working when on external network

Hello

I’m having troubles with FreePBX behind a dynamic IP and Zulu. When I’m on my private network, I can make calls with Zulu. I can’t when I’m on an external network.

My setup:
Router >> Firewall >> FreePBX (private IP). I get 1 dynamic public IP on the firewall’s WAN port.
NAT Port forwarding is set for ports 5061, 8002 and 10000:20000 (all TCP and UDP).
A DynDNS service is in place, I can reach my public WAN via that DDNS.

In FreePBX, I use chan_pjsip.
SIP Settings > General SIP Settings

  • NAT - External Address = my DynDNS hostname.
  • RTP Port Ranges = 10000 - 20000
  • Media Transport Settings - STUN Server Address = stun google (can’t post the full URL, new user on the forums)
  • WebRTC Settings - STUN Server Address: stun google

When I user Zoiper, I can make calls from an external network trough port 5061 TLS.
The problem is, I can’t via Zulu.

What can I do wrong?

Thanks you!

Hi @KrisL are you using Zulu desktop or mobile?
When you say you can’t make calls, is you can’t reach external numbers or you can’t register your Zulu user from outside ?

Hi Slobera

I can register Zulu on an external connection.
But when I try to make a call to *43 or 777: it says ‘ringing’ but nothing happens. It stops after 30 seconds.

Do you see anything on the CLI ? I mean, do you see the call trying to go out ?
Try using the edge version: fwconsole ma downloadinstall zulu --edge

/edit: added full Asterisk log. Missed the last few lines.

I’m using the mobile Android version. Here is a log of the mobile app when I do a echotest.

{“2020-05-18T12:41:34.623Z”:“WebRTC(log) - Timer M expired for INVITE client transaction z9hG4bK7886382.”,“2020-05-18T12:41:34.649Z”:“WebRTC(log) - Destroyed INVITE client transaction with id z9hG4bK7886382.”,“2020-05-18T12:41:34.651Z”:“WebRTC(log) - State change to "Terminated" on INVITE client transaction with id z9hG4bK7886382.”,“2020-05-18T12:41:34.655Z”:“WebRTC(log) - Destroyed INVITE client transaction with id z9hG4bK7886382.”,“2020-05-18T12:41:36.640Z”:"19e32ca9-8d82-4db9-95fa-57ff7d646dfe - NetConnectivity - checkPBXConnections - REGULAR PING - ",“2020-05-18T12:41:36.735Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - PBXAccount - PingResponse - 95”,“2020-05-18T12:41:40.100Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - actions/sipaccount - makeCall - Init makeCall”,“2020-05-18T12:41:40.105Z”:"Actions - sipaccount - shouldCallCancel - 19e32ca9-8d82-4db9-95fa-57ff7d646dfe - ",“2020-05-18T12:41:40.107Z”:“SIPAccount(Lib) - _ua.start, Transport connected/status is: - true - 1”,“2020-05-18T12:41:40.109Z”:“SIPAccount(Lib) - _ua.start, UA registered/status is : - true - 2”,“2020-05-18T12:41:40.111Z”:“WebRTC(log) - user requested startup…”,“2020-05-18T12:41:40.113Z”:“WebRTC(log) - UA is in READY status, not resuming”,“2020-05-18T12:41:40.115Z”:“SIPAccount(Lib) - startCallFlow - init - false”,“2020-05-18T12:41:40.136Z”:“actions/sipaccount - shouldCallCancel - false”,“2020-05-18T12:41:40.520Z”:“SIPAccount(Lib) - _didReceiveStartCallAction - {"name":"Featurecode: echotest (infoservices:Echo Test)","callUUID":"18c2e2ac-364e-4d73-8d1c-db498d93e467","handle":"*43"}”,“2020-05-18T12:41:40.547Z”:“SIPAccount(Lib) - _ua.invite, Transport connected/status is : - true - 1”,“2020-05-18T12:41:40.581Z”:“SIPAccount(Lib) - _ua.invite, UA registered/status is : - true - 2”,“2020-05-18T12:41:40.604Z”:“SessionDescriptionHandlerOptions: {"constraints":{"audio":true,"video":false},"peerConnectionOptions":{"rtcConfiguration":{"bundlePolicy":"balanced","rtcpMuxPolicy":"negotiate","iceServers":[{"urls":["stun:stun4.l.google.com:19302","stun:turn.respoke.io:443","stun:stun.l.google.com:19302"]}],"iceCandidatePoolSize":32,"iceTransportPolicy":"all"},"iceCheckingTimeout":1500}}”,“2020-05-18T12:41:40.694Z”:“SessionDescriptionHandler - ICE Servers - [{"urls":["stun:stun4.l.google.com:19302","stun:turn.respoke.io:443","stun:stun.l.google.com:19302"]}]”,“2020-05-18T12:41:40.695Z”:“initPeerConnection”,“2020-05-18T12:41:40.696Z”:“SessionDescriptionHandler - Using ICE Servers - [{"urls":["stun:stun4.l.google.com:19302","stun:turn.respoke.io:443","stun:stun.l.google.com:19302"]}]”,“2020-05-18T12:41:40.700Z”:“New peer connection created”,“2020-05-18T12:41:40.701Z”:“Using onaddstream which is deprecated”,“2020-05-18T12:41:40.703Z”:“acquiring local media”,“2020-05-18T12:41:40.742Z”:“WebRTC.mediaDevices.enumerateDevices - [{"kind":"videoinput","label":"0","groupId":"","deviceId":"0","facing":"environment"},{"kind":"videoinput","label":"1","groupId":"","deviceId":"1","facing":"front"},{"kind":"audioinput","label":"Audio","groupId":"","deviceId":"audio-1"}]”,“2020-05-18T12:41:40.745Z”:“acquired local media streams”,“2020-05-18T12:41:40.746Z”:“acquire - addStreams DONE”,“2020-05-18T12:41:40.786Z”:“isIceGatheringComplete STATE: - new - TimeOut: - false”,“2020-05-18T12:41:40.788Z”:“RTCIceChecking Timeout Created, value: 1500 milliseconds”,“2020-05-18T12:41:40.790Z”:“ICE candidate received: candidate:3304945320 1 udp 2122260224 10.197.210.226 49437 typ host generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:40.796Z”:“ICE candidate received: candidate:3304945320 2 udp 2122260224 10.197.210.226 43029 typ host generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:40.984Z”:“ICE candidate received: candidate:842163049 1 udp 1686052607 94.109.162.226 26988 typ srflx raddr 10.197.210.226 rport 49437 generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:40.996Z”:“ICE candidate received: candidate:842163049 2 udp 1686052606 94.109.162.226 27006 typ srflx raddr 10.197.210.226 rport 43029 generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:41.079Z”:“ICE candidate received: candidate:842163049 2 udp 1686052606 94.109.162.226 26880 typ srflx raddr 10.197.210.226 rport 43029 generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:41.086Z”:“ICE candidate received: candidate:842163049 1 udp 1686052607 94.109.162.226 26999 typ srflx raddr 10.197.210.226 rport 49437 generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:41.127Z”:“ICE candidate received: candidate:842163049 2 udp 1686052606 94.109.162.226 26984 typ srflx raddr 10.197.210.226 rport 43029 generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:41.133Z”:“ICE candidate received: candidate:842163049 1 udp 1686052607 94.109.162.226 26990 typ srflx raddr 10.197.210.226 rport 49437 generation 0 ufrag 3xTf network-id 4 network-cost 900”,“2020-05-18T12:41:41.134Z”:“ICE candidate gathering complete”,“2020-05-18T12:41:41.136Z”:“isIceGatheringComplete STATE: - complete - TimeOut: - false”,“2020-05-18T12:41:41.139Z”:“triggerIceGatheringComplete is: true”,“2020-05-18T12:41:41.141Z”:“isIceGatheringComplete STATE: - complete - TimeOut: - false”,“2020-05-18T12:41:41.143Z”:“RTCIceGatheringState changed: complete”,“2020-05-18T12:41:41.144Z”:“isIceGatheringComplete STATE: - complete - TimeOut: - false”,“2020-05-18T12:41:41.145Z”:“triggerIceGatheringComplete is: true”,“2020-05-18T12:41:41.146Z”:“isIceGatheringComplete STATE: - complete - TimeOut: - false”,“2020-05-18T12:41:41.148Z”:“NEW offer created”,“2020-05-18T12:41:41.161Z”:“WebRTC(log) - Constructing INVITE client transaction with id z9hG4bK9373454.”,“2020-05-18T12:41:41.260Z”:“WebRTC(log) - State change to "Completed" on INVITE client transaction with id z9hG4bK9373454.”,“2020-05-18T12:41:41.265Z”:“WebRTC(log) - Constructing INVITE client transaction with id z9hG4bK2081849.”,“2020-05-18T12:41:41.269Z”:“WebRTC(log) - Timer D expired for INVITE client transaction z9hG4bK9373454.”,“2020-05-18T12:41:41.270Z”:“WebRTC(log) - Destroyed INVITE client transaction with id z9hG4bK9373454.”,“2020-05-18T12:41:41.271Z”:“WebRTC(log) - State change to "Terminated" on INVITE client transaction with id z9hG4bK9373454.”,“2020-05-18T12:41:41.365Z”:“WebRTC(log) - State change to "Proceeding" on INVITE client transaction with id z9hG4bK2081849.”,“2020-05-18T12:41:41.366Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onProgress - Init onProgress”,“2020-05-18T12:41:41.547Z”:“WebRTC(log) - State change to "Accepted" on INVITE client transaction with id z9hG4bK2081849.”,“2020-05-18T12:41:41.548Z”:“WebRTC(log) - INVITE dialog qv2mmds55lbbjgrcns87ojg1p84o965fb322e1-dead-4406-8135-8689478daa9e constructed”,“2020-05-18T12:41:41.569Z”:“RTCIceConnectionStatechanged: checking”,“2020-05-18T12:41:41.577Z”:“stream added”,“2020-05-18T12:41:41.596Z”:“WebRTC(log) - INVITE dialog qv2mmds55lbbjgrcns87ojg1p84o965fb322e1-dead-4406-8135-8689478daa9e sending ACK request”,“2020-05-18T12:41:41.597Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onAccepted - Init accept call - NativeAnswer”,“2020-05-18T12:41:41.599Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onAccepted - Stopping ringback”,“2020-05-18T12:41:41.603Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onAccepted - Exec onSessionAccept”,“2020-05-18T12:41:56.686Z”:“RTCIceConnectionStatechanged: failed”,“2020-05-18T12:41:56.691Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onICEConnectionProblem - Exec onConnectionProblem”,“2020-05-18T12:41:58.290Z”:“SIPAccount(Lib) - _didEndCall - 18c2e2ac-364e-4d73-8d1c-db498d93e467”,“2020-05-18T12:41:58.291Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _endCall - Init of endCall - 18c2e2ac-364e-4d73-8d1c-db498d93e467”,“2020-05-18T12:41:58.292Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - actions/sipsession - sessionTerminate - Init sessionTerminate”,“2020-05-18T12:41:58.385Z”:“WebRTC(log) - terminating Session”,“2020-05-18T12:41:58.390Z”:“WebRTC(log) - INVITE dialog qv2mmds55lbbjgrcns87ojg1p84o965fb322e1-dead-4406-8135-8689478daa9e sending BYE request”,“2020-05-18T12:41:58.397Z”:“WebRTC(log) - Constructing non-INVITE client transaction with id z9hG4bK8019286.”,“2020-05-18T12:41:58.402Z”:“WebRTC(log) - INVITE dialog qv2mmds55lbbjgrcns87ojg1p84o965fb322e1-dead-4406-8135-8689478daa9e destroyed”,“2020-05-18T12:41:58.409Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onBye - Exec onSessionBye”,“2020-05-18T12:41:58.444Z”:“WebRTC(log) - closing INVITE session qv2mmds55lbbjgrcns87ojg1p84o96”,“2020-05-18T12:41:58.446Z”:“closing PeerConnection”,“2020-05-18T12:41:58.447Z”:“Using getLocalStreams which is deprecated”,“2020-05-18T12:41:58.448Z”:“Using getRemoteStreams which is deprecated”,“2020-05-18T12:41:58.451Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onTerminated - Init terminate call”,“2020-05-18T12:41:58.464Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - SIPCall - _onTerminated - Init end call - InCallManager STOP”,“2020-05-18T12:41:58.704Z”:“RTCIceConnectionStatechanged: closed”,“2020-05-18T12:41:58.737Z”:“WebRTC(log) - State change to "Completed" on non-INVITE client transaction with id z9hG4bK8019286.”,“2020-05-18T12:41:58.769Z”:“WebRTC(log) - Timer M expired for INVITE client transaction z9hG4bK2030606.”,“2020-05-18T12:41:58.777Z”:“WebRTC(log) - Destroyed INVITE client transaction with id z9hG4bK2030606.”,“2020-05-18T12:41:58.786Z”:“WebRTC(log) - State change to "Terminated" on INVITE client transaction with id z9hG4bK2030606.”,“2020-05-18T12:41:58.802Z”:“WebRTC(log) - Destroyed INVITE client transaction with id z9hG4bK2030606.”,“2020-05-18T12:41:58.817Z”:"19e32ca9-8d82-4db9-95fa-57ff7d646dfe - NetConnectivity - checkPBXConnections - REGULAR PING - ",“2020-05-18T12:41:58.836Z”:“WebRTC(log) - Destroyed non-INVITE client transaction with id z9hG4bK8019286.”,“2020-05-18T12:41:58.843Z”:“WebRTC(log) - State change to "Terminated" on non-INVITE client transaction with id z9hG4bK8019286.”,“2020-05-18T12:41:58.851Z”:“WebRTC(log) - Destroyed non-INVITE client transaction with id z9hG4bK8019286.”,“2020-05-18T12:41:59.192Z”:"19e32ca9-8d82-4db9-95fa-57ff7d646dfe - PBXAccount - _onStreamElement - ",“2020-05-18T12:41:59.227Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - PBXAccount - PingResponse - 411”,“2020-05-18T12:42:02.128Z”:"Initiate BugSnag Client ID 94472426-7811-4200-9618-a3a496507833 | JSON log changes to false ",“2020-05-18T12:42:02.130Z”:“19e32ca9-8d82-4db9-95fa-57ff7d646dfe - actions/accounts - disableLogAccount”}

And here is a Asterisk vvv:

fpbx*CLI> 
  == Setting global variable 'SIPDOMAIN' to 'my.dyn.dns'
  == Using SIP RTP Audio TOS bits 184
  == Using SIP RTP Audio TOS bits 184 in TCLASS field.
  == Using SIP RTP Audio CoS mark 5
  == DTLS ECDH initialized (automatic), faster PFS enabled
    -- Executing [*43@zulu-from-internal:1] Set("PJSIP/909002-00000003", "ZULU_ID=") in new stack
    -- Executing [*43@zulu-from-internal:2] Goto("PJSIP/909002-00000003", "from-internal,*43,1") in new stack
    -- Goto (from-internal,*43,1)
    -- Executing [*43@from-internal:1] Set("PJSIP/909002-00000003", "CONNECTEDLINE(name-charset,i)=utf8") in new stack
    -- Executing [*43@from-internal:2] Set("PJSIP/909002-00000003", "CONNECTEDLINE(name,i)=Echo Test") in new stack
    -- Executing [*43@from-internal:3] Set("PJSIP/909002-00000003", "CONNECTEDLINE(num,i)=*43") in new stack
    -- Executing [*43@from-internal:4] Answer("PJSIP/909002-00000003", "") in new stack
    -- Executing [*43@from-internal:5] Macro("PJSIP/909002-00000003", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("PJSIP/909002-00000003", "TOUCH_MONITOR=1589806034.3") in new stack
    -- Executing [s@macro-user-callerid:2] Set("PJSIP/909002-00000003", "AMPUSER=9002") in new stack
    -- Executing [s@macro-user-callerid:3] Set("PJSIP/909002-00000003", "HOTDESCKCHAN=909002-00000003") in new stack
    -- Executing [s@macro-user-callerid:4] Set("PJSIP/909002-00000003", "HOTDESKEXTEN=909002") in new stack
    -- Executing [s@macro-user-callerid:5] Set("PJSIP/909002-00000003", "HOTDESKCALL=0") in new stack
    -- Executing [s@macro-user-callerid:6] ExecIf("PJSIP/909002-00000003", "0?Set(HOTDESKCALL=1)") in new stack
    -- Executing [s@macro-user-callerid:7] ExecIf("PJSIP/909002-00000003", "0?Set(CALLERID(name)=)") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("PJSIP/909002-00000003", "0?report") in new stack
    -- Executing [s@macro-user-callerid:9] ExecIf("PJSIP/909002-00000003", "1?Set(REALCALLERIDNUM=9002)") in new stack
    -- Executing [s@macro-user-callerid:10] Set("PJSIP/909002-00000003", "AMPUSER=9002") in new stack
    -- Executing [s@macro-user-callerid:11] GotoIf("PJSIP/909002-00000003", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:12] Set("PJSIP/909002-00000003", "AMPUSERCIDNAME=Kris L") in new stack
    -- Executing [s@macro-user-callerid:13] ExecIf("PJSIP/909002-00000003", "0?Set(__CIDMASQUERADING=TRUE)") in new stack
    -- Executing [s@macro-user-callerid:14] GotoIf("PJSIP/909002-00000003", "0?report") in new stack
    -- Executing [s@macro-user-callerid:15] Set("PJSIP/909002-00000003", "AMPUSERCID=9002") in new stack
    -- Executing [s@macro-user-callerid:16] Set("PJSIP/909002-00000003", "__DIAL_OPTIONS=HhTtr") in new stack
    -- Executing [s@macro-user-callerid:17] Set("PJSIP/909002-00000003", "CALLERID(all)="Kris L" <9002>") in new stack
    -- Executing [s@macro-user-callerid:18] ExecIf("PJSIP/909002-00000003", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-user-callerid:19] GotoIf("PJSIP/909002-00000003", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:20] ExecIf("PJSIP/909002-00000003", "0?Set(GROUP(concurrency_limit)=9002)") in new stack
    -- Executing [s@macro-user-callerid:21] ExecIf("PJSIP/909002-00000003", "0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s@macro-user-callerid:22] NoOp("PJSIP/909002-00000003", "Macro Depth is 1") in new stack
    -- Executing [s@macro-user-callerid:23] GotoIf("PJSIP/909002-00000003", "1?report2:macroerror") in new stack
    -- Goto (macro-user-callerid,s,24)
    -- Executing [s@macro-user-callerid:24] GotoIf("PJSIP/909002-00000003", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:25] ExecIf("PJSIP/909002-00000003", "1?Set(__CALLEE_ACCOUNCODE=)") in new stack
    -- Executing [s@macro-user-callerid:26] Set("PJSIP/909002-00000003", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:27] GotoIf("PJSIP/909002-00000003", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,43)
    -- Executing [s@macro-user-callerid:43] Set("PJSIP/909002-00000003", "CALLERID(number)=9002") in new stack
    -- Executing [s@macro-user-callerid:44] Set("PJSIP/909002-00000003", "CALLERID(name)=Kris L") in new stack
    -- Executing [s@macro-user-callerid:45] GotoIf("PJSIP/909002-00000003", "0?cnum") in new stack
    -- Executing [s@macro-user-callerid:46] Set("PJSIP/909002-00000003", "CDR(cnam)=Kris L") in new stack
    -- Executing [s@macro-user-callerid:47] Set("PJSIP/909002-00000003", "CDR(cnum)=9002") in new stack
    -- Executing [s@macro-user-callerid:48] Set("PJSIP/909002-00000003", "CHANNEL(language)=nl") in new stack
    -- Executing [*43@from-internal:6] Wait("PJSIP/909002-00000003", "1") in new stack
    -- Executing [*43@from-internal:7] BackGround("PJSIP/909002-00000003", "demo-echotest,,,app-echo-test-echo") in new stack
    -- <PJSIP/909002-00000003> Playing 'demo-echotest.ulaw' (language 'nl')
Executing [*43@from-internal:8] Goto("PJSIP/909002-00000002", "app-echo-test-echo,1,1") in new stack
-- Goto (app-echo-test-echo,1,1)
-- Executing [1@app-echo-test-echo:1] Echo("PJSIP/909002-00000002", "") in new stack
[2020-05-18 14:53:55] NOTICE[7690]: res_pjsip_sdp_rtp.c:124 rtp_check_timeout: Disconnecting channel 'PJSIP/909002-00000002' for lack of RTP activity in 30 seconds
  == Spawn extension (app-echo-test-echo, 1, 1) exited non-zero on 'PJSIP/909002-00000002'

Just to clarify, 10000-20000 it’s UDP, there is no need to open that with TCP and also it shouldn’t.
You just need RTP ports (from above) and 8002 TCP.

Try to upgrade both, server and client.
fwconsole ma downloadinstall zulu --edge for the server, and depending on which mobile you are using;
if iOS then you need to install TestFlight (https://testflight.apple.com/join/Eihp1qEG)
if Android, just join to the Beta tester program (search Zulu at Playstore, go to the final of the page and join to beta tester program)

Good. I just opened TCP and UDP for these ports for this test-setup.
5061 was just open for my test with Zoiper, that went fine. The responsive firewall is enabled.

Ok. I’m now on 15.0.58.7. I joined the beta and updated the mobile Android app.
But the problem still exist. The log looks the same:

NOTICE[7690]: res_pjsip_sdp_rtp.c:124 rtp_check_timeout: Disconnecting channel 'PJSIP/909002-00000002' for lack of RTP activity in 30 seconds

Which Asterisk version are you running? asterisk -rx 'core show version'

If you are Running Asterisk 13.17 or 13.29 try to move to Asterisk 16 or at least to the latest 13.32, simply run: yum update && asterisk-version-switch

Asterisk 16.9.0 built by mockbuild @ jenkins7 on a x86_64 running Linux on 2020-03-21 00:51:54 UTC

Weird, did you try using Zulu desktop just to see if the behavior is the same ?

I just tried the desktop app (Ubuntu). Same behavior: on LAN no prob, on external network it doesn’t work.
I guess it has something to do with DDNS and/or the dynamic IP?

Go to this page: https://www.sslshopper.com/ssl-checker.html and type your FQDN:8002, example: pbx.whatever-is-your-ddns:8002 and see if passes all the tests

All checks are green.

The hostname of my FreePBX is a CNAME of my DynDNS address. So Zulu is connecting the the CNAME’s address. Is that a problem? The SSL cert is on the CNAME address.

The SIP Settings > NAT - External Address = my DynDNS address.

It shouldn’t, you can open a commercial ticket in order to work with an engineer, this is odd.

I’ve found it. It was a NAT problem.
In the Outbound NAT, I defined the destination of my VoIP trunk with port 5060. I changed the destination and destination port to ‘all’. After that change, I can call from an external network.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.