我在ubuntu 16.04上运行的python中开发了SIP客户端
它注册,可以接听电话和录制音频等。一切正常。
但是,它无法正确取消注册(即,我没有获得过期= 0的SIP注册),这在网络中引起了问题(他们认为我的客户是滥用用户并暂时阻止了它)。
逻辑结束后,我想清除注册。
这是我用来注册的代码:
proxy_cfg = self.core.create_proxy_config()
address = self.core.create_address ("sip:" + username + "@" + self.cfg_sip_domain)
address.port = self.cfg_sip_port
proxy_cfg.identity_address = address
proxy_cfg.server_addr = self.cfg_sip_proxy
proxy_cfg.register_enabled = True
self.core.add_proxy_config(proxy_cfg)
self.core.default_proxy_config = proxy_cfg
auth_info = self.core.create_auth_info(username, None, password, None, None, self.cfg_sip_domain)
self.core.add_auth_info(auth_info)
这是我用来注销的代码。我尝试了2种组合,将register_enabled设置为False和True,始终使用expires =0。但是没有出现SIP消息:
self.core.default_proxy_config.edit()
self.core.default_proxy_config.register_enabled = True
self.core.default_proxy_config.expires = 0
self.core.default_proxy_config.done()
谢谢您的帮助,
酯
最佳答案
我尝试了以下方法,它可以工作。我认为这在API中不是很直观。根据docs refresh_register()方法,将在下一次迭代中触发到新的REGISTER,它将以expires = 0进行注册。
self.core.default_proxy_config.edit()
self.core.default_proxy_config.expires = 0
self.core.default_proxy_config.refresh_register()
self.core.default_proxy_config.done()