Exotel इंटीग्रेशन
Exotel इंटीग्रेशन
इनबाउंड और आउटबाउंड कॉल्स के लिए Exotel फ़ोन नंबरों को ElevenAgents से कनेक्ट करें।
परिचय
यह गाइड बताती है कि अपने Exotel फोन नंबरों को सीधे ElevenAgents से कैसे कनेक्ट करें। इस इंटीग्रेशन से आप इनबाउंड और आउटबाउंड, दोनों तरह की कॉल के लिए ElevenLabs की उन्नत वॉइस AI क्षमताओं का इस्तेमाल करते हुए अपने मौजूदा Exotel नंबर और इन्फ्रास्ट्रक्चर का उपयोग कर सकते हैं।
इंटीग्रेशन कैसे काम करता है
Exotel इंटीग्रेशन दो Exotel सुविधाओं का उपयोग करता है:
- Voicebot applet (inbound + outbound media): Exotel पर मौजूद एक ExoML ऐपलेट, जो ElevenLabs के लिए WebSocket खोलता है और दोनों दिशाओं में कॉल का ऑडियो स्ट्रीम करता है।
- Connect API (outbound dialing): आउटबाउंड कॉल के लिए, ElevenLabs आपकी API Key और API Token का उपयोग करके Exotel के
Calls/connect.jsonएंडपॉइंट को कॉल करता है। Exotel डेस्टिनेशन नंबर डायल करता है और कॉल उठने पर उसी Voicebot ऐपलेट के ज़रिए ऑडियो को ElevenLabs तक रूट करता है।
इनबाउंड कॉल के लिए, Exotel आने वाली कॉल को उस Voicebot ऐपलेट पर रूट करता है जिसे आप फोन नंबर के लिए असाइन करते हैं। वह ऐपलेट ElevenLabs के लिए WebSocket खोलता है।
आउटबाउंड कॉल के लिए, ElevenLabs Connect API से कॉल शुरू करता है और Exotel कॉल को Voicebot ऐपलेट के ज़रिए वापस ब्रिज करता है।
ज़रूरी शर्तें
Exotel इंटीग्रेशन सेट अप करने से पहले, पक्का करें कि आपके पास ये चीज़ें हैं:
- कम-से-कम एक प्रोविज़न किए गए फोन नंबर वाला सक्रिय Exotel अकाउंट।
- my.exotel.com (सिंगापुर) या my.exotel.in (मुंबई) पर Exotel डैशबोर्ड का एडमिनिस्ट्रेटर एक्सेस।
- एक ElevenLabs अकाउंट और एक एजेंट, जिससे आप फोन नंबर अटैच करना चाहते हैं।
Exotel फ़िलहाल Singapore (api.exotel.com) और Mumbai
(api.in.exotel.com) क्लस्टर पर समर्थित है। वही क्लस्टर चुनें, जिसमें आपका Exotel अकाउंट प्रोविज़न किया गया था।
गलत रीजन इस्तेमाल करने पर ऑथेंटिकेशन विफल हो जाएगा।
अपने Exotel अकाउंट पर Voicebot चालू करना
सबसे पहले, Exotel सहायता टीम से संपर्क करें और उनसे कहें कि वे:
- आपके अकाउंट पर Voicebot applet चालू करें। यह डिफ़ॉल्ट रूप से सीमित होता है और आपका अकाउंट इसके लिए प्रोविज़न होने तक App Bazaar में नहीं दिखेगा।
- आपको ज़रूरी चैनलों की संख्या (एक-साथ होने वाली कॉल) प्रोविज़न करें। यह उन एक-साथ होने वाली Voicebot कॉल की सीमा है, जिन्हें Exotel आपके अकाउंट पर चलाने देता है। इसे अपने अनुमानित पीक ट्रैफ़िक के हिसाब से तय करें।
इस चरण में आमतौर पर 1 से 2 कार्यदिवस लगते हैं। बाकी सेटअप शुरू करने से पहले इसे शुरू कर दें।
ElevenLabs WebSocket एंडपॉइंट
आप अपने Exotel Voicebot ऐपलेट को नीचे दिए गए WebSocket URL पर ऑडियो स्ट्रीम करने के लिए कॉन्फ़िगर करेंगे।
अगर आपका ElevenLabs अकाउंट अलग रेज़िडेंसी एनवायरनमेंट (EU या India) पर है, तो आपको संबंधित रेज़िडेंसी URL इस्तेमाल करना होगा। डेटा रेज़िडेंसी के बारे में और जानें।
Exotel पर सेटअप
अपने Exotel क्रेडेंशियल्स इकट्ठा करें
Exotel डैशबोर्ड में, बाईं ओर का Monitor मेन्यू खोलें और Developer पर क्लिक करें। इससे API क्रेडेंशियल्स पेज खुलता है, जहां आप Account SID, API Key और API Token देख सकते हैं।

