PLEASE HELP!- Rings but no audio on peer to peer calls!

Hi everyone,

I set up an AsteriskNow that has 5 SIP Zoiper peers and a SIP trunk connected to Sipgate.co.uk. Asterisk is conected to internet with a static IP address and all the peers are OUTSIDE the asterisk network, the peers are connected to the static IP Address, I set the port forwarding to/from the asterisk on the router on the following ports:
UDP 5060
UDP 10000-11000

I can make and recieve calls using the Sipgate trunk to/from ordinary landline numbers but the problem comes when making calls between peers, it rings but there is no audio when the call is answered. Curiously I can make call between peers if I have them INSIDE the asterisk network

My configuration looks something like this:

----------------------------------78.123.45.67-------------------192.168.3.195
Zoiper location 0(6000) --> [Router with Static Ipaddress] <- AsteriskNow
Zoiper location 1 (6001) -------|
Zoiper location 2 (6002)-------------|
Zoiper location 3 (6003)-----------------|
Zoiper location 4 (6004)-----------------------|

SipGate trunks--------------------------------------------------------------|

Could you please help me, I haven’t got a clue on how to sort this.
Thanks In Advance
Juan

My conf files are below:

---------sip.conf------------
[trunk_1]
type=peer
username=1001234
fromuser=1001234
secret=ABCDEFGH
context=default
host=sipgate.co.uk
fromdomain=sipgate.co.uk
insecure=very
caninvite=no
canreinvite=no
nat=no
disallow=all
allow=gsm
allow=ulaw
allow=alaw

[general]
context=default
allowoverlap=no
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
nat=yes
externip=78.123.45.67
localnet=192.168.3.0/255.255.255.0
qualify=yes
register=1001234:ABCDEFGH@sipgate.co.uk/trunk_1
disallow=all
allow=gsm
allow=ulaw
allow=alaw
------end sip.conf-----------------------------

------extensions.conf--------------------------
[dundi-e164-via-pstn]

[dundi-e164-local]
include=dundi-e164-canonical
include=dundi-e164-customers
include=dundi-e164-via-pstn

[dundi-e164-switch]
switch=DUNDi/e164

[dundi-e164-lookup]
include=dundi-e164-local
include=dundi-e164-switch

[macro-dundi-e164]
exten=s,1,Goto(${ARG1},1)
include=dundi-e164-lookup

[iaxtel700]
exten=_91700XXXXXXX,1,Dial(IAX2/${GLOBAL(IAXINFO)}@iaxtel.com/${EXTEN:1}@iaxtel)

[iaxprovider]

[trunkint]
exten=_9011.,1,Macro(dundi-e164,${EXTEN:4})
exten=_9011.,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunkld]
exten=_91NXXNXXXXXX,1,Macro(dundi-e164,${EXTEN:1})
exten=_91NXXNXXXXXX,n,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[trunklocal]
exten=_9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
[trunktollfree]
exten=_91800NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten=_91888NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten=_91877NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})
exten=_91866NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[international]
ignorepat=9
include=longdistance
include=trunkint
[longdistance]
ignorepat=9
include=local
include=trunkld

[local]
ignorepat=9
include=default
include=trunklocal
include=iaxtel700
include=trunktollfree
include=iaxprovider
include=parkedcalls

[macro-trunkdial]
exten=s,1,Dial(${ARG1})
exten=s,n,Goto(s-${DIALSTATUS},1)
exten=s-NOANSWER,1,Hangup
exten=s-BUSY,1,Hangup
exten=_s-.,1,NoOp

[macro-stdexten]
exten=s,1,Dial(${ARG2},20)
exten=s,2,Goto(s-${DIALSTATUS},1)
exten=s-NOANSWER,1,Voicemail(${ARG1},u)
exten=s-NOANSWER,2,Goto(default,s,1)
exten=s-BUSY,1,Voicemail(${ARG1},b)
exten=s-BUSY,2,Goto(default,s,1)
exten=_s-.,1,Goto(s-NOANSWER,1)
exten=a,1,VoicemailMain(${ARG1})

[macro-stdPrivacyexten]
exten=s,1,Dial(${ARG2},20|p)
exten=s,2,Goto(s-${DIALSTATUS},1)
exten=s-NOANSWER,1,Voicemail(${ARG1},u)
exten=s-NOANSWER,2,Goto(default,s,1)
exten=s-BUSY,1,Voicemail(${ARG1},b)
exten=s-BUSY,2,Goto(default,s,1)
exten=s-DONTCALL,1,Goto(${ARG3},s,1)
exten=s-TORTURE,1,Goto(${ARG4},s,1)
exten=_s-.,1,Goto(s-NOANSWER,1)
exten=a,1,VoicemailMain(${ARG1})

[macro-page]
exten=s,1,ChanIsAvail(${ARG1}|js)
exten=s,n,GoToIf([${AVAILSTATUS} = “1”]?autoanswer:fail)
exten=s,n(autoanswer),Set(_ALERT_INFO=“RA”)
exten=s,n,SIPAddHeader(Call-Info: Answer-After=0)
exten=s,n,NoOp()
exten=s,n,Dial(${ARG1}||)
exten=s,n(fail),Hangup

