I’m quite new to this FreePBX/Asterisk, trying to set up a SIP call using a softphone on my Laptop.
Flow - Softphone -> Internet -> PBX on Azure -> Provider
While making an outbound call, Invite messages (with SDP) are acknowledged by the PBX with 200OK(SDP), the the provider end is sending RTP requests, but FreePBX doesn’t send any RTP.
Can you please help.
Azure Setup :
eth0 : Management IP (172.6.X.X)
eth1 : Signalling ( 10.20.Y.Y)
eth1.Public : 20.20.Z.Z (Created post installation as there was no public IP assigned by Azure for this VM)
Asterisk SIP Settings ( NAT Settings)
External Address : 20.20.Z.Z
Local Address : 10.20.Y.Y
172.6.X.X
RTP Port Range : 10000-12000
Chan_PJSIP Settings : UDP Enabled for both 20.20.Z.Z & 10.20.Y.Y for ports 5060
What does the provider SDP contain? Where are you monitoring RTP inbound to Asterisk from your end? Where are you monitoring RTP outbound to the provider?
The RTP might not be arriving at Asterisk, as tcpdump captures before the the Linux firewall, so please use “rtp set debug on” at the Asterisk CLI, to see if the RTP is actually arriving (and if it is being forwarded.
Is there a valid route to 10.20.P.A?
I notice you are offering G.729. Is G279 being used in your network and do you have enough codec licences to cover the transcoding to the provider’s µ-Law?
Also you SDP is an interpretation of the SDP, not the actual SDP, although I don’t think any information is missing.
RTP Packets :
CLI> rtp set debug on
RTP Packet Debugging Enabled
== Setting global variable ‘SIPDOMAIN’ to ‘20.20.Z.Z’
== Using SIP RTP Audio TOS bits 184
== Using SIP RTP Audio CoS mark 5
-- Executing [004411XXXXXXX@from-pstn1:1] Set("PJSIP/4422YYYYY-00000016", "CALLERID(num)=+4422YYYYY") in new stack
-- Executing [004411XXXXXXX@from-pstn1:2] Dial("PJSIP/4422YYYYY-00000016", "PJSIP/TRUNK1/sip:[email protected]:5060") in new stack
-- Called PJSIP/TRUNK1/sip:[email protected]:5060
-- PJSIP/TRUNK1-00000017 is ringing
-- PJSIP/TRUNK1-00000017 is ringing
-- PJSIP/TRUNK1-00000017 answered PJSIP/4422YYYYY-00000016
> 0x7f33d800d2e0 -- Strict RTP learning after remote address set to: 10.25.P.A:36208
> 0x7f33d8046450 -- Strict RTP learning after remote address set to: 106.B.B.B:12750
-- Channel PJSIP/TRUNK1-00000017 joined 'simple_bridge' basic-bridge <aa4495eb-0229-4475-985f-eff9dee7e599>
-- Channel PJSIP/4422YYYYY-00000016 joined 'simple_bridge' basic-bridge <aa4495eb-0229-4475-985f-eff9dee7e599>
-- Channel PJSIP/4422YYYYY-00000016 left 'simple_bridge' basic-bridge <aa4495eb-0229-4475-985f-eff9dee7e599>
== Spawn extension (from-pstn1, 004411XXXXXXX, 2) exited non-zero on ‘PJSIP/4422YYYYY-00000016’
– Channel PJSIP/TRUNK1-00000017 left ‘simple_bridge’ basic-bridge
Yes there is a valid route to 10.20.P.A.
Note: 106.B.B.B is my laptop’s public IP.
Currently offering both G729 & mu-law, but we can just offer Code mu-law to get this working.
You don’t seem to have any RTP reaching Asterisk from either side. If you are seeing it on tcpdump, check that that you don’t have a firewall rule against it and check that is is addressed to the port that Asteirsk sent towards your side, in its SDP.
Some ISPs seem to provide SIP service over private addresses, which is why I didn’t challenge this. On the other hand, I did wonder why they bothered to obfuscate network 10 addresses.