linphone python和SIP注销

问题描述 投票:1回答:1

我在ubuntu 16.04上运行的python中开发了一个SIP客户端它注册,它可以接听电话和录音等等。一切都很好。然而,它没有正确地取消注册(即我没有得到expails = 0的SIP REGISTER出去),这导致网络出现问题(他们认为我的客户端是滥用用户并暂时阻止它)。

我想在逻辑结束时清理注册。

这是我用来注册的代码:

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()

谢谢你的帮助,Ester

python linphone
1个回答
0
投票

我尝试了以下它,它的工作原理。我不认为它在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()
© www.soinside.com 2019 - 2024. All rights reserved.