AI फ़ोन कॉल API: AI एजेंट से असली कॉल करें और उनका जवाब दें
Wixzel Voice एक वॉइस AI API है, जिससे ऐसे AI एजेंट बनते हैं जो आपके अपने SIP ट्रंक पर असली फ़ोन कॉल करते और उनका जवाब देते हैं, या आपके वेब और मोबाइल ऐप में लोगों से बात करते हैं। एक API की और एक प्रीपेड बैलेंस हर वॉइस इंजन को कवर करते हैं, और बिल असली इस्तेमाल के हर सेकंड के हिसाब से बनता है।
आखिरी अपडेट
AI फ़ोन कॉल के लिए Wixzel Voice API क्या है?
Wixzel Voice API के साथ, आपका तय किया हुआ AI एजेंट आपके अपने SIP ट्रंक पर असली फ़ोन कॉल करता है और उनका जवाब देता है: एक नंबर और एक एजेंट id के साथ POST /v1/calls, और बिल असल इस्तेमाल के हर सेकंड का।
एक लाइन में, Wixzel Voice AI फ़ोन एजेंट बनाने के लिए वॉइस AI API है: एक AI कॉलिंग API, जिसमें एजेंट आप तय करते हैं और कॉल Wixzel Voice चलाता है। आउटगोइंग में, POST /v1/calls एक नंबर डायल करता है और आपके एजेंट को जोड़ता है। इनकमिंग में, inbound_agent_id वाला फ़ोन नंबर उस पर आने वाली हर कॉल का जवाब देता है। वही एजेंट रियलटाइम API से वेब पेज या ऐप में लोगों से बात भी कर सकता है, बिना फ़ोन लाइन के, या MCP सर्वर से किसी AI असिस्टेंट के ज़रिए चलाया जा सकता है।
Wixzel Voice एक API की, एक बैलेंस, हर वॉइस इंजन है: स्पीच, लैंग्वेज और वॉइस प्रोवाइडर के अकाउंट प्लेटफ़ॉर्म के हैं, इसलिए Deepgram, ElevenLabs या OpenRouter की कोई की लाने की ज़रूरत नहीं। सिर्फ़ फ़ोन लाइन आप लाते हैं: अपना SIP ट्रंक ख़ुद लाएँ, Twilio, Telnyx, Plivo या किसी भी SIP प्रोवाइडर से।
Wixzel Voice से AI फ़ोन कॉल कैसे करें?
चार रिक्वेस्ट, जब आपके पास API की और कुछ क्रेडिट हो। हर रिस्पॉन्स में वह id होता है जो अगली रिक्वेस्ट को चाहिए; स्निपेट उन्हें शेल वेरिएबल से पढ़ते हैं।
- 01
अपना SIP ट्रंक जोड़ें
आपके कैरियर का होस्ट और क्रेडेंशियल। पासवर्ड एन्क्रिप्ट करके रखा जाता है और फिर कभी लौटाया नहीं जाता। रिस्पॉन्स में
platform_ip(आज187.126.120.231) होता है, जिसे आपके कैरियर को allowlist करना होता है, औरorigination_uri(आजsip:187.126.120.231:5090), जहाँ आपका कैरियर इनकमिंग कॉल भेजता है।cURLcurl https://api.voice.wixzel.com/v1/sip-trunks \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "My carrier", "host": "sip.carrier.example", "username": "acct123", "password": "..." }' - 02
उस पर एक फ़ोन नंबर रजिस्टर करें
उस कैरियर पर आपका पहले से मौजूद नंबर, E.164 फ़ॉर्मैट में। Wixzel Voice नंबर न बेचता है, न पोर्ट करता है। अगर ट्रंक आपके Twilio, Telnyx, Plivo, Vobiz या Vonage अकाउंट से जुड़ा है, तो आप इसकी जगह
POST /v1/phone-numbers/purchaseसे उसी अकाउंट पर नया नंबर खरीद सकते हैं। आपका कैरियर उसका बिल अपनी कीमत पर बनाता है।cURLcurl https://api.voice.wixzel.com/v1/phone-numbers \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "phone_number": "+14155550100", "sip_trunk_id": "'"$TRUNK_ID"'" }' - 03
एजेंट बनाएँ
बोलचाल के अंदाज़ में एक छोटा निर्देश (prompt), वह पहली बात जो एजेंट बोलता है, और एक आवाज़: तीन मॉडल, या एक रियलटाइम मॉडल।
opening_messageज़रूरी है, क्योंकि इसके बिना एजेंट कॉल उठाकर चुप रहता है।outbound_phone_number_idस्टेप 2 वाले नंबर को उसका कॉलर ID बनाता है।cURLcurl https://api.voice.wixzel.com/v1/agents \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Support", "system_prompt": "You are a concise support agent.", "opening_message": "Hi, how can I help?", "voice": { "stt": { "model": "deepgram/nova-3" }, "llm": { "model": "openrouter/gpt-4o-mini" }, "tts": { "model": "elevenlabs/eleven_flash_v2_5" } }, "outbound_phone_number_id": "'"$NUMBER_ID"'" }' - 04
कॉल करें
एक डेस्टिनेशन और एक एजेंट।
Idempotency-Keyज़रूरी है, क्योंकि नेटवर्क टाइमआउट से यह पता नहीं चलता कि कॉल लगी या नहीं: उसी की से दोबारा भेजने पर दो बार डायल करने के बजाय पहली वाली कॉल लौटती है। रिस्पॉन्स201होता है, कॉल के साथ,status: "queued"।cURLcurl https://api.voice.wixzel.com/v1/calls \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "to": "+14155551234", "agent_id": "'"$AGENT_ID"'" }'
पहली कॉल जुड़ने से पहले आपके कैरियर को platform_ip allowlist करना होता है। कैरियर गाइड दिखाती हैं कि Twilio, Telnyx, Plivo, Vonage, Bandwidth, Exotel, Vobiz, Mobily पर यह सेटिंग कहाँ है।
TypeScript या Dart से AI फ़ोन कॉल कैसे करें?
आधिकारिक SDK हैं npm पर wixzel-voice, Node, ब्राउज़र और एज रनटाइम पर TypeScript और JavaScript के लिए, और pub.dev पर wixzel_voice, Dart और Flutter के लिए। दोनों हर एंडपॉइंट कवर करते हैं, रेट लिमिट पर दोबारा कोशिश करते हैं, और पैसे खर्च करने वाले पाथ पर Idempotency-Key खुद बनाते हैं। दूसरी भाषाएँ सीधा HTTP API और OpenAPI डॉक्यूमेंट इस्तेमाल करती हैं।
import { WixzelVoice } from 'wixzel-voice';
const client = new WixzelVoice({ apiKey: process.env.WIXZEL_API_KEY! });
// 1. Connect your SIP trunk.
const trunk = await client.sipTrunks.create({
name: 'My carrier',
host: 'sip.carrier.example',
username: 'acct123',
password: process.env.CARRIER_PASSWORD!,
});
console.log('Allowlist', trunk.platform_ip, 'and send inbound calls to', trunk.origination_uri);
// 2. Register a number you own on it.
const number = await client.phoneNumbers.create({
phone_number: '+14155550100',
sip_trunk_id: trunk.id,
});
// 3. Create the agent, with that number as its caller ID.
const agent = await client.agents.create({
name: 'Support',
system_prompt: 'You are a concise support agent.',
opening_message: 'Hi, how can I help?',
voice: {
stt: { model: 'deepgram/nova-3' },
llm: { model: 'openrouter/gpt-4o-mini' },
tts: { model: 'elevenlabs/eleven_flash_v2_5' },
},
outbound_phone_number_id: number.id,
});
// 4. Place the call. The SDK sends the Idempotency-Key for you.
const call = await client.calls.create({ to: '+14155551234', agent_id: agent.id });
// Inbound: calls to the number are answered by the same agent.
await client.phoneNumbers.update(number.id, { inbound_agent_id: agent.id });
// Later: what happened, what it cost, what was said.
const detail = await client.calls.retrieve(call.id);
console.log(detail.status, detail.cost_micros, detail.failure_code, detail.failure_reason);
for (const line of detail.transcript) console.log(line.role, line.content);import 'dart:io';
import 'package:wixzel_voice/wixzel_voice.dart';
Future<void> main() async {
final client = WixzelVoice(apiKey: Platform.environment['WIXZEL_API_KEY']!);
// 1. Connect your SIP trunk.
final trunk = await client.sipTrunks.create(CreateSipTrunk(
name: 'My carrier',
host: 'sip.carrier.example',
username: 'acct123',
password: Platform.environment['CARRIER_PASSWORD']!,
));
print('Allowlist ${trunk.platformIp}; send inbound calls to ${trunk.originationUri}');
// 2. Register a number you own on it.
final number = await client.phoneNumbers.create(CreatePhoneNumber(
phoneNumber: '+14155550100',
sipTrunkId: trunk.id,
));
// 3. Create the agent, with that number as its caller ID.
final agent = await client.agents.create(CreateAgent(
name: 'Support',
systemPrompt: 'You are a concise support agent.',
openingMessage: 'Hi, how can I help?',
voice: VoiceConfig.composed(
stt: const SttConfig(model: 'deepgram/nova-3'),
llm: const LlmConfig(model: 'openrouter/gpt-4o-mini'),
tts: const TtsConfig(model: 'elevenlabs/eleven_flash_v2_5'),
),
outboundPhoneNumberId: number.id,
));
// 4. Place the call. The SDK sends the Idempotency-Key for you.
final call = await client.calls.create(CreateCall(
to: '+14155551234',
agentId: agent.id,
));
// Inbound: calls to the number are answered by the same agent.
await client.phoneNumbers.update(
number.id, UpdatePhoneNumber(inboundAgentId: agent.id));
// Later: what happened, what it cost, what was said.
final detail = await client.calls.retrieve(call.id);
print('${detail.status} ${detail.costMicros} ${detail.failureCode}');
for (final line in detail.transcript) {
print('${line.role}: ${line.content}');
}
client.close();
}Wixzel Voice पर AI एजेंट इनकमिंग कॉल का जवाब कैसे देता है?
फ़ोन नंबर को एक inbound_agent_id दें, और उस पर आने वाली हर कॉल का जवाब वह एजेंट देगा। इसके बिना, उस नंबर पर आने वाली कॉल रिजेक्ट हो जाती हैं।
curl -X PATCH https://api.voice.wixzel.com/v1/phone-numbers/$NUMBER_ID \
-H "Authorization: Bearer $WIXZEL_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "inbound_agent_id": "'"$AGENT_ID"'" }'बाकी आधा काम आपके कैरियर पर है: इनकमिंग कॉल ट्रंक के origination_uri (आज sip:187.126.120.231:5090) पर पहुँचनी चाहिए। यह allowlist से अलग कॉन्फ़िगरेशन है, कैरियर के कंसोल के किसी दूसरे हिस्से में, और अगर यह न हो तो नंबर पर घंटी ही नहीं बजती: कैरियर के पास कॉल भेजने की कोई जगह नहीं होती, इसलिए किसी लॉग में कुछ नहीं दिखता। हर इनकमिंग कॉल direction: "inbound" और दोनों नंबरों के साथ लॉग होती है, और एक inboundCall webhook भेजती है।
Wixzel Voice का कॉल रिकॉर्ड क्या लौटाता है?
POST /v1/calls तुरंत कॉल के साथ जवाब देता है, status: "queued"। GET /v1/calls/{id} कॉल चलते समय और खत्म होने के बाद पूरा रिकॉर्ड लौटाता है, और X-Wixzel-Signature से साइन किया हुआ callCompleted webhook आपके सर्वर को बताता है कि कॉल खत्म हो गई, ताकि आपको बार-बार पूछना न पड़े।
| फ़ील्ड | इसमें क्या होता है |
|---|---|
| status | queued, ringing, in-progress, completed, failed, busy, no-answer या canceled। |
| direction / channel | outbound या inbound; आपके ट्रंक पर कॉल के लिए phone, ब्राउज़र या ऐप से रियलटाइम सेशन के लिए web। |
| duration_seconds | कॉल कितनी देर चली, खत्म होने के बाद। |
| engine | वह वॉइस इंजन जिस पर एजेंट चला। |
| cost_micros | कॉल का खर्च, माइक्रो-USD में (1,000,000 = $1.00), जो कॉल सेटल होने पर लिखा जाता है। जो कॉल कभी नहीं जुड़ी उस पर null, उसका कोई खर्च नहीं। |
| transcript | हर टर्न, role (user, assistant या system), content और UTC टाइमस्टैम्प के साथ। GET /v1/calls/{id}/transcript पर भी। |
| summary / recording_url | रिकॉर्डिंग, अगर कॉल रिकॉर्ड हुई थी। API से की गई कॉल के लिए summary खाली रहता है; ट्रांसक्रिप्ट पढ़ें। |
| failure_code / failure_reason | जो कॉल नहीं जुड़ी उस पर: कैरियर का Q.850 कारण, जिस पर भरोसे से ब्रांच किया जा सकता है, और आसान भाषा में बताया गया कि क्या करना है। |
| transfers | कॉल करने वाले को किसी व्यक्ति को सौंपने की हर कोशिश की एक एंट्री, उसके स्टेटस, रिंग टाइम और SIP कारण के साथ। |
| metadata | POST /v1/calls में जोड़ा गया फ़्लैट स्ट्रिंग मैप, जैसा का तैसा लौटाया जाता है। मॉडल को कभी नहीं भेजा जाता। |
cost_micros का हर माइक्रो-डॉलर GET /v1/usage/events की एक इस्तेमाल वाली लाइन से समझाया जाता है: पहचानी गई स्पीच के सेकंड, मॉडल में गए और उससे आए टोकन, बनाए गए कैरेक्टर, और प्रति मिनट ऑर्केस्ट्रेशन फ़ीस।
जब AI फ़ोन कॉल नहीं जुड़ती तो क्या होता है?
कैरियर ने जिस कॉल को मना किया उसका status: "failed" (या busy, या no-answer) होता है, साथ में failure_code और failure_reason, और cost_micros: null: उसका कोई खर्च नहीं हुआ, और उसके लिए रोका गया क्रेडिट वापस छोड़ दिया गया। failure_code कैरियर का Q.850 कारण है, जिस पर भरोसे से ब्रांच किया जा सकता है; failure_reason आसान भाषा में बताता है कि क्या करना है।
कुछ रिक्वेस्ट कुछ भी डायल होने से पहले मना कर दी जाती हैं, और उनका कोई खर्च नहीं होता: जो बैलेंस पहले 15 सेकंड का खर्च नहीं उठा सकता वह 402 insufficient_credits है, बिना Idempotency-Key वाली सीधी रिक्वेस्ट 400 missing_idempotency_key है, और एक साथ चलने वाली कॉल की सीमा से ऊपर की कॉल 503 के साथ मना की जाती है। हर फ़ेल्योर कोड और हर इनकार, हर एक पर क्या करना है उसके साथ, कैरियर पेज पर है।
Wixzel Voice पर AI फ़ोन कॉल का खर्च कितना है?
एक कॉल के लिए इंजन का खर्च, बोलने की सामान्य दर पर, उसी प्राइस बुक से निकाला गया जिससे मीटर बिल करता है। हर कीमत में $0.012 प्रति मिनट की ऑर्केस्ट्रेशन फ़ीस शामिल है। कॉल का बिल असल इस्तेमाल के हर सेकंड का बनता है, इसलिए 90 सेकंड की कॉल का खर्च तीन मिनट की कॉल का लगभग आधा होता है। टेलीफ़ोनी आपका अपना ट्रंक है, आपके कैरियर की दर पर, और इसमें शामिल नहीं है।
| इंजन | पाइपलाइन | 1 मिनट की कॉल | 3 मिनट की कॉल | 5 मिनट की कॉल |
|---|---|---|---|---|
| classic | Deepgram + GPT-4o-mini + ElevenLabs | $0.0867 | $0.2601 | $0.4335 |
| sarvam | Sarvam, शुरू से आख़िर तक भारतीय भाषाएँ | $0.0617 | $0.1851 | $0.3085 |
| gemini-live | Gemini Live, नेटिव ऑडियो | $0.0491 | $0.1473 | $0.2455 |
| deepgram-agent | Deepgram Voice Agent | $0.1851 | $0.5553 | $0.9255 |
प्रीपेड: $5 से क्रेडिट जोड़ें, कोई सब्सक्रिप्शन और कोई फ़्री टियर नहीं। आज सबसे सस्ता इंजन gemini-live है, $0.0491 प्रति मिनट पर। अपने हिसाब से अनुमान लगाएँ।
AI फ़ोन कॉल के लिए Wixzel Voice API की सीमाएँ क्या हैं?
- Wixzel Voice डिप्लॉय हो चुका है और असली कॉल ले रहा है। व्यवहार में बदलाव तारीख़ वाले
Wixzel-Versionहेडर के पीछे आते हैं, और मौजूदा की वही व्यवहार रखती है जिसके साथ वह बनी थी। - डिफ़ॉल्ट रूप से हर अकाउंट में एक साथ पाँच कॉल, माँगने पर बढ़ाई जाती हैं। वेब और ऐप सेशन भी इसी सीमा में गिने जाते हैं।
- किसी व्यक्ति को ट्रांसफ़र सिर्फ़ ब्लाइंड होता है: कॉल करने वाले को सीधे आपकी लिस्ट वाले नंबर पर भेज दिया जाता है। अटेंडेड ट्रांसफ़र नहीं बना है, और टेस्ट कॉल और वेब या ऐप सेशन में ट्रांसफ़र उपलब्ध नहीं है।
- Wixzel Voice फ़ोन नंबर न बेचता है, न पोर्ट करता है, और फ़ोन कॉल के लिए आपका अपना SIP ट्रंक चाहिए। यह आपके अपने Twilio, Telnyx, Plivo, Vobiz या Vonage अकाउंट पर आपके लिए नंबर खरीद सकता है, जिसका बिल आपका कैरियर बनाता है।
- वेब और ऐप सेशन 8 kHz पर G.711 µ-law ऑडियो चलाते हैं, जो फ़ोन क्वालिटी है, वाइडबैंड नहीं।
- हर की पर प्रति सेकंड 10 API रिक्वेस्ट, 20 के बर्स्ट के साथ। रेट लिमिट हुई रिक्वेस्ट का कभी चार्ज नहीं लगता।
- API और स्टोर किया गया डेटा मुंबई, भारत में है। अमेरिका और भारत के स्पीच और लैंग्वेज प्रोवाइडर कॉल चलने तक ऑडियो और टेक्स्ट प्रोसेस करते हैं; sarvam इंजन स्पीच भारत में प्रोसेस करता है।
- कोई फ़्री टियर नहीं और कोई ट्रायल क्रेडिट नहीं। कम से कम रिचार्ज $5 है। मुफ़्त इस्तेमाल सिर्फ़ इतना है कि हर अकाउंट को कंसोल से अपने एजेंट से बात करने के लिए 5 मिनट मिलते हैं।
अक्सर पूछे जाने वाले सवाल
AI फ़ोन कॉल API क्या है?
POST /v1/calls आपके अपने SIP ट्रंक पर कॉल करता है, और inbound_agent_id वाला फ़ोन नंबर उसी तरह कॉल का जवाब देता है।क्या Wixzel Voice एक AI कॉलिंग API है या तैयार कॉलिंग एजेंट?
AI फ़ोन कॉल का खर्च कितना है?
क्या AI एजेंट आउटगोइंग कॉल करने के साथ इनकमिंग कॉल का जवाब भी दे सकता है?
PATCH /v1/phone-numbers/{id} से फ़ोन नंबर पर inbound_agent_id सेट करें, और उस नंबर पर आने वाली कॉल का जवाब वह एजेंट देगा। आपके कैरियर को इनकमिंग कॉल उस origination_uri पर भेजनी होती हैं जो ट्रंक लौटाता है। inbound_agent_id के बिना, उस नंबर पर आने वाली कॉल रिजेक्ट हो जाती हैं।क्या AI एजेंट कॉल करने वाले को किसी व्यक्ति को ट्रांसफ़र कर सकता है?
human_transfer में लिखे हैं, आपके SIP ट्रंक पर डायल करके। अटेंडेड ट्रांसफ़र, जिसमें एजेंट पहले उस व्यक्ति से बात करता है, नहीं बना है, और टेस्ट कॉल और वेब या ऐप सेशन में ट्रांसफ़र उपलब्ध नहीं है।एक साथ कितनी AI कॉल चल सकती हैं?
क्या कोई फ़्री ट्रायल है?
402 insufficient_credits के साथ मना कर दी जाती है।आगे कहाँ जाएँ
ट्रंक कैसे जुड़ता है, और हर आम कैरियर के लिए सेटअप गाइड।
हर इंजन की प्रति मिनट कीमत, और अपना कंपोज़िशन बनाने के लिए एक बिल्डर।
अपॉइंटमेंट बुकिंग, लीड क्वालिफ़िकेशन, सपोर्ट लाइन और बहुत कुछ, एक महीने के खर्च के साथ।
कैरियर पासवर्ड, API की और webhook कैसे सुरक्षित रखे जाते हैं, और डेटा कहाँ रहता है।
एक ईमानदार तुलना, यह बताते हुए कि कब कौन-सा बेहतर विकल्प है।
ऑपरेटर, कीमतें, सीमाएँ, रिफ़ंड और डेटा की लोकेशन, एक पेज पर।
अपना पहला वॉइस एजेंट बनाएँ

