कंटेंट पर जाएँ
एजेंटिक टेलीफ़ोनी के लिए API

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 होता है जो अगली रिक्वेस्ट को चाहिए; स्निपेट उन्हें शेल वेरिएबल से पढ़ते हैं।

  1. 01

    अपना SIP ट्रंक जोड़ें

    आपके कैरियर का होस्ट और क्रेडेंशियल। पासवर्ड एन्क्रिप्ट करके रखा जाता है और फिर कभी लौटाया नहीं जाता। रिस्पॉन्स में platform_ip (आज 187.126.120.231) होता है, जिसे आपके कैरियर को allowlist करना होता है, और origination_uri (आज sip:187.126.120.231:5090), जहाँ आपका कैरियर इनकमिंग कॉल भेजता है।

    cURL
    curl 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": "..."
      }'
  2. 02

    उस पर एक फ़ोन नंबर रजिस्टर करें

    उस कैरियर पर आपका पहले से मौजूद नंबर, E.164 फ़ॉर्मैट में। Wixzel Voice नंबर न बेचता है, न पोर्ट करता है। अगर ट्रंक आपके Twilio, Telnyx, Plivo, Vobiz या Vonage अकाउंट से जुड़ा है, तो आप इसकी जगह POST /v1/phone-numbers/purchase से उसी अकाउंट पर नया नंबर खरीद सकते हैं। आपका कैरियर उसका बिल अपनी कीमत पर बनाता है।

    cURL
    curl 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"'"
      }'
  3. 03

    एजेंट बनाएँ

    बोलचाल के अंदाज़ में एक छोटा निर्देश (prompt), वह पहली बात जो एजेंट बोलता है, और एक आवाज़: तीन मॉडल, या एक रियलटाइम मॉडल। opening_message ज़रूरी है, क्योंकि इसके बिना एजेंट कॉल उठाकर चुप रहता है। outbound_phone_number_id स्टेप 2 वाले नंबर को उसका कॉलर ID बनाता है।

    cURL
    curl 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"'"
      }'
  4. 04

    कॉल करें

    एक डेस्टिनेशन और एक एजेंट। Idempotency-Key ज़रूरी है, क्योंकि नेटवर्क टाइमआउट से यह पता नहीं चलता कि कॉल लगी या नहीं: उसी की से दोबारा भेजने पर दो बार डायल करने के बजाय पहली वाली कॉल लौटती है। रिस्पॉन्स 201 होता है, कॉल के साथ, status: "queued"।

    cURL
    curl 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 डॉक्यूमेंट इस्तेमाल करती हैं।

TypeScript
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);
Dart
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
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 आपके सर्वर को बताता है कि कॉल खत्म हो गई, ताकि आपको बार-बार पूछना न पड़े।

फ़ील्डइसमें क्या होता है
statusqueued, ringing, in-progress, completed, failed, busy, no-answer या canceled।
direction / channeloutbound या 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 कारण के साथ।
metadataPOST /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 मिनट की कॉल
classicDeepgram + GPT-4o-mini + ElevenLabs$0.0867$0.2601$0.4335
sarvamSarvam, शुरू से आख़िर तक भारतीय भाषाएँ$0.0617$0.1851$0.3085
gemini-liveGemini Live, नेटिव ऑडियो$0.0491$0.1473$0.2455
deepgram-agentDeepgram 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 क्या है?

एक API जो AI एजेंट को असली फ़ोन कॉल से जोड़ता है: आपका कोड एक नंबर और एक एजेंट बताता है, और API डायल करता है, स्पीच रिकग्निशन, लैंग्वेज मॉडल और स्पीच सिंथेसिस से बातचीत चलाता है, और कॉल का स्टेटस, उसका ट्रांसक्रिप्ट और उसका खर्च लौटाता है। Wixzel Voice ऐसा ही एक API है: POST /v1/calls आपके अपने SIP ट्रंक पर कॉल करता है, और inbound_agent_id वाला फ़ोन नंबर उसी तरह कॉल का जवाब देता है।

