Yealink Forums

Full Version: [SOLVED] T46G Codec autoprovisioning issue (V72)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi there,

Just found something weired on the T46 on firmware v72 :

I need to use PCMA so here's what i use in my MAC.cfg file :
Code:
################################################################################​#######
##                            Audio Codec                                            ##      
################################################################################​#######
###T19D/T21D support codec1~codec8
###T20P/T22P/T26P/T28P support codec1~codec11
###T41P/T42G/T46G support codec1~codec12

account.1.codec.1.enable = 1
account.1.codec.1.payload_type = PCMA
account.1.codec.1.priority = 1
account.1.codec.1.rtpmap = 0

account.1.codec.2.enable = 0
account.1.codec.2.payload_type = PCMU
account.1.codec.2.priority = 2
account.1.codec.2.rtpmap = 8

account.1.codec.3.enable = 0
account.1.codec.3.payload_type = G723_53
account.1.codec.3.priority =4
account.1.codec.3.rtpmap = 4

account.1.codec.4.enable = 0
account.1.codec.4.payload_type = G723_63
account.1.codec.4.priority = 0
account.1.codec.4.rtpmap = 4

account.1.codec.5.enable = 0
account.1.codec.5.payload_type = G729
account.1.codec.5.priority = 3
account.1.codec.5.rtpmap = 18

account.1.codec.6.enable = 0
account.1.codec.6.payload_type = G722
account.1.codec.6.priority = 4
account.1.codec.6.rtpmap = 9

account.1.codec.7.enable = 0
account.1.codec.7.payload_type =
account.1.codec.7.priority =  
account.1.codec.7.rtpmap =

account.1.codec.8.enable = 0
account.1.codec.8.payload_type = G726-16
account.1.codec.8.priority = 0
account.1.codec.8.rtpmap = 112

account.1.codec.9.enable = 0
account.1.codec.9.payload_type = G726-24
account.1.codec.9.priority = 0
account.1.codec.9.rtpmap = 102

account.1.codec.10.enable = 0
account.1.codec.10.payload_type = G726-32
account.1.codec.10.priority = 0
account.1.codec.10.rtpmap = 2

account.1.codec.11.enable = 0
account.1.codec.11.payload_type = G726-40
account.1.codec.11.priority = 0
account.1.codec.11.rtpmap = 104

account.1.codec.12.enable = 0
account.1.codec.12.payload_type = iLBC_13_3
account.1.codec.12.priority = 0
account.1.codec.12.rtpmap = 97

account.1.codec.13.enable = 0
account.1.codec.13.payload_type = iLBC_15_2
account.1.codec.13.priority = 0
account.1.codec.13.rtpmap = 97
################################################################################​#######

Result : Awefull sound when just dialing voicemail (as exemple).

Using a network (IPBX side) trace, here is what i get :
Code:
INVITE sip:*60@192.168.1.246:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.92:5062;branch=z9hG4bK1353856940
From: "419" <sip:419@192.168.1.246>;tag=199176232
To: <sip:*60@192.168.1.246>
Call-ID: 2127301607@192.168.1.92
CSeq: 2 INVITE
Contact: <sip:419@192.168.1.92:5062>
Authorization: Digest username="419", realm="asterisk", nonce="2d633256", uri="sip:*60@192.168.1.246:5060", response="8163f15b12070b9549d2d31028841c3a", algorithm=MD5
Content-Type: application/sdp
Allow: INVITE, INFO, PRACK, ACK, BYE, CANCEL, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE, REFER, PUBLISH, UPDATE, MESSAGE
Max-Forwards: 70
User-Agent: Yealink SIP-T46G 28.72.0.1
Supported: replaces
Allow-Events: talk,hold,conference,refer,check-sync
Content-Length: 211

v=0
o=- 20002 20002 IN IP4 192.168.1.92
s=SDP data
c=IN IP4 192.168.1.92
t=0 0
m=audio 11784 RTP/AVP 0 101
a=rtpmap:0 PCMA/8000
a=fmtp:101 0-15
a=rtpmap:101 telephone-event/8000
a=ptime:20
a=sendrecv

So the call is well negociated with PCMA payload but :
The following RTP is encoded with PCMU :

