diff --git a/index.js b/index.js index 08048d6..60a5e06 100644 --- a/index.js +++ b/index.js @@ -86,6 +86,11 @@ export default class RNCallKit { _RNCallKit.endCall(uuid); } + static endAllCalls() { + if (Platform.OS !== 'ios') return; + _RNCallKit.endAllCalls(); + } + /* static setHeldCall(uuid, onHold) { if (Platform.OS !== 'ios') return; diff --git a/ios/RNCallKit/RNCallKit.m b/ios/RNCallKit/RNCallKit.m index 6d54450..56377d7 100644 --- a/ios/RNCallKit/RNCallKit.m +++ b/ios/RNCallKit/RNCallKit.m @@ -144,6 +144,18 @@ - (void)dealloc [self requestTransaction:transaction]; } +RCT_EXPORT_METHOD(endAllCalls) +{ +#ifdef DEBUG + NSLog(@"[RNCallKit][endAllCalls] calls = %@", self.callKitCallController.callObserver.calls); +#endif + for (CXCall *call in self.callKitCallController.callObserver.calls) { + CXEndCallAction *endCallAction = [[CXEndCallAction alloc] initWithCallUUID:call.UUID]; + CXTransaction *transaction = [[CXTransaction alloc] initWithAction:endCallAction]; + [self requestTransaction:transaction]; + } +} + RCT_EXPORT_METHOD(setHeldCall:(NSString *)uuidString onHold:(BOOL)onHold) { #ifdef DEBUG