Microsoft has recently gone GA with Teams Direct Routing. Direct Routing is what allows customers that run Microsoft Teams and would like to add PSTN calling capabilities with existing on-premises SIP Trunks.
In a recent implementation of Teams Direct Routing, my customer was experiencing one way audio for inbound calls from the PSTN. In this case the Teams user receiving the call could not hear any audio from the PSTN caller.
In this particular scenario, the customer was piloting Teams Direct Routing with a new certified AudioCodes Mediant 4000 SBC.
In looking at the call traces, we noticed the following outbound messages from the AudioCodes Teams SBC being sent to the Microsoft SIP Proxies within Office 365. This :
v=0
o=root 96234016 679901658 IN IP4 10.1.192.25
s=Acme123 SIP
c=IN IP4 10.1.192.25
t=0 0
m=audio 16220 RTP/SAVP 0 76 77 8 18 101
I’ve highlighted the line of interest above. This is the SIP Connection Information that the customer SBC is replying to the inbound PSTN invite with. This may seem normal enough except that the address is a Private Class A address which is not routable on the internet. In this deployment the on premises customer SBC was deployed behind a firewall using a non publicly routable IP address.
The Fix
When you deploy SBC’s behind a firewall, this is referred to as a ‘NATed’ connection. When you do this with an SBC (and many other proxy devices) you need to configure the device to advertise this fact when negotiating connections with other devices. In the case of AudioCodes this is done at the following location:
On the Web Administration main page navigate to:
IP Network / Core Entities / NAT Translation
In the case of my customer, they did not have anything defined which meant the SBC would simply provide the IP address of the interface the Invite was coming into. This will obviously not work for media traffic flowing from the PSTN caller to the Teams user. To rectify this problem we need to tell the SBC to use the Public IP when negotiating media.
Adding the Target IP Address on the AudioCodes Mediant SBC
In the AudioCodes world when NAT is used you need to configure a ‘Target IP Address” within the Network Translation settings in the configuration. Navigate to IP Network / Core Entities / NAT Translation and click on New. You will need to select the source interface for which the SBC talks with the Microsoft SIP Proxies. Enter the Public IP that is dedicated to your SBC. The default media should be acceptable. Ensure they fall between 1024 and 65535.
Save the configuration and re-test an inbound call while tracing it. Look to see that the c=IN IP4 line within the invite now contains the Public IP of your SBC. You should have two way audio now.
For more information on Direct Routing please start here –> https://docs.microsoft.com/en-us/MicrosoftTeams/direct-routing-plan