eXosip和osip详解
文档
可以查看exosip osip的在线文档
http://www.antisip.com/doc/
在线文档 一般先看mainpage 会有库的一个整体说明。
其次看看 modules 会有一些使用说明。
exosip是对osip的封装 使用osip简单好用。 osip主要包括sip sdp 协议的解析 fmt 无限状态机 实现sip协议的会话状态(这个没有太深入理解) 其次还包括了对不同平台的线程 锁信号的封装实现跨平台。
osip 源代码框架详解
https://wenku.baidu.com/view/49462441be1e650e52ea9940.html?sxts=1557060265157
https://wenku.baidu.com/view/7cc81930b90d6c85ec3ac6de.html?rec_flag=default
https://wenku.baidu.com/view/f7988a6b011ca300a6c390ab.html
* osip 开发手册
https://wenku.baidu.com/view/fe5ccbebe009581b6bd9eb18.html?sxts=1557122790420
* osip 状态机的解释(ICT IST NICT NIST)
https://blog.csdn.net/candy1232009/article/details/3926868
https://blog.csdn.net/lbc2100/article/details/48342889
osip sdp 的操作
void sdpTest() {
char *sdpStr = "v=0\r\n"
"o=- 3761910912 3761910915 IN IP4 47.112.105.194\r\n"
"s=butelmedia\r\n"
"t=0 0\r\n"
"m=audio 5061 RTP/AVP 98 97 99 0 8\r\n"
"c=IN IP4 61.149.194.174\r\n"
"a=sendrecv\r\n"
"a=rtpmap:98 speex/16000\r\n"
"a=rtpmap:97 speex/8000\r\n"
"a=rtpmap:99 speex/32000\r\n"
"a=rtpmap:0 PCMU/8000\r\n"
"a=rtpmap:8 PCMA/8000\r\n"
"a=ssrc:2066561799 cname:30000025\r\n"
"a=mid:audio-1\r\n"
"a=rtcp-mux\r\n"
"a=audiodesc:mic_audio\r\n"
"m=video 5061 RTP/AVP 97\r\n"
"c=IN IP4 61.149.194.174\r\n"
"a=sendrecv\r\n"
"a=rtpmap:97 H264/90000\r\n"
"a=fmtp:97 profile-level-id=42e01e; packetization-mode=1\r\n"
"a=ssrc:931412768 cname:30000025\r\n"
"a=mid:video-1\r\n"
"a=rtcp-mux\r\n"
"a=videodesc:camera\r\n"
;
int ret = 0;
sdp_message_t *sdp = NULL;
char *pChar = NULL;
ret = sdp_message_init (&sdp);
if(0!=ret) {
printf("sdp_message_init error %d \n",ret);
return;
}
ret = sdp_message_parse (sdp, sdpStr);
if(0!=ret) {
printf("parse error %d \n",ret);
return;
}
pChar = sdp_message_a_att_field_get(sdp,0,0);
if (pChar) printf("%s \n",pChar);
int size = strlen("sendonly");
char * send = (char *)osip_malloc(size);
memcpy(send,"sendonly",size);
ret = sdp_message_a_attribute_add (sdp, 0, send, NULL);
printf("sdp_message_a_attribute_add %d \n",ret);
ret = sdp_message_a_attribute_del (sdp, 0, "sendrecv");
printf("sdp_message_a_attribute_del %d \n",ret);
ret = sdp_message_to_str(sdp,&pChar);
if(0!=ret) {
printf("sdp_message_to_str %d \n",ret);
return;
}
printf("sdp_message_to_str: %s \n",pChar);
osip_free(pChar);
sdp_message_free(sdp);
}
备注: 添加到sdp_message_t 的信息 需要动态分配的信息 因为 sdp_message_free 会释放
eXosip和osip详解的更多相关文章
- linux下编译eXosip、osip,以及UAC和UAS的例子
从网站上看到了这样的一篇博文 :Windows下编译eXosip.osip,以及UAC和UAS的例子 (链接:http://www.cnblogs.com/dyllove98/archive/2013 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
- Android Notification 详解——基本操作
Android Notification 详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天项目中有用到 Android 通知相关的内容,索性把 Android Notificatio ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)
Android XML shape 标签使用详解 一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...
随机推荐
- python 中列表 元组 字典 集合的区别
先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...
- Spring整合EasyExcel【基础设计】
前言 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI ...
- js+vue、纯js 按条件分页
听说大牛都从博客开始的... 人狠话不多,翠花上酸菜代码: 有注解基本上都看的懂!但是自己还是要注意以下几点,免得以后再浪费时间. #.vue 中监听事件 v-on:change=“vueChange ...
- HTTPS原理及流程
HTTPS为什么更安全:数据对称加密传出,对称密钥使用非对称加密协商. HTTPS就一定安全吗:不一定,如果用户在浏览器端执意访问证书可疑或过期的站点,就存在安全隐患. --- HTTPS实现原理:h ...
- Xcode-一些小问题(配置包路径,配置文件路径。。。)
1.真机配置包路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 2.配置文 ...
- Linux Samba文件共享服务,安装与案例配置
Samba服务器安装和配置 1:安装Samba服务器软件包 [root@localhost ~]# rpm -qa | grep samba [root@localhost ~]# yum -y in ...
- Python——模块和包
一.概念 """模块():一个python文件,以 .py 结尾,包含python对象定义和语句.模块可以定义函数.类.变量,也可包含可执行文件 导入模块: 1.impo ...
- 何时使用异步或同步AJAX
通常最好使用异步调用 通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习. AJAX代表异步JavaScript和XML,是一项允许异步更新网页的技术,这意味 ...
- Blazor client-side + webapi (.net core 3.1) 添加jwt验证流程(非host)第一步
第一步,设置并检查CROS跨域请求 因为我们并不打算将Blazor 由webapi来进行host,所以Blazor和api将是两个域名,这样操作即方便以后单独使用Blazor来写前端,但后端采用已有或 ...
- 【python基础语法】国庆扩展练习题
''' 一.国庆知识小拓展 1. 用户登陆程序需求: 1. 输入用户名和密码; 2. 判断用户名和密码是否正确? (name='root', password='123') 3. 为了防止暴力破解, ...