I am unable to get re-invite to work on a new system. Also, unwanted transcoding is occurring on PSTN calls.
The new system (FreePBX 2.11.0.37, Asterisk 11.9.0, CentOS 6.5) will eventually replace an old system (FreePBX 2.8.1, Asterisk 1.8.7.2, CentOS 5.8) currently in production. Both systems are on VPS with public IP addresses. Goals for the new system include: HD (g722) connections on internal calls, Asterisk only proxies audio when necessary, no unwanted transcoding.
For initial testing, I’ve set up two Yealink T26P extensions and one Localphone trunk. Internal and external calls work, except for the problems above. The extensions are behind a NAT, but are set up with STUN, unique SIP and RTP ports, and proper forwarding. The router handles hairpin connections properly. When registered to the old system, calls between the test extensions re-invite correctly. On the new system, no re-invites are attempted and I see nothing logged to indicate why. There is also no re-invite on inbound or outbound trunk calls, or on a trunk-to-trunk call (tested by setting follow-me to an external number).
The extensions are coded with:
Asterisk Dial Options: r
canreinvite: Yes
nat: No - RFC3581
disallow: all
allow: g722&ulaw&alaw
Recording Options (all): Never
The trunk (both PEER and USER Details) has:
canreinvite=yes
In Advanced Settings -> Device Settings I have:
SIP canrenivite (directmedia): Yes
In Asterisk SIP Settings I have:
NAT: No
IP Configuration: Public IP
Codecs: ulaw, alaw
Reinvite Behavior: Yes
Other settings are defaults, except for a non-standard bindport.
On outbound PSTN calls, Asterisk is accepting the phone’s first codec (g722), speaking ulaw on the trunk side and transcoding, resulting in degraded quality. Incoming calls escape this problem; Asterisk offers ulaw/g722/alaw, the phone accepts the first (ulaw) and no transcoding occurs. How can I tell Asterisk to prefer ulaw over g722, when it would otherwise need to transcode? (The transcoding issue also affected the old system, but I just gave up on HD and disabled g722 on the phones.)
Any advice will be gratefully appreciated.
Thanks,
Stewart