From b469805b2d0c9b23ca020cf9356ff137205f856c Mon Sep 17 00:00:00 2001
From: 464027401@qq.com <464027401@qq.com>
Date: 星期一, 27 九月 2021 10:22:10 +0800
Subject: [PATCH] 修复来点页面重复呼叫时alert位置不对问题

---
 HDLLinPhoneSDK(OC)/HDLLinPhoneSDK/HDLLinphoneManager.m |  109 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 56 insertions(+), 53 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 3826803..b158f2b 100644
--- "a/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinphoneManager.m"
+++ "b/HDLLinPhoneSDK\357\274\210OC\357\274\211/HDLLinPhoneSDK/HDLLinphoneManager.m"
@@ -559,6 +559,8 @@
     linphone_core_set_preferred_video_size([HDLLinphoneManager getLc], vsize);
     linphone_core_set_video_preset([HDLLinphoneManager getLc], [@"custom" UTF8String]);
     linphone_core_set_preferred_framerate([HDLLinphoneManager getLc], 5);
+//    linphone_core_enable_video_capture([HDLLinphoneManager getLc], false);
+//    linphone_core_enable_video_preview([HDLLinphoneManager getLc], FALSE);
 
 
 }
@@ -1063,45 +1065,45 @@
 				: @"";
 			NSUUID *uuid = (NSUUID *)[self.providerDelegate.uuids objectForKey:callId2];
 			if (uuid) {
-				LinphoneCall *callKit_call = (LinphoneCall *)linphone_core_get_calls(LC)
+				LinphoneCall *callK_call = (LinphoneCall *)linphone_core_get_calls(LC)
 					? linphone_core_get_calls(LC)->data
 					: NULL;
-				const char *callKit_callId = callKit_call
-					? linphone_call_log_get_call_id(linphone_call_get_call_log(callKit_call))
+				const char *call_callId = callK_call
+					? linphone_call_log_get_call_id(linphone_call_get_call_log(callK_call))
 					: NULL;
-				if (callKit_callId && !_conf) {
+				if (call_callId && !_conf) {
 					// Create a CallKit call because there's not !
-					NSString *callKit_callIdNS = [NSString stringWithUTF8String:callKit_callId];
-					NSUUID *callKit_uuid = [NSUUID UUID];
-					[HDLLinphoneManager.instance.providerDelegate.uuids setObject:callKit_uuid forKey:callKit_callIdNS];
-					[HDLLinphoneManager.instance.providerDelegate.calls setObject:callKit_callIdNS forKey:callKit_uuid];
+					NSString *callK_callIdNS = [NSString stringWithUTF8String:call_callId];
+					NSUUID *callK_uuid = [NSUUID UUID];
+					[HDLLinphoneManager.instance.providerDelegate.uuids setObject:callK_uuid forKey:callK_callIdNS];
+					[HDLLinphoneManager.instance.providerDelegate.calls setObject:callK_callIdNS forKey:callK_uuid];
 //					NSString *address = [FastAddressBook displayNameForAddress:linphone_call_get_remote_address(callKit_call)];
-                    NSString *address=@"";
-					CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:address];
-					CXStartCallAction *act = [[CXStartCallAction alloc] initWithCallUUID:callKit_uuid handle:handle];
-					CXTransaction *tr = [[CXTransaction alloc] initWithAction:act];
-					[HDLLinphoneManager.instance.providerDelegate.controller requestTransaction:tr completion:^(NSError *err){}];
-					[HDLLinphoneManager.instance.providerDelegate.provider reportOutgoingCallWithUUID:callKit_uuid startedConnectingAtDate:nil];
-					[HDLLinphoneManager.instance.providerDelegate.provider reportOutgoingCallWithUUID:callKit_uuid connectedAtDate:nil];
+//                    NSString *address=@"";
+//					CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:address];
+//					CXStartCallAction *act = [[CXStartCallAction alloc] initWithCallUUID:callKit_uuid handle:handle];
+//					CXTransaction *tr = [[CXTransaction alloc] initWithAction:act];
+//					[HDLLinphoneManager.instance.providerDelegate.controller requestTransaction:tr completion:^(NSError *err){}];
+//					[HDLLinphoneManager.instance.providerDelegate.provider reportOutgoingCallWithUUID:callKit_uuid startedConnectingAtDate:nil];
+//					[HDLLinphoneManager.instance.providerDelegate.provider reportOutgoingCallWithUUID:callKit_uuid connectedAtDate:nil];
 				}
 
-				CXEndCallAction *act = [[CXEndCallAction alloc] initWithCallUUID:uuid];
-				CXTransaction *tr = [[CXTransaction alloc] initWithAction:act];
-				[HDLLinphoneManager.instance.providerDelegate.controller requestTransaction:tr completion:^(NSError *err){}];
-				LOGI(@"CallKit - clearing CK as call ended on uuid %@",uuid);
-				[HDLLinphoneManager.instance.providerDelegate.provider reportOutgoingCallWithUUID:uuid connectedAtDate:[NSDate date]];
-				[self.providerDelegate.uuids removeObjectForKey:callId2];
-				[self.providerDelegate.calls removeObjectForKey:uuid];
-				[self.providerDelegate.provider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:(state == LinphoneCallError ? CXCallEndedReasonFailed : CXCallEndedReasonRemoteEnded)];
+//				CXEndCallAction *act = [[CXEndCallAction alloc] initWithCallUUID:uuid];
+//				CXTransaction *tr = [[CXTransaction alloc] initWithAction:act];
+//				[HDLLinphoneManager.instance.providerDelegate.controller requestTransaction:tr completion:^(NSError *err){}];
+//				LOGI(@"CallKit - clearing CK as call ended on uuid %@",uuid);
+//				[HDLLinphoneManager.instance.providerDelegate.provider reportOutgoingCallWithUUID:uuid connectedAtDate:[NSDate date]];
+//				[self.providerDelegate.uuids removeObjectForKey:callId2];
+//				[self.providerDelegate.calls removeObjectForKey:uuid];
+//				[self.providerDelegate.provider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:(state == LinphoneCallError ? CXCallEndedReasonFailed : CXCallEndedReasonRemoteEnded)];
 			} else { // Can happen when Call-ID changes (Replaces header)
 				if (linphone_core_get_calls_nb(LC) ==0) { // Need to clear all CK calls
-					for (NSUUID *myUuid in self.providerDelegate.calls) {
-						[self.providerDelegate.provider reportCallWithUUID:myUuid
-						 endedAtDate:NULL
-						 reason:(state == LinphoneCallError
-							 ? CXCallEndedReasonFailed
-							 : CXCallEndedReasonRemoteEnded)];
-					}
+//					for (NSUUID *myUuid in self.providerDelegate.calls) {
+//						[self.providerDelegate.provider reportCallWithUUID:myUuid
+//						 endedAtDate:NULL
+//						 reason:(state == LinphoneCallError
+//							 ? CXCallEndedReasonFailed
+//							 : CXCallEndedReasonRemoteEnded)];
+//					}
 					[self.providerDelegate.uuids removeAllObjects];
 					[self.providerDelegate.calls removeAllObjects];
 				}
@@ -2804,29 +2806,30 @@
 		return;
 	}
 
-	if (linphone_core_get_calls_nb(theLinphoneCore) < 1 &&
-	    floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max &&
-	    self.providerDelegate.callKitCalls < 1) {
-        NSLog(@"杩涜繖閲屽懠鍙簡");
-		self.providerDelegate.callKitCalls++;
-		NSUUID *uuid = [NSUUID UUID];
-		[HDLLinphoneManager.instance.providerDelegate.uuids setObject:uuid forKey:@""];
-		[HDLLinphoneManager.instance.providerDelegate.calls setObject:@"" forKey:uuid];
-		HDLLinphoneManager.instance.providerDelegate.pendingAddr = linphone_address_clone(iaddr);
-//		NSString *address = [FastAddressBook displayNameForAddress:iaddr];
-        NSString *address =@"unknow";
-
-		CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:address];
-		CXStartCallAction *act = [[CXStartCallAction alloc] initWithCallUUID:uuid handle:handle];
-		CXTransaction *tr = [[CXTransaction alloc] initWithAction:act];
-		[HDLLinphoneManager.instance.providerDelegate.controller requestTransaction:tr
-		 completion:^(NSError *err){
-            NSLog(@"鍛煎彨error:%@",err);
-			}];
-	} else {
-        NSLog(@"杩沝oCall鍛煎彨浜�");
-		[self doCall:iaddr];
-	}
+//	if (linphone_core_get_calls_nb(theLinphoneCore) < 1 &&
+//	    floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_9_x_Max &&
+//	    self.providerDelegate.callKitCalls < 1) {
+//        NSLog(@"杩涜繖閲屽懠鍙簡");
+//		self.providerDelegate.callKitCalls++;
+//		NSUUID *uuid = [NSUUID UUID];
+//		[HDLLinphoneManager.instance.providerDelegate.uuids setObject:uuid forKey:@""];
+//		[HDLLinphoneManager.instance.providerDelegate.calls setObject:@"" forKey:uuid];
+//		HDLLinphoneManager.instance.providerDelegate.pendingAddr = linphone_address_clone(iaddr);
+////		NSString *address = [FastAddressBook displayNameForAddress:iaddr];
+//        NSString *address =@"unknow";
+//
+//		CXHandle *handle = [[CXHandle alloc] initWithType:CXHandleTypeGeneric value:address];
+//		CXStartCallAction *act = [[CXStartCallAction alloc] initWithCallUUID:uuid handle:handle];
+//		CXTransaction *tr = [[CXTransaction alloc] initWithAction:act];
+//		[HDLLinphoneManager.instance.providerDelegate.controller requestTransaction:tr
+//		 completion:^(NSError *err){
+//            NSLog(@"鍛煎彨error:%@",err);
+//			}];
+//	} else {
+//        NSLog(@"杩沝oCall鍛煎彨浜�");
+//		[self doCall:iaddr];
+//	}
+    [self doCall:iaddr];
 }
 
 - (BOOL)doCall:(const LinphoneAddress *)iaddr {

--
Gitblit v1.8.0