我正在尋找可以解析sip數據包的c#庫或類。 我需要的功能將幫助我從數據包中獲取 Call-ID字段,請求類型,並且基本上將sip數據包分解爲其字段。cip中的sip解析器#
有人知道可以幫助我的東西嗎? 謝謝,ofek
我正在尋找可以解析sip數據包的c#庫或類。 我需要的功能將幫助我從數據包中獲取 Call-ID字段,請求類型,並且基本上將sip數據包分解爲其字段。cip中的sip解析器#
有人知道可以幫助我的東西嗎? 謝謝,ofek
這個class從我的sipsorcery項目可以爲你做。
更新:如果你有一個包含完整的SIP數據包串您可以通過使用解析全事情:
var req = SIPSorcery.SIP.SIPRequest.ParseSIPRequest(reqStr);
var headers = req.Header;
var resp = SIPSorcery.SIP.SIPResponse.ParseSIPResponse(respStr);
var headers = resp.Header;
如果你不知道SIP數據包是請求或響應可以使用SIP消息類:
var mess = SIPSorcery.SIP.SIPMessage.ParseSIPMessage(messStr, null, null);
var headers = SIPSorcery.SIP.SIPHeader.ParseSIPHeaders(mess.SIPHeaders);
更新2:
鑑於您正在使用pcap.net來捕獲SIP數據包,您可能會以一個字節塊而不是字符串結尾。您可以使用SIP消息類從UDP有效載荷解析SIP數據包:
var mess = SIPSorcery.SIP.SIPMessage.ParseSIPMessage(packet.Ethernet.IPv4datagram.Udp.Payload, null, null);
var headers = SIPSorcery.SIP.SIPHeader.ParseSIPHeaders(mess.SIPHeaders);
Thnaks你,但問題是,我不知道我應該在函數中放入什麼字符串。正如我所說,我使用pcap.net來捕獲數據包,所以我有「數據包」類。我應該發送整個數據包嗎?或只是數據包。Ethernet.IPv4datagram.Udp.Payload.ToString()???非常感謝! –
捕獲包的SIP部分將是UDP有效負載,因此Udp.Payload似乎是正確的屬性。查看更多更新。 – sipwiz
謝謝你!它的工作 –
我使用pcap.net捕捉數據包 –
檢查了這一點:http://stackoverflow.com/questions/498056/c -sharp-sip-stack-library – MUG4N