Official Sinch API skills for AI coding agents — SMS, Voice, Verification, Numbers, Mailgun email, and more.
71
89%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Real-time voice and video SDK for Android, iOS, and JavaScript (Web). Connects to Sinch's cloud for signaling and routing.
The user needs a Sinch account with an application key and secret from the Sinch Build Dashboard. See sinch-authentication for credential setup — In-App Calling uses application-scoped auth (Application Key + Application Secret).
Detect the platform from the user's project (language, build system, framework):
references/android.mdreferences/ios.mdreferences/js.mdWalk through the integration steps in the platform reference. Go step by step — confirm each step is in place before moving to the next.
Ask about auth approach: Can the Application Secret be embedded (prototyping only) or must JWTs come from a backend (production)?
Ask about call types: Which types does the user need? This determines which sections to cover.
For Phone-to-App / SIP-to-App: The user needs a backend ICE callback handler. See the "Phone-to-App / SIP-to-App backend" section below.
For detailed SDK initialization code per platform:
Receiving inbound PSTN or SIP calls requires:
connectMxp:{
"action": {
"name": "connectMxp",
"destination": {
"type": "username",
"endpoint": "target-user-id"
}
}
}SinchClient initialization.connectMxp.ocra.api.sinch.com for global routing).callUser("recipient-id"). Both users must have active SinchClient instances.callPhoneNumber("+15551234567") with a CLI (caller ID) set to a Sinch number.onIncomingCall event.connectMxp action targeting the user.callUserVideo("recipient-id") (or platform equivalent). Requires camera permissions.| Symptom | Likely cause | Fix |
|---|---|---|
onClientFailed / clientDidFail | JWT issue — token missing, expired, wrong secret, or malformed | Verify JWT generation: correct app key + secret, kid matches key ID, token not expired. See auth section in platform reference |
onClientFailed / clientDidFail | Invalid app key or wrong environment host | Verify key in Dashboard; check environmentHost matches your region |
| No incoming calls (JS) | Managed push not enabled | Call sinchClient.setSupportManagedPush() before starting — required even for the caller side |
| No incoming calls (Android) | FCM misconfiguration | Verify FCM credentials in Dashboard ("In-app Voice & Video SDKs" → "Google FCM Identification"); check that the device receives FCM tokens |
| No incoming calls (iOS) | APNs push not configured or token stale | Verify push certificate/key in Dashboard; ensure registerPushNotificationData is called with a fresh device token |
| No incoming calls (general) | SinchClient not running on the receiver's device | The receiver's app must have an active, started SinchClient to receive calls. Verify start() completed successfully |
| App-to-Phone fails immediately | Missing CLI (caller ID) | Set callerIdentifier / cli with a Sinch number |
| Audio only in foreground (iOS) | CallKit not reporting calls | Report outgoing calls to CallKit for background audio |
If the above steps don't resolve the issue, instruct the user to contact Sinch Support with their app key, platform, and a description of the problem.
Set environmentHost when creating the Sinch client:
| Endpoint | Region |
|---|---|
ocra.api.sinch.com | Global (auto-routed) |
ocra-euc1.api.sinch.com | Europe |
ocra-use1.api.sinch.com | North America |
ocra-sae1.api.sinch.com | South America |
ocra-apse1.api.sinch.com | South East Asia 1 |
ocra-apse2.api.sinch.com | South East Asia 2 |
skills
sinch-10dlc
references
sinch-authentication
sinch-conversation-api
sinch-elastic-sip-trunking
references
sinch-fax-api
sinch-imported-numbers-hosting-orders
references
sinch-in-app-calling
sinch-mailgun
references
sinch-mailgun-inspect
references
sinch-mailgun-optimize
references
sinch-mailgun-validate
sinch-number-lookup-api
sinch-number-order-api
sinch-numbers-api
references
sinch-porting-api
sinch-provisioning-api
sinch-sdks
sinch-verification-api