【问题标题】:PJsip Extract the value of header from a sip methodPJsip 从 sip 方法中提取 header 的值
【发布时间】:2015-10-06 21:53:31
【问题描述】:
  NOTIFY sip:98901@xx.xx.xx.xx SIP/2.0
    To: sip:98901@xx.xx.xx.xx:1234
    From: sip:sipsak@xx.xx.xx.xx
    CSeq: 1 NOTIFY
    Call-ID:1234
    Event: check-sync;reboot=false

我想提取带有连接字符串 check-sync;reboot=false 的事件标头

【问题讨论】:

  • 您使用什么语言?你试过什么?

标签: sip pjsip


【解决方案1】:
pj_str_t event_hdr_name = pj_str("Event");
pjsip_generic_string_hdr *event_hdr = (pjsip_generic_string_hdr*)pjsip_msg_find_hdr_by_name(message, &event_hdr_name, NULL);
if (event_hdr == NULL)
    return NULL;
pj_str_t event_value = event_hdr->value;`

【讨论】:

  • pjsip_generic_string_hdr 没有成员值,这应该是hvalue。
  • 还有一点需要注意:每个标头都有自己的内存布局,因此转换为通用字符串标头可能不适用于特定标头名称(比如说“最大转发”)。以该列表为例pjsip.org/pjsip/docs/html/group__PJSIP__MSG__HDR.htm
【解决方案2】:

我不得不处理一个自定义标题,有点类似于你的情况。它可能会帮助你。

您必须以 init_parser 开头。此处解析 SIP 消息。在此处添加您自己的自定义函数。在 pjsip_rx_data 中添加一个元素并存储结果。此信息将传递到下游。最后在这里实现你的东西pres_process_rx_notify

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    相关资源
    最近更新 更多