आपको चार वैल्यू चाहिए होंगी:
- Account SID: आपका Exotel अकाउंट SID।
- API Key: Exotel API क्रेडेंशियल्स का यूज़रनेम वाला हिस्सा।
- API Token: Exotel API क्रेडेंशियल्स का पासवर्ड वाला हिस्सा। इसे गुप्त रखें।
- Region (API subdomain): वह क्लस्टर जिसमें आपका Exotel अकाउंट है। यह
api.exotel.com(सिंगापुर) याapi.in.exotel.com(मुंबई) में से एक है। Developer पेज पर दिख रहे किसी भी API URL का होस्ट देखकर आप इसकी पुष्टि कर सकते हैं।
आउटबाउंड डायलिंग के लिए Exotel की Connect API कॉल करते समय ElevenLabs HTTP Basic Auth के लिए API Key + API Token का उपयोग करता है।
App Bazaar में Voicebot ऐपलेट बनाएं
-
Exotel डैशबोर्ड में, बाईं ओर का Manage मेन्यू खोलें और App Bazaar पर क्लिक करें।

-
Create / Add New Flow पर क्लिक करें और ऐप को एक वर्णनात्मक नाम दें (जैसे
ElevenLabs), फिर OK पर क्लिक करें।
-
दाईं ओर के ऐपलेट पैलेट से Voicebot ऐपलेट को ड्रैग करके Call Start कैनवास पर रखें।

-
Voicebot ऐपलेट की कॉन्फ़िगरेशन खोलें और अपनी रेज़िडेंसी के लिए ElevenLabs WebSocket URL को URL फ़ील्ड में पेस्ट करें (“Which bot you want to connect the enduser?” फ़ील्ड):
अगर आपका ElevenLabs अकाउंट EU या India रेज़िडेंसी पर है, तो ऊपर दी गई टेबल से मिलते हुए रेज़िडेंसी URL (जैसे
wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel) का इस्तेमाल करें, डिफ़ॉल्टapi.elevenlabs.ioका नहीं।बाकी Voicebot विकल्प (“Record this?”, “Recording Channels”, “Recording Format”, “Encrypt DTMF”) को डिफ़ॉल्ट पर ही रहने दें, जब तक कि आपकी कोई खास रिकॉर्डिंग या अनुपालन ज़रूरत न हो।

-
(वैकल्पिक) मानवीय ट्रांसफ़र के लिए Connect ऐपलेट चेन करें। अगर आपको एजेंट से कॉल को किसी व्यक्ति तक ट्रांसफ़र नहीं करवाना है, तो इसे छोड़ दें। अगर आप एजेंट का Transfer to number टूल इस्तेमाल करना चाहते हैं, तो आपको फ़्लो में Voicebot ऐपलेट के तुरंत बाद एक Connect ऐपलेट जोड़ना होगा।
दाईं ओर के Voice Applets पैलेट से Connect ऐपलेट को Voicebot के Next → Continue to the next applet स्लॉट में ड्रैग करें।

