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

使用PJSUA2调用makeCall时出现Error 450001错误求助

解决PJSUA2调用makeCall时的450001错误

可能的原因及修复方案

1. 目标URI格式不合法

PJSUA2的makeCall方法要求传入标准SIP URI格式的目标地址,而非单纯的用户名或别名。你当前传入的"destination"不符合要求,需改为完整格式:

// 示例:替换为实际的SIP地址,比如sip:被叫号码@服务器域名/IP
call.makeCall("sip:1000@your-sip-server.com", prm);

2. 完善CallOpParam参数配置

初始化CallOpParam(true)后,可补充媒体相关配置,确保音频通道正常初始化:

CallOpParam prm = new CallOpParam(true);
// 显式启用音频媒体
prm.audioCount = 1;
prm.videoCount = 0; // 不需要视频时设置为0

3. 确认账户注册状态

即使连接正常,仍需确保账户已成功注册到SIP服务器,可在创建Call对象前添加检查:

if (!acc.isValid()) {
    MessageBox.Show("账户未注册或无效");
    return;
}
MyCall call = new MyCall(acc, -1);
// 后续调用代码...

4. 进一步排查错误

错误码450001属于PJSUA自定义外部错误,可通过以下方式定位细节:

  • 启用PJSUA详细日志,查看底层C++层的具体错误信息:
    // 初始化Endpoint时配置日志
    EpConfig epConfig = new EpConfig();
    epConfig.logConfig.level = 5; // 5为详细日志级别
    epConfig.logConfig.consoleLevel = 5;
    Endpoint ep = new Endpoint();
    ep.libInit(epConfig);
    
  • 查看SIP服务器日志,确认是否收到呼叫请求及服务器返回的具体错误。

修正后的完整调用示例

// 检查账户有效性
if (!acc.isValid()) {
    MessageBox.Show("账户无效,请先注册");
    return;
}

MyCall call = new MyCall(acc, -1);
CallOpParam prm = new CallOpParam(true);
prm.audioCount = 1;
prm.videoCount = 0;

// 使用标准SIP URI发起呼叫
call.makeCall("sip:target-user@sip-server-ip", prm);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:13:17