[demo]
exten=s,1,Wait(1)
exten=s,n,Answer
exten=s,n,Set(TIMEOUT(digit)=5)
exten=s,n,Set(TIMEOUT(response)=10)
exten=s,n(restart),BackGround(demo-congrats)
exten=s,n(instruct),BackGround(demo-instruct)
exten=s,n,WaitExten
exten=2,1,BackGround(demo-moreinfo)
exten=2,n,Goto(s,instruct)
exten=3,1,Set(LANGUAGE()=fr)
exten=3,n,Goto(s,restart)
exten=1000,1,Goto(default,s,1)
exten=1234,1,Playback(transfer,skip)
exten=1234,n,Macro(stdexten,1234,${GLOBAL(CONSOLE)})
exten=1235,1,Voicemail(1234,u)
exten=1236,1,Dial(Console/dsp)
exten=1236,n,Voicemail(1234,b)
exten=#,1,Playback(demo-thanks)
exten=#,n,Hangup
exten=t,1,Goto(#,1)
exten=i,1,Playback(invalid)
exten=500,1,Playback(demo-abouttotry)
exten=500,n,Dial(IAX2/guest@misery.digium.com/s@default)
exten=500,n,Playback(demo-nogo)
exten=500,n,Goto(s,6)
exten=600,1,Playback(demo-echotest)
exten=600,n,Echo
exten=600,n,Playback(demo-echodone)
exten=600,n,Goto(s,6)
exten=76245,1,Macro(page,SIP/Grandstream1)
exten=_7XXX,1,Macro(page,SIP/${EXTEN})
exten=7999,1,Set(TIMEOUT(absolute)=60)
exten=7999,2,Page(Local/Grandstream1@page&Local/Xlite1@page&Local/1234@page/n|d)
exten=8500,1,VoicemailMain
exten=8500,n,Goto(s,6)

[page]
exten=_X.,1,Macro(page,SIP/${EXTEN})

[default]
exten=8500,1,VoicemailMain
exten=8500,n,Hangup
include=voicemenu-custom-1

[asterisk_guitools]
exten=executecommand,1,System(${command})
exten=executecommand,n,Hangup()
exten=record_vmenu,1,Answer
exten=record_vmenu,n,Playback(vm-intro)
exten=record_vmenu,n,Record(${var1})
exten=record_vmenu,n,Playback(vm-saved)
exten=record_vmenu,n,Playback(vm-goodbye)
exten=record_vmenu,n,Hangup
exten=play_file,1,Answer
exten=play_file,n,Playback(${var1})
exten=play_file,n,Hangup
hasbeensetup=Y

[DID_trunk_1]
include=default
exten=_X.,1,Goto(default|6000|1)
exten=s,1,Goto(default|6000|1)

[incoming]
exten=trunk_1,1,NoOp(Incoming call on sipgate.co.uk)
exten=trunk_1,2,Ringing
exten=trunk_1,3,Wait(1)
exten=trunk_1,4,Dial(SIP/6002,30)
exten=trunk_1,5,VoiceMail(u30)
exten=trunk_1,6,Hangup

[timebasedrules]

[general]
static=yes
writeprotect=no
clearglobalvars=no
exten=_0.,1,NoOp(Call via sipgate.de)
exten=_0.,2,Ringing
exten=_0.,3,SetCallerID(John Doe)
exten=_0.,4,Dial(SIP/${EXTEN:1}@SIPGATENUM,60)
exten=_0.,5,Hangup

[user1-ooh323]
exten=s,1,Dial(SIP/6001)

[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=Zap/g2
TRUNKMSD=1
trunk_1=SIP/trunk_1

[numberplan-custom-1]
plancomment=DialPlan1
include=default
exten=_0XXX!,1,Macro(trunkdial,${trunk_1}/${EXTEN:0})
comment=_0XXX!,1,aires,standard

[voicemenu-custom-1]
comment=mainmenu
exten=s,1,Answer
exten=s,2,Dial(SIP/6000&SIP/6001&SIP/6002&SIP/6003&SIP/6004,20)
exten=s,3,Voicemail(6000@default&6001@default&6002@default&6003@default&6004@default)
include=default
----end extensions.conf-----------------------

--------users.conf------------------------------
[general]
fullname=New User
userbase=6000
hasvoicemail=yes
vmsecret=1234
hassip=yes
hasiax=yes
hasmanager=yes
callwaiting=yes
threewaycalling=yes
callwaitingcallerid=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
callgroup=1
pickupgroup=1
host=dynamic
localextenlength=4
allow_aliasextns=no
allow_an_extns=no
hasagent=yes
hasdirectory=yes

[trunk_1]
disallow=
allow=all
callerid=
contact=
context=DID_trunk_1
dialformat=${EXTEN:1}
fromdomain=
fromuser=
group=
hasexten=no
hasiax=no
hassip=yes
host=sipgate.co.uk
insecure=port,invite
port=5060
provider=
registeriax=no
registersip=yes
secret=ABCDEFGH
trunkname=Custom - sipgate1
trunkstyle=customvoip
username=1001234

[6004]
callwaiting=yes
cid_number=
context=numberplan-custom-1
email=
fullname=user4
group=
hasagent=yes
hasdirectory=yes
hasiax=yes
hasmanager=yes
hassip=yes
hasvoicemail=yes
host=dynamic
mailbox=6004
secret=4321
threewaycalling=yes
zapchan=
registeriax=no
registersip=yes
canreinvite=yes
nat=yes
dtmfmode=rfc2833
vmsecret=1234

[6000]
callwaiting=yes
cid_number=
context=numberplan-custom-1
email=
fullname=user0
group=
hasagent=yes
hasdirectory=yes
hasiax=yes
hasmanager=yes
hassip=yes
hasvoicemail=yes
host=dynamic
mailbox=6000
secret=4321
threewaycalling=yes
zapchan=
registeriax=no
registersip=yes
canreinvite=yes
nat=yes
dtmfmode=rfc2833
vmsecret=1234

[6002]
callwaiting=yes
cid_number=
context=numberplan-custom-1
email=
fullname=user2
group=
hasagent=yes
hasdirectory=yes
hasiax=yes
hasmanager=yes
hassip=yes
hasvoicemail=yes
host=dynamic
mailbox=6002
secret=4321
threewaycalling=yes
vmsecret=1234
zapchan=
registeriax=no
registersip=yes
canreinvite=yes
nat=yes
dtmfmode=rfc2833
disallow=
allow=

[6003]
callwaiting=yes
cid_number=
context=numberplan-custom-1
email=
fullname=user3
group=
hasagent=yes
hasdirectory=yes
hasiax=yes
hasmanager=yes
hassip=yes
hasvoicemail=yes
host=dynamic
mailbox=6003
secret=4321
threewaycalling=yes
zapchan=
registeriax=no
registersip=yes
canreinvite=yes
nat=yes
dtmfmode=rfc2833
vmsecret=1234

[6001]
callwaiting=yes
cid_number=
context=numberplan-custom-1
email=
fullname=user1
group=
hasagent=yes
hasdirectory=yes
hasiax=yes
hasmanager=yes
hassip=yes
hasvoicemail=yes
host=dynamic
mailbox=6001
secret=4321
threewaycalling=yes
zapchan=
registeriax=no
registersip=yes
canreinvite=yes
nat=yes
dtmfmode=rfc2833
vmsecret=1234
-------end users.conf--------------------------

-------rtp.conf---------------------------------
[general]
rtpstart=10000
rtpend=11000
------end rtp.conf-----------------------------

Thanks

Oh, I know the graphic sucks, I hope you understand what I mean with it.
Thanks
Juan

Have you managed to find a solution to this? i’ve got the exact same problem, any solution???

The problem is that your port forwarding is going directly to the Asterisk box. Your peers however, are setup to re-invite. That is, they are trying to communicate directly between each other. The audio doesn’t boomerang through the Asterisk box.

Since your RTP packets are port forwarded, they can only go to the Asterisk box, the re-invite won’t setup correctly. The audio from the outside peer can have only one destination: the Asterisk box. Asterisk may send the signaling, and the phone may ring, but the incoming audio will always be misdirected to the Asterisk box.

Try turning off re-invites for everything. Your Asterisk box may have to do a lot more work, but at least you’d have a definate path for an external peer.

This configuration will limit you to only one “outside peer to inside peer” call at a time.

I have modified the user settings as follows: canreinvite=no
but still no audio in either direction.

The external user in on extension 5489
I’ve noticed the following error in the logs on AsteriskNow when making/receiving a call from this user:

[Oct 28 19:27:59] WARNING[13657] app.c: No audio available on SIP/5489-082fd2f8??

The phone rings but no audio after the call is answered.

AsteriskNow sitting behind a router.

I can make and receive calls internally, and through SIP provider configured on asterisknow. But no audio on incoming/out going calls to and from the external user.

Could this be something to do with NAT???

Yes. It does have to do with NAT.

SIP packets include the IP address of the object that creates the INVITE request. It’s more than just the IP header, it’s part of the packet payload.

You have to have clients or other objects that support NAT, and can put a fake IP address into the SIP INVITE message.

The easiest way to fix this problem is to use a STUN server.

Thanks, you’ve been very helpful.
I will update when I’ve made any progress on this.

UPDATE

As I’m new to Linux and VoIP and don’t know what it involves to install, configure/setup a stun server and haven’t got much time to research, on realizing its got to do with NAT and the fact that the external users are on a separate network I decided to implement VPN as a temporary solution to the problem and it’s worked.

Connecting the phone (externally) is therefore a two stage process;

  1. Establish VPN connection
  2. Register phone.

It helps to disable encryption as that eats up bandwidth, resulting in poor voice quality.

All advice welcome.
Thanks

Wireshark can help you see where your RTP, SIP packets are going

Try this