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

如何在JsSIP中获取100 Trying、180 Ringing等SIP响应状态码

JsSIP获取100 Trying和180 Ringing状态码的实现方法

1. 实现逻辑

无需手动解析控制台日志提取状态码,JsSIP的RTCSession实例已经封装了对应事件和响应参数,直接绑定事件回调即可获取目标状态码。

2. 代码示例

在你初始化UA、调用呼叫方法得到RTCSession实例后,绑定对应事件即可:

// 初始化UA后发起呼叫,得到session实例
const session = ua.call('被叫号码SIP URI', callOptions);

// 监听trying事件,获取100 Trying响应
session.on('trying', (event) => {
  const statusCode = event.response.status_code;
  const reason = event.response.reason_phrase;
  console.log(`收到响应:${statusCode} ${reason}`);
  // 此处添加100 Trying对应的业务逻辑
});

// 监听progress事件,获取180 Ringing等其他1xx临时响应
session.on('progress', (event) => {
  const statusCode = event.response.status_code;
  const reason = event.response.reason_phrase;
  console.log(`收到响应:${statusCode} ${reason}`);
  if (statusCode === 180) {
    // 此处添加180 Ringing对应的业务逻辑
  }
});

3. 补充说明

  • 回调参数中的event.response是JsSIP封装的标准SIP响应对象,status_code属性为数值类型的状态码,reason_phrase为状态描述文本。
  • 如果你确实需要手动解析原始SIP报文,直接取SIP报文第一行按空格分割后的第二个元素即可,比如原始行SIP/2.0 100 Trying分割后索引为1的元素就是100。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:36:04