c# - C# 中的 Sip 解析器

标签 c# parsing sip voip

<分区>

我正在寻找可以解析 sip 数据包的 c# 库或类。 我需要可以帮助我获得的功能 数据包中的调用 ID 字段、请求类型以及基本上将 sip 数据包分解为其字段。

有人知道可以帮助我的事情吗? 谢谢,ofek

最佳答案

class来 self 的 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 数据包是请求还是响应,您可以使用 SIPMessage 类:

var mess = SIPSorcery.SIP.SIPMessage.ParseSIPMessage(messStr, null, null);
var headers = SIPSorcery.SIP.SIPHeader.ParseSIPHeaders(mess.SIPHeaders);        

更新 2:

假定您正在使用 pcap.net 捕获 SIP 数据包,您最终可能会得到一个字节 block 而不是一个字符串。您可以使用 SIPMessage 类从 UDP 负载中解析 SIP 数据包:

var mess = SIPSorcery.SIP.SIPMessage.ParseSIPMessage(packet.Ethernet.IPv4datagram.Udp.Payload, null, null);
var headers = SIPSorcery.SIP.SIPHeader.ParseSIPHeaders(mess.SIPHeaders);

关于c# - C# 中的 Sip 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345976/

相关文章:

java - 如何在 Java 中自动应答所有 SIP 调用

c# - 数组列表排序

android - 使用 SIP 传输文件

c# - 使用 SSH.NET 流式传输私钥的问题

C 正则表达式捕获组

parsing - Scala 相当于 java.util.Scanner

c - libxml2 C 库 : SAX push parser context: xmlParseChunk error when passed null terminated string

c - SIP 客户端不接受响应

c# - 是否有任何正当理由忽略捕获的异常

c# - 全局变量与 ASP.NET session 状态