doubango库修改Contact内容的地方
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了doubango库修改Contact内容的地方,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1311字,纯文字阅读大概需要2分钟。
内容图文
要在手机客户端中实现会议功能,从音频会议开始(可能会好处理点)。服务器用的是Centos7 64 + Freeswitch1.4。客户端是基于doubango的imsdroid,还有pc上的jitsi。
doubango中
1. addHeader函数可以在sip报文中添加字段,例如“P-Preferred-Service”
2. addCaps函数在在sip报文Contact字段<>后添加内容,有2个重载
但是,这2个函数都无法修改Contact<>中的内容,
搜了一圈又一圈,发现doubango并没有提供可以修改Contact中<>里的内容的函数(如找到请告诉我,qq 1985082200,谢谢),没办法,只能靠自己了。
pc上jitsi可以发起视频,音频会议,经过抓包对比,猜测发起会议的方法:
1. 在Contact中最后添加isfocus参数,测试不行
2. 在Contact<>中添加registering_acc这一串
3. 同时添加以上2个
4. 其他可能性。。。
既然找到方法,那说干就干,找到最后将Contact转化为字符串的地方,黄天不负有心人,一层层找下来终于发现躲藏在这里:
1)SipSession.cpp
bool SipSession::addCaps(const char* name, const char* value)
2) tsip_session.c
tsk_params_add_param
3) tsip_header_Contact.c
int tsip_header_Contact_serialize(const tsip_header_t* header, tsk_buffer_t* output)
4) tsip_uri.c
int tsip_uri_serialize(const tsip_uri_t *uri, tsk_bool_t with_params, tsk_bool_t quote, tsk_buffer_t *output)
int __tsip_uri_serialize(const tsip_uri_t *uri, tsk_bool_t with_params, tsk_buffer_t *output)
恩,最终就是在__tsip_uri_serialize中穿行化Contact的内容的,代码中有这么一段:
红色框框里的,咦,感觉可以添加参数呢,往上找了一层,最后是失望,没有提供操作params的函数
doubango中封装“uri"的内是”SipUri“,在”SipUri.h"中,而真正实现的数据结构是“tsip_uri_t”
好吧,既然找到地方了,那明天就写死加上看看行不行,要是可以再提供api,不过,偶记得编译这货也不太容易,哎~~~~
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/love_xunmeng/article/details/47132289
内容总结
以上是互联网集市为您收集整理的doubango库修改Contact内容的地方全部内容,希望文章能够帮你解决doubango库修改Contact内容的地方所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。