4

When call is disconnected by receiver(after receiving the call) than call failed screen appears, I don't want this screen to be displayed. All my delegate methods are working. How can I make a successful call? What cause the call to be failed?

2 Answers2

1

To end the call, use CXEndCallAction and add the CXTransaction objects. Make sure you are using the correct uuid.

CXEndCallAction *action = [[CXEndCallAction alloc] initWithCallUUID:callUUID];
[self.callController requestTransaction:[CXTransaction ...Actions:@[action]] completion:completion];
RJV Kumar
  • 2,408
  • 1
  • 19
  • 28
  • I am using CXTransaction, One thing I observed that action.callUUID and action.uuid is different inside CXEndCallAction delegate. Which one should I use, I tried both but got no success. – Mohammad Farhan Jan 25 '18 at 09:23
  • callUUID is correct. Check the callUUID when the call initiated and while ending, both should be the same. – RJV Kumar Jan 25 '18 at 10:49
  • [self.provider reportCallWithUUID:callUUID endedAtDate:nil reason:CXCallEndedReasonRemoteEnded]; Check this as well. – RJV Kumar Jan 25 '18 at 17:39
0

I ran into same situation :P But this is the solution:

- (void)provider:(CXProvider *)provider performEndCallAction:(CXEndCallAction *)action {
    /* Perform your action after ending the call */
    NSLog(@"performEndCallAction");
    [action fulfill];
}

When performEndCallAction gets called by CallKit, execute [action fulfill] in it :)

AndaluZ
  • 1,410
  • 3
  • 15
  • 33