@16x/webphone-sdk 3.1.3 → 3.1.5

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,31 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.1.5 - 2026-09-23
4
+
5
+ - 新增 `dial({ destination, userdata })`:自定义参数原样写进 INVITE 的 `X-User-Data` 头,由平台/服务端从 SIP
6
+ 报文里读 —— 就是旧版脚本 SDK 的 `userdata`,头名与含义都没变,平台侧不用改。未传、空串、纯空白=不带头
7
+ (与旧行为逐字一致);`dial({ destination, userdata: '' })` 也不会多出任何头。
8
+ - 只接受可见 ASCII:换行/制表能伪造出新的 SIP 头,中文等非 ASCII 不合规(中间设备可能吞掉或改写),
9
+ 两者都抛 `CALL_INVALID_USERDATA`(`category: 'call'`、`retryable: false`,处置建议放在 `cause` 里)。
10
+ 要传中文或 JSON 请调用方先 `encodeURIComponent` / base64,再在平台侧解回来。
11
+ - 校验在建通话之前完成:非法值不占并发额度、也不留 pending —— 否则同号紧接着再拨会撞 `CALL_ALREADY_EXISTS`。
12
+ - 注意:SDK 不暴露 SIP 头,页面侧读不到这个值(`call.incoming` 只给 `callId` / `from`);它是对平台/服务端说的,
13
+ 页面上要排障只能像演示页那样打开 JsSIP 的 debug 抓 console 原文。
14
+
15
+
16
+ ## 3.1.4 - 2026-09-22
17
+
18
+ - **移动端形态(`platform: 'mobile-web'`)可以接来电了**:能不能接听改由会话策略 `policy.mobileIncomingEnabled` 决定
19
+ (这个字段契约里一直有、之前只声明没实现)。打开时保留 `inbound` 能力,来电正常进 `call.incoming`、可以 `answer()`;
20
+ `false` 或缺省时行为与旧版完全一致(来电直接拒掉,`CAPABILITY_NOT_SUPPORTED`)。保持 / 转接仍然不在移动端支持
21
+ (移动 UI 上没有这两个操作),并发数仍是 1。
22
+ - 背景:`mobile-web` 之前无条件删掉 `inbound`,导致手机浏览器「能打出去、别人打不进来」——被叫把 INVITE 直接结束,
23
+ 主叫那边只会看到平台转出来的 `480 Temporarily Unavailable`(`Q.850 cause=16 NORMAL_CLEARING`),页面连来电浮层都不弹。
24
+ 注意 `platform` 不传时 `detectPlatform()` 命中 `iPhone|iPad|Android` 会自动选 `mobile-web`,所以这个坑对手机端接入方是默认生效的。
25
+ - `CallManager.answer` / `CCBarCall.answer` 的「按平台一刀切」改成按能力判断(会话说了算):
26
+ 平台若给移动端授予 `inbound`,同样能正常接听。
27
+
28
+
3
29
  ## 3.1.3 - 2026-09-22
4
30
 
5
31
  - 新增可选构造参数 `agentTerminal`:设了就在 INVITE / REGISTER 上带 `X-Agent-Terminal` 并作为 UA 的