private IntPtr CreateProxyCfg() { var result = ProxieModule.linphone_core_create_proxy_config(LinphoneCore); ProxieModule.linphone_proxy_config_set_identity(result, Identity); ProxieModule.linphone_proxy_config_set_server_addr(result, ServerHost); ProxieModule.linphone_proxy_config_enable_register(result, true); ProxieModule.linphone_proxy_config_set_nat_policy(result, NatPolicy); ProxieModule.linphone_core_add_proxy_config(LinphoneCore, result); ProxieModule.linphone_core_set_default_proxy_config(LinphoneCore, result); return(result); }
public void DestroyPhone() { if (LinphoneCore != null) { RegistrationStateChangedEvent?.Invoke(LinphoneRegistrationState.LinphoneRegistrationProgress); CallModule.linphone_core_terminate_all_calls(LinphoneCore); var proxySetDownTask = ComponentExtensions.ExecuteWithDelay(() => { if (ProxieModule.linphone_proxy_config_is_registered(ProxyCfg)) { ProxieModule.linphone_proxy_config_edit(ProxyCfg); ProxieModule.linphone_proxy_config_enable_register(ProxyCfg, false); ProxieModule.linphone_proxy_config_done(ProxyCfg); } }, Constants.LC_CORE_PROXY_DISABLE_TIMEOUT); proxySetDownTask.Wait(Constants.LC_CORE_PROXY_DISABLE_TIMEOUT); IsRunning = ProxieModule.linphone_proxy_config_is_registered(ProxyCfg); } }