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

使用pjsua调用modify_account失败:提示需传入整数参数

搞定pjsua modify_account报"an integer is required"的问题

嘿,我一眼就揪出问题所在了——你调用modify_account时第一个参数传的是字符串'acc.info().uri',但这个方法根本不认字符串啊!它要的是整数类型的账户ID,或者你之前创建的那个Account对象本身。

先拆解下你的代码问题

你创建账户的时候,没把返回的Account对象存下来:

lib.create_account(pj.AccountConfig('127.0.0.1', '1234'))

然后你想当然地传了个字符串'acc.info().uri'当账户标识,pjsua直接懵圈,给你抛了“需要整数”的错误。

修正后的代码示例

把创建账户时返回的对象存到变量里,之后直接传这个对象(或者它的ID)给modify_account就搞定了:

lib = pj.Lib()
lib.init()
lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(0))
# 关键一步:保存创建的账户对象
acc = lib.create_account(pj.AccountConfig('127.0.0.1', '1234'))
mailbox = 5678
# 直接传入账户对象,简单省事
lib.modify_account(acc, pj.AccountConfig('127.0.0.1', '%d' % int(mailbox)))
# 要是想用账户ID的话,也可以这么写:lib.modify_account(acc.info().id, ...)

额外补充两点说明

  • lib.create_account()执行后会返回一个Account实例,这个实例直接就能作为modify_account的第一个参数,完全不用绕弯子。
  • 如果你非要用ID标识账户,通过acc.info().id就能拿到正经的整数类型ID,绝对符合方法的参数要求。
  • 你之前传的'acc.info().uri'就是个普通字符串,pjsua根本没法把它解析成有效的账户标识,不报错才怪呢。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:48:34