Elastix (with NAT) - External (as in over the internet) Soft phones register and connect but no audio

Hi Guys,

Basically we have forwarded SIP Ports 5060 and 5061, RTP Ports 10000 - 10500.
We're running elastix 1.6.0.

Tried turning nat on and off but we cannot get any audio from a phone connecting from outside the network.

They register and can place/receive calls on them BUT there is no audio and the connection drops after 20 seconds. (these, to me seem related) the logs show that the extension answered and then hung up.
 
Our network administrator is positive it has something to do with the NAT setup. But i'm at tethers end here. Is it to do with RTP ports? they are responsible for piping audio packets...

Any ideas?

Regards,
James Piskorz
-- Executing [100@from-internal:1] Macro("SIP/113-08ffed88", "exten-vm|100|100") in new stack
    -- Executing [s@macro-exten-vm:1] Macro("SIP/113-08ffed88", "user-callerid") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/113-08ffed88", "AMPUSER=113") in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/113-08ffed88", "0?report") in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/113-08ffed88", "1|Set|REALCALLERIDNUM=113") in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/113-08ffed88", "AMPUSER=113") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/113-08ffed88", "AMPUSERCIDNAME=Andrew Kevin Gandasugita") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/113-08ffed88", "0?report") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/113-08ffed88", "AMPUSERCID=113") in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/113-08ffed88", "CALLERID(all)="Andrew Kevin Gandasugita" <113>") in new stack
    -- Executing [s@macro-user-callerid:9] ExecIf("SIP/113-08ffed88", "0|Set|CHANNEL(language)=") in new stack
    -- Executing [s@macro-user-callerid:10] GotoIf("SIP/113-08ffed88", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:11] Set("SIP/113-08ffed88", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/113-08ffed88", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,19)
    -- Executing [s@macro-user-callerid:19] NoOp("SIP/113-08ffed88", "Using CallerID "Andrew Kevin Gandasugita" <113>") in new stack
    -- Executing [s@macro-exten-vm:2] Set("SIP/113-08ffed88", "RingGroupMethod=none") in new stack
    -- Executing [s@macro-exten-vm:3] Set("SIP/113-08ffed88", "VMBOX=100") in new stack
    -- Executing [s@macro-exten-vm:4] Set("SIP/113-08ffed88", "EXTTOCALL=100") in new stack
    -- Executing [s@macro-exten-vm:5] Set("SIP/113-08ffed88", "CFUEXT=") in new stack
    -- Executing [s@macro-exten-vm:6] Set("SIP/113-08ffed88", "CFBEXT=") in new stack
    -- Executing [s@macro-exten-vm:7] Set("SIP/113-08ffed88", "RT=15") in new stack
    -- Executing [s@macro-exten-vm:8] Macro("SIP/113-08ffed88", "record-enable|100|IN") in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/113-08ffed88", "1?check") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] AGI("SIP/113-08ffed88", "recordingcheck|20100401-133715|1270089435.5") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
  recordingcheck|20100401-133715|1270089435.5: Inbound recording not enabled
    -- AGI Script recordingcheck completed, returning 0
    -- Executing [s@macro-record-enable:5] MacroExit("SIP/113-08ffed88", "") in new stack
    -- Executing [s@macro-exten-vm:9] Macro("SIP/113-08ffed88", "dial|15|tr|100") in new stack
    -- Executing [s@macro-dial:1] GotoIf("SIP/113-08ffed88", "1?dial") in new stack
    -- Goto (macro-dial,s,3)
    -- Executing [s@macro-dial:3] AGI("SIP/113-08ffed88", "dialparties.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
  dialparties.agi: Starting New Dialparties.agi
  == Parsing '/etc/asterisk/manager.conf': Found
  == Parsing '/etc/asterisk/manager_additional.conf': Found
  == Parsing '/etc/asterisk/manager_custom.conf': Found
  == Manager 'admin' logged on from 127.0.0.1
  dialparties.agi: Caller ID name is 'Andrew Kevin Gandasugita' number is '113'
  dialparties.agi: USE_CONFIRMATION:  'FALSE'
  dialparties.agi: RINGGROUP_INDEX:   ''
  dialparties.agi: Methodology of ring is  'none'
    --  dialparties.agi: Added extension 100 to extension map
    --  dialparties.agi: Extension 100 cf is disabled
    --  dialparties.agi: Extension 100 do not disturb is disabled
       >  dialparties.agi: extnum 100 has:  cw: 0; hascfb: 0 [] hascfu: 0 []
  dialparties.agi: ExtensionState: 0
  dialparties.agi: Extension 100 has ExtensionState: 0
    --  dialparties.agi: Checking CW and CFB status for extension 100
    --  dialparties.agi: dbset CALLTRACE/100 to 113
    --  dialparties.agi: Filtered ARG3: 100
  == Manager 'admin' logged off from 127.0.0.1
    -- AGI Script dialparties.agi completed, returning 0
    -- Executing [s@macro-dial:7] Dial("SIP/113-08ffed88", "SIP/100|15|tr") in new stack
    -- Called 100
    -- SIP/100-09019c68 is ringing
    -- SIP/100-09019c68 answered SIP/113-08ffed88
    -- Executing [h@macro-dial:1] Macro("SIP/113-08ffed88", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/113-08ffed88", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,4)
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/113-08ffed88", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/113-08ffed88", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] Hangup("SIP/113-08ffed88", "") in new stack
  == Spawn extension (macro-hangupcall, s, 9) exited non-zero on 'SIP/113-08ffed88' in macro 'hangupcall'
  == Spawn h extension (macro-dial, h, 1) exited non-zero on 'SIP/113-08ffed88'
  == Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/113-08ffed88' in macro 'dial'
  == Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'SIP/113-08ffed88' in macro 'exten-vm'
  == Spawn extension (from-internal, 100, 1) exited non-zero on 'SIP/113-08ffed88'

Open in new window

AJS_DeveloperAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

feptiasCommented:
Yes, RTP through NAT is almost certainly at the root of your problem. There is more to it than just port forwarding because you must also make sure the Asterisk server is aware of the NAT - it embeds IP addresses within its SIP/SDP messages and the remote phones will use those IP addresses when trying to communicate with the server.

http://www.smartvox.co.uk/astfaq_configbehindnat.htm
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
IP Telephony

From novice to tech pro — start learning today.