在pjsip应用程序上注册示例错误
Register on pjsip-app sample error
我成功地从pjsip项目中完整构建了示例vidgui。但是当我运行时,它无法登录到IMS服务器。服务器返回错误:
SIP/2.0 400 Bad Request - P-Visited-Network-ID header missing
以下是应用程序运行时的调试日志:
11:07:55.376 pjsua_acc.c .Acc 0: setting registration..
11:07:55.376 pjsua_acc.c ..Contact for acc 0 updated for SIP outbound: <sip:18401@10.171.27.92:39191;transport=TCP;ob>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-0000a3fe1a18>"
11:07:55.376 tcpc0x1386ba8 ...TCP client transport created
11:07:55.376 tcpc0x1386ba8 ...TCP transport 10.171.27.92:41599 is connecting to 10.171.18.21:5060...
11:07:55.376 pjsua_core.c ...TX 645 bytes Request msg REGISTER/cseq=25194 (tdta0x13843b0) to TCP 10.171.18.21:5060:
REGISTER sip:10.171.18.21 SIP/2.0
Via: SIP/2.0/TCP 10.171.27.92:41599;rport;branch=z9hG4bKPjxBSX6.FR4wQKgeJSOs6OP1HzEBBJ9ivv
Route: <sip:10.171.18.21;transport=tcp;lr>
Max-Forwards: 70
From: <sip:18401@10.171.18.21>;tag=lEY0yl3PZ.6iBX9SRwhC3dmErvvDji3f
To: <sip:18401@10.171.18.21>
Call-ID: zZdqmKCxlxWG2syWmhqLtY0Xdk0rTBT-
CSeq: 25194 REGISTER
Supported: outbound, path
Contact: <sip:18401@10.171.27.92:39191;transport=TCP;ob>;reg-id=1;+sip.instance="<urn:uuid:00000000-0000-0000-0000-0000a3fe1a18>"
Expires: 300
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length: 0
--end msg--
11:07:55.377 pjsua_acc.c ..Acc 0: Registration sent
11:07:55.377 vidgui.cpp Starting stack..
11:07:55.377 pjsua_core.c PJSUA state changed: INIT --> STARTING
11:07:55.377 sip_endpoint.c .Module "mod-unsolicited-mwi" registered
11:07:55.377 pjsua_core.c .PJSUA state changed: STARTING --> RUNNING
11:07:55.377 vidgui.cpp Ready
11:07:55.377 sip_endpoint.c Module "mod-default-handler" registered
11:07:55.385 tcpc0x1386ba8 !TCP transport 10.171.27.92:41599 is connected to 10.171.18.21:5060
11:07:55.388 pjsua_core.c .RX 623 bytes Response msg 400/REGISTER/cseq=25194 (rdata0x1386e98) from TCP 10.171.18.21:5060:
SIP/2.0 400 Bad Request - P-Visited-Network-ID header missing
Via: SIP/2.0/TCP 10.171.27.92:41599;rport=41599;branch=z9hG4bKPjxBSX6.FR4wQKgeJSOs6OP1HzEBBJ9ivv
From: <sip:18401@10.171.18.21>;tag=lEY0yl3PZ.6iBX9SRwhC3dmErvvDji3f
To: <sip:18401@10.171.18.21>;tag=e7f797549a5ada3f2024dbe4b4572ec6-e254
Call-ID: zZdqmKCxlxWG2syWmhqLtY0Xdk0rTBT-
CSeq: 25194 REGISTER
Server: Sip EXpress router (2.1.0-dev1 OpenIMSCore (i386/linux))
Content-Length: 0
Warning: 392 10.171.18.21:5060 "Noisy feedback tells: pid=3287 req_src_ip=10.171.27.92 req_src_port=41599 in_uri=sip:10.171.18.21 out_uri=sip:10.171.18.21 via_cnt==1"
--end msg--
11:07:55.389 pjsua_acc.c ....SIP registration failed, status=400 (Bad Request - P-Visited-Network-ID header missing)
11:07:55.389 vidgui.cpp ....<sip:18401@10.171.18.21>: 400/Bad Request (expires=-1)
以下是关于pjsua_acc_config的代码:(SIP_USERNAME、SIP_PASSWORD、SIP_DOMAIN已经用我的IMS帐户信息定义(
acc_cfg.id = pj_str( (char*)"<sip:" SIP_USERNAME "@" SIP_DOMAIN ">");
acc_cfg.reg_uri = pj_str((char*) ("sip:" SIP_DOMAIN));
acc_cfg.cred_count = 1;
acc_cfg.cred_info[0].realm = pj_str((char*)"*");
acc_cfg.cred_info[0].scheme = pj_str((char*)"digest");
acc_cfg.cred_info[0].username = pj_str((char*)SIP_USERNAME);
acc_cfg.cred_info[0].data = pj_str((char*)SIP_PASSWORD);
acc_cfg.proxy[acc_cfg.proxy_cnt++] = pj_str((char*) "<sip:" SIP_DOMAIN ";transport=tcp>");
帮助我修复此错误。谢谢
我认为您正面临一个已知的OpenIMS问题:p-CSCF在4060侦听,S-CSCF在5060侦听。您应该通过P-CSCF到达S-CFCS,但您通过连接到端口5060直接访问最后一台服务器,然后,它会抱怨,因为P-CSCF应该添加的P-Visited-Network-ID标头丢失了。
我建议将您的代理地址配置更新为:
acc_cfg.proxy[acc_cfg.proxy_cnt++] = pj_str((char*) "<sip:" SIP_DOMAIN ":4060;transport=tcp>");
然后再试一次。
希望这能有所帮助。
相关文章:
- 警告处理为错误这里有什么问题
- 尝试从C++访问 UWP 的电子邮件邮件类会导致"REGDB_E_CLASSNOTREG类未注册"错误
- 注册对对象工厂的调用会导致段错误
- 张量流错误:执行器无法创建内核。没有注册'Snapshot' 适用于 GPU 设备的 OpKernel 运行图像标签示例
- SQLite 注册 VFS 会导致分段错误
- 注册表项版本ID在WOW6432Node下具有错误的值 - 故意还是错误?如何绕过
- C 为什么我的代码将注册表密钥放在错误的目录中
- 无法注册 ocx 的输出错误
- 提升序列化未注册类错误
- 在pjsip应用程序上注册示例错误
- 删除注册表项 - MSDN 示例中出现错误
- 返回"file already exists"错误的窗口类的注册类
- C++逻辑错误:试图为创建的所有实例生成唯一的ObjectID,计数器注册错误
- CreateWindowEx失败,出现错误1407,即使注册成功
- Windows注册I/O Win 8.1 RioCreateRequestQueue错误10045
- 注册ErrorCollector或拦截连线格式的解析错误
- c++ WinApi注册第二个窗口类错误
- 在openGL中注册回调时出现编译错误
- 奇怪的错误试图读取注册表值与Windows/ c++
- tfs 生成错误 无法注册程序集"MyAssembly.dll" - 访问被拒绝