क्या Wixzel Voice एक AI कॉलिंग API है या तैयार कॉलिंग एजेंट?

एक API। एजेंट आप बनाते हैं: उसका निर्देश (prompt), उसकी पहली लाइन, उसका वॉइस इंजन और नतीजे के साथ आपका सिस्टम क्या करता है। Wixzel Voice API, SDK और MCP सर्वर बेचता है, तैयार एजेंट कभी नहीं।

AI फ़ोन कॉल का खर्च कितना है?

वॉइस इंजन की कीमत classic पर $0.0867 प्रति कनेक्टेड मिनट, sarvam पर $0.0617 प्रति कनेक्टेड मिनट, gemini-live पर $0.0491 प्रति कनेक्टेड मिनट, deepgram-agent पर $0.1851 प्रति कनेक्टेड मिनट है, हर एक में $0.012 की ऑर्केस्ट्रेशन फ़ीस शामिल, और बिल असल इस्तेमाल के हर सेकंड का बनता है। classic पर तीन मिनट की कॉल लगभग $0.2601 की होती है। आपका कैरियर फ़ोन लाइन का बिल अलग से बनाता है, आपकी दरों पर, बिना मार्कअप के।

क्या AI एजेंट आउटगोइंग कॉल करने के साथ इनकमिंग कॉल का जवाब भी दे सकता है?

हाँ। PATCH /v1/phone-numbers/{id} से फ़ोन नंबर पर inbound_agent_id सेट करें, और उस नंबर पर आने वाली कॉल का जवाब वह एजेंट देगा। आपके कैरियर को इनकमिंग कॉल उस origination_uri पर भेजनी होती हैं जो ट्रंक लौटाता है। inbound_agent_id के बिना, उस नंबर पर आने वाली कॉल रिजेक्ट हो जाती हैं।

क्या AI एजेंट कॉल करने वाले को किसी व्यक्ति को ट्रांसफ़र कर सकता है?

हाँ, ब्लाइंड ट्रांसफ़र के रूप में: जब कॉल करने वाला किसी व्यक्ति से बात करना चाहता है, तो एजेंट चालू कॉल उन डेस्टिनेशन में से किसी एक को सौंप देता है जो आपने एजेंट पर human_transfer में लिखे हैं, आपके SIP ट्रंक पर डायल करके। अटेंडेड ट्रांसफ़र, जिसमें एजेंट पहले उस व्यक्ति से बात करता है, नहीं बना है, और टेस्ट कॉल और वेब या ऐप सेशन में ट्रांसफ़र उपलब्ध नहीं है।

एक साथ कितनी AI कॉल चल सकती हैं?

डिफ़ॉल्ट रूप से हर अकाउंट में एक साथ पाँच कॉल, माँगने पर बढ़ाई जाती हैं। सीमा से ऊपर की कॉल कुछ भी डायल होने से पहले मना कर दी जाती है और उसका कोई खर्च नहीं होता। वेब और ऐप सेशन भी इसी सीमा में गिने जाते हैं।

क्या कोई फ़्री ट्रायल है?

कोई फ़्री टियर नहीं और कोई ट्रायल क्रेडिट नहीं। API प्रीपेड है, कम से कम $5 के रिचार्ज के साथ और बिना सब्सक्रिप्शन के। हर नए अकाउंट को कंसोल से अपने एजेंट से बात करने के लिए 5 मुफ़्त मिनट मिलते हैं; कॉल हमेशा क्रेडिट इस्तेमाल करती हैं। जो कॉल अपने पहले 15 सेकंड का खर्च नहीं उठा सकती, वह कुछ भी तय होने से पहले 402 insufficient_credits के साथ मना कर दी जाती है।

आगे कहाँ जाएँ

अपना पहला वॉइस एजेंट बनाएँ