FreePBX 16.0.10.34,或者直接Asterisk 11/16/18.6.0 都是一样的,所有使用一些SIP 电话的人都遇到了奇怪的音频问题,即语音音量不断变化,另一种方式是金属声音ecc。
Audio Codec: G711 or G729
Dial echo test > record pcap
Wireshark > Voip > show call graph and get out of sequence notation
...........Receive......... .........Transmit..........
BridgeId ChannelId ........ UpTime.. Codec. Count Lost Pct Jitter Count Lost Pct Jitter RTT....
===========================================================================================================
105-0000013e 00:00:25 g729 1258 589K 46884 0.000 1242 0 0 0.003 0.006
电话制造商只是获取数据包日志并消失,我该如何调试这些问题?
尝试使用 ptime 20 强制编解码器 G711,将 JITTERBUFFER 添加到回显测试上下文中:
[app-echo-test]
include => app-echo-test-custom
exten => *43,1,Set(CONNECTEDLINE(name-charset,i)=utf8)
exten => *43,n,Set(CONNECTEDLINE(name,i)=Test Eco)
exten => *43,n,Set(CONNECTEDLINE(num,i)=*43)
exten => *43,n,Answer
exten => *43,n,Set(JITTERBUFFER(adaptive)=default)
exten => *43,n,Macro(user-callerid,)
exten => *43,n,Wait(1)
exten => *43,n,Background(demo-echotest,,,app-echo-test-echo)
exten => *43,n,Goto(app-echo-test-echo,1,1)
;--== end of [app-echo-test] ==--;
似乎使用它但没有结果:
sing SIP RTP Video TOS bits 136 in TCLASS field. == Using SIP RTP Video CoS mark 4
-- Executing [*43@from-internal:1] Set("PJSIP/101-00000143", "CONNECTEDLINE(name-charset,i)=utf8") in new stack
-- Executing [*43@from-internal:2] Set("PJSIP/101-00000143", "CONNECTEDLINE(name,i)=Test Eco") in new stack
-- Executing [*43@from-internal:3] Set("PJSIP/101-00000143", "CONNECTEDLINE(num,i)=*43") in new stack
-- Executing [*43@from-internal:4] Answer("PJSIP/101-00000143", "") in new stack
> 0x7fc0940e4a80 -- Strict RTP learning after remote address set to: 10.7.208.157:50248
> 0x7fc0941034e0 -- Strict RTP learning after remote address set to: 10.7.208.157:50246
> 0x7fc0940e4a80 -- Strict RTP qualifying stream type: audio
> 0x7fc0940e4a80 -- Strict RTP switching source address to 10.168.5.201:39519
-- Executing [*43@from-internal:5] Set("PJSIP/101-00000143", "JITTERBUFFER(adaptive)=default") in new stack
-- Executing [*43@from-internal:6] Macro("PJSIP/101-00000143", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("PJSIP/101-00000143", "TOUCH_MONITOR=1636707571.457") in new stack
-- Executing [s@macro-user-callerid:2] Set("PJSIP/101-00000143", "AMPUSER=101") in new stack
-- Executing [s@macro-user-callerid:3] Set("PJSIP/101-00000143", "HOTDESCKCHAN=101-00000143") in new stack
-- Executing [s@macro-user-callerid:4] Set("PJSIP/101-00000143", "HOTDESKEXTEN=101") in new stack
-- Executing [s@macro-user-callerid:5] Set("PJSIP/101-00000143", "HOTDESKCALL=0") in new stack
-- Executing [s@macro-user-callerid:6] ExecIf("PJSIP/101-00000143", "0?Set(HOTDESKCALL=1)") in new stack
-- Executing [s@macro-user-callerid:7] ExecIf("PJSIP/101-00000143", "0?Set(CALLERID(name)=)") in new stack
-- Executing [s@macro-user-callerid:8] GotoI sing SIP RTP Video TOS bits 136 in TCLASS field. == Using SIP RTP Video CoS mark 4
-- Executing [*43@from-internal:1] Set("PJSIP/101-00000143", "CONNECTEDLINE(name-charset,i)=utf8") in new stack
-- Executing [*43@from-internal:2] Set("PJSIP/101-00000143", "CONNECTEDLINE(name,i)=Test Eco") in new stack
-- Executing [*43@from-internal:3] Set("PJSIP/101-00000143", "CONNECTEDLINE(num,i)=*43") in new stack
-- Executing [*43@from-internal:4] Answer("PJSIP/101-00000143", "") in new stack
> 0x7fc0940e4a80 -- Strict RTP learning after remote address set to: 10.7.208.157:50248
> 0x7fc0941034e0 -- Strict RTP learning after remote address set to: 10.7.208.157:50246
> 0x7fc0940e4a80 -- Strict RTP qualifying stream type: audio
> 0x7fc0940e4a80 -- Strict RTP switching source address to 10.168.5.201:39519
-- Executing [*43@from-internal:5] Set("PJSIP/101-00000143", "JITTERBUFFER(adaptive)=default") in new stack
-- Executing [*43@from-internal:6] Macro("PJSIP/101-00000143", "user-callerid,") in new stack
-- Executing [s@macro-user-callerid:1] Set("PJSIP/101-00000143", "TOUCH_MONITOR=1636707571.457") in new stack
-- Executing [s@macro-user-callerid:2] Set("PJSIP/101-00000143", "AMPUSER=101") in new stack
-- Executing [s@macro-user-callerid:3] Set("PJSIP/101-00000143", "HOTDESCKCHAN=101-00000143") in new stack
-- Executing [s@macro-user-callerid:4] Set("PJSIP/101-00000143", "HOTDESKEXTEN=101") in new stack
-- Executing [s@macro-user-callerid:5] Set("PJSIP/101-00000143", "HOTDESKCALL=0") in new stack
更改了 PBX Asterisk 16.13.0(相同的物理电话)但相同的行为:
...........Receive......... .........Transmit..........
BridgeId ChannelId ........ UpTime.. Codec. Count Lost Pct Jitter Count Lost Pct Jitter RTT....
===========================================================================================================
101-00000144 00:00:34 ulaw 1744 917K 52608 0.000 1727 0 0 0.003 0.006
检查所有设备上的 ptime 是否相等!