From 6a99d9bf65aa5878cb409945ed2bdbdcb916d047 Mon Sep 17 00:00:00 2001 From: chenqiyang <1406175257@qq.com> Date: 星期五, 02 九月 2022 14:56:40 +0800 Subject: [PATCH] 更新linphone sdk --- HDLLinPhoneSDK(OC)/HDLLinPhoneSDK/HDLLinphoneManager.m | 128 +++++++++++++++++++++++++++++------------- 1 files changed, 88 insertions(+), 40 deletions(-) diff --git "a/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinphoneManager.m" "b/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinphoneManager.m" index d3cfbdc..f914edc 100644 --- "a/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinphoneManager.m" +++ "b/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinphoneManager.m" @@ -268,7 +268,7 @@ 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; @@ -423,7 +423,8 @@ 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; } @@ -521,11 +522,12 @@ NSError *err = nil; if (![audioSession setActive:NO error:&err] && err) { - + NSLog(@"audio鍚姩澶辫触"); err = nil; } if (!bAudioInputAvailable) { - + NSLog(@"璁惧涓嶆敮鎸乤udio"); + } } @@ -705,6 +707,7 @@ // set transport NSString *type = @"UDP"; +// NSString *type = @"TCP"; linphone_proxy_config_set_route( config, [NSString stringWithFormat:@"%s;transport=%s", domain.UTF8String, type.lowercaseString.UTF8String] @@ -767,12 +770,12 @@ #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 @@ -853,8 +856,10 @@ // 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; @@ -1011,7 +1016,7 @@ if (state==LinphoneCallStateOutgoingProgress) { NSLog(@"绂佹楹﹀厠椋�"); - [HDLLinphoneManager.instance enableMicro:false]; +// [HDLLinphoneManager.instance enableMicro:false]; } // Disable speaker when no more call if ((state == LinphoneCallEnd || state == LinphoneCallError)) { @@ -2134,18 +2139,26 @@ 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 @@ -2196,6 +2209,16 @@ // start scheduler mIterateTimer = [NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(iterate) userInfo:nil repeats:YES]; + + +// //鑷姩鍚姩鍜屾帴鏀秜ideo +// 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{ @@ -2586,10 +2609,15 @@ } - (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 @@ -2621,7 +2649,7 @@ 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"); } } @@ -2634,7 +2662,7 @@ 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 { @@ -2644,7 +2672,9 @@ // 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 @@ -2897,7 +2927,8 @@ } } linphone_address_destroy(addr); - linphone_call_params_destroy(lcallParams); +// linphone_call_params_destroy(lcallParams); + linphone_call_params_unref(lcallParams); return TRUE; } @@ -3089,19 +3120,33 @@ } - (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 { @@ -3145,7 +3190,9 @@ - (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]; @@ -3159,7 +3206,8 @@ - (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; } @@ -3169,7 +3217,7 @@ - (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]; @@ -3183,7 +3231,7 @@ - (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 { -- Gitblit v1.8.0