【GBT28181开发:SIP协议实践】之*里程碑*eXosip+SPVMN环境搭建

10 篇文章 2 订阅
9 篇文章 22 订阅

昨天编译搭建好eXosip的开发环境后,今天完成了SIP注册功能,里程碑一战啊!加油加油,成功就在眼前!


今天基于eXosip做了一个IPC客户端,成功与公安部的SPVMN视频监控联网调测软件自测工具进行注册交互!


客户端Dos界面:



调测工具服务端消息输出:

REGISTER sip:192.168.10.177:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK3675466093;received=192.168.10.177
From: <sip:34020000001320000001@192.168.10.177>;tag=4210464813
To: <sip:34020000001320000001@192.168.10.177>
Call-ID: 423467571
CSeq: 1 REGISTER
Contact: <sip:34020000001320000001@192.168.10.177:5061;line=ac42de468548252>
Max-Forwards: 70
User-Agent: eXosip/3.6.0
Expires: 3600
Authorization: Capability, algorithm="H:MD5"
Content-Length: 0


SIP/2.0 401 Unauthorized
To: <sip:34020000001320000001@192.168.10.177>;tag=82283543_53173353_1041d6a9-d495-4dcf-9359-26d7797910d5
Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK3675466093;received=192.168.10.177
CSeq: 1 REGISTER
Call-ID: 423467571
From: <sip:34020000001320000001@192.168.10.177>;tag=4210464813
WWW-Authenticate: Digest realm="3402000000",nonce="8304903d8454ef91"
Content-Length: 0


REGISTER sip:192.168.10.177:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK51426462;received=192.168.10.177
From: <sip:34020000001320000001@192.168.10.177>;tag=4210464813
To: <sip:34020000001320000001@192.168.10.177>
Call-ID: 423467571
CSeq: 2 REGISTER
Contact: <sip:34020000001320000001@192.168.10.177:5061;line=ac42de468548252>
Authorization: Digest username="34020000001320000001",realm="3402000000",nonce="8304903d8454ef91",uri="sip:192.168.10.177:5060",response="ca7b8381310557184cc5ccd2697bba70",algorithm=MD5
Max-Forwards: 70
User-Agent: eXosip/3.6.0
Expires: 3600
Content-Length: 0


SIP/2.0 200 OK
To: <sip:34020000001320000001@192.168.10.177>;tag=40411091_53173353_4aeafef2-8b2d-44a5-aac8-821490e15653
Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK51426462;received=192.168.10.177
CSeq: 2 REGISTER
Call-ID: 423467571
From: <sip:34020000001320000001@192.168.10.177>;tag=4210464813
Contact: <sip:34020000001320000001@192.168.10.177:5061;line=ac42de468548252>
Expires: 3600
Date: 2013-06-26T11:21:50.434
Content-Length: 0

链路管理:


迈出重要一步,哈哈!

调测工具示意图:




  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
在基于GBT28181SIP协议组件开发中,SIP服务端流程是非常关键的一部分。本文将介绍如何使用eXosip2实现SIP服务端流程。 一、eXosip2简介 eXosip2是一个基于SIP标准的开源协议栈,它提供了一组API,可以用来实现SIP客户端和服务端。eXosip2具有高度的可移植性和灵活性,可以在不同平台上运行。eXosip2的主要特点包括: 1. 遵循SIP标准,功能齐全。 2. 支持IPv4和IPv6协议栈。 3. 支持TLS和SRTP协议。 4. 提供了一组易于使用的API,方便开发人员进行二次开发。 5. 可以在不同的平台上运行,包括Linux、Windows、Android等。 二、eXosip2的使用 1. 安装eXosip2库 首先需要安装eXosip2库,可以通过以下命令在Ubuntu下安装: sudo apt-get install libexosip2-dev 2. 初始化eXosip2 在使用eXosip2之前,需要初始化eXosip2库,这可以通过调用eXosip_init函数来实现。例如: eXosip_t *g_eXosipContext=NULL; g_eXosipContext = eXosip_malloc(); if (g_eXosipContext!=NULL) { iRet = eXosip_init(g_eXosipContext); } 3. 注册SIP服务器 使用eXosip2可以实现SIP服务器的注册,这可以通过调用eXosip_register_build函数构造注册消息,然后通过调用eXosip_register_send发送注册消息。例如: eXosip_event_t *pEvent = NULL; osip_message_t *pMsg = NULL; int iRet = 0; iRet = eXosip_register_build_initial_register(g_eXosipContext, "sip:192.168.1.100", "sip:192.168.1.100", "sip:192.168.1.100", 3600, &pMsg); if (iRet == 0) { iRet = eXosip_register_send_register(g_eXosipContext, pMsg); osip_message_free(pMsg); } 4. 接收SIP消息 使用eXosip2可以接收SIP消息,这可以通过调用eXosip_listen函数实现。例如: while (1) { iRet = eXosip_listen(g_eXosipContext, 0, &pEvent); if (iRet >= 0) { switch (pEvent->type) { case EXOSIP_REGISTRATION_SUCCESS: // 注册成功 break; case EXOSIP_REGISTRATION_FAILURE: // 注册失败 break; case EXOSIP_MESSAGE_NEW: // 收到新的SIP消息 break; } eXosip_event_free(pEvent); } } 5. 回复SIP消息 使用eXosip2可以回复SIP消息,这可以通过调用eXosip_message_build_response函数构造回复消息,然后通过调用eXosip_message_send_response发送回复消息。例如: osip_message_t *pMsg = NULL; int iRet = 0; iRet = eXosip_message_build_response(pEvent->tid, 200, &pMsg); if (iRet == 0) { iRet = eXosip_message_send_response(g_eXosipContext, pEvent->tid, 200, pMsg); osip_message_free(pMsg); } 三、总结 本文介绍了如何使用eXosip2实现SIP服务端流程。eXosip2是一个功能齐全、易于使用的SIP协议栈,可以方便地实现SIP客户端和服务端。在GBT28181SIP协议组件开发中,eXosip2是一个非常好的选择。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值