GB28181學習之路——SIP報文解析轉換

由於某些原因沒有用eXosip,於是自己tcpsocket建立連接並解析報文,osip安裝的自己找找吧。解析代碼如下:

#include<osipparser2/osip_message.h>
#include<osipparser2/osip_parser.h>

int main()
{
    parser_init ();//必須要有這句話
    char text[] = "REGISTER sip:32010000002000000001@3201000000 SIP/2.0\nVia: SIP/2.0/TCP 192.168.31.165:40917;rport;branch=z9hG4bK1376784587\nFrom: <sip:32010000001320000118@3201000000>;tag=1554671569\nTo: <sip:32010000001320000118@3201000000>\nCall-ID: 847324383\nCSeq: 1 REGISTER\nContact: <sip:[email protected]:5060>\nMax-Forwards: 70\nUser-Agent: IP Camera\nExpires: 3600\nContent-Length: 0\n";
    osip_message_t *sip;
	int i;
	i=osip_message_init(&sip);
	if (i!=0) { printf("cannot allocate\n"); return -1; }
	i=osip_message_parse(sip, text, strlen(text));
	if (i!=0) { printf("cannot parse sip message\n"); return -1;}
    printf("%s %s\n",sip->sip_version, sip->sip_method);
	osip_message_free(sip);
}

附osip、eXosip下載地址http://download.savannah.nongnu.org/releases/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章