Connect a Mobily SIP trunk to Wixzel Voice
To run an AI voice agent on a Mobily number, connect Mobily SIP Trunk to Wixzel Voice: add the platform_ip your trunk returns to the trusted peers on the SBC that holds your Mobily link so outbound calls are accepted, and set the SBC route for inbound Mobily calls to its origination_uri so inbound calls arrive. Mobily keeps billing you for the line at your rates; Wixzel Voice bills the voice engine per second from a prepaid balance.
Last updated
Published
Mobily is the carrier; Wixzel Voice is the voice AI API that runs the agent on top of it. They work together over standard SIP. Mobily is a trademark of its owner, and Wixzel Voice is not affiliated with or endorsed by Mobily.
What do you need before you start?
- A Mobily account with SIP Trunk, and the host and credentials of the trunk.
- A phone number you own at Mobily, attached to that trunk. Wixzel Voice does not sell or port numbers.
- A Wixzel Voice API key and some prepaid credit. The minimum top-up is $5; there is no free tier.
- Wixzel Voice runs 5 concurrent calls per account by default, raised on request; web and app sessions count toward the same limit.
How do you create the Mobily trunk in Wixzel Voice?
The public address of your own SBC or PBX, the box that sits on the Mobily link. Mobily delivers the trunk over a private link to your site, so there is no Mobily address to put here.
curl https://api.voice.wixzel.com/v1/sip-trunks \
-H "Authorization: Bearer $WIXZEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Mobily",
"host": "<your SBC public IP>",
"transport": "udp",
"send_plus": false
}'Add username and password to the body if Mobily authenticates by credentials rather than IP. The password is encrypted at rest and never returned by the API again. The response carries platform_ip and origination_uri: the two values the next step needs.
What do you set at Mobily?
| Setting | What Mobily calls it | Value |
|---|---|---|
| Allowlist calls from Wixzel Voice | trusted peers on the SBC that holds your Mobily link | 187.126.120.231 |
| Send inbound calls to Wixzel Voice | SBC route for inbound Mobily calls | sip:187.126.120.231:5090 |
Not verified yet. No Mobily trunk has been tested end to end with Wixzel Voice. These settings come from Cisco's 2020 interop note for Mobily SIP Trunk; ask Mobily to confirm them for your link.
Both values are today's: read platform_ip and origination_uri from GET /v1/sip-trunks rather than copying them from a page. Then register each number on the trunk with POST /v1/phone-numbers and give it an inbound_agent_id, so an agent answers it. The AI phone call API walkthrough has those requests, and the full setup steps for Mobily go through the console field by field.
What goes wrong on Mobily?
- Mobily cuts calls, inbound and outbound, at one hour. A long call that drops at exactly 60 minutes is the carrier, not the agent.
- Calls arriving from Mobily offer G.711 A-law and never G.729. An SBC that only allows G.729 toward Mobily fails every inbound call.
- A re-INVITE that puts the call on hold (
sendonlyorinactive) can drop the call on Mobily. Have the SBC rewrite it tosendrecv.
Why did a call over Mobily not connect?
A call Mobily refused has status: "failed", a failure_code (the Q.850 cause from the carrier) and a failure_reason saying what to do, and it costs nothing. Every failure code, every refusal and how to debug a trunk are on the carriers page.
What does an AI call over Mobily cost?
Mobily bills you for the line at your rates; Wixzel Voice bills only the voice engine, per second of actual usage, from $0.0491 per connected minute on gemini-live to $0.1851 on deepgram-agent. Every engine's price.
Frequently asked questions
Can I connect Mobily in one step from the console?
Why do I need an SBC for Mobily?
Other carriers
Elastic SIP Trunking. Allowlist the platform IP in a Termination IP ACL, and set the Origination SIP URI for inbound calls.
An IP-authenticated SIP Connection. Add the platform IP as an authorised address, pick an inbound region, and match the transport.
Zentrunk. An outbound trunk with the platform IP in its IP ACL, and a separate inbound trunk whose Primary URI points at the platform.
Programmable SIP. Add the platform IP to the trunk's ACL in the SIP Dashboard, and send inbound calls to the origination URI.
No SIP REGISTER, so a static IP is required. Add the platform IP to the location, configure Termination and Origination separately, or use network-bridge credentials.
Virtual SIP Trunking (vSIP), for Indian numbering, over TCP. The platform IP mapped to the trunk as an ACL, and the Destination URI pointed at the platform's TCP port for inbound.
A per-trunk SIP domain as the host, the platform IP in the trunk's IP ACL, and "origination URI" meaning the opposite of what it means on Twilio.
The pattern is the same everywhere: allowlist the platform IP, set the inbound destination to the origination URI, and match the number format and transport.
How the two halves of a trunk work, every failure code, and every carrier guide on one page.
Build your first voice agent