Connect ऐपलेट की कॉन्फ़िगरेशन में, Configure parameters dynamically by providing a URL चुनें और अपनी रेज़िडेंसी के लिए ElevenLabs connect-applet एंडपॉइंट को Primary URL में पेस्ट करें:

मिलते हुए रेज़िडेंसी URL ये हैं:
जब एजेंट अपना Transfer to number टूल चलाता है, तो ElevenLabs नियंत्रण Exotel को वापस देता है और Exotel डायल करने के लिए डेस्टिनेशन नंबर पाने हेतु इस URL को फ़ेच करता है। Fallback URL को खाली छोड़ें और अन्य सभी डिफ़ॉल्ट सेटिंग बनाए रखें।
-
ऐपलेट को सेव और पब्लिश करें।
-
Applet ID (जिसे कभी-कभी App ID भी कहा जाता है) नोट कर लें। यह आपको ExoML एडिटर के URL में (जैसे
.../exoml/start_voice/12345) या App सूची में मिलेगा। ElevenLabs में नंबर इंपोर्ट करते समय आपको इसकी ज़रूरत होगी।
Voicebot ऐपलेट इनबाउंड और आउटबाउंड, दोनों लेग संभालता है। आपको हर अकाउंट के लिए सिर्फ़ एक ऐपलेट चाहिए। ElevenLabs में इंपोर्ट किया गया हर फोन नंबर इसे साझा कर सकता है।
फोन नंबर को फ़्लो असाइन करें (सिर्फ़ इनबाउंड)
पिछले चरण का ExoML फ़्लो सेव और पब्लिश करें। फिर एक Exotel फोन नंबर को उस पर रूट करें, ताकि इनबाउंड कॉल आपके Voicebot ऐपलेट तक पहुंचें।
-
Exotel डैशबोर्ड में, बाईं ओर का Manage मेन्यू खोलें और ExoPhones पर क्लिक करें (App Bazaar के ठीक नीचे)।

-
अगर आपके पास पहले से फोन नंबर नहीं है, तो आगे बढ़ने से पहले Buy a number पर क्लिक करें और अपने ज़रूरी देश / क्षेत्र में एक नंबर खरीदें।
-
वह नंबर ढूंढें जिसे आप अपने ElevenLabs एजेंट के साथ इस्तेमाल करना चाहते हैं। उसके Installed App कॉलम में ड्रॉपडाउन खोलें और पिछले चरण में बनाया गया फ़्लो चुनें (जैसे ElevenLabs)।

-
कॉन्फ़िगरेशन सेव करें। उस नंबर पर आने वाली कॉल अब सीधे Voicebot ऐपलेट पर रूट होंगी और ElevenLabs को स्ट्रीम की जाएंगी।
अगर नंबर सिर्फ़ आउटबाउंड कॉल के लिए इस्तेमाल होगा, तो आप यह चरण छोड़ सकते हैं। आउटबाउंड कॉल ElevenLabs से Connect API के ज़रिए डायल की जाती हैं और Installed App असाइनमेंट पर निर्भर नहीं होतीं।
ElevenLabs पर सेटअप
Exotel फोन नंबर इंपोर्ट करें
ElevenAgents डैशबोर्ड में, Phone Numbers टैब पर जाएं। + Import number पर क्लिक करें और ड्रॉपडाउन से From Exotel चुनें।

