doubango库修改Contact内容的地方

编程入门 行业动态 更新时间:2024-10-28 20:31:23

要在手机客户端中实现会议功能,从音频会议开始(可能会好处理点)。服务器用的是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,不过,偶记得编译这货也不太容易,哎~~~~

更多推荐

doubango库修改Contact内容的地方

本文发布于:2023-06-13 17:51:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1386699.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:地方   内容   doubango   Contact

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!