- Firmware version: 18.104.22.168 or above
- Model: S-Series PBX
- Call incoming then forwarding via SIP trunk to an external number.
Everything works like a charm in S20 before upgrading to 22.214.171.124 from 126.96.36.199.
But voice issue occurs after the upgrade when calling from an external number to the mobile number of the mobility extension.
Call flow example:
Calling party A ----- Inbound -----> PBX Forward the call ---- Outbound ----> Called party B.
When it comes to 188.8.131.52's PCAP log, an RTP(CN) is sent in the beginning by S20 to get through the communication channel of the call. This is for "pin-hole" and activates the temporary NAT session of the router so that the RTP from the provider can be sent to S20. Therefore S20 and port forwarding of the router is not required.
Nevertheless, this RTP(CN) mechanism is not compatible with all SIP providers, which had caused voice issues between S-Series and some SIP providers before. In the newest version, the RTP(CN) will be sent only when LCS (Linkus Cloud Service) is used to avoid compatibility issues. Without the RTP(CN), it is not able to activate the NAT session which leads to the no voice issue in this case.
However, this solution might be not easy for the dynamic public IP address. As you would need to configure the DDNS as well.
2. The other solution would be easier. It is to enable the Inband Progress in the SIP trunk advanced tab.
How this would work?
- Firstly, the option Inband Progress would generate RTP when the mobility extension party returns 180 Ringing packet. S20 will send the RTP marked as 1 for "pin-hole" in the picture to activate the NAT session between the caller and S20.
- Then the RTP marked as 2 from the caller can come back to S20 successfully.
- What's more, RTP marked as 2 will be passed to the called mobile number of the mobility extension via RTP marked as 3. RTP 3 would activate the NAT session between the S20 and called number.
- Finally, RTP marked as 4 would be able to return to S20. All communication is good in this call.
Choose either one according to your environment:
1. Make port mapping for the PBX RTP port(UDP) range on your router. The external port range should be symmetric as the PBX port range. For example, the default RTP port range is 10000-12000.
2. Enable the Inband Progress of the SIP trunk which is used for forwarding the incoming call.
3. Enable the RTP Keepalive option to overcome the "pinhole" difficulty.
1) Create pjsip_custom.conf in the /ysdisk/support/customcfg/ via SSH
2) Fill in the content in pjsip_custom.conf
Save the file.
3) Input 2 commands to let the change take effect.
asterisk -rx "module reload"
Then test again.
Or you could refer to this video to learn how to enable it: Customize RTP Keepalive Option in PBX