By using Apple's APN and Google's FCM to deliver push notifications to devices running our Programmable Voice SDK, Twilio has improved the utility and reliability of incoming call notifications; however, the introduction of these push notification systems has increased the complexity of application configuration a little bit, resulting in some obstacles to call delivery if you're not careful.
Here are some things we've noticed are tripping developers up when it comes to making sure an incoming call to the Programmable Voice SDK arrives:
- Verify that the application is using an Access Token and not using a Capability Token
- For iOS, verify that your Sandbox push credential is not being used in Production, and vice versa
- Verify the APN/GCM API key is correct by updating push credentials in Console
- Verify the Twilio API key is correct, or just create a new Twilio API key
- Verify that the Access Token is associated with the correct account; user names are registered in an account-scoped namespace so you'll want to make sure you're not trying to call someone on your dev account from a production account app, or calling someone on a subaccount from a parent account, etc.
- Verify that the Access Token returns incoming capability by parsing in a JSON Web Token decoder
- Verify the application is registering the username in the <Dial>
If even one call is successfully delivered using the push credentials, we know the configuration is good from a Twilio API/Push Credential perspective.
If no calls are delivered, this could indicate a problem with the configuration. Rather than diagnose which step of the process has failed, it may be easier to just start from scratch and create a new Twilio API Key or Push Credential.