zoukankan      html  css  js  c++  java
  • doubango库改动Contact内容的地方

    要在手机client中实现会议功能,从音频会议開始(可能会优点理点)。server用的是Centos7 64 + Freeswitch1.4。client是基于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,只是,偶记得编译这货也不太easy。哎~~~~

  • 相关阅读:
    数据库——表中显示乱码
    数据库字段类型
    HTML——动画效果:左侧固定悬浮栏(图标控制)
    HTML——动画效果:图片循环横向播放
    HTML——动画效果回到顶层(小火箭)
    HTML——图片自动轮换和手动轮换
    HTML——如何在html中插入视频
    HTML资料——做网页时遇到的
    JavaScrip——练习(做悬浮框再进一步:悬浮窗后缀悬浮窗——用this.className)
    ASP.NET MVC 4新建库项目中找不到 System.Web.Security 的引用
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6851597.html
Copyright © 2011-2022 走看看