我目前正在研究一個通過在捕獲數據包後解析SIP頭消息來收集用戶登錄和擴展信息的項目。我目前使用PCAP.net和SIPSorcery庫來實現這一點。該項目是用C#編寫的SIP會話跟蹤
它是如何工作的: 通過使用PCAP.net中的過濾器,我可以對SIP相關流量進行分區。每次捕獲一個數據包時,就會觸發一個事件,並檢查數據包的類型,例如無論是SIP還是其他與UDP相關的其他內容,例如DNS。如果這是一個SIP消息,我解析報頭,提取出我感興趣的信息
問題: 某些SIP端點生成多個包含相同UID的註冊數據包。很難跟蹤單個會話,以及終端實際上最終註冊的時間(即從SIP服務器接收到200OK)。我嘗試使用帶有CallID的Dictionary,然後檢查收到的數據包是否已經在Dictionary中。
問題: 我如何跟蹤會話,所以我知道,當我收到200 OK爲特定的會話,它被註冊並流完成