現在、私は、パケットをキャプチャした後にSIPヘッダーメッセージを解析することにより、ユーザーのログイン情報と内線番号情報を収集するプロジェクトに取り組んでいます。私は現在、これを達成するためにPCAP.netとSIPSorceryライブラリを使用しています。プロジェクトはC#で書かれていますSIPセッショントラッキング
仕組み: PCAP.netのフィルタを使用することで、SIP関連のトラフィックにゾーンインすることができます。パケットがキャプチャされるたびに、イベントが発生し、パケットタイプをチェックします。それがSIPなのか、それともDNSなどのUDP関連のものなのか。これがSIPメッセージの場合、私が興味のある情報を引き出すヘッダを解析する
問題: 一部のSIPエンドポイントは、同じUIDを含む複数の登録パケットを生成します。単一のセッションと、エンドポイントが実際に最終的に登録されたとき(すなわち、SIPサーバから200Kを受信するとき)を追跡することは困難である。私は辞書を使ってCallIDを試してみたのですが、パケットがすでに辞書に入っていればそれがいつ受信されたかを調べました。
質問: はどのように私は私がその特定のセッションのために200OKを受信したとき、それは登録されたストリームが完了している