diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index b3eb2ff30..655f6859e 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -102,7 +102,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); [self setString: linphone_address_get_username(addr) forKey:@"username_preference"]; [self setString: linphone_address_get_domain(addr) forKey:@"domain_preference"]; - [self setInteger: lp_config_get_int(linphone_core_get_config(lc),"app","default_expires",3600) forKey:@"expire_preference"]; + [self setInteger: lp_config_get_int(linphone_core_get_config(lc),"default_values","reg_expires",600) forKey:@"expire_preference"]; [self setString:linphone_proxy_config_get_dial_prefix(cfg) forKey:@"prefix_preference"]; if (strcmp(linphone_address_get_domain(addr),linphone_address_get_domain(proxy_addr))!=0 || port!=NULL){ @@ -355,7 +355,7 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); int expire = [self integerForKey:@"expire_preference"]; - lp_config_set_int(linphone_core_get_config(lc),"app","default_expires",expire); + lp_config_set_int(linphone_core_get_config(lc),"default_values","reg_expires",expire); BOOL isWifiOnly = [self boolForKey:@"wifi_only_preference"]; diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 641c285c5..a2140d4ad 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -501,7 +501,10 @@ void networkReachabilityCallBack(SCNetworkReachabilityRef target, SCNetworkReach && (lLinphoneMgr.connectivity == newConnectivity || lLinphoneMgr.connectivity == none)) { linphone_proxy_config_expires(proxy, 0); } else if (proxy){ - linphone_proxy_config_expires(proxy, lp_config_get_int(linphone_core_get_config([LinphoneManager getLc]),"app","default_expires",3600)); + int defaultExpire = [[LinphoneManager instance] lpConfigIntForKey:@"default_expires"]; + if (defaultExpire>=0) + linphone_proxy_config_expires(proxy, defaultExpire); + //else keep default value from linphonecore } if (lLinphoneMgr.connectivity != newConnectivity) { @@ -1066,6 +1069,10 @@ static LinphoneCoreVTable linphonec_vtable = { lp_config_set_string(linphone_core_get_config(theLinphoneCore),"app",value?[key UTF8String]:NULL, [value UTF8String]); } -(NSString*)lpConfigStringForKey:(NSString*) key { + if (!theLinphoneCore) { + [LinphoneLogger log:LinphoneLoggerError format:@"cannot read configuration because linphone core not ready yet"]; + return nil; + }; const char* value=lp_config_get_string(linphone_core_get_config(theLinphoneCore),"app",[key UTF8String],NULL); if (value) return [NSString stringWithCString:value encoding:[NSString defaultCStringEncoding]]; diff --git a/Resources/linphonerc b/Resources/linphonerc index 1aa810d4c..5057f2f02 100644 --- a/Resources/linphonerc +++ b/Resources/linphonerc @@ -20,3 +20,5 @@ display_filter_auto_rotate=1 +[default_values] +reg_expires=600 \ No newline at end of file diff --git a/Resources/linphonerc-factory b/Resources/linphonerc-factory index c2a9d7950..488ee816c 100644 --- a/Resources/linphonerc-factory +++ b/Resources/linphonerc-factory @@ -30,5 +30,3 @@ history_max_size=30 max_calls=3 -[default_values] -reg_expires=600