Отмена регистрации в Linphone Python и SIP - PullRequest
1 голос
/ 15 марта 2019

Я разработал SIP-клиент на Python, работающий на Ubuntu 16.04 Он регистрирует, может принимать звонки и записывать аудио и т. Д. Все хорошо. Однако он не отменяет регистрацию должным образом (т. Е. Я не получаю SIP REGISTER с выходом expires = 0), и это вызывает проблемы в сети (они считают мой клиент недобросовестным пользователем и временно его блокируют).

Я бы хотел очистить регистрацию, когда логика закончилась.

Это код, который я использую для регистрации:

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

1 Ответ

0 голосов
/ 16 марта 2019

Я попробовал следующее, и это работает.Я не думаю, что это очень интуитивно понятно в 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()
...