You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从PJSIP头文件读取SIP信息请求及Android pjsua2呼叫相关日志内容

问题1解答:从PJSIP中读取SIP INFO请求指定内容的方法

你可以通过PJSIP底层的请求数据结构体直接读取对应内容,步骤如下:

  • 首先拿到收到的请求对应的pjsip_rx_data结构体实例,所有收到的SIP消息的原始数据都存在这个结构体内。
  • 读取指定头域:调用pjsip_msg_find_hdr()接口,传入消息指针和头域类型(如PJSIP_H_ALLOW、PJSIP_H_CONTENT_TYPE),即可获取对应头域的实例。如果是自定义非标准头域,传入头域名字符串,将返回结果转为pjsip_generic_string_hdr类型后,读取value字段即可拿到头域值。
  • 读取请求体内容:访问pjsip_rx_data中msg结构体的body字段,根据Content-Type类型解析对应载荷,文本类内容可以直接读取body的数据指针获取。
问题2解答:Android pjsua2场景下解析INFO请求消息的方案

你提供的日志是对端发送的会话内INFO请求未被应用层处理,pjsip默认返回500错误,你可以通过重载pjsua2的回调接口处理这类消息:

  • 继承pjsua2的Call类,重载onCallRxRequest方法,所有会话内收到的SIP请求都会先触发这个回调。
  • 在回调中通过OnCallRxRequestParam参数的rxRequest字段判断请求方法,如果是INFO类型就进入自定义解析逻辑。
  • 解析头域和载荷:通过rxRequest.info可以拿到所有头域信息,rxRequest.info.body字段存储的就是请求体内容,你日志中的Connection established就是这个INFO请求的text/plain类型载荷,直接读取即可获取该内容。
  • 处理完成后调用sendResponse方法返回200 OK响应,即可避免pjsip默认返回500错误的问题。

内容的提问来源于stack exchange,提问作者tomtom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:24:07