【发布时间】:2019-06-26 10:18:05
【问题描述】:
我正在寻找支持标头规范化的免费 SIP 软件。我的要求很简单:这个工具从 leg1 接收 INVITE 消息,保存 Contact 标头和路由标头(这里可能是多路由标头),然后使用此 Contact 标头和这些路由标头之一向 leg2 发送 INVITE。
谁能给我推荐一个免费且易于使用的工具?
谢谢, 交流
【问题讨论】:
标签: sip sip-server
我正在寻找支持标头规范化的免费 SIP 软件。我的要求很简单:这个工具从 leg1 接收 INVITE 消息,保存 Contact 标头和路由标头(这里可能是多路由标头),然后使用此 Contact 标头和这些路由标头之一向 leg2 发送 INVITE。
谁能给我推荐一个免费且易于使用的工具?
谢谢, 交流
【问题讨论】:
标签: sip sip-server
osip2 SIP 堆栈是一个 LGPL 许可的库,提供 SIP 解析器和用于修改 SIP 消息的 API。它非常便携。
你可以下载它there。
官方osip 5.1.0的当前文档是there。
这是解析 SIP 消息所需的最少代码:
#include <osip2/osip.h>
int i;
osip_t *osip;
i=osip_init(&osip);
if (i!=0)
return -1;
osip_message_t *sip;
int i;
i=osip_message_init(&sip);
if (i!=0) { fprintf(stderr, "cannot allocate\n"); return -1; }
i=osip_message_parse(sip, buffer, length_of_buffer);
if (i!=0) { fprintf(stderr, "cannot parse sip message\n"); }
osip_message_free(sip);
更多关于解析器的信息可以在here找到。您将能够访问 SIP 联系人标头、路由或任何其他标头并对其进行修改。然后,使用 osip_message_to_str 将其重建为字符串并发送。
注意:osip2 不提供任何留给您的传输层。 osip2 中还有一个“事务层管理”,您可以选择使用它。使用起来更复杂。
注意2:-我是作者...-
【讨论】: