sip - [SIP]接收 488 响应(此处不接受)
问题描述
我面临重新分级 Sip 呼叫的问题,我的流程如下。
- 甲方向 SIP 代理发送 INVITE
- SIP Agent 向 B 方发送 INVITE
- B 回复 100(尝试中)
- B 发送 SIP 488(此处不可接受)
- 卡尔断线
- SIP 代理向 A 发送 488(此处不可接受)
- 发送 ACK
- B 发送 SIP 488(此处不可接受)
- SIP 代理发送邀请
- B 发送 SIP 488(此处不可接受)
- SIP 代理发送邀请
在此流程中的第 4 点,B 方正在发送 488 消息,因为该 B 方期待对此的 ACK.. 因为我们没有发送 ACK,B 方一次又一次地发送 488。
我的问题..在收到 488 错误情况时,我们是否必须在断开呼叫之前发送 ACK.. 如果我们发送 ACK 会有任何问题。
解决方案
我的问题..在收到 488 错误情况时,我们是否必须在断开呼叫之前发送 ACK..
您需要在这里非常精确,可以在初始 INVITE 交易或 RE-INVITE 交易中收到 488(类似于 606 btw)。
在您的情况下,这是一个初始邀请,所以是的,ACK 是强制性的并且呼叫被终止。
在 RE-INVITE 的情况下,ACK 是强制性的,但呼叫不会终止。
如果我们发送 ACK 会有任何问题。
从信令的角度来看,根本没有问题,呼叫建立失败,用户可以使用不同的编解码器重试另一个呼叫。
推荐阅读
- node.js - 如何使用 .env 存储用于 JWT 的 JSON 密钥?
- javascript - 有没有办法在画布上渲染动画透明 gif 并更改帧之间的延迟
- ios - 如何在移动设备上设置 ionic-segment-button 的样式,使其看起来像是在 Chrome 浏览器中呈现的?
- oracle - PLSQL:如何使用变量作为 table_name 创建游标
- jquery - jquery复制到剪贴板
- javafx - 单击按钮2时如何更新按钮1上的计数器
- mockito - 如何对控制器进行junit测试?
- android - 是否可以在 Room 数据库中存储倒数计时器的实例?
- python - OpenCV多帧成视频
- python - 使用 Matlab 中的 tensorflow-gpu 执行 python 时出现 DLL 错误