नीचे दिए गए फ़ील्ड भरें:
- Label: एक वर्णनात्मक नाम (जैसे
Support Line)। - Phone number: E.164 फ़ॉर्मैट में Exotel नंबर (जैसे
+918048961234)। - Exotel Account SID: ऊपर दिए गए चरण 1 से।
- Exotel API Key: ऊपर दिए गए चरण 1 से।
- Exotel API Token: ऊपर दिए गए चरण 1 से (workspace secret के रूप में स्टोर किया जाता है)।
- Region: अपने Exotel क्लस्टर के अनुसार
Singapore (api.exotel.com)याMumbai (api.in.exotel.com)चुनें। - Voicebot Applet ID: ऊपर दिए गए चरण 2 से App ID।
नंबर सेव करने के लिए Import पर क्लिक करें। ElevenLabs Exotel पर क्रेडेंशियल्स सत्यापित करेगा और API टोकन को workspace secret के रूप में स्टोर करेगा।
अपना एजेंट असाइन करें
नंबर इंपोर्ट होने के बाद, उसे Phone Numbers सूची से खोलें और Assigned agent ड्रॉपडाउन में वह एजेंट चुनें जिसे इनबाउंड कॉल संभालनी चाहिए।
इनबाउंड कॉल के लिए Voicebot ऐपलेट का Exotel की तरफ़ से नंबर को असाइन होना ज़रूरी है (पिछला सेक्शन देखें)। सिर्फ़ आउटबाउंड सेटअप के लिए इनबाउंड असाइनमेंट की ज़रूरत नहीं होती।
एक इनबाउंड कॉल टेस्ट करें
किसी भी फोन से अपने Exotel नंबर पर कॉल करें। Exotel कॉल को Voicebot ऐपलेट पर रूट करेगा, जो ElevenLabs के लिए WebSocket खोलेगा। आपका एजेंट कॉल उठाएगा और बातचीत शुरू करेगा।
सब कुछ उम्मीद के मुताबिक काम कर रहा है या नहीं, यह जांचने के लिए Calls History dashboard में कॉल मॉनिटर करें।
आउटबाउंड कॉल करना
इंपोर्ट किए गए Exotel नंबर आउटबाउंड कॉल भी शुरू कर सकते हैं। आपका एजेंट एक फोन नंबर डायल करता है और कॉल रिसीवर के उठाने पर बातचीत शुरू करता है।
आउटबाउंड कॉल शुरू करें
Phone Numbers टैब से अपना Exotel नंबर ढूंढें और Outbound call बटन पर क्लिक करें।
कॉल कॉन्फ़िगर करें
Outbound Call मोडल में:
- बातचीत संभालने वाला एजेंट चुनें।
- रिसीवर का फोन नंबर E.164 फ़ॉर्मैट में डालें।
- कॉल शुरू करने के लिए Send Test Call पर क्लिक करें।
ElevenLabs आपके स्टोर किए गए क्रेडेंशियल्स के साथ Exotel की Connect API को कॉल करता है। Exotel रिसीवर को डायल करता है और कॉल उठने पर ऑडियो को Voicebot ऐपलेट के ज़रिए वापस रूट करता है।
आउटबाउंड कॉल करते समय आपका एजेंट बातचीत शुरू करता है, इसलिए पक्का करें कि आपके एजेंट के लिए सही पहला मैसेज कॉन्फ़िगर किया गया है।
डैशबोर्ड के बजाय प्रोग्राम के ज़रिए आउटबाउंड कॉल ट्रिगर करने के लिए, Exotel के ज़रिए आउटबाउंड कॉल एंडपॉइंट का इस्तेमाल करें। API रेफरेंस में रिक्वेस्ट स्कीमा और इस्तेमाल के लिए तैयार SDK स्निपेट शामिल हैं।
एजेंट कॉन्फ़िगरेशन की ज़रूरतें
Voicebot ऐपलेट 8 kHz PCM पर ऑडियो स्ट्रीम करता है। ElevenLabs प्लेटफ़ॉर्म ऑडियो फ़ॉर्मैट कन्वर्ज़न अपने-आप संभालता है। आपको अपने एजेंट की TTS या इनपुट ऑडियो सेटिंग बदलने की ज़रूरत नहीं है।
फोन नंबर फ़ॉर्मैट
फोन नंबर E.164 फ़ॉर्मैट में स्टोर किए जाते हैं (जैसे +918048961234)। किसी भारतीय Exotel नंबर को इंपोर्ट करते समय, जिसे आप स्थानीय रूप से 08048961234 या 8048961234 लिखते हैं, उसे +918048961234 के रूप में दर्ज करें। ElevenLabs अलग-अलग फ़ॉर्मैट में एक ही नंबर को दोबारा इंपोर्ट करने की अनुमति नहीं देगा।
कॉल ट्रांसफ़र
आप अपने एजेंट पर Transfer to number टूल कॉन्फ़िगर करके कॉल को एजेंट से वापस Exotel में ट्रांसफ़र कर सकते हैं। टूल चलने पर ElevenLabs Voicebot लेग को बंद कर देता है और Exotel चेन किए गए Connect ऐपलेट के डायनेमिक URL से डेस्टिनेशन नंबर फ़ेच करता है, फिर लक्ष्य नंबर डायल करता है।
इसके लिए आपको दोनों चीज़ें चाहिए:
- आपके ExoML फ़्लो में Voicebot ऐपलेट के तुरंत बाद कॉन्फ़िगर किया गया वैकल्पिक Connect ऐपलेट (Exotel पर सेटअप में चरण 5 देखें)।
- आपके एजेंट पर कॉन्फ़िगर किया गया Transfer to number टूल। एजेंट ट्रांसफ़र गाइड देखें।
फ़्लो में Connect ऐपलेट के बिना एजेंट के ट्रांसफ़र प्रयास विफल हो जाएंगे, क्योंकि Voicebot बंद होने के बाद Exotel के पास कॉल को रूट करने के लिए कोई जगह नहीं होगी।
समस्या निवारण
आउटबाउंड कॉल शुरू करते समय exotel_connect_failed त्रुटि
आउटबाउंड कॉल शुरू करते समय exotel_connect_failed त्रुटि
ElevenLabs को Exotel की Connect API से non-200 रिस्पॉन्स मिला। इसके सबसे आम कारण हैं:
- गलत Region। पक्का करें कि इंपोर्ट करते समय चुना गया रीजन उस Exotel क्लस्टर से मेल खाता हो जिसमें आपका अकाउंट है (
SingaporeबनामMumbai)। - अमान्य API Key या API Token। Exotel के API Settings पेज में क्रेडेंशियल्स दोबारा जांचें और सही वैल्यू के साथ नंबर फिर से इंपोर्ट करें।
- Account SID, API Key / Token जोड़ी से मेल नहीं खाता।
- डेस्टिनेशन नंबर E.164 फ़ॉर्मैट में नहीं है।
इनबाउंड कॉल मेरे एजेंट तक नहीं पहुंचतीं
- पक्का करें कि Voicebot ऐपलेट का URL फ़ील्ड आपकी डेटा रेज़िडेंसी के ElevenLabs WebSocket एंडपॉइंट से बिल्कुल मेल खाता हो (इसमें
wss://भी शामिल है)। - पक्का करें कि Exotel phone number उस ExoML ऐप पर रूट किया गया है जिसमें Voicebot ऐपलेट है (Exotel डैशबोर्ड, ExoPhones, नंबर, Installed App)।
- ElevenLabs में पक्का करें कि Phone Numbers टैब में फोन नंबर को एक एजेंट असाइन किया गया है।
इंपोर्ट करते समय Applet ID mismatch त्रुटियां
इंपोर्ट करते समय Applet ID mismatch त्रुटियां
Voicebot Applet ID फ़ील्ड में ExoML एडिटर URL की संख्यात्मक App ID अपेक्षित है (जैसे .../exoml/start_voice/12345 के लिए ID 12345 है)। पूरा URL पेस्ट न करें। सिर्फ़ ID इस्तेमाल करें।
फोन नंबर अलग-अलग फ़ॉर्मैट में दो बार इंपोर्ट किया गया
ElevenLabs Exotel नंबरों को स्टोर करने से पहले E.164 में सामान्यीकृत करता है और (provider, phone_number) पर यूनिकनेस लागू करता है। अगर आपने पहले उसी नंबर को non-E.164 फ़ॉर्मैट में इंपोर्ट किया था, तो पहले पुरानी एंट्री हटाएं और फिर इसे E.164 फ़ॉर्म में दोबारा इंपोर्ट करें।