I am using iOS 10 CallKit to receive incoming calls. Calls in my application do not come from "phone numbers" or "email addresses", but from the internal identifier in my protocol. Thus, I report incoming calls with CXHandleType CXHandleTypeGeneric (and not CXHandleTypePhoneNumber or CXHandleTypeEmailAddress ), using the user string as the "value" of the handle.
When I report an incoming call and the phone is not blocked, the user sees an incoming call screen with the buttons "Remind me", "Message", "Reject" and "Accept". If the user presses the "Message" button and selects one of the message lines in the next menu, he tries to send this line as a text message through the "Messages" application, the goal being the user line, which I used as the "value" of the call descriptor, as if it would be a phone number or email address, although it is not. Usually this leads to the fact that the message cannot be sent due to an invalid recipient, but depending on the line, it can actually send a valid address to which the user did not want to send; both results are bad.
I am looking to see if there is a way so that the message is not sent through the Messages application (which is always incorrect in my case), but is instead transferred to my application so that I can send the message to the caller correctly through my internal protocol.
Update: Remind me and Message buttons no longer appear on iOS 10.1
source share