@16x/webphone-sdk 3.1.5 → 3.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.7 - 2026-09-23
4
+
5
+ - **`active` 不再只认 SIP 的 ACK**:新增会话事件 `mediaConnected` —— 媒体真的通了(ICE + DTLS 完成)时,
6
+ 只要通话已经进入 `connecting` 就推进到 `active`。
7
+ 背景:`active` 原来只由 JsSIP 的 `confirmed` 驱动,而它要等对端回 ACK。有些平台(SBC)不回 ACK:
8
+ 200 OK 之后音频已经通了、双方都在通话,`confirmed` 却永远不来,页面就一直停在「接通中」
9
+ (3.1.6 之前停在「振铃中」,那是同一现象的另一个表现,见 3.1.6 第一条)。
10
+ - 只从 `connecting` 推进:`ringing` / `dialing` 阶段的连接可能只是早期媒体(回铃),不算接通。
11
+ - `CallSessionEvent` 增加 `'mediaConnected'`(新增事件,对已有集成无影响);JsSIP 适配器在
12
+ PeerConnection 的 `connectionstatechange` 变成 `connected` 时发一次,通话结束时撤掉会话上的订阅。
13
+ - 仍未解决、且**在平台侧**的一点:如果平台始终不回 ACK,JsSIP 自己的 ACK 定时器会在 32 秒后以
14
+ `NO_ACK` 结束这通电话。SDK 不能替对端回 ACK,只能让状态先跟上事实;平台侧需补齐 ACK。
15
+
16
+
17
+ ## 3.1.6 - 2026-09-23
18
+
19
+ - **接听后立刻进入 `connecting`**:原来要等 JsSIP 的 `accepted`(也就是 200 OK 真发出去之后)才动状态。
20
+ 背景:`answer()` 只让 JsSIP 同步进入 ANSWERED,200 OK 还要等本地媒体/SDP 准备好(首次通话还要等
21
+ 麦克风授权),这十几秒里状态一直停在 `ringing` —— 页面上就是「点了接听没反应、状态还是振铃中」,
22
+ 用户会以为没接上。现在点完接听立刻走 `ringing → connecting`,随后的 `accepted` / `confirmed`
23
+ 照旧推到 `active`(公开状态链 `ringing→connecting→active` 不变,已有用例覆盖)。
24
+ - 修 `hangup()`:terminate 之后若通话已被推成终态(JsSIP 对未确认的来电会**同步**发 `failed`),
25
+ 不再多做一次非法的 `failed → ended` 转换 —— 那一帧会多抛一个 `CALL_OPERATION_NOT_ALLOWED`,
26
+ 页面红字行/日志里就多一条看不懂的报错。
27
+ - 修媒体收尾的噪音:通话结束解绑发送通道时,若连接已经关闭(WebRTC 规定此时 `replaceTrack` 抛
28
+ `InvalidStateError`),按「没有东西可解绑」处理,不再报 `SDK_INTERNAL_ERROR`
29
+ (典型现象:挂断瞬间刷一条 `replaceTrack ... The peer connection is closed`)。
30
+ - 接听 / 拒接失败时**先把原始原因报出来**再 terminate 清理:terminate 会同步触发 JsSIP 的 `failed`
31
+ (cause 固定是 `REJECTED`),原来的原因会被这个终态盖掉 —— 之前只能看到 `REJECTED`,
32
+ 看不到「为什么接听会失败」。现在先经 `error` 事件把原始 cause 带出去。
33
+
34
+
3
35
  ## 3.1.5 - 2026-09-23
4
36
 
5
37
  - 新增 `dial({ destination, userdata })`:自定义参数原样写进 INVITE 的 `X-User-Data` 头,由平台/服务端从 SIP