Wixzel Voice API से असली फ़ोन कॉल पर Gemini Live
चार HTTP रिक्वेस्ट आपको खाली अकाउंट से उस फ़ोन तक ले जाती हैं जिस पर घंटी बज रही है और लाइन पर Google का Gemini Live मॉडल है: अपना SIP ट्रंक कनेक्ट करें, एक नंबर रजिस्टर करें, एक realtime एजेंट बनाएँ, कॉल करें। पाँचवीं रिक्वेस्ट रिकॉर्ड वापस पढ़ती है, ट्रांसक्रिप्ट और कॉल के खर्च के साथ। कैरियर पहले से सेट हो तो इसमें लगभग 10 मिनट लगते हैं। Gemini Live इंजन $0.0491 प्रति कनेक्टेड मिनट है, प्राइस बुक में सबसे कम, इसलिए तीन मिनट की कॉल लगभग $0.15 की होती है, जो प्रीपेड बैलेंस से प्रति सेकंड बिल होती है, साथ में आपके कैरियर का रेट।
लेखक Aqeel Shamsudheen · प्रकाशित · अपडेट
- समय
- कैरियर सेट हो तो लगभग 10 मिनट
- इंजन
- gemini-live
- इंजन टाइम
- $0.0491 प्रति कनेक्टेड मिनट
शुरू करने से पहले आपको क्या चाहिए?
- क्रेडिट वाली Wixzel Voice API की। न्यूनतम रिचार्ज $5 है।
- आपके कैरियर पर एक SIP ट्रंक और उस पर एक नंबर, जिसे कैरियर आपको कॉलर ID के रूप में दिखाने देता हो।
- curl, jq और uuidgen।
इसे Wixzel Voice पर स्टेप-बाय-स्टेप कैसे बनाएँ?
01अपना SIP ट्रंक कनेक्ट करें
अपनी की और API base एक बार सेट करें, फिर ट्रंक बनाएँ।
teeपूरा रिस्पॉन्स रख लेता है, क्योंकि id के अलावा आपको इससे दो वैल्यू और चाहिए:shellexport WIXZEL_API_KEY="wv_live_..." API=https://api.voice.wixzel.com/v1 TRUNK_ID=$(curl -s $API/sip-trunks \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "My carrier", "host": "sip.your-carrier.example", "username": "your-sip-username", "password": "your-sip-password" }' | tee trunk.json | jq -r .id) jq -r '.platform_ip, .origination_uri' trunk.jsonअगर आपका कैरियर IP से ऑथराइज़ करता है तो
usernameऔरpasswordछोड़ दें। दोनों ही स्थितियों में, कैरियर परplatform_ipको allowlist करें ताकि वह प्लेटफ़ॉर्म से आने वाली कॉल स्वीकार करे;origination_uriवह जगह है जहाँ कैरियर को इनकमिंग कॉल भेजनी चाहिए, जिसकी इस गाइड में ज़रूरत नहीं है।02वह नंबर रजिस्टर करें जिससे आप कॉल करेंगे
अपना नंबर इस्तेमाल करें, E.164 फ़ॉर्म में:
shellNUMBER_ID=$(jq -n --arg trunk "$TRUNK_ID" \ '{phone_number: "+14155550100", sip_trunk_id: $trunk}' | curl -s $API/phone-numbers \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d @- | jq -r .id)03Gemini Live एजेंट बनाएँ
आवाज़ तीन स्टेज के बजाय एक realtime मॉडल है:
shellAGENT_ID=$(jq -n --arg number "$NUMBER_ID" '{ name: "Gemini Live", system_prompt: "You are a friendly assistant on a phone call. Keep answers to one or two sentences.", opening_message: "Hi, this is an automated assistant. Do you have a minute?", outbound_phone_number_id: $number, voice: { realtime: { model: "google/gemini-live", voice: "Charon" } } }' | curl -s $API/agents \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Content-Type: application/json" \ -d @- | jq -r .id)voice.realtimeपूरा टर्न, यानी सुनना, सोचना और बोलना, Gemini Live को सौंप देता है, इसलिए इसमेंstt,llmयाttsब्लॉक नहीं होता; जो voice दोनों ढाँचे बताए, उसे API रिजेक्ट कर देता है।CharonGemini की पहले से बनी आवाज़ों में से एक है, औरGET /v1/engines/gemini_live/voicesGoogle के एक-शब्द वाले विवरण के साथ सबकी लिस्ट देता है।outbound_phone_number_idएजेंट को कॉलर ID देता है, जिसकी वजह से अगली रिक्वेस्ट मेंfrom_number_idछोड़ा जा सकता है।04कॉल करें
toनंबर की जगह वह फ़ोन नंबर लिखें जिस पर आप कॉल करना चाहते हैं:shellCALL_ID=$(jq -n --arg agent "$AGENT_ID" '{to: "+14155551234", agent_id: $agent}' | curl -s $API/calls \ -H "Authorization: Bearer $WIXZEL_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d @- | jq -r .id)API तुरंत
status: "queued"के साथ201लौटाता है, और कुछ पल बाद फ़ोन बजता है। यहाँIdempotency-Keyज़रूरी है: नेटवर्क टाइमआउट से पता नहीं चलता कि कॉल हुई या नहीं, और उसी की के साथ दोबारा कोशिश करने पर दो बार डायल होने के बजाय पहली कॉल लौटती है, इसलिए अगर आप रीट्राई स्क्रिप्ट करते हैं तो की संभालकर रखें। जो कॉल अपने पहले 15 सेकंड का खर्च नहीं उठा सकती, वह कुछ भी डायल होने से पहले402के साथ रिजेक्ट हो जाती है।05देखें कि क्या हुआ
पाँचवीं रिक्वेस्ट कॉल वापस पढ़ती है:
shellcurl -s $API/calls/$CALL_ID \ -H "Authorization: Bearer $WIXZEL_API_KEY" | jqExample response, shortened{ "id": "6a96a3ead6e886d42462dd3e", "object": "call", "session_id": "sip-5b0c7c0e-9d1f-4c52-8a9e-2f0d3a4b6c7d", "status": "completed", "direction": "outbound", "channel": "phone", "engine": "gemini_live", "to": "+14155551234", "duration_seconds": 94, "cost_micros": 76923, "failure_code": null, "failure_reason": null, "transcript": [ { "role": "assistant", "content": "Hi, this is an automated assistant. Do you have a minute?" }, { "role": "user", "content": "Sure, go ahead." } ] }statusqueuedसेringingऔरin-progressहोते हुएcompletedतक जाता है, याfailed,busyयाno-answerपर खत्म होता है।cost_microsकॉल सेटल होने पर लिखा जाता है (1,000,000 यानी $1.00) और जो कॉल कभी कनेक्ट नहीं हुई उस परnullरहता है, क्योंकि ऐसी कॉल का चार्ज नहीं लगता। कॉल फ़ेल होने परfailure_codeकैरियर का Q.850 cause होता है (17 बिज़ी, 19 जवाब नहीं मिला, 21 कैरियर ने रिजेक्ट किया) औरfailure_reasonबताता है कि इसके लिए क्या करना है।GET /v1/usage/events?session_id=…हर चार्ज का ब्योरा देता है।
Wixzel Voice पर इस बिल्ड की लागत कितनी है?
$0.0491 प्रति कनेक्टेड मिनट पर gemini-live इंजन पर 3 मिनट की कॉल का इंजन टाइम: हर कॉल पर लगभग $0.15। टेलीफ़ोनी आपका अपना ट्रंक है, आपके कैरियर की दर पर, और यह इसमें शामिल नहीं है।
| हर महीने की कॉल | कनेक्टेड मिनट | हर महीने का इंजन खर्च |
|---|---|---|
| 300 | 900 | $44.19 |
| 1,500 | 4,500 | $221 |
| 6,000 | 18,000 | $884 |
प्रति मिनट का आँकड़ा सामान्य बोलने की रफ़्तार पर है, ऑर्केस्ट्रेशन फ़ीस समेत। Gemini Live कॉल लाइव रहते हुए ऑडियो टोकन में मापा जाता है, इसलिए कम बातचीत वाली कॉल अनुमान से कम खर्च करती है और ज़्यादा बातचीत वाली ज़्यादा। ऊपर के उदाहरण रिस्पॉन्स में 94 सेकंड की कॉल की कीमत प्रति मिनट रेट पर निकाली गई है। लाइन का बिल आपका कैरियर अलग से देता है, बिना मार्कअप के।
प्रीपेड, बिना सब्सक्रिप्शन और बिना फ़्री टियर: $5 से क्रेडिट जोड़ें और इस्तेमाल उसी से कटता है। अपने इस्तेमाल का अनुमान लगाएँ।
इस बिल्ड पर Wixzel Voice की कौन-सी सीमाएँ लागू होती हैं?
- फ़ोन कॉल के लिए आपका अपना SIP ट्रंक चाहिए। Wixzel Voice नंबर न बेचता है, न पोर्ट करता है, न रखता है। कंसोल से कनेक्ट किए गए Twilio, Telnyx, Plivo, Vobiz या Vonage अकाउंट पर यह आपके लिए नंबर खरीद सकता है, जिसका बिल आपका कैरियर देता है।
POST /v1/agents/{id}/test-callसे होने वाली टेस्ट कॉल अपना एक वाक्य classic वॉइस पाइपलाइन से बोलती है, क्योंकि Gemini Live में एक वाक्य वाला मोड नहीं है। Gemini की अपनी आवाज़ सुनने के लिए सामान्य कॉल करें।- डिफ़ॉल्ट रूप से एक अकाउंट पर एक साथ पाँच कॉल लाइव हो सकती हैं, माँगने पर यह सीमा बढ़ाई जाती है।
- कोई latency आँकड़ा प्रकाशित नहीं है: realtime इंजन उतनी ही तेज़ी से जवाब देता है जितना मॉडल खुद देता है। Wixzel Voice के व्यवहार में बदलाव तारीख वाले
Wixzel-Versionहेडर के पीछे आते हैं।
अक्सर पूछे जाने वाले सवाल
क्या Gemini Live फ़ोन कॉल कर सकता है?
{"realtime": {"model": "google/gemini-live"}} हो, और POST /v1/calls आपके अपने SIP ट्रंक पर असली नंबर डायल करता है, लाइन पर Gemini Live के साथ।क्या मुझे Google Cloud या Gemini API की चाहिए?
wv_live_ API की और एक प्रीपेड बैलेंस से Gemini Live और बाकी हर इंजन चलता है।कॉल पर Gemini Live कौन-सी आवाज़ें इस्तेमाल कर सकता है?
Charon, Kore और Puck। GET /v1/engines/gemini_live/voices सबकी लिस्ट देता है। किसी दूसरे इंजन की लिस्ट की आवाज़ एजेंट बनाते समय रिजेक्ट हो जाती है।Gemini Live फ़ोन कॉल का खर्च कितना है?
क्या Gemini Live एजेंट इनकमिंग कॉल का भी जवाब दे सकता है?
PATCH /v1/phone-numbers/{id} से फ़ोन नंबर का inbound_agent_id उस एजेंट पर सेट करें, और अपने कैरियर का इनकमिंग रूट ट्रंक के origination_uri पर सेट करें।और कहाँ पढ़ें
- क्विकस्टार्टडॉक्स
यही चार रिक्वेस्ट, TypeScript और Dart SDK में भी।
- वॉइस इंजनडॉक्स
realtime voice का ढाँचा, आवाज़ों की लिस्ट और भाषाएँ।
- SIP ट्रंकडॉक्स
allowlist करना, इनकमिंग रूटिंग और हर failure code का मतलब।
- Idempotencyडॉक्स
POST /v1/calls को की क्यों चाहिए और replay कैसे काम करते हैं।
Wixzel Voice के बारे में
Wixzel Voice एक वॉइस AI API है, जिससे ऐसे AI एजेंट बनते हैं जो आपके अपने SIP ट्रंक पर असली फ़ोन कॉल करते और उनका जवाब देते हैं, या आपके वेब और मोबाइल ऐप में लोगों से बात करते हैं। एक API की और एक प्रीपेड बैलेंस हर वॉइस इंजन को कवर करते हैं, और बिल असली इस्तेमाल के हर सेकंड के हिसाब से बनता है।
और गाइड
Claude Code या claude.ai में Claude आपके SIP ट्रंक से असली कॉल करता है और ट्रांसक्रिप्ट पढ़कर बताता है, और कुछ भी डायल होने से पहले आपसे पुष्टि लेता है।
आपके मौजूदा Twilio नंबर पर एक AI रिसेप्शनिस्ट जवाब देता है और API में अपॉइंटमेंट बुक करता है, Node.js में बना हुआ।
दो फ़ोन एजेंट, एक हिंदी और एक मलयालम बोलने वाला, Sarvam के भारतीय भाषा मॉडल पर, जो आपके SIP ट्रंक से कॉल का जवाब देते हैं या कॉल करते हैं।
एक Flutter ऐप जिसमें यूज़र WebSocket पर आपके वॉइस एजेंट से बात करते हैं, API की आपके सर्वर पर रहती है और कोई फ़ोन नंबर शामिल नहीं होता।
लीड की एक लिस्ट, जिसे आपका एजेंट आपके SIP ट्रंक पर, एक साथ चलने वाली कॉल की आपकी सीमा के हिसाब से बैच में कॉल करता है, और हर कॉल का स्टेटस और ट्रांसक्रिप्ट वापस पढ़ा जाता है।
आपकी वेबसाइट के कोने में एक बोलने वाला मैस्कट, जिसे विज़िटर ब्राउज़र से कॉल करते हैं, आपके डोमेन और आपकी रोज़ की सीमाओं तक सीमित, और हर कॉलर की लिस्ट के साथ।
एक Flutter स्क्रीन, जिसमें आपके एजेंट का मैस्कट realtime कॉल के दौरान एजेंट की आवाज़ के साथ मुँह हिलाता है, और आपकी API की आपके सर्वर पर रहती है।
अपना पहला वॉइस एजेंट बनाएँ

