Help with remote extension

I am 99% sure this is out there, but I cant seem to find a post that helps me.

Basically I have a"hosted" FreePBX system on my servers in my CoLo. System is running fine on version 5.211.65-14, and trunks are up. I have forwarded port 5060 and RTSP ports (10k - 20K) to the FreePBX server from a external IP. Note that ONLY my external IP and those of the trunk provider can get to the ports.

The issue I am having is I get one way audio, the person calling me can hear me, but I cannot hear them. The phone (GrandStream 1400) is connected. My general question is, do I need to forward/open ports TO the phone, i.e. forward port 5060 FROM the FreePBX system TO the phone (NAT’d)? My general layout is this:

EXT IP of FreePBX --> FWD to NAT (5060,RTSP)

Do I need:

EXT IP of FreePBX --> FWD to NAT of FreePBX Server (5060,RTSP) <–> EXT IP of Home --> FWD to NAT of Phone IP (5060,RTSP).

Hope that makes sense… I would THINK that once the phone is registered (it is) that audio would work both ways, but …

Thanks for any input on this…

Brian

FYI, I forwarded the ports from my HOME external IP to the phone, same issue. Must be a configuration thing. Forwarding ports 5060 and RTSP did not resolve the issue.

Again any help appreciated!

Thanks!

Brian

Confirm that you have nat=yes for the extension in question. Also that in your Asterisk SIP Settings, you have selected Static IP and filled the the correct External IP and Local Networks.

Try enabling only ulaw and alaw codecs on both trunk and extension.

If no luck:

You say “trunks are up”, but do they work? For example can an external caller hear your voicemail greeting and successfully leave a message? Or, if you set up your extension to forward to your mobile, do those calls work?

Do outgoing calls fail the same way as incoming? What about calls from the extension to internal PBX functions, e.g. can you call *60 and hear the time?

Thanks for the quick replay and help!

I confirmed the above, nat=yes and that the IP and network are good. I disabled the codecs leaving just ulaw and alaw.

For the rest of the test, yes it seems to be working, I can call the external DID from my cell phone, the remote extension rings and I get one way audio. I can also from the remote phone call and get voice mail, time, etc. I do not have it ringing my cell, but certainly could do that as a test.

The last test was a call INTO the system from my cell, office phone rang and I answered. I could here FROM the office phone TO the cell phone but not the other way around… looking at the logs I found this (note the ‘LACK of RTP activity’.

Again THANK YOU!

Brian

[2014-07-03 07:38:29] NOTICE[1744] chan_sip.c:
Disconnecting call ‘SIP/DIDIncoming1-0000000e’ for lack of RTP activity
in 31 seconds
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: – Executing [h@macro-dial-one:1] Macro(“SIP/DIDIncoming1-0000000e”, “hangupcall,”) in new stack
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: – Executing [s@macro-hangupcall:1] GotoIf(“SIP/DIDIncoming1-0000000e”, “1?theend”) in new stack
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: – Goto (macro-hangupcall,s,3)
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: – Executing [s@macro-hangupcall:3] ExecIf(“SIP/DIDIncoming1-0000000e”, “0?Set(CDR(recordingfile)=)”) in new stack
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: – Executing [s@macro-hangupcall:4] Hangup(“SIP/DIDIncoming1-0000000e”, “”) in new stack
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008]
app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited
non-zero on ‘SIP/DIDIncoming1-0000000e’ in macro ‘hangupcall’
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: == Spawn extension (macro-dial-one, h, 1) exited non-zero on ‘SIP/DIDIncoming1-0000000e’
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008]
app_macro.c: == Spawn extension (macro-dial-one, s, 43) exited
non-zero on ‘SIP/DIDIncoming1-0000000e’ in macro ‘dial-one’
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008]
app_macro.c: == Spawn extension (macro-exten-vm, s, 16) exited
non-zero on ‘SIP/DIDIncoming1-0000000e’ in macro ‘exten-vm’
[2014-07-03 07:38:29] VERBOSE[7206][C-00000008] pbx.c: == Spawn extension (ext-local, 100, 2) exited non-zero on ‘SIP/DIDIncoming1-0000000e’

Ok solved it! Its the firewall. I have 8 external IP’s and was using one that was not specifically bound to the WAN port. Though the system does answer to that IP the NAT was not working for SIP, etc. Other services like HTTP do function.

Anyway, thanks for your help!! Ill sort it out with the firewall people (ZyWall USG 50, Firmware 3.30 (BDS4) BTW.

Thanks again!

Brian

Let me clarify the issue. You had inbound NAT but you didn’t have source NAT. The packets leaving were using the regular NAT path that was overloaded to the interface IP.

Any streaming CODEC must take a symmetric patch so the packet was coming from one IP (the overload) and expecting the traffic back on the 1:1 addresss.

This is what source-based or policy based NAT and Routing is used for.

Hey SkyKingOH,

Thanks for the info I actually sorted it out based on your input. The system can handle NAT in a number of “classifications” such as Virtual Server, Many1:1 NAT and sure enough 1:1 NAT.

After changing the NAT entry to 1:1 NAT and enabling NAT Loopback (maintains the NAT “link”) I can now use the external IP as required.

Again, this is on a ZyWall USG 50 @ 3.30 BDS 4 Firmware.

Just wanted to post this for any other people asking the question, and to say thanks for the help from both members!

Brian