サーバーアプリケーションの基礎を特定しようとしています..
1 tcp および/または udp パケットを「受信」
する 2 内容を解釈する (つまり、ヘッダー値)
さらに詳細を追加すると、このサーバーは「sip 招待」を受信し、「302 リダイレクト」で応答します。
私は Net::Pcap と perl の経験があり、フィルタリングされたパケットをループし、デコードし、Net::SIP のようなものを使用して応答することでこれを達成できることを知っています。
ただし、必要のないこれらのモジュール/アプリケーションの両方に多くの肥大化があります。サーバーには大きな負荷がかかります。TCPDUMP を単独で実行すると、サーバーの負荷が原因でカーネル内のパケットが失われるため、適切ではないのではないかと心配してください :(
ソケットを「リッスン」して (たとえば IO::Socket を使用して)、パケットをデコードすることで、同じことを達成できるはずですか?
残念ながら、デバッグでは、IO::Socket が生のパケットを見る機会を与えてくれるかどうかを判断するのは難しいですか? 代わりに、メッセージを読み取り可能な形式に自動的にデコードします。
tl;dr:たくさんの SIP Invites をキャプチャし、head の値を分析して、SIP 302 リダイレクトで応答したいと考えています。これを達成するために (Net::Pcap 経由で) tcpdump を使用するよりも良い方法はありますか?
ありがとう、ムース