当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

eXosip

Osip2扩展协议集
授权协议 GPLv2
开发语言 C/C++
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 不详
投 递 者 伍胡媚
操作系统 Linux
开源组织
适用人群 未知
 软件概览

eXosip是Osip2的一个扩展协议集,它部分封装了Osip2协议栈,使得它更容易被使用。它实现了作为单个SIP终端的大部分功能,如register、call、subseription等。

eXosip2使用UDP socket套接字实现底层SIP协议的接收/发送,并且封装了SIP消息的解释器。

eXosip2使用定时轮询的方式调用Osip2的transaction处理函数,这部分是协议栈运转的核心。透过添加候取transaction消息管道的方式,驱动transaction的状态机,使得来自远端的SIP信令能汇报给调用程序,来自调用程序的反馈能通过SIP信令回传给远端。

  • 当设备注册进来时,我们需要记录下设备的IP和端口,以便后续与其进行通信,其实好多地方都可以获取到,但是不一定是准确的,尤其是经过映射的地址更是不好难以捕捉。 今天写一下怎么样获取设备的IP和端口,对映射与非映射同样有效。先构造获answer,然后再answer的Via header中取,这时answer中含有映射地址的信息: if (MSG_IS_REGISTER(je->request)) {

  • 转自:微点阅读  https://www.weidianyuedu.com/content/0417775689505.html exosip2协议栈学习总结 1、exosip2协议栈介绍 eXosip是osip2的一个扩展协议集,它部分封装了osip2协议栈,使得它更容易被使用。 使用 sip 协议建立多媒体会话是一个复杂的过程,exosip 库开发的目的在于隐藏这种复杂性。正如它的名称所表示的

  • 随手记录一下exosip的学习过程: 1. nist 非invite事件服务端处理,nict 非invite事件客户端处理,ist invite服务器处理,ict invite客户端处理。 2. 状态机处理链表,每种状态对应一个处理方式,当事务处于trying状态时,根据超时类型处理,这种链表结构实属优秀了。。 typedef struct _transition_t transition_t;

  • eXosip中Event事件学习笔记 SIP Method REGISTER OPTIONS INVITE PUBLISH SUBSCRIBE MESSAGE NOTIFY ACK BYE CANCEL eXosip_event_type_t 事件类型枚举 Evnet Explain method type translate EXOSIP_REGISTRATION_SUCCESS user is

  • exosip注册与刷新注册 注册相关函数接口 eXosip_register_build_initial_register 构建初始化注册请求 /** * Build initial REGISTER request. * * @param excontext eXosip_t instance. * @param from SIP url for caller. *

  • exosip针对UA是对osip进行扩展,oSIP不提供不论什么高速产生请求消息和响应消息的方法,全部请求消息和响应消息的形成必须调用一组sip message api来手动组装完毕,所以作者在osip上基础上开发了exosip,用exosip开发软电话非常方便,仅需几个API就能够完毕.exosip中附带一个样例:josua,只是josua相对复杂了点,以下给出一个最简单的样例供大家參考,由于样

  • 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/zzqgtt/article/details/87179815 1、已经编译生成号exosip相关库, 2、复制如下代码生成UAC,该实例使用的是windows控制台程序,对于sdp的解析部分需修改一下 代码如下: #include <eX

  • 1、安装包准备 osip:http://ftp.gnu.org/gnu/osip/ exosip: http://download.savannah.nongnu.org/releases/exosip/ 需要的软件 apt-get install make gcc g++ 2、下载安装包 wget http://ftp.gnu.org/gnu/osip/libosip2-3.6.0.tar.gz

  • 用的是地平线交叉编译工具链 一、说明 # 在此目录下操作 /usr/local/exosip2/ # 最终效果 root@sony-HP-Notebook:/usr/local/exosip2# ls exosip2_horizon libexosip2-5.1.2 libexosip2-5.1.2.tar.gz libosip2-5.1.2 libosip2-5.1.2.tar.gz

  • voip1/libeXosip2-3.1.0/tools下的sip_reg.c修改代码,可以完全注册。 编译方法:gcc -o reg sip_reg.c -leXosip2                  ./reg -r sip:192.168.0.51 -u sip:303@192.168.0.66 -U 303 -P 303 代码: /*  * SIP Registration Agen

  • eXosip认证头域authentication 认证相关函数接口 eXosip_add_authentication_info 添加身份验证凭据。 /** * Add authentication credentials. These are used when an outgoing * request comes back with an authorization required r

  •   typedef enum eXosip_event_type {     /* 登记相关事件 */     EXOSIP_REGISTRATION_SUCCESS,       /**< 用户已成功注册。  */     EXOSIP_REGISTRATION_FAILURE,       /**< 用户未注册。           */     /* 在通话中邀请相关事件 */     EX

 相关资料
  • 扩展说明 RPC 协议扩展,封装远程调用细节。 契约: 当用户调用 refer() 所返回的 Invoker 对象的 invoke() 方法时,协议需相应执行同 URL 远端 export() 传入的 Invoker 对象的 invoke() 方法。 其中,refer() 返回的 Invoker 由协议实现,协议通常需要在此 Invoker 中发送远程请求,export() 传入的 Invoker

  • 协议和扩展 你可以扩展一个已经存在的类型来采纳和遵循一个新协议, 就算是你无法访问现有类型的源代码也行. 扩展可以添加新的属性、方法和下标到已经存在的类型, 并且因此允许你添加协议需要的任何需要. protocol TextRepresentable { var textualDescription: String { get } } // 此处并无Dice这个类, 以及其sides属性

  • 问题内容: 我正在尝试使用Swift协议扩展,却发现这种行为令人困惑。您能帮我得到我想要的结果吗? 请参阅代码最后4行的注释。(如果需要,可以将其复制粘贴到Xcode7游乐场)。谢谢!! 问题答案: 简短的答案是协议扩展不执行类多态性。这是有一定道理的,因为协议可以被结构或枚举采用,并且因为我们不希望仅在没有必要的地方采用协议来引入动态调度。 因此,在中,实例变量(可能更准确地写为)并不意味着您认

  • 本文作为HPB知识库的一种扩展阅读, RLP编码是数据序列化的主要方法,本文介绍RLP编码的主要规则和原理分析,RLP编码具有较好的数据处理效率,尤其是将长度和类型统一作为前缀,实际上RLP是基于ASCII编码的一种结构化扩充,既能表示长度还能表示类型,是一种非常紧凑的结构化编码方案 RLP(Recursive Length Prefix,递归长度前缀)是一种编码算法,用于编码任意的嵌套结构的二进

  • 问题内容: 我想知道在一个仅包含初始化功能并且仅打算在具体类中进行扩展的简单类中,对于等效于该初始值设定项的协议等效于什么。 因此,最简单的方法可能就是显示代码-我正在寻找与以下内容等效的协议扩展: 我期望代码看起来像这样: 我已经看到其他StackOverflow问题中建议的解决方案,但是我不确定它们是否有效,也不确定在类初始化程序中专门解决此问题。 问题答案: 您必须提供一个有效的初始化链来创

  • 问题内容: 我正在使用swift 2.0,我有一个协议和对该协议的扩展来创建方法的默认实现,代码如下: 稍后,我在代码中尝试调用此方法,并收到一条错误消息: “不能在不可变值上使用变异成员:’自身’是不可变的” 代码如下: 我唯一想到的是这种情况下的“ Self”是协议,而不是类。但是,我必须缺少一些东西才能使该概念起作用。该协议定义的方法的默认实现,该方法还可以编辑同一协议定义的值。 谢谢您的帮

  • 据我所知,协议缓冲区主要用于控制服务器和客户端代码的项目。我的一般问题是——协议缓冲区能否用于将二进制消息序列化/反序列化到使用现有协议的服务器?所以,我的问题: > 如果协议缓冲区不支持本机微调现有协议的序列化/反序列化方式,那么可以通过扩展添加该功能吗?是否可以以某种方式添加序列化/反序列化方法可以识别的关键字?也许这可以通过扩展或修改protobuf csharp port或protobuf

  • 问题内容: 假设我已经定义了这样的协议: 现在,我想扩展并采用该协议。 但是下面的代码: 由于错误而无效 错误:必须在非专用泛型类型“ Array”上声明受约束的扩展,并使用“ where”子句指定约束 我发现类似的问题,但建议的解决方案是使用,但在这种情况下它会导致错误: 错误:协议“ CollectionType”只能用作一般约束,因为它具有“自我”或相关类型要求 有什么解决办法吗? 编辑: