Стек SIP osip2 - это лицензированная библиотека LGPL, предлагающая SIP-анализатор и API для изменения сообщений SIP. Это очень портативный.
Вы можете скачать его там .
Текущая документация, для официального osip 5.1.0 есть там .
Это минимальный код, необходимый для анализа 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);
Более подробную информацию о парсере можно найти здесь . Вы сможете получить доступ к заголовку SIP Contact, Route или любым другим заголовкам и изменить их. Затем используйте osip_message_to_str, чтобы перестроить его как строку и отправить.
ПРИМЕЧАНИЕ: osip2 не предлагает какой-либо транспортный уровень, оставленный вам. В osip2 также есть «управление уровнем транзакций», которое вы можете использовать по своему выбору. Его сложнее использовать.
ПРИМЕЧАНИЕ2: -Я автор ...-