@16x/webphone-sdk 3.1.4 → 3.1.6
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 +31 -0
- package/dist/{CCBarClient-DY7QjXib.js → CCBarClient-Caq7Uh67.js} +186 -164
- package/dist/CCBarClient-DtlkypfY.cjs +1 -0
- package/dist/{Diagnostics-DD_y4_ah.cjs → Diagnostics-BSQjcQwB.cjs} +1 -1
- package/dist/{Diagnostics-BlstRMt3.js → Diagnostics-D4metmcj.js} +1 -1
- package/dist/core/CallManager.d.ts +8 -0
- package/dist/core/userData.d.ts +13 -0
- package/dist/diagnostics/index.cjs +1 -1
- package/dist/diagnostics/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/index.umd.js +16 -16
- package/dist/legacy/index.cjs +1 -1
- package/dist/legacy/index.js +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/CCBarClient-D9PCJoZj.cjs +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.1.6 - 2026-09-23
|
|
4
|
+
|
|
5
|
+
- **接听后立刻进入 `connecting`**:原来要等 JsSIP 的 `accepted`(也就是 200 OK 真发出去之后)才动状态。
|
|
6
|
+
背景:`answer()` 只让 JsSIP 同步进入 ANSWERED,200 OK 还要等本地媒体/SDP 准备好(首次通话还要等
|
|
7
|
+
麦克风授权),这十几秒里状态一直停在 `ringing` —— 页面上就是「点了接听没反应、状态还是振铃中」,
|
|
8
|
+
用户会以为没接上。现在点完接听立刻走 `ringing → connecting`,随后的 `accepted` / `confirmed`
|
|
9
|
+
照旧推到 `active`(公开状态链 `ringing→connecting→active` 不变,已有用例覆盖)。
|
|
10
|
+
- 修 `hangup()`:terminate 之后若通话已被推成终态(JsSIP 对未确认的来电会**同步**发 `failed`),
|
|
11
|
+
不再多做一次非法的 `failed → ended` 转换 —— 那一帧会多抛一个 `CALL_OPERATION_NOT_ALLOWED`,
|
|
12
|
+
页面红字行/日志里就多一条看不懂的报错。
|
|
13
|
+
- 修媒体收尾的噪音:通话结束解绑发送通道时,若连接已经关闭(WebRTC 规定此时 `replaceTrack` 抛
|
|
14
|
+
`InvalidStateError`),按「没有东西可解绑」处理,不再报 `SDK_INTERNAL_ERROR`
|
|
15
|
+
(典型现象:挂断瞬间刷一条 `replaceTrack ... The peer connection is closed`)。
|
|
16
|
+
- 接听 / 拒接失败时**先把原始原因报出来**再 terminate 清理:terminate 会同步触发 JsSIP 的 `failed`
|
|
17
|
+
(cause 固定是 `REJECTED`),原来的原因会被这个终态盖掉 —— 之前只能看到 `REJECTED`,
|
|
18
|
+
看不到「为什么接听会失败」。现在先经 `error` 事件把原始 cause 带出去。
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
## 3.1.5 - 2026-09-23
|
|
22
|
+
|
|
23
|
+
- 新增 `dial({ destination, userdata })`:自定义参数原样写进 INVITE 的 `X-User-Data` 头,由平台/服务端从 SIP
|
|
24
|
+
报文里读 —— 就是旧版脚本 SDK 的 `userdata`,头名与含义都没变,平台侧不用改。未传、空串、纯空白=不带头
|
|
25
|
+
(与旧行为逐字一致);`dial({ destination, userdata: '' })` 也不会多出任何头。
|
|
26
|
+
- 只接受可见 ASCII:换行/制表能伪造出新的 SIP 头,中文等非 ASCII 不合规(中间设备可能吞掉或改写),
|
|
27
|
+
两者都抛 `CALL_INVALID_USERDATA`(`category: 'call'`、`retryable: false`,处置建议放在 `cause` 里)。
|
|
28
|
+
要传中文或 JSON 请调用方先 `encodeURIComponent` / base64,再在平台侧解回来。
|
|
29
|
+
- 校验在建通话之前完成:非法值不占并发额度、也不留 pending —— 否则同号紧接着再拨会撞 `CALL_ALREADY_EXISTS`。
|
|
30
|
+
- 注意:SDK 不暴露 SIP 头,页面侧读不到这个值(`call.incoming` 只给 `callId` / `from`);它是对平台/服务端说的,
|
|
31
|
+
页面上要排障只能像演示页那样打开 JsSIP 的 debug 抓 console 原文。
|
|
32
|
+
|
|
33
|
+
|
|
3
34
|
## 3.1.4 - 2026-09-22
|
|
4
35
|
|
|
5
36
|
- **移动端形态(`platform: 'mobile-web'`)可以接来电了**:能不能接听改由会话策略 `policy.mobileIncomingEnabled` 决定
|