テレフォニー管理者ツールとしてのRTCP

テレフォニーの組織に関与していたすべての人は、「悪い接続!」というフレーズに出会いました。 そして、「接続不良」とは何ですか? 一方では、これは主観的なパラメーターであり、他方では、これらは非常に具体的な数値です。 「労働」ではないため、ユーザーの主観的な評価に依存しません。 コミュニケーションの質を非常に具体的な数値で評価してみましょう。



画像






それで、結局のところ、すべてがすでに私たちのために考えられていたので、私たちは自分の手で楽器を取り、それを自分自身に適応させる必要があります。 11より古いバージョンのAsteriskと、少しプログラミングする機能が必要です。 Wikiクイックリファレンス:



RTCP(リアルタイムトランスポートコントロールプロトコル)は、RTPとともに使用されるプロトコルです。 プロトコルは、RFC 3550 [1]で説明されています。 RTCPは、データパケットと同じ配信メカニズムを使用して、セッションのすべての参加者への制御パケットの定期的な送信に基づいています。



RTCPプロトコルは、メディアパケットの遅延と損失、ジッタバッファ、音声信号レベルに関する情報を送信するために使用されます。 コール品質メトリックとエコーリターンロスも送信されます。


バージョン11以降、AMIを介したアスタリスクは、イベントRTCPReceivedおよびRTCPSentを送信します。 私たちにとって最も興味深いのはRTCPReceivedです。なぜなら、それは私たちにとって重要な情報を運ぶからです。



次のようになります。



イベント:RTCPReceived

特権:レポート、すべて

シーケンス番号:23177

ファイル:manager.c

行:1696

func:manager_default_msg_cb

チャンネル:SIP / MainAsterisk-0000113f

チャンネル状態:6

channelstatedesc:アップ

calleridnum:79914099

calleridname:RC

connectedlinenum:不明

connectedlinename:不明

言語:ru

コンテキスト:TO_REGION

拡張:680000130

優先度:1

uniqueid:1481711487.11714

linkedid:1481711487.11714

宛先:アスタリスクアドレス:12611

from:ごちそうアドレス:14555

rtt:0.0272

ssrc:0x73f52b22

pt:200(SR)

レポート数:1

sentntp:1481712636.17532474232832

sentrtp:9159680

送信済みパケット:57246

セントオクテット:9159360

report0sourcessrc:0x3098e4b3

report0fractionlost:0

report0cumulativelost:0

report0highestsequence:7177

report0sequencenumbercycles:1

report0iajitter:3

report0lsr:2726085614

report0dlsr:0.0590



私たちにとって興味深いフィールド:



チャネル-関連するチャネルの名前

from-リモートピアIP

rtt-「遅延」、またはむしろ循環遅延

sentpackets-送信されたパケットの数

sentoctets-送信されたバイト数

report0cumulativelost-セッションの開始以降に失われたパケットの数


RTCPパケットの流通スキーム:



画像



Rファクターライト



もちろん、チャンネルの最終的な品質を%として取得することは興味深いことです。 これには2つのオプションがあります。



RファクターとMOS。 ここをよく見てください



もちろん、それらを確実に計算することはできませんが、ライトバージョンを作成することはできます。



一般的な計算アルゴリズムは次のようになります。



-すべての肩の最大遅延(RTT)を考慮し、可聴性の問題が1000ミリ秒で始まるという公理と考えます。

-損失の割合(最大)を考慮し、40パーセントでは通信の品質が許容できないという公理と見なします。



合計すると、Rファクターの計算は次のようになります。



R = 100-(MaxRTT / 10 + 2 * MaxLostPackets)



評価:



80-100%-良い音質

60〜79%-満足

<60%-音質はひどい



適用先



現時点では、これで「遊んで」います。 視覚的評価プログラムが作成されました。

さらに、各コールについて自動的に計算し、CDRに追加フィールドを配置する計画があります。これにより、特定のコールの品質だけでなく、期間に関する一般的な方向も評価できます。



プログラムへのリンク

アスタリスク13が新しいバージョンで動作するかどうかがチェックされます-わかりません。



UPD:



計算値をCDRに入れる方法は?



実際、すべてが見た目よりも単純です。 スクリプトまたはプログラムをデータベースと統合し、更新する必要はありません。 Rファクターを計算するたびに、同じAMIインターフェイスを介してチャネル変数を設定するだけで十分です。



アクション:Setvar

チャンネル:Rファクターが計算されたチャンネルの名前。

変数:CDR(r-factor)

値:計算された値


また、CDRテーブルにr-factor列がある場合、この値が入力されます。 もちろん、この変数には、呼び出し全体の平均値を入れる方が良いです。



All Articles