1

私は一口通話追跡アプリケーションを開発しています。タグIDフィールドを使用して、コールの2つのコールレッグを接続しました
。ただし、タグIDが同じでない場合もあります。

私がやったことは-

タグIDは、対応するCallIDに関連付けられています。

通話のレッグ(ダイアログ)を識別するために考慮する必要のある他のフィールドはありますか?

ここに画像の説明を入力してください 上記は、タグIDを使用した1回の呼び出しの例です。2本の足に異なる色を使用。そして、私がタグIDに番号3568450037を持っている唯一の類似点。10.10.10.120はサーバーIPです。

コールレッグ間の強いつながりを見つけなければなりません。私を助けてください...そして、この問題を解決するためのいくつかのリンクを私に提案してください。

ありがとう...

4

2 に答える 2

3

ダイアログを識別するために使用されるのは、Call-ID、From タグ、および To タグだけです。ダイアログに関する SIP RFC の章から。唯一の秘訣は、ローカル タグとリモート タグを一致させることです。つまり、呼び出しの一方の端にある To ヘッダー タグが、呼び出しのもう一方の端にある From ヘッダー タグと一致し、その逆も同様です。

ダイアログは、Call-ID 値、ローカル タグ、およびリモート タグで構成されるダイアログ ID を使用して、各 UA で識別されます。ダイアログに含まれる各 UA のダイアログ ID は同じではありません。具体的には、1 つの UA のローカル タグは、ピア UA のリモート タグと同じです。タグは、一意のダイアログ ID の生成を容易にする不透明なトークンです。

アップデート:

IP アドレスとタグを含むテーブルを編集した後、2 つの完全に別個の呼び出しがあり、それぞれに独自のダイアログがあります。あなたの質問は、ダイアログ内のトランザクション/リクエストを一致させようとするのではなく、2 つの別々の呼び出しから 2 つの異なるダイアログを一致させる方法に沿ったものだったと思います。

実際には、SIP ヘッダーには、2 つの独立した SIP ダイアログを照合して、通話がブリッジされたことを知るために使用できるものは何もありません。コールをブリッジする唯一の一般的な SIP 要素であるため、B2BUA を使用していると思います。ダイアログを照合する 1 つの方法は、INVITE 要求と応答で運ばれる SDP を調べることです。少なくとも、各レグが送受信しているポート番号を取得し、その方法で一致させることができます。

于 2013-01-29T10:48:05.137 に答える
1

少し遅い答えですが、他の誰かに役立つ場合:

B2BUA アプリケーションを作成している場合は、それを変更して、同じ識別子を持つ各レッグのメッセージにヘッダーを追加できます。その識別子は、1 つのレッグだけでなくコール全体を識別します。

まさにそれを提案した情報 IETF ドキュメントがあります: https://datatracker.ietf.org/doc/html/draft-kaplan-dispatch-session-id-03

于 2014-08-16T20:05:14.930 に答える