Applicability
- Firmware version: 30.11.0.28 or above
- Model: S-Series PBX, K2, P-Series
- Call incoming then forward via SIP trunk to an external number.
Problem Description
Everything works like a charm in S20 before upgrading to 30.11.0.28 from 30.10.0.59.
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.
Analysis
When it comes to the 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.
Solutions
Choose either one according to your environment:
1. Enable the RTP Keep-alive option for the SIP trunk used to forward the call.
Note that the PBX firmware should be X.14.0.127.
For P-series, Check the similar option.
2. If you don't want to upgrade the PBX firmware. Try this solution instead.
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
[endpoint-basic](!)
rtp_keepalive=1
Save the file.
3) Input 2 commands to let the change take effect.
astconfig
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
2 Comments