We are currently using asterisk version 13.14.0 with a freepbx implementation and are keenly interested in QoS. The following are our configs
extensions_custom.conf
[macro-hangupcall-custom]
; start of QoS reporting
exten => s,1,NoOp(Start QoS)
exten => s,n,NoOp(Local Stream ID: ${CHANNEL(rtpqos,audio,local_ssrc)})
exten => s,n,NoOp(Remote Stream ID: ${CHANNEL(rtpqos,audio,remote_ssrc)})
exten => s,n,NoOp(Packets Sent: ${CHANNEL(rtpqos,audio,txcount)})
exten => s,n,NoOp(Packets Received: ${CHANNEL(rtpqos,audio,rxcount)})
exten => s,n,NoOp(Local RX Packet Loss Max: ${CHANNEL(rtpqos,audio,local_maxrxploss)})
exten => s,n,NoOp(Local RX Packet Loss Min: ${CHANNEL(rtpqos,audio,local_minrxploss)})
exten => s,n,NoOp(Local RX Packet Loss: ${CHANNEL(rtpqos,audio,rxploss)})
exten => s,n,NoOp(Local RX Packet Loss Norm Dev: ${CHANNEL(rtpqos,audio,local_normdevrxploss)})
exten => s,n,NoOp(Local RX Packet Loss Std Dev: ${CHANNEL(rtpqos,audio,local_stdevrxploss)})
exten => s,n,NoOp(Local TX Packet Loss: ${CHANNEL(rtpqos,audio,txploss)})
exten => s,n,NoOp(Remote RX Packet Loss Max: ${CHANNEL(rtpqos,audio,remote_maxrxploss)})
exten => s,n,NoOp(Remote RX Packet Loss Min: ${CHANNEL(rtpqos,audio,remote_minrxploss)})
exten => s,n,NoOp(Remote RX Packet Loss Norm Deviation: ${CHANNEL(rtpqos,audio,remote_normdevrxploss)})
exten => s,n,NoOp(Remote RX Packet Loss Std Deviation: ${CHANNEL(rtpqos,audio,remote_stdevrxploss)})
exten => s,n,NoOp(Round Trip Time: ${CHANNEL(rtpqos,audio,rtt)})
exten => s,n,NoOp(Round Trip Time Max: ${CHANNEL(rtpqos,audio,maxrtt)})
exten => s,n,NoOp(Round Trip Time Min: ${CHANNEL(rtpqos,audio,minrtt)})
exten => s,n,NoOp(Round Trip Time Norm Dev: ${CHANNEL(rtpqos,audio,normdevrtt)})
exten => s,n,NoOp(Round Trip Time Std Dev: ${CHANNEL(rtpqos,audio,stdevrtt)})
exten => s,n,NoOp(Local RX Jitter: ${CHANNEL(rtpqos,audio,rxjitter)})
exten => s,n,NoOp(Local TX Jitter: ${CHANNEL(rtpqos,audio,txjitter)})
exten => s,n,NoOp(Local Jitter Max: ${CHANNEL(rtpqos,audio,local_maxjitter)})
exten => s,n,NoOp(Local Jitter Min: ${CHANNEL(rtpqos,audio,local_minjitter)})
exten => s,n,NoOp(Local Jitter Norm Dev: ${CHANNEL(rtpqos,audio,local_normdevjitter)})
exten => s,n,NoOp(Local Jitter Std Dev: ${CHANNEL(rtpqos,audio,local_stdevjitter)})
exten => s,n,NoOp(Remote Jitter Max: ${CHANNEL(rtpqos,audio,remote_maxjitter)})
exten => s,n,NoOp(Remote Jitter Min: ${CHANNEL(rtpqos,audio,remote_minjitter)})
exten => s,n,NoOp(Remote Jitter Norm Dev: ${CHANNEL(rtpqos,audio,remote_normdevjitter)})
exten => s,n,NoOp(Remote Jitter Std Dev: ${CHANNEL(rtpqos,audio,remote_stdevjitter)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Packets Sent: ${CHANNEL(rtpqos,audio,txcount)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Packets Received: ${CHANNEL(rtpqos,audio,rxcount)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local RX Packet Loss: ${CHANNEL(rtpqos,audio,rxploss)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local TX Packet Loss: ${CHANNEL(rtpqos,audio,txploss)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local RX Jitter: ${CHANNEL(rtpqos,audio,rxjitter)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local TX Jitter: ${CHANNEL(rtpqos,audio,txjitter)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local Jitter Max: ${CHANNEL(rtpqos,audio,local_maxjitter)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local Jitter Min: ${CHANNEL(rtpqos,audio,local_minjitter)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local Jitter Norm Dev: ${CHANNEL(rtpqos,audio,local_normdevjitter)})
exten => s,n,Set(CDR(userfield)=${CDR(userfield)} Local Jitter Std Dev: ${CHANNEL(rtpqos,audio,local_stdevjitter)})
exten => s,n(continue),NoOp(End of QoS)
We are able to get QoS stats on “from-trunk” context but are not able to get from any other dial plan.
We get the following errors on asterisk full log
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,txcount’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:31] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,rxcount’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:32] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,rxploss’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:33] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,txploss’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:34] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,rxjitter’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:35] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: Local RX Jitter: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,txjitter’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:36] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: Local RX Jitter: Local TX Jitter: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,local_maxjitter’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:37] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: Local RX Jitter: Local TX Jitter: Local Jitter Max: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,local_minjitter’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:38] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: Local RX Jitter: Local TX Jitter: Local Jitter Max: Local Jitter Min: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,local_normdevjitter’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:39] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: Local RX Jitter: Local TX Jitter: Local Jitter Max: Local Jitter Min: Local Jitter Norm Dev: ") in new stack
[2017-04-12 23:26:41] WARNING[17049][C-00000006] func_channel.c: Unknown or unavailable item requested: ‘rtpqos,audio,local_stdevjitter’
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:40] Set(“PJSIP/1001-00000006”, "CDR(userfield)= Packets Sent: Packets Received: Local RX Packet Loss: Local TX Packet Loss: Local RX Jitter: Local TX Jitter: Local Jitter Max: Local Jitter Min: Local Jitter Norm Dev: Local Jitter Std Dev: ") in new stack
[2017-04-12 23:26:41] VERBOSE[17049][C-00000006] pbx.c: Executing [s@macro-hangupcall-custom:41] NoOp(“PJSIP/1001-00000006”, “End of QoS”) in new stack
Kindly assist.