bool Register(CString user, CString pwd, CString Service)
{
CString szidentity = _T("");
szidentity.Format(_T("sip:%s@%s"), user.GetString(), Service.GetString());
const char *identity =szidentity.GetString();
const char *secret =pwd.GetString();
const char *host = Service.GetString();
LinphoneProxyConfig* proxyCfg = NULL;
//get default proxy
linphone_core_get_default_proxy(the_core, &proxyCfg);
if (proxyCfg != NULL)
{
if (linphone_proxy_config_is_registered(proxyCfg))
{
return TRUE;
}
else
{
linphone_core_clear_proxy_config(the_core);
}
}
proxyCfg = linphone_proxy_config_new();
//m_running = true;
// add username password
LinphoneAddress *from = linphone_address_new(identity);
LinphoneAuthInfo *info;
if (from != 0) {
info = linphone_auth_info_new(linphone_address_get_username(from), NULL, secret, NULL, NULL,NULL);
linphone_core_add_auth_info(the_core, info);
}
const char* server_addr = linphone_address_get_domain(from); /*extract domain address from identity*/
linphone_proxy_config_set_identity(proxyCfg, identity);
linphone_proxy_config_set_server_addr(proxyCfg, server_addr);
linphone_proxy_config_enable_register(proxyCfg, true);
linphone_address_destroy(from);
linphone_core_add_proxy_config(the_core, proxyCfg);
//set to default proxy
linphone_core_set_default_proxy_config(the_core, proxyCfg);
linphone_core_set_use_info_for_dtmf(the_core, true); //dtmf编码风格设置
linphone_core_set_use_rfc2833_for_dtmf(the_core, false); //dtmf编码风格设置
}