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

添加自定义CallSettings致Voximplant场景抛出UnsupportedOperationException问题排查

Voximplant场景代码抛出UnsupportedOperationException的原因分析

问题根源

你用mapOf()创建了只读Map并赋值给CallSettings.extraHeaders,但Voximplant SDK内部需要对这个headers集合执行修改操作(比如添加默认头),而只读Map不支持修改,直接触发了UnsupportedOperationException。

Kotlin里mapOf()生成的是不可变的只读Map实例,一旦创建就不能添加、删除或修改键值对,而CallSettings.extraHeaders要求的是可变Map类型。

修复方案

方案1:直接创建可变Map

val callSettings = CallSettings()
val array = mutableMapOf("X-PARAMCUSTOM" to "test")
callSettings.extraHeaders = array

方案2:将只读Map转为可变Map

val callSettings = CallSettings()
val array = mapOf("X-PARAMCUSTOM" to "test").toMutableMap()
callSettings.extraHeaders = array

额外提示

你提供的callUser代码中,e.headers大概率也是只读结构,如果后续SDK需要修改它,同样可能触发异常,建议转为可修改的对象后再传入:

VoxEngine.addEventListener(AppEvents.CallAlerting, (e) => {
  var newCall = VoxEngine.callUser(
    e.destination,
    e.callerid,
    e.displayName,
    null,
    Object.assign({}, e.headers) // 转为可修改的普通对象
  );
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:09:24