Code:
No.     Time            Source                Destination           Protocol Length Info
      8 17:15:09.544816 192.168.1.92          192.168.1.246         RTP      214    PT=ITU-T G.711 PCMU, SSRC=0x35391DDD, Seq=0, Time=2728394802, Mark

Frame 8: 214 bytes on wire (1712 bits), 214 bytes captured (1712 bits)
Ethernet II, Src: XiamenYe_64:69:50 (00:15:65:64:69:50), Dst: Pegatron_61:17:8d (38:60:77:61:17:8d)
Internet Protocol Version 4, Src: 192.168.1.92 (192.168.1.92), Dst: 192.168.1.246 (192.168.1.246)
User Datagram Protocol, Src Port: 11784 (11784), Dst Port: 12204 (12204)
Real-Time Transport Protocol
    [Stream setup by SDP (frame 6)]
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    1... .... = Marker: True
    Payload type: ITU-T G.711 PCMU (0)
    Sequence number: 0
    [Extended sequence number: 65536]
    Timestamp: 2728394802
    Synchronization Source identifier: 0x35391ddd (892935645)
    Payload: ffffffffffffffffffffffffffffffffffffffff7fffffff...

I was able to "solve" the issue by keeping the default (yealink provided) config in MAC.CFG.

Note that when the codecs settings are made from the web UI everything seems ok.

You will find the MAC.cfg + pcap file in attachement.

Regards,

./Kriss
The problem is that the rtpmap is being set to 0, which causes it to misbehave. Here is the solution posted by yealink support, when I had a similar problem. Start off with this in your config (notice: the rtp maps cannot be changed).

Code:
account.1.codec.1.enable = 1
account.1.codec.1.payload_type = PCMU
account.1.codec.1.priority = 1
account.1.codec.1.rtpmap = 0

account.1.codec.2.enable = 0
account.1.codec.2.payload_type = PCMA
account.1.codec.2.priority = 2
account.1.codec.2.rtpmap = 8

account.1.codec.3.enable = 0
account.1.codec.3.payload_type = G723_53
account.1.codec.3.priority =0
account.1.codec.3.rtpmap = 4

account.1.codec.4.enable = 0
account.1.codec.4.payload_type = G723_63
account.1.codec.4.priority = 0
account.1.codec.4.rtpmap = 4

account.1.codec.5.enable = 0
account.1.codec.5.payload_type = G729
account.1.codec.5.priority = 3
account.1.codec.5.rtpmap = 18

account.1.codec.6.enable = 1
account.1.codec.6.payload_type = G722
account.1.codec.6.priority = 4
account.1.codec.6.rtpmap = 9

account.1.codec.7.enable = 0
account.1.codec.7.payload_type = iLBC
account.1.codec.7.priority = 0
account.1.codec.7.rtpmap = 106

account.1.codec.8.enable = 0
account.1.codec.8.payload_type = G726-16
account.1.codec.8.priority = 0
account.1.codec.8.rtpmap = 103

account.1.codec.9.enable = 0
account.1.codec.9.payload_type = G726-24
account.1.codec.9.priority = 0
account.1.codec.9.rtpmap = 104

account.1.codec.10.enable = 0
account.1.codec.10.payload_type = G726-32
account.1.codec.10.priority = 0
account.1.codec.10.rtpmap = 102

account.1.codec.11.enable = 0
account.1.codec.11.payload_type = G726-40
account.1.codec.11.priority = 0
account.1.codec.11.rtpmap = 105

account.1.codec.12.enable = 0
account.1.codec.12.payload_type = GSM
account.1.codec.12.priority = 0
account.1.codec.12.rtpmap = 3

Enable and Disable codecs as you please, and change their priority by changing the priority field. However, you can't change payload_type or rtpmap...
Hi nicknomo,

Good to know... if i can say so.
Thanks for sharing this explanation by the way.
Hope that will help other people too... Wink

./Kriss
(05-23-2014 02:20 PM)Kriss Wrote: [ -> ]Hi nicknomo,

Good to know... if i can say so.
Thanks for sharing this explanation by the way.
Hope that will help other people too... Wink

./Kriss

Glad it helped!
Reference URL's