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@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@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


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
              http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to