[asterisk-users] new install: no re-invite and unwanted transcoding

Stewart Nelson lists at heyitsmail.com
Mon May 12 03:26:18 CDT 2014


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. Re-invite also fails on inbound and outbound trunk calls, and on 
trunk-to-trunk calls (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.

An entry from sip_additional.conf, as generated by FreePBX:

[1001]
deny=0.0.0.0/0.0.0.0
disallow=all
secret=password
dtmfmode=rfc2833
canreinvite=yes
context=from-internal
host=dynamic
trustrpid=yes
sendrpid=pai
type=friend
nat=no
port=5060
qualify=yes
qualifyfreq=60
transport=udp
avpf=no
icesupport=no
encryption=no
callgroup=
pickupgroup=
allow=g722
allow=ulaw
allow=alaw
dial=SIP/1001
mailbox=1001 at device
permit=0.0.0.0/0.0.0.0
callerid=John Doe <1001>
callcounter=yes
faxdetect=no
cc_monitor_policy=generic

The dial command produced by FreePBX also looks reasonable:
   -- Executing [s at macro-dial-one:43] Dial("SIP/1002-0000007e", 
"SIP/1001,,rI") in new stack

A second issue is that on outbound PSTN calls, Asterisk is accepting the 
phone's first-preference 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 affects the old system, but I gave up debugging 
it and just disabled g722 on the phones.)

Any advice will be gratefully appreciated.

Thanks,

Stewart




More information about the asterisk-users mailing list