exosip(linux 下怎么编译exosip)

2024-06-07 00:48:44 39

exosip(linux 下怎么编译exosip)

本文目录

linux 下怎么编译exosip

无论是哪一种程序,在Linux 系统下进行编译的思路都是差不多的:首先要有 C 语言(或者别的语言)的源程序,然后使用相配套的编译器对源程序进行编译,生成中间代码(注意:此时还不是最终的可执行文件)、最后还必须要将前面编译好的中间代码和Linux 系统提供的库文件(*.lib,或者 *.o)进行有效的链接,最后生成一个可执行的二进制代码程序。

如何编译osip和exosip

1.进入libosip2-3.6.0\platform\vsnet目录,用VS2010直接打开osip.sln文件,项目自动转换
2.更改libosip2-3.6.0\platform\vsnet\osip2.def 文件,在文件末尾追加

osip_transaction_set_naptr_record @138
3.更改libosip2-3.6.0\platform\vsnet\osipparser2.def 文件,在文件末尾追加
osip_realloc @416 osip_strcasestr @417
__osip_uri_escape_userinfo @418
4.先编译osipparser2,再编译osip2,最后在libosip2-3.6.0\platform\vsnet\Debug DLL下生成库文件:

使用VC++2008编译exosip的动态库文件dll遇到无法解析的外部符号问题

产生这些错误是因为需要用到的一些函数在osip库在def文件中没导出。需要修改\libosip2-3.6.0\platform\vsnet目录下面的osip2.def、osipparser2.def两个文件,在文件的末尾导出这些函数,具体如下:
osip2.def:
osip_transaction_set_naptr_record @138

osipparser2.def:
osip_realloc @416
osip_strcasestr @417
__osip_uri_escape_userinfo @418

如何调用exosip开源代码的接口

Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。
eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。
一、介绍
Osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层解析使得它的效率比较高。但缺点也很明显,首先就是可用性差,没有很好的api封装,使得上层应用在调用协议栈时很破碎;其次,只做到了transaction层次的协议过程解析,缺少call、session、dialog等过程的解析,这也增加了使用的难度;再次,缺少线程并发处理的机制,使得它的处理能力有限。
eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。eXosip增加了call、dialog、registration、subscription等过程的解析,使得实用性更强。但是eXosip局限于UA的实现,使得它用于registrar、sip server等应用时极其不容易。另外,它并没有增加线程并发处理的机制。而且只实现了音频支持,缺少对视频和其它数据格式的支持。
综合来说,Osip2加上eXosip协议栈仍然是个实现Sip协议不错的选择。当然需要根据不同的需求来增加更多的内容。
二、Osip2协议栈的组成
Osip2协议栈大致可以分为三部分:sip协议的语法分析、sip协议的过程分析和协议栈框架。
1、Sip协议的语法分析:
主要是osipparser2部分,目前支持RFC3261和RFC3265定义的sip协议消息,包括INVITE、ACK、OPTIONS、CANCEL、BYE、SUBSCRIBE、NOTIFY、MESSAGE、REFER和INFO。不支持RFC3262定义的PRACK。
遵循RFC3264关于SDP的offer/answer模式。带有SDP的语法分析。
支持MD5加解密算法。支持Authorization、www_authenticate和proxy_authenticate。
2、Sip协议的过程分析:
主要是osip2部分,基于RFC3261、RFC3264和RFC3265的sip协议描述过程,围绕transaction这一层来实现sip的解析。
Transaction是指一个发送方和接收方的交互过程,由请求和应答组成。请求分为Invite类型和Non-Invite类型。应答分为响应型的应答和确认型的应答。响应型的应答是指这个应答仅代表对方收到请求。请求经过处理后都必须返回确认型的应答。响应型的应答有1xx,确认型的应答包括2xx、3xx、4xx、5xx和6xx。一个transaction由一个请求和一个或多个响应型应答、一个确认型应答组成。
Transaction根据请求的不同和发送/接收的不同可以分为四类:ict、nict、ist和nist。
Ict是指Invite client transaction,就是会话邀请的发起方。
Nict是指Non-Invite client transaction,是指非邀请会话的发起方。
Ist是指Invite server tranaction,是指会话邀请的接收方。
Nist是指Non-Invite server transaction,是指非邀请会话的接收方。
每种类型的transaction都有自己相应的状态机,Osip2协议栈根据状态机来处理所有的sip事件,所以这部分就是整个协议栈的核心。但是因为Osip2只做到transaction这一层,所以它可以忽略掉call、registration等应用的复杂性,显得相当简单,这就使得需要使用它的应用必须要自己处理应用的逻辑。必须注意的一点是,transaction的资源在Osip里是由协议栈负责释放的,但是在Osip2里改成由使用的应用负责释放。
下面简单的用时序图来描述四种transaction的状态机,只着重于描述状态间的转换,忽略了调用的处理函数,也简化了很多没有状态变换的事件。也就是说,每个状态下定义的事件并没有完整的表现在图中,不要以为这些事件没定义或在该状态下没有处理。
图中方框里的是状态名,箭头线上的是触发状态变换的事件名称。同一个状态下的事件并没有时序关系。
Ict的状态机如下:
(图略)
Nict的状态机如下:
(图略)
Ist的状态机如下:
(图略)
Nist的状态机如下:
(图略)
3、协议栈框架:
框架并不是指代码的某一部分,而是指它的构成形式。主要有三部分:底层套接字接收/发送,模块间通信管道,上层调用api接口。
Osip2并不实现底层套接字的接收/发送,由eXosip实现,现在只支持UDP的链路连接。
模块间的通信管道包括:transaction的消息管道、jevent的消息管道。Transaction的消息管道是驱动其状态机的部件,通过不断的接收来自底层套接字的远端信令,或者来自上层调用的指令,根据上述的状态机制来驱动这个transaction的运转。Jevent的消息管道是eXosip实现的,用于汇报底层事件,使得调用程序能处理感兴趣的事件。
上层调用的api接口大致有两类:sip协议的调用接口和sdp协议的调用接口。EXosip封装了大部分的sip协议调用接口,一般来说都不需要直接调用osip2的接口函数。接口函数很多,在这里就不详述了,函数定义请参照源代码部分的注释。
三、eXosip协议栈的分析
eXosip是Osip2协议栈的封装和调用。它实现了作为单个sip终端的大部分功能,如register、call、subscription等。
EXosip使用UDP socket套接字实现底层sip协议的接收/发送。并且封装了sip消息的解释器。
EXosip使用定时轮循的方式调用Osip2的transaction处理函数,这部分是协议栈运转的核心。透过添加/读取transaction消息管道的方式,驱动transaction的状态机,使得来自远端的sip信令能汇报给调用程序,来自调用程序的反馈能通过sip信令回传给远端。
EXosip增加了对各个类型transaction的超时处理,确保所有资源都能循环使用,不会被耗用殆尽。
EXosip使用jevent消息管道来向上通知调用程序底层发生的事件,调用程序只要读取该消息管道,就能获得感兴趣的事件,进行相关的处理。
EXosip里比较重要的应用有j_calls、j_subscribes、j_notifies、j_reg、j_pub、osip_negotiation和authinfos。J_calls对应呼叫链表,记录所有当前活动的呼叫。J_reg对应注册链表,记录所有当前活动的注册信息。Osip_negotiation记录本地的能力集,用于能力交换。Authinfos记录需要的认证信息。

exosip(linux 下怎么编译exosip)

本文编辑:admin
: exosip,

更多文章:


魅蓝note5出厂系统版本(魅蓝note5 恢复出厂设置是什么版本)

魅蓝note5出厂系统版本(魅蓝note5 恢复出厂设置是什么版本)

大家好,魅蓝note5出厂系统版本相信很多的网友都不是很明白,包括魅蓝note5 恢复出厂设置是什么版本也是一样,不过没有关系,接下来就来为大家分享关于魅蓝note5出厂系统版本和魅蓝note5 恢复出厂设置是什么版本的一些知识点,大家可以

2024年8月31日 21:10

苹果手机怎么把照片传到电脑上(如何将苹果手机的照片传到电脑上)

苹果手机怎么把照片传到电脑上(如何将苹果手机的照片传到电脑上)

本文目录如何将苹果手机的照片传到电脑上怎样把苹果手机上的照片传到电脑上如何把iphone上的照片导到电脑上苹果手机怎么把照片传到电脑上 苹果手机如何把照片传到电脑上如何将苹果手机的照片传到电脑上前些天小编的朋友突然告诉我,手机里面的照片太多

2023年10月1日 02:00

e路航导航仪有蓝牙吗(货车导航什么牌子的好)

e路航导航仪有蓝牙吗(货车导航什么牌子的好)

本文目录货车导航什么牌子的好E路通导航仪怎么样怎样给E路航导航仪安装蓝牙功能路航导航仪怎么样货车导航什么牌子的好注重品牌首选飞歌,没别的,就是牌子硬。但是个人感觉用户体验真不怎么样。个人还是比较喜欢图音的,性价比高,机器反应快,零下40度冷

2024年7月19日 00:15

针式打印机打印一半就卡机(爱普生LQ630K针式打印机怎么老是打印到一半然后停住没反映了)

针式打印机打印一半就卡机(爱普生LQ630K针式打印机怎么老是打印到一半然后停住没反映了)

本文目录爱普生LQ630K针式打印机怎么老是打印到一半然后停住没反映了针式打印机突然打印一半停止不动了,这是为什么针式打印机打到一半不动了针式打印机打印一半就不打印了是怎么回事打印机打印时为什么一卡一卡针式打印机打一半就停了怎么回事针式打印

2024年5月22日 05:24

磐正主板用什么cpu(磐正af520i主板最高可用什么cpu)

磐正主板用什么cpu(磐正af520i主板最高可用什么cpu)

“磐正主板用什么cpu”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看磐正主板用什么cpu(磐正af520i主板最高可用什么cpu)!本文目录磐正af520i主板最高可用什么cpu有一块磐正5p35+的主板,目前能什么cpu

2024年7月19日 12:28

雷柏8300t(雷柏8300键盘怎么关闭电源买回来自带的键盘电池不到4星期就没电了!怀疑是没关闭)

雷柏8300t(雷柏8300键盘怎么关闭电源买回来自带的键盘电池不到4星期就没电了!怀疑是没关闭)

大家好,今天小编来为大家解答以下的问题,关于雷柏8300t,雷柏8300键盘怎么关闭电源买回来自带的键盘电池不到4星期就没电了!怀疑是没关闭这个很多人还不知道,现在让我们一起来看看吧!本文目录雷柏8300键盘怎么关闭电源买回来自带的键盘电池

2023年12月12日 18:40

联想miix520重装系统(联想miix320如何重装系统)

联想miix520重装系统(联想miix320如何重装系统)

本文目录联想miix320如何重装系统联想MIIX 2-8 ZTH怎么重装系统联想miix320怎么重装系统联想miix510重装系统后office要激活求助:MIIX520突然不能开机了miix520换硬盘需要重做系统吗联想legion

2024年6月12日 22:25

htc屏幕锁忘了怎么解(HTC手机解锁图案忘记了怎么办)

htc屏幕锁忘了怎么解(HTC手机解锁图案忘记了怎么办)

本文目录HTC手机解锁图案忘记了怎么办HTC手机屏幕的密码忘记了怎么办htc手机屏幕锁忘记了怎么办HTC手机锁屏密码忘了,怎么办HTC手机解锁图案忘记了怎么办工具:HTC  ONE  A91、将手进行关机,点击关机的按钮的选项。2、然后关机

2024年6月6日 19:15

英特尔快速存储技术有必要安装吗(Win7系统有SSD有必要装RST英特尔快速存储技术吗)

英特尔快速存储技术有必要安装吗(Win7系统有SSD有必要装RST英特尔快速存储技术吗)

本文目录Win7系统有SSD有必要装RST英特尔快速存储技术吗谁说说英特尔快速存储技术固态硬盘有必要装吗ssd硬盘win7系统有必要安装英特尔快速存储技术吗英特尔 快速存储技术(英特尔 RST)有用吗普通电脑安装英特尔快速储存技术有用吗Wi

2024年7月17日 00:43

先锋取暖器多少钱一台(先锋取暖器划算吗)

先锋取暖器多少钱一台(先锋取暖器划算吗)

本文目录先锋取暖器划算吗先锋电热油汀取暖器价格是多少先锋取暖器划算吗说划算不如说非常划算,毕竟这个牌子算行业内挺良心的了,而且价格很实在。之前双十一那段时间,很多无良商家打着打折旗号变相加价,而且这个取暖器日常标599,用券499,双十一用

2024年7月15日 15:15

惠普m1139(hpm1139恢复出厂设置)

惠普m1139(hpm1139恢复出厂设置)

各位老铁们,大家好,今天由我来为大家分享惠普m1139,以及hpm1139恢复出厂设置的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录hpm1139

2024年1月16日 11:00

联想电脑壁纸(联想v14怎么下载壁纸)

联想电脑壁纸(联想v14怎么下载壁纸)

本文目录联想v14怎么下载壁纸联想电脑锁屏壁纸怎么设置联想笔记本电脑开机输入密码那个壁纸图可以在哪里找到呀联想电脑怎么设置壁纸桌面lenovo联想笔记本电脑怎样换桌面壁纸联想电脑怎么换屏幕壁纸怎样设置联想电脑自动换壁纸功能联想笔记本怎么换壁

2023年2月25日 16:40

传奇手游论坛(《热血传奇》这个曾经风靡全国的游戏到底有多烧钱)

传奇手游论坛(《热血传奇》这个曾经风靡全国的游戏到底有多烧钱)

本文目录《热血传奇》这个曾经风靡全国的游戏到底有多烧钱热血传奇:传奇游戏是否可以重回巅峰传奇游戏现在还有市场吗要怎样才能符合玩家的口味传奇在网络游戏中扮演着怎样的角色热血传奇七宗罪之首,为什么说传奇是网瘾的万恶之源手游如何建立,管理一个公会

2024年5月20日 22:33

摩托罗拉 l7(摩托罗拉L7能用电信卡吗)

摩托罗拉 l7(摩托罗拉L7能用电信卡吗)

各位老铁们,大家好,今天由我来为大家分享摩托罗拉 l7,以及摩托罗拉L7能用电信卡吗的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录摩托罗拉L7能用

2024年3月8日 20:40

铨兴硬盘c101和s101的区别?射洪s101省道2025年回全线通车吗

铨兴硬盘c101和s101的区别?射洪s101省道2025年回全线通车吗

本文目录铨兴硬盘c101和s101的区别射洪s101省道2025年回全线通车吗s101沿线景点铨兴硬盘c101和s101的区别价格和写入速度不一样。铨兴S101固态硬盘就是采用的SATA3.0接口,可快速完成系统启动,迅速加载文件和应用程序

2024年7月14日 08:58

阿尔斯通中国(阿尔斯通的公司规模)

阿尔斯通中国(阿尔斯通的公司规模)

本文目录阿尔斯通的公司规模阿尔斯通公司是属于哪个国家的阿尔斯通的简介青岛四方阿尔斯通铁路运输设备有限公司是国企嘛上海的阿尔斯通公司办公地点在哪里阿尔斯通绰号“街球王”,曾和姚明并肩作战,巅峰期到底啥水平阿尔斯通公司的发展历史阿尔斯通公司的公

2023年8月14日 05:00

小新air14 2020配置(如何评价小新Air 14 2020)

小新air14 2020配置(如何评价小新Air 14 2020)

本文目录如何评价小新Air 14 2020着急用,等几天买小新air142020,还是现在买magic如何评价小新Air 14 2020联想小新笔记本主要以轻薄便携作为自己的主打亮点,如今已经走过六年的光辉岁月,带来了无数的笔记本精品,就我

2023年3月5日 12:20

sonyxperia10iii(xperia10iii几个扬声器)

sonyxperia10iii(xperia10iii几个扬声器)

本文目录xperia10iii几个扬声器索尼手机xperia10iii充电器用什么样的插座sony xperia 1 iii下面小洞是什么xperia10iii几个扬声器双扬声器。索尼Xperia 10 Ⅲ将会搭载骁龙690 5G芯片,配备

2023年5月30日 20:00

联想a60报价(联想a60在四川遂宁哪儿能买到(详细点) 价格是多少)

联想a60报价(联想a60在四川遂宁哪儿能买到(详细点) 价格是多少)

大家好,今天小编来为大家解答以下的问题,关于联想a60报价,联想a60在四川遂宁哪儿能买到(详细点) 价格是多少这个很多人还不知道,现在让我们一起来看看吧!本文目录联想a60在四川遂宁哪儿能买到(详细点) 价格是多少请大家帮我选择一下 联想

2024年2月17日 06:40

蔡司光学镜头(什么是卡尔蔡司光学镜头)

蔡司光学镜头(什么是卡尔蔡司光学镜头)

本文目录什么是卡尔蔡司光学镜头vivox60的蔡司光学镜头有什么优势蔡司光学有多厉害,和vivo又是什么关系vivo X60系列的蔡司光学镜头有什么优势Ⅴiv0手机采用的蔡司光学镜头,具体含是什么意思vivo联合光学巨头蔡司!只为探索更强影

2023年7月14日 17:00

近期文章

本站热文

4008827777转人工客服(4008827777饿了么怎么转人工电话)
2024-07-23 14:41:37 浏览:503
标签列表

热门搜索