Stewart Nelson
2014-May-12 08:26 UTC
[asterisk-users] new install: no re-invite and unwanted transcoding
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 callgrouppickupgroupallow=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
James Thomas
2014-May-14 14:52 UTC
[asterisk-users] new install: no re-invite and unwanted transcoding
I can't help on the first issue, but for the second have you tried doing Set(${SIP_CODEC}=ulaw) before dialing the trunk? I'm in a similar situation where we have g722 internally but our trunk provider only offers ulaw so I see g722->slin->ulaw transcoding. I'm thinking of trying it here (on 1.8.14.1) to troubleshoot our occasional outbound issues. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20140514/d6f829cd/attachment.html>