Skip to content

Commit fd7010b

Browse files
authored
Merge pull request #164 from NUACOM/master
Exposed the method reportEndCallWithUUID to handle a cancel VoIP Push Notification to tears down an incoming call
2 parents 0028869 + c73229d commit fd7010b

File tree

2 files changed

+34
-25
lines changed

2 files changed

+34
-25
lines changed

ios/RNCallKeep/RNCallKeep.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,7 @@ continueUserActivity:(NSUserActivity *)userActivity
3434
localizedCallerName:(NSString * _Nullable)localizedCallerName
3535
fromPushKit:(BOOL)fromPushKit
3636
payload:(NSDictionary * _Nullable)payload;
37-
@end
37+
38+
+ (void)endCallWithUUID:(NSString *)uuidString
39+
reason:(int)reason;
40+
@end

ios/RNCallKeep/RNCallKeep.m

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -231,30 +231,7 @@ + (void)initCallKitProvider {
231231

232232
RCT_EXPORT_METHOD(reportEndCallWithUUID:(NSString *)uuidString :(int)reason)
233233
{
234-
#ifdef DEBUG
235-
NSLog(@"[RNCallKeep][reportEndCallWithUUID] uuidString = %@ reason = %d", uuidString, reason);
236-
#endif
237-
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:uuidString];
238-
switch (reason) {
239-
case 1:
240-
[self.callKeepProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonFailed];
241-
break;
242-
case 2:
243-
case 6:
244-
[self.callKeepProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonRemoteEnded];
245-
break;
246-
case 3:
247-
[self.callKeepProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonUnanswered];
248-
break;
249-
case 4:
250-
[self.callKeepProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonAnsweredElsewhere];
251-
break;
252-
case 5:
253-
[self.callKeepProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonDeclinedElsewhere];
254-
break;
255-
default:
256-
break;
257-
}
234+
[RNCallKeep endCallWithUUID: uuidString reason:reason];
258235
}
259236

260237
RCT_EXPORT_METHOD(updateDisplay:(NSString *)uuidString :(NSString *)displayName :(NSString *)uri)
@@ -327,6 +304,35 @@ - (void)requestTransaction:(CXTransaction *)transaction
327304
}];
328305
}
329306

307+
+ (void)endCallWithUUID:(NSString *)uuidString
308+
reason:(int)reason
309+
{
310+
#ifdef DEBUG
311+
NSLog(@"[RNCallKeep][reportEndCallWithUUID] uuidString = %@ reason = %d", uuidString, reason);
312+
#endif
313+
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:uuidString];
314+
switch (reason) {
315+
case 1:
316+
[sharedProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonFailed];
317+
break;
318+
case 2:
319+
case 6:
320+
[sharedProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonRemoteEnded];
321+
break;
322+
case 3:
323+
[sharedProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonUnanswered];
324+
break;
325+
case 4:
326+
[sharedProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonAnsweredElsewhere];
327+
break;
328+
case 5:
329+
[sharedProvider reportCallWithUUID:uuid endedAtDate:[NSDate date] reason:CXCallEndedReasonDeclinedElsewhere];
330+
break;
331+
default:
332+
break;
333+
}
334+
}
335+
330336
+ (void)reportNewIncomingCall:(NSString *)uuidString
331337
handle:(NSString *)handle
332338
handleType:(NSString *)handleType

0 commit comments

Comments
 (0)