swift 4.2 How to Quit a Phone call programmatically?












0















using the code below from another answer to detect phone call status, and it worked, but now I need to create a func where after 10 seconds the call is closed programmatically,
Or to put in a button in order the user to close it.
Or even detect the press of red button from user.



the code



//        CXCallController.request(transaction) { error in


is note valid anymore



testing now:



func endCall(call: UUID) {

let endCallAction = CXEndCallAction(call: call)
let transaction = CXTransaction(action: endCallAction)
let cxcontrolelr = CXCallController()
// CXCallController.request(transaction) { error in
// if let error = error {
// print("EndCallAction transaction request failed: (error.localizedDescription).")
// self.cxCallProvider.reportCall(with: call, endedAt: Date(), reason: .remoteEnded)
// return
// }

CXCallController.requestTransaction(cxcontrolelr)
print("EndCallAction transaction request successful")

}

}


func closeTheCAll() {

// let myUuid = UIDevice.current.identifierForVendor?.uuidString
let myUuid = UUID().uuidString
print(myUuid)
endCall(call: myUuid)

}



//MARK: Monitoring call status section //this is working with no issue
func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
if call.hasEnded == true {
print("Disconnected")

}
if call.isOutgoing == true && call.hasConnected == false {
print("Dialing")
}
if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
print("Incoming")
}
if call.hasConnected == true && call.hasEnded == false {
print("Connected")

}
}









share|improve this question





























    0















    using the code below from another answer to detect phone call status, and it worked, but now I need to create a func where after 10 seconds the call is closed programmatically,
    Or to put in a button in order the user to close it.
    Or even detect the press of red button from user.



    the code



    //        CXCallController.request(transaction) { error in


    is note valid anymore



    testing now:



    func endCall(call: UUID) {

    let endCallAction = CXEndCallAction(call: call)
    let transaction = CXTransaction(action: endCallAction)
    let cxcontrolelr = CXCallController()
    // CXCallController.request(transaction) { error in
    // if let error = error {
    // print("EndCallAction transaction request failed: (error.localizedDescription).")
    // self.cxCallProvider.reportCall(with: call, endedAt: Date(), reason: .remoteEnded)
    // return
    // }

    CXCallController.requestTransaction(cxcontrolelr)
    print("EndCallAction transaction request successful")

    }

    }


    func closeTheCAll() {

    // let myUuid = UIDevice.current.identifierForVendor?.uuidString
    let myUuid = UUID().uuidString
    print(myUuid)
    endCall(call: myUuid)

    }



    //MARK: Monitoring call status section //this is working with no issue
    func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
    if call.hasEnded == true {
    print("Disconnected")

    }
    if call.isOutgoing == true && call.hasConnected == false {
    print("Dialing")
    }
    if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
    print("Incoming")
    }
    if call.hasConnected == true && call.hasEnded == false {
    print("Connected")

    }
    }









    share|improve this question



























      0












      0








      0








      using the code below from another answer to detect phone call status, and it worked, but now I need to create a func where after 10 seconds the call is closed programmatically,
      Or to put in a button in order the user to close it.
      Or even detect the press of red button from user.



      the code



      //        CXCallController.request(transaction) { error in


      is note valid anymore



      testing now:



      func endCall(call: UUID) {

      let endCallAction = CXEndCallAction(call: call)
      let transaction = CXTransaction(action: endCallAction)
      let cxcontrolelr = CXCallController()
      // CXCallController.request(transaction) { error in
      // if let error = error {
      // print("EndCallAction transaction request failed: (error.localizedDescription).")
      // self.cxCallProvider.reportCall(with: call, endedAt: Date(), reason: .remoteEnded)
      // return
      // }

      CXCallController.requestTransaction(cxcontrolelr)
      print("EndCallAction transaction request successful")

      }

      }


      func closeTheCAll() {

      // let myUuid = UIDevice.current.identifierForVendor?.uuidString
      let myUuid = UUID().uuidString
      print(myUuid)
      endCall(call: myUuid)

      }



      //MARK: Monitoring call status section //this is working with no issue
      func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
      if call.hasEnded == true {
      print("Disconnected")

      }
      if call.isOutgoing == true && call.hasConnected == false {
      print("Dialing")
      }
      if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
      print("Incoming")
      }
      if call.hasConnected == true && call.hasEnded == false {
      print("Connected")

      }
      }









      share|improve this question
















      using the code below from another answer to detect phone call status, and it worked, but now I need to create a func where after 10 seconds the call is closed programmatically,
      Or to put in a button in order the user to close it.
      Or even detect the press of red button from user.



      the code



      //        CXCallController.request(transaction) { error in


      is note valid anymore



      testing now:



      func endCall(call: UUID) {

      let endCallAction = CXEndCallAction(call: call)
      let transaction = CXTransaction(action: endCallAction)
      let cxcontrolelr = CXCallController()
      // CXCallController.request(transaction) { error in
      // if let error = error {
      // print("EndCallAction transaction request failed: (error.localizedDescription).")
      // self.cxCallProvider.reportCall(with: call, endedAt: Date(), reason: .remoteEnded)
      // return
      // }

      CXCallController.requestTransaction(cxcontrolelr)
      print("EndCallAction transaction request successful")

      }

      }


      func closeTheCAll() {

      // let myUuid = UIDevice.current.identifierForVendor?.uuidString
      let myUuid = UUID().uuidString
      print(myUuid)
      endCall(call: myUuid)

      }



      //MARK: Monitoring call status section //this is working with no issue
      func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
      if call.hasEnded == true {
      print("Disconnected")

      }
      if call.isOutgoing == true && call.hasConnected == false {
      print("Dialing")
      }
      if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
      print("Incoming")
      }
      if call.hasConnected == true && call.hasEnded == false {
      print("Connected")

      }
      }






      swift callkit






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 21 '18 at 10:47







      biggreentree

















      asked Nov 21 '18 at 9:55









      biggreentreebiggreentree

      50621023




      50621023
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409397%2fswift-4-2-how-to-quit-a-phone-call-programmatically%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53409397%2fswift-4-2-how-to-quit-a-phone-call-programmatically%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith