pjsua.error,错误 = 地址已被使用

pjsua.error, error = address already in use

我正在尝试使用 python 中的 PJSIP 模块进行调用。对于 SIP 传输的设置,我正在做

trans_cfg = pj.TransportConfig()
# port for VoIP communication
trans_cfg.port = 5060
# local system address
trans_cfg.bound_addr = inputs.client_addr
transport = lib.create_transport(pj.TransportType.UDP,trans_cfg)

当我完成通话后,我正在清除传输设置,transport = None

我可以通过 运行我的程序来呼叫用户。但是每次我单独重启我的电脑时,我 运行 我的 python 程序

都会出错
File "pjsuatrail_all.py", line 225, in <module>
   main()
File "pjsuatrail_all.py", line 169, in main
   transport = transport_setup()
File "pjsuatrail_all.py", line 54, in transport_setup
   transport = lib.create_transport(pj.TransportType.UDP,trans_cfg)
File "/usr/local/lib/python2.7/dist-packages/pjsua.py", line 2304, in 
   create_transport
   self._err_check("create_transport()", self, err)
File "/usr/local/lib/python2.7/dist-packages/pjsua.py", line 2723, in _err_check
   raise Error(op_name, obj, err_code, err_msg)
pjsua.Error: Object: Lib, operation=create_transport(), error=Address already in use
Exception AttributeError: "'NoneType' object has no attribute 'destroy'" in <bound method Lib.__del__ of <pjsua.Lib instance at 0x7f8a4bbb6170>> ignored

为此我目前正在做

$sudo lsof -t -i:5060
>> 1137
$sudo kill 1137

然后我 运行 我的代码工作正常。 通过错误实例,我可以理解在某个地方我没有正确关闭我的传输配置。任何人都可以在这方面提供帮助。 Reference code used

根据您提供的信息,可以理解不是pjsip wrapper 的问题。传输配置看起来不错。

查看 'create_transport' 错误,程序无法创建连接,因为 5060 端口已被其他程序占用。

为此,您正在终止该进程,并且您可以 运行 该程序而不会出现任何错误。你说它只在重启时,所以在你的系统重启时一些程序正在占用端口。

你可以这样试试

sudo netstat -nlp|grep 5060

在你的情况下它会像

1137/ProgramName

转到启动配置中的 'ProgramName' 并进行修改,使其不会获取端口。