| | |
| | | //#import "configManager.h" |
| | | |
| | | #import "HDLLinphoneLog.h" |
| | | #import "HDLLinphoneTimerManager.h" |
| | | |
| | | |
| | | #define LINPHONE_LOGS_MAX_ENTRY 5000 |
| | | |
| | |
| | | #define kIAPReady @"IAPReady" // no data |
| | | |
| | | #define IPAD (HDLLinphoneManager.runningOnIpad) |
| | | |
| | | #define RESET_VIDEO_ENABLE_TIMER_NAME @"hdlLinphoneVideoEnableTimer" //é设è§é¢å¼è®¡æ¶å¨åç§° |
| | | #define RESET_VIDEO_DISABLE_TIMER_NAME @"hdlLinphoneVideoDisableTimer" //é设è§é¢å
³è®¡æ¶å¨åç§° |
| | | |
| | | static LinphoneCore *theLinphoneCore = nil; |
| | | static HDLLinphoneManager *theLinphoneManager = nil; |
| | |
| | | {"BV16", 8000, "bv16_preference"}, |
| | | {"CODEC2", 8000, "codec2_preference"}, |
| | | {NULL, 0, Nil}}; |
| | | |
| | | -(void)disableVP8{ |
| | | const MSList *codecs = linphone_core_get_video_codecs(LC); |
| | | PayloadType *pt; |
| | | const MSList *elem; |
| | | |
| | | for (elem = codecs; elem != NULL; elem = elem->next) { |
| | | pt = (PayloadType *)elem->data; |
| | | NSString *pref = [HDLLinphoneManager getPreferenceForCodec:pt->mime_type withRate:pt->clock_rate]; |
| | | // NSLog(@"ç¼ç prefï¼%@",pref); |
| | | if([pref isEqualToString:@"vp8_preference"]){ |
| | | linphone_core_enable_payload_type(LC, pt, FALSE); |
| | | }else{ |
| | | linphone_core_enable_payload_type(LC, pt, TRUE); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | + (NSString *)getPreferenceForCodec:(const char *)name withRate:(int)rate { |
| | | int i; |
| | |
| | | name:AVAudioSessionRouteChangeNotification |
| | | object:nil]; |
| | | |
| | | NSString *path = [[NSBundle mainBundle] pathForResource:@"msg" ofType:@"wav"]; |
| | | NSString *path = [[NSBundle mainBundle] pathForResource:@"msg" ofType:@"caf"]; |
| | | self.messagePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] error:nil]; |
| | | |
| | | _sounds.vibrate = kSystemSoundID_Vibrate; |
| | |
| | | withDefault:@"sip.linphone.org"] |
| | | .UTF8String) != 0) { |
| | | // LOGI(@"Migrating proxy config to use AVPF"); |
| | | linphone_proxy_config_enable_avpf(proxy, TRUE); |
| | | // linphone_proxy_config_enable_avpf(proxy, TRUE); |
| | | linphone_proxy_config_set_avpf_mode(proxy,LinphoneAVPFEnabled); |
| | | } |
| | | proxies = proxies->next; |
| | | } |
| | |
| | | NSError *err = nil; |
| | | |
| | | if (![audioSession setActive:NO error:&err] && err) { |
| | | |
| | | NSLog(@"audioå¯å¨å¤±è´¥"); |
| | | err = nil; |
| | | } |
| | | if (!bAudioInputAvailable) { |
| | | |
| | | NSLog(@"设å¤ä¸æ¯æaudio"); |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | // } |
| | | |
| | | [self loadAssistantConfig:@"assistant_external_sip.rc"]; |
| | | |
| | | [self disableVP8]; |
| | | |
| | | } |
| | | |
| | |
| | | // linphone_core_enable_video_capture([HDLLinphoneManager getLc], false); |
| | | // linphone_core_enable_video_preview([HDLLinphoneManager getLc], FALSE); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | // linphone_core_enable_mic(LC, false); |
| | | } |
| | | |
| | | - (void)login:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain{ |
| | | - (void)login:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain { |
| | | // NSString *domain = [self findTextField:ViewElement_Domain].text; |
| | | // NSString *username = username; |
| | | NSString *displayName = @""; |
| | |
| | | |
| | | // set transport |
| | | NSString *type = @"UDP"; |
| | | linphone_proxy_config_set_route( |
| | | // NSString *type = @"TCP"; |
| | | linphone_proxy_config_set_routes( |
| | | config, |
| | | [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] |
| | | .UTF8String); |
| | | linphone_proxy_config_set_server_addr( |
| | | config, |
| | | [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] |
| | | .UTF8String); |
| | | |
| | | linphone_proxy_config_enable_publish(config, FALSE); |
| | | linphone_proxy_config_enable_register(config, TRUE); |
| | | |
| | | LinphoneAuthInfo *info = |
| | | linphone_auth_info_new(linphone_address_get_username(addr), // username |
| | | NULL, // user id |
| | | pwd.UTF8String, // passwd |
| | | NULL, // ha1 |
| | | linphone_address_get_domain(addr), // realm - assumed to be domain |
| | | linphone_address_get_domain(addr) // domain |
| | | ); |
| | | linphone_core_add_auth_info(LC, info); |
| | | linphone_address_unref(addr); |
| | | linphone_address_unref(tmpAddr); |
| | | |
| | | if (config) { |
| | | [[HDLLinphoneManager instance] configurePushTokenForProxyConfig:config]; |
| | | if (linphone_core_add_proxy_config(LC, config) != -1) { |
| | | linphone_core_set_default_proxy_config(LC, config); |
| | | // reload address book to prepend proxy config domain to contacts' phone number |
| | | // todo: STOP doing that! |
| | | // [[LinphoneManager.instance fastAddressBook] fetchContactsInBackGroundThread]; |
| | | // [PhoneMainView.instance changeCurrentView:DialerView.compositeViewDescription]; |
| | | NSLog(@"ç»å½æåäºï¼"); |
| | | } else { |
| | | // [self displayAssistantConfigurationError]; |
| | | } |
| | | } else { |
| | | // [self displayAssistantConfigurationError]; |
| | | } |
| | | } |
| | | |
| | | - (void)tcpLogin:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain { |
| | | NSString *displayName = @""; |
| | | LinphoneProxyConfig *config = linphone_core_create_proxy_config(LC); |
| | | LinphoneAddress *addr = linphone_address_new(NULL); |
| | | LinphoneAddress *tmpAddr = linphone_address_new([NSString stringWithFormat:@"sip:%@",domain].UTF8String); |
| | | if (tmpAddr == nil) { |
| | | return; |
| | | } |
| | | |
| | | linphone_address_set_username(addr, username.UTF8String); |
| | | linphone_address_set_port(addr, linphone_address_get_port(tmpAddr)); |
| | | linphone_address_set_domain(addr, linphone_address_get_domain(tmpAddr)); |
| | | if (displayName && ![displayName isEqualToString:@""]) { |
| | | linphone_address_set_display_name(addr, displayName.UTF8String); |
| | | } |
| | | linphone_proxy_config_set_identity_address(config, addr); |
| | | |
| | | NSString *type = @"TCP"; |
| | | // linphone_proxy_config_set_routes( |
| | | // config, |
| | | // [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] |
| | | // .UTF8String); |
| | | |
| | | // å建ä¸ä¸ªè·¯ç±å表 |
| | | bctbx_list_t *routes = NULL; |
| | | |
| | | // æ·»å è·¯ç±å°åè¡¨ä¸ |
| | | routes = bctbx_list_append(routes, (void *)tmpAddr); |
| | | |
| | | |
| | | // è®¾ç½®è·¯ç± |
| | | linphone_proxy_config_set_routes(config, routes); |
| | | |
| | | |
| | | linphone_proxy_config_set_server_addr( |
| | | config, |
| | | [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] |
| | | .UTF8String); |
| | | |
| | | linphone_proxy_config_enable_publish(config, FALSE); |
| | | linphone_proxy_config_enable_register(config, TRUE); |
| | | |
| | | LinphoneAuthInfo *info = |
| | | linphone_auth_info_new(linphone_address_get_username(addr), // username |
| | | NULL, // user id |
| | | pwd.UTF8String, // passwd |
| | | NULL, // ha1 |
| | | linphone_address_get_domain(addr), // realm - assumed to be domain |
| | | linphone_address_get_domain(addr) // domain |
| | | ); |
| | | linphone_core_add_auth_info(LC, info); |
| | | linphone_address_unref(addr); |
| | | linphone_address_unref(tmpAddr); |
| | | |
| | | if (config) { |
| | | [[HDLLinphoneManager instance] configurePushTokenForProxyConfig:config]; |
| | | if (linphone_core_add_proxy_config(LC, config) != -1) { |
| | | linphone_core_set_default_proxy_config(LC, config); |
| | | NSLog(@"ç»å½æåäºï¼"); |
| | | } else { |
| | | } |
| | | } else { |
| | | } |
| | | } |
| | | |
| | | - (void)udpLogin:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain { |
| | | NSString *displayName = @""; |
| | | LinphoneProxyConfig *config = linphone_core_create_proxy_config(LC); |
| | | LinphoneAddress *addr = linphone_address_new(NULL); |
| | | LinphoneAddress *tmpAddr = linphone_address_new([NSString stringWithFormat:@"sip:%@",domain].UTF8String); |
| | | if (tmpAddr == nil) { |
| | | return; |
| | | } |
| | | |
| | | linphone_address_set_username(addr, username.UTF8String); |
| | | linphone_address_set_port(addr, linphone_address_get_port(tmpAddr)); |
| | | linphone_address_set_domain(addr, linphone_address_get_domain(tmpAddr)); |
| | | if (displayName && ![displayName isEqualToString:@""]) { |
| | | linphone_address_set_display_name(addr, displayName.UTF8String); |
| | | } |
| | | linphone_proxy_config_set_identity_address(config, addr); |
| | | |
| | | NSString *type = @"UDP"; |
| | | // linphone_proxy_config_set_routes( |
| | | // config, |
| | | // [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] |
| | | // .UTF8String); |
| | | linphone_proxy_config_set_server_addr( |
| | | config, |
| | | [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] |
| | |
| | | #pragma mark Debug functions |
| | | |
| | | + (void)dumpLcConfig { |
| | | if (theLinphoneCore) { |
| | | LpConfig *conf = HDLLinphoneManager.instance.configDb; |
| | | char *config = lp_config_dump(conf); |
| | | // LOGI(@"\n%s", config); |
| | | ms_free(config); |
| | | } |
| | | // if (theLinphoneCore) { |
| | | // LpConfig *conf = HDLLinphoneManager.instance.configDb; |
| | | // char *config = lp_config_dump(conf); |
| | | //// LOGI(@"\n%s", config); |
| | | // ms_free(config); |
| | | // } |
| | | } |
| | | |
| | | #pragma mark - Logs Functions handlers |
| | |
| | | |
| | | |
| | | - (void)onCall:(LinphoneCall *)call StateChanged:(LinphoneCallState)state withMessage:(const char *)message { |
| | | NSLog(@"å¼å«ç¶æï¼%u",state); |
| | | NSLog(@"å¼å«ç¶æï¼%u,ä¿¡æ¯ï¼%s",state,message); |
| | | |
| | | HDLLinPhoneSDK.instance.IsIncomingReceivedCallState=false; |
| | | // Handling wrapper |
| | |
| | | // NSString *address = [FastAddressBook displayNameForAddress:addr]; |
| | | NSString *address=@""; |
| | | if (state == LinphoneCallIncomingReceived) { |
| | | |
| | | HDLLinPhoneSDK.instance.IsIncomingReceivedCallState=true; |
| | | [HDLLinphoneManager.instance enableMicro:true]; |
| | | |
| | | // LinphoneCallLog *callLog = linphone_call_get_call_log(call); |
| | | // NSString *callId = [NSString stringWithUTF8String:linphone_call_log_get_call_id(callLog)]; |
| | | // int index = [(NSNumber *)[_pushDict objectForKey:callId] intValue] - 1; |
| | |
| | | |
| | | if (state==LinphoneCallStateOutgoingProgress) { |
| | | NSLog(@"ç¦æ¢éº¦å
é£"); |
| | | [HDLLinphoneManager.instance enableMicro:false]; |
| | | // [HDLLinphoneManager.instance enableMicro:false]; |
| | | } |
| | | // Disable speaker when no more call |
| | | if ((state == LinphoneCallEnd || state == LinphoneCallError)) { |
| | |
| | | speaker_already_enabled = TRUE; |
| | | } |
| | | } |
| | | |
| | | if( state == LinphoneCallConnected ){ |
| | | NSLog(@"è¿æ¥äº"); |
| | | // [self enableVideoPlay:TRUE]; |
| | | } |
| | | |
| | | if (state == LinphoneCallStreamsRunning) { |
| | | if (_speakerBeforePause) { |
| | | _speakerBeforePause = FALSE; |
| | | [self setSpeakerEnabled:TRUE]; |
| | | speaker_already_enabled = TRUE; |
| | | } |
| | | if (!self.isResettingVideoEnable&&self.deviceType==HDLLPType_HDLSR) { |
| | | self.isResettingVideoEnable=YES; |
| | | [self resetVideoEnable]; |
| | | } |
| | | } |
| | | if (state == LinphoneCallConnected && !mCallCenter) { |
| | | /*only register CT call center CB for connected call*/ |
| | |
| | | userInfo:dict]; |
| | | } |
| | | |
| | | /*éæ°æåè§é¢æµï¼è§£å³èªç å¯è§å¯¹è®²å¶å°åºç°è§é¢æµæå徿
¢çé®é¢ï¼ |
| | | */ |
| | | -(void)resetVideoEnable{ |
| | | NSLog(@"éç½®è§é¢å¼å
³"); |
| | | __weak typeof(self) weakSelf = self; |
| | | [self enableVideoPlay:TRUE]; |
| | | // [self enableVideoPlay:FALSE]; |
| | | // [[HDLLinphoneTimerManager sharedInstance] scheduleTimerWithInterval:0.5 timerName:RESET_VIDEO_ENABLE_TIMER_NAME count:^(double count) { |
| | | // |
| | | // } finished:^{ |
| | | // NSLog(@"æå¼è§é¢"); |
| | | // [weakSelf enableVideoPlay:TRUE]; |
| | | // }]; |
| | | } |
| | | |
| | | /*æ¯å¦å
许è§é¢ææ¾ |
| | | */ |
| | | -(void)enableVideoPlay:(bool_t)enable{ |
| | | LinphoneCall *call = linphone_core_get_current_call(LC); |
| | | LinphoneCallParams *call_params = linphone_core_create_call_params(LC,call); |
| | | linphone_call_params_enable_video(call_params, enable); |
| | | linphone_call_update(call, call_params); |
| | | linphone_call_params_unref(call_params); |
| | | } |
| | | |
| | | static void linphone_iphone_call_state(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState state, |
| | | const char *message) { |
| | | [(__bridge HDLLinphoneManager *)linphone_core_cbs_get_user_data(linphone_core_get_current_callbacks(lc)) onCall:call StateChanged:state withMessage:message]; |
| | |
| | | } |
| | | |
| | | - (void)onGlobalStateChanged:(LinphoneGlobalState)state withMessage:(const char *)message { |
| | | // LOGI(@"onGlobalStateChanged: %d (message: %s)", state, message); |
| | | LOGI(@"onGlobalStateChanged: %d (message: %s)", state, message); |
| | | |
| | | NSDictionary *dict = [NSDictionary |
| | | dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:state], @"state", |
| | |
| | | linphone_core_cbs_set_user_data(cbs, (__bridge void *)(self)); |
| | | // NSLog(@"Creating linphonecore1:%@",_configDb); |
| | | |
| | | lp_config_set_int(_configDb, [@"app" UTF8String], [@"random_port_preference" UTF8String], 1); |
| | | |
| | | // lp_config_set_int(_configDb, [@"app" UTF8String], [@"random_port_preference" UTF8String], 1); |
| | | linphone_config_set_int(_configDb, [@"app" UTF8String], [@"random_port_preference" UTF8String], 1); |
| | | |
| | | theLinphoneCore = linphone_factory_create_core_with_config_3(factory, _configDb, NULL); |
| | | linphone_core_add_callbacks(theLinphoneCore, cbs); |
| | | linphone_core_start(theLinphoneCore); |
| | | // linphone_core_start(theLinphoneCore); |
| | | //è®¾ç½®ä¸ºéæºç«¯å£ |
| | | LinphoneSipTransports transportValue = {-1, -1, -1, -1}; |
| | | // will also update the sip_*_port section of the config |
| | | if (linphone_core_set_sip_transports(theLinphoneCore, &transportValue)) { |
| | | LOGE(@"cannot set transport"); |
| | | NSLog(@"cannot set transport"); |
| | | } |
| | | // |
| | | linphone_core_set_network_reachable(theLinphoneCore,TRUE); |
| | | // |
| | | // AudioStream*stream=audio_stream_new(ms_factory_new(), -1, -1, TRUE); |
| | | // audio_stream_enable_gain_control(stream, TRUE); |
| | | |
| | | linphone_core_start(theLinphoneCore); |
| | | |
| | | |
| | | [self removeAllAccounts]; |
| | | // Let the core handle cbs |
| | |
| | | // start scheduler |
| | | mIterateTimer = |
| | | [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(iterate) userInfo:nil repeats:YES]; |
| | | |
| | | |
| | | // //èªå¨å¯å¨åæ¥æ¶video |
| | | // NSLog(@"设置èªå¨è®¾ç½®"); |
| | | // LinphoneVideoPolicy policy; |
| | | // policy.automatically_initiate = true; |
| | | // policy.automatically_accept =true; |
| | | // linphone_core_set_video_policy(theLinphoneCore, &policy); |
| | | // LinphoneVideoActivationPolicy policy; |
| | | // linphone_video_activation_policy_set_automatically_accept(&policy,true); |
| | | } |
| | | |
| | | //-(void)appWillTerminate{ |
| | |
| | | } |
| | | |
| | | - (void)migrateImportantFiles { |
| | | if ([HDLLinphoneManager copyFile:[HDLLinphoneManager documentFile:@"linphonerc"] destination:[HDLLinphoneManager preferenceFile:@"linphonerc"] override:TRUE ignore:TRUE]) |
| | | [NSFileManager.defaultManager |
| | | removeItemAtPath:[HDLLinphoneManager documentFile:@"linphonerc"] |
| | | error:nil]; |
| | | // if ([HDLLinphoneManager copyFile:[HDLLinphoneManager documentFile:@"linphonerc"] destination:[HDLLinphoneManager preferenceFile:@"linphonerc"] override:TRUE ignore:TRUE]) |
| | | // [NSFileManager.defaultManager |
| | | // removeItemAtPath:[HDLLinphoneManager documentFile:@"linphonerc"] |
| | | // error:nil]; |
| | | //ä¸ä½¿ç¨é
ç½®æä»¶çé
ç½® |
| | | NSFileManager *fileManager = NSFileManager.defaultManager; |
| | | NSError *error = nil; |
| | | [fileManager removeItemAtPath:[HDLLinphoneManager preferenceFile:@"linphonerc"] error:&error]; |
| | | |
| | | |
| | | if ([HDLLinphoneManager copyFile:[HDLLinphoneManager documentFile:@"linphone_chats.db"] destination:[HDLLinphoneManager dataFile:@"linphone_chats.db"] override:TRUE ignore:TRUE]) |
| | | [NSFileManager.defaultManager |
| | |
| | | LOGW(@"%@ already exists, simply removing %@ %@", dst, src, |
| | | fileError ? fileError.localizedDescription : @"successfully"); |
| | | } else { |
| | | [fileManager moveItemAtPath:src toPath:dst error:&fileError]; |
| | | // [fileManager moveItemAtPath:src toPath:dst error:&fileError]; |
| | | LOGI(@"%@ moving to %@ %@", dst, src, fileError ? fileError.localizedDescription : @"successfully"); |
| | | } |
| | | } |
| | |
| | | src = srcIpad; |
| | | } |
| | | NSString *dst = [HDLLinphoneManager preferenceFile:@"linphonerc"]; |
| | | [HDLLinphoneManager copyFile:src destination:dst override:FALSE ignore:FALSE]; |
| | | // [HDLLinphoneManager copyFile:src destination:dst override:FALSE ignore:FALSE]; |
| | | } |
| | | |
| | | - (void)overrideDefaultSettings { |
| | |
| | | // factory = factoryIpad; |
| | | // } |
| | | NSString *confiFileName = [HDLLinphoneManager preferenceFile:@"linphonerc"]; |
| | | _configDb = lp_config_new_with_factory([confiFileName UTF8String], [factory UTF8String]); |
| | | |
| | | _configDb = linphone_config_new_with_factory([confiFileName UTF8String], [factory UTF8String]); |
| | | |
| | | } |
| | | #pragma mark - Audio route Functions |
| | | |
| | |
| | | } |
| | | } |
| | | linphone_address_destroy(addr); |
| | | linphone_call_params_destroy(lcallParams); |
| | | // linphone_call_params_destroy(lcallParams); |
| | | linphone_call_params_unref(lcallParams); |
| | | |
| | | return TRUE; |
| | | } |
| | |
| | | } |
| | | |
| | | - (void)configureVbrCodecs { |
| | | PayloadType *pt; |
| | | int bitrate = lp_config_get_int( |
| | | _configDb, "audio", "codec_bitrate_limit", |
| | | kLinphoneAudioVbrCodecDefaultBitrate); /*default value is in linphonerc or linphonerc-factory*/ |
| | | const MSList *audio_codecs = linphone_core_get_audio_codecs(theLinphoneCore); |
| | | const MSList *codec = audio_codecs; |
| | | while (codec) { |
| | | pt = codec->data; |
| | | if (linphone_core_payload_type_is_vbr(theLinphoneCore, pt)) { |
| | | linphone_core_set_payload_type_bitrate(theLinphoneCore, pt, bitrate); |
| | | } |
| | | codec = codec->next; |
| | | } |
| | | // PayloadType *pt; |
| | | // int bitrate = linphone_config_get_int( |
| | | // _configDb, "audio", "codec_bitrate_limit", |
| | | // kLinphoneAudioVbrCodecDefaultBitrate); /*default value is in linphonerc or linphonerc-factory*/ |
| | | // const MSList *audio_codecs = linphone_core_get_audio_codecs(theLinphoneCore); |
| | | // const MSList *codec = audio_codecs; |
| | | // while (codec) { |
| | | // pt = codec->data; |
| | | // if (linphone_core_payload_type_is_vbr(theLinphoneCore, pt)) { |
| | | // linphone_core_set_payload_type_bitrate(theLinphoneCore, pt, bitrate); |
| | | // } |
| | | // codec = codec->next; |
| | | // } |
| | | |
| | | PayloadType *pt; |
| | | int bitrate = linphone_config_get_int( |
| | | _configDb, "audio", "codec_bitrate_limit", |
| | | kLinphoneAudioVbrCodecDefaultBitrate); /*default value is in linphonerc or linphonerc-factory*/ |
| | | const MSList *audio_codecs = linphone_core_get_audio_payload_types(theLinphoneCore); |
| | | const MSList *codec = audio_codecs; |
| | | while (codec) { |
| | | pt = codec->data; |
| | | if (linphone_core_payload_type_is_vbr(theLinphoneCore, pt)) { |
| | | linphone_core_set_payload_type_bitrate(theLinphoneCore, pt, bitrate); |
| | | } |
| | | codec = codec->next; |
| | | } |
| | | } |
| | | |
| | | + (id)getMessageAppDataForKey:(NSString *)key inMessage:(LinphoneChatMessage *)msg { |
| | |
| | | - (void)lpConfigSetString:(NSString *)value forKey:(NSString *)key inSection:(NSString *)section { |
| | | if (!key) |
| | | return; |
| | | lp_config_set_string(_configDb, [section UTF8String], [key UTF8String], value ? [value UTF8String] : NULL); |
| | | // lp_config_set_string(_configDb, [section UTF8String], [key UTF8String], value ? [value UTF8String] : NULL); |
| | | linphone_config_set_string(_configDb, [section UTF8String], [key UTF8String], value ? [value UTF8String] : NULL); |
| | | |
| | | } |
| | | - (NSString *)lpConfigStringForKey:(NSString *)key { |
| | | return [self lpConfigStringForKey:key withDefault:nil]; |
| | |
| | | - (NSString *)lpConfigStringForKey:(NSString *)key inSection:(NSString *)section withDefault:(NSString *)defaultValue { |
| | | if (!key) |
| | | return defaultValue; |
| | | const char *value = lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL); |
| | | // const char *value = lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL); |
| | | const char *value = linphone_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL); |
| | | return value ? [NSString stringWithUTF8String:value] : defaultValue; |
| | | } |
| | | |
| | |
| | | - (void)lpConfigSetInt:(int)value forKey:(NSString *)key inSection:(NSString *)section { |
| | | if (!key) |
| | | return; |
| | | lp_config_set_int(_configDb, [section UTF8String], [key UTF8String], (int)value); |
| | | linphone_config_set_int(_configDb, [section UTF8String], [key UTF8String], (int)value); |
| | | } |
| | | - (int)lpConfigIntForKey:(NSString *)key { |
| | | return [self lpConfigIntForKey:key withDefault:-1]; |
| | |
| | | - (int)lpConfigIntForKey:(NSString *)key inSection:(NSString *)section withDefault:(int)defaultValue { |
| | | if (!key) |
| | | return defaultValue; |
| | | return lp_config_get_int(_configDb, [section UTF8String], [key UTF8String], (int)defaultValue); |
| | | return linphone_config_get_int(_configDb, [section UTF8String], [key UTF8String], (int)defaultValue); |
| | | } |
| | | |
| | | - (void)lpConfigSetBool:(BOOL)value forKey:(NSString *)key { |