To have an xAI Grok Voice Agent answer calls on your Edesy number, register the number with xAI in IP-allowlist mode with Edesy's signalling IP, save sip:<number>@sip.voice.x.ai in Edesy as a SIP destination, and route the number to it. Edesy forwards each incoming call to Grok, which runs the conversation.
Grok is not Groq. Grok (xAI) is a hosted voice agent with its own SIP endpoint, covered here. Groq is an inference API with no telephony; to use Groq models, build an agent on LiveKit or Pipecat and connect it with LiveKit Cloud or a media stream.
How it works#
caller --> your Edesy number --SIP--> sip:<number>@sip.voice.x.ai --> Grok answers
xAI authenticates Edesy by source IP, so no credentials are stored on the Edesy side.
Set it up#
The SIP page in the Edesy portal has a Wire x.ai (Grok) Voice Agent card that generates these values for your number.
1. Allowlist Edesy on the xAI side#
Register your Edesy number with xAI in IP-allowlist mode and add Edesy's signalling IP (shown in the portal card) to allowed_addresses:
curl https://api.x.ai/v1/realtime/numbers \
-H "Authorization: Bearer $XAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"number": "+91XXXXXXXXXX",
"auth": { "allowed_addresses": ["<edesy-signalling-ip>"] },
"webhook_url": "https://your-app.example.com/xai/incoming"
}'
Store the webhook signing secret xAI returns. Check xAI's current SIP docs for the exact request.
2. Save Grok as a SIP destination#
In SIP → Inbound destinations → New destination:
| Field | Value |
|---|---|
| Name | My Grok agent |
| SIP URI | sip:[email protected] |
| Transport | Auto |
Edesy sets the right transport for sip.voice.x.ai automatically, so leave Transport on Auto.
3. Route the number#
On the number, set Inbound routing to SIP URI and pick My Grok agent.
4. Test#
Click Test call on the destination. Edesy places a real call from one of your numbers to Grok, which proves Edesy can reach xAI, xAI accepts Edesy's IP, and the agent picks up. Then dial the number from a phone.
FAQ#
Do I need a termination trunk for Grok?#
Not for inbound calls. A trunk is only needed if a Grok agent should place outbound calls through Edesy; confirm with xAI that your setup supports trunk-based outbound first.
Can I use SIP digest credentials with Grok instead of an IP allowlist?#
Use IP-allowlist mode. Credentials toward Grok are not supported for this setup today.
The test call fails straight away.#
Usually Edesy's IP is missing from allowed_addresses, or the number in the URI does not match the number registered with xAI.
Which codecs are used?#
G.711, which Grok accepts. No transcoding settings are needed.