Integracja z Exotel
Połącz numery telefonów Exotel z ElevenAgents do połączeń przychodzących i wychodzących.
Omówienie
Ten przewodnik wyjaśnia, jak połączyć numery telefoniczne Exotel bezpośrednio z ElevenAgents. Ta integracja pozwala korzystać z obecnych numerów i infrastruktury Exotel oraz zaawansowanych funkcji głosu AI ElevenLabs — zarówno dla połączeń przychodzących, jak i wychodzących.
Jak działa integracja
Integracja z Exotel korzysta z dwóch usług Exotel:
- Aplet Voicebot (media przychodzące i wychodzące): Aplet ExoML w Exotel, który otwiera WebSocket do ElevenLabs i przesyła dźwięk rozmowy w obu kierunkach.
- Connect API (wybieranie połączeń wychodzących): W przypadku połączeń wychodzących ElevenLabs wywołuje endpoint
Calls/connect.jsonExotel, używając twojego API Key i API Token. Exotel wybiera numer docelowy, a po odebraniu połączenia kieruje dźwięk przez ten sam aplet Voicebot do ElevenLabs.
W przypadku połączeń przychodzących Exotel kieruje je do apletu Voicebot przypisanego do numeru telefonu, który otwiera WebSocket do ElevenLabs.
W przypadku połączeń wychodzących ElevenLabs inicjuje połączenie przez Connect API, a Exotel przekazuje je z powrotem przez aplet Voicebot.
Wymagania
Przed konfiguracją integracji z Exotel upewnij się, że masz:
- Aktywne konto Exotel z co najmniej jednym aktywowanym numerem telefonu.
- Dostęp administratora do panelu Exotel na my.exotel.com (Singapur) lub my.exotel.in (Mumbaj).
- Konto ElevenLabs oraz agenta, do którego chcesz przypisać numer telefonu.
Exotel jest obecnie obsługiwany w klastrach Singapore (api.exotel.com) i Mumbai
(api.in.exotel.com). Wybierz klaster, w którym utworzono twoje konto Exotel. Użycie
złego regionu spowoduje błędy uwierzytelniania.
Włączanie Voicebot na koncie Exotel
Najpierw skontaktuj się z pomocą Exotel i poproś o:
- Włączenie apletu Voicebot na twoim koncie. Domyślnie jest niedostępny i nie pojawi się w App Bazaar, dopóki nie zostanie włączony dla twojego konta.
- Przydzielenie potrzebnej liczby kanałów (równoczesnych połączeń). To limit jednoczesnych połączeń Voicebot, na które Exotel pozwoli na twoim koncie. Dopasuj go do przewidywanego szczytowego ruchu.
Ten krok zwykle zajmuje od 1 do 2 dni roboczych. Zacznij go przed resztą konfiguracji.
Endpoint WebSocket ElevenLabs
Skonfigurujesz aplet Voicebot w Exotel tak, aby przesyłał dźwięk na poniższy adres WebSocket.
Jeśli twoje konto ElevenLabs korzysta z izolowanego środowiska rezydencji danych (UE lub Indie), musisz użyć odpowiedniego adresu rezydencji. Dowiedz się więcej o rezydencji danych.
Konfiguracja w Exotel
Zbierz dane logowania Exotel
W panelu Exotel otwórz menu Monitor po lewej stronie i kliknij Developer. Otworzy się strona z danymi API, gdzie znajdziesz Account SID, API Key i API Token.

Potrzebujesz czterech wartości:
- Account SID: SID twojego konta Exotel.
- API Key: Część nazwy użytkownika w danych API Exotel.
- API Token: Część hasła w danych API Exotel. Zachowaj go w tajemnicy.
- Region (subdomena API): Klaster, w którym znajduje się twoje konto Exotel. To
api.exotel.com(Singapur) lubapi.in.exotel.com(Mumbaj). Możesz to potwierdzić, sprawdzając host dowolnego adresu API na stronie Developer.
ElevenLabs używa API Key i API Token do HTTP Basic Auth podczas wywoływania Connect API Exotel dla połączeń wychodzących.
Utwórz aplet Voicebot w App Bazaar
-
W panelu Exotel otwórz menu Manage po lewej stronie i kliknij App Bazaar.

-
Kliknij Create / Add New Flow, nadaj aplikacji opisową nazwę (np.
ElevenLabs), a potem kliknij OK.
-
Z palety apletów po prawej przeciągnij aplet Voicebot na kanwę Call Start.

-
Otwórz konfigurację apletu Voicebot i wklej adres WebSocket ElevenLabs dla swojej rezydencji danych w pole URL (pole „Which bot you want to connect the enduser?”):
Jeśli twoje konto ElevenLabs korzysta z rezydencji danych w UE lub Indiach, zamiast domyślnego
api.elevenlabs.ioużyj odpowiedniego adresu z tabeli powyżej (np.wss://api.in.residency.elevenlabs.io/v1/convai/conversation/exotel).Pozostałe opcje Voicebot („Record this?”, „Recording Channels”, „Recording Format”, „Encrypt DTMF”) mogą pozostać domyślne, chyba że masz konkretne wymagania dotyczące nagrywania lub zgodności.

-
(Opcjonalnie) Dodaj aplet Connect do przekazywania rozmów do człowieka. Pomiń ten krok, jeśli agent nie ma przekazywać rozmów do człowieka. Jeśli chcesz używać narzędzia agenta Transfer to number, musisz dodać aplet Connect bezpośrednio po aplecie Voicebot w flow.
Z palety Voice Applets po prawej przeciągnij aplet Connect do pola Next → Continue to the next applet w aplecie Voicebot.

W konfiguracji apletu Connect wybierz Configure parameters dynamically by providing a URL i wklej endpoint apletu Connect ElevenLabs dla swojej rezydencji danych w pole Primary URL:

Odpowiednie adresy rezydencji danych to:
Gdy agent wywoła narzędzie Transfer to number, ElevenLabs przekaże kontrolę z powrotem do Exotel, a Exotel pobierze ten adres, aby uzyskać docelowy numer do wybrania. Zostaw puste pole Fallback URL i zachowaj wszystkie pozostałe ustawienia domyślne.
-
Zapisz i opublikuj aplet.
-
Zanotuj Applet ID (czasem nazywany App ID). Znajdziesz go w adresie URL edytora ExoML (np.
.../exoml/start_voice/12345) lub na liście aplikacji. Będzie potrzebny podczas importowania numeru do ElevenLabs.
Aplet Voicebot obsługuje zarówno połączenia przychodzące, jak i wychodzące. Potrzebujesz tylko jednego apletu na konto. Wszystkie numery telefonów importowane do ElevenLabs mogą go współdzielić.
Przypisz flow do numeru telefonu (tylko połączenia przychodzące)
Zapisz i opublikuj flow ExoML z poprzedniego kroku. Następnie skieruj do niego numer telefonu Exotel, aby połączenia przychodzące trafiały do apletu Voicebot.
-
W panelu Exotel otwórz menu Manage po lewej stronie i kliknij ExoPhones (tuż pod App Bazaar).

-
Jeśli nie masz jeszcze numeru telefonu, kliknij Buy a number i kup numer w kraju lub regionie, którego potrzebujesz, zanim przejdziesz dalej.
-
Znajdź numer, którego chcesz używać z agentem ElevenLabs. W kolumnie Installed App otwórz listę i wybierz flow utworzony w poprzednim kroku (np. ElevenLabs).

-
Zapisz konfigurację. Połączenia przychodzące na ten numer będą teraz kierowane prosto do apletu Voicebot i przesyłane do ElevenLabs.
Jeśli numer będzie używany tylko do połączeń wychodzących, możesz pominąć ten krok. Połączenia wychodzące są wybierane przez Connect API z ElevenLabs i nie zależą od przypisania Installed App.
Konfiguracja w ElevenLabs
Zaimportuj numer telefonu Exotel
W panelu ElevenAgents przejdź do zakładki Phone Numbers. Kliknij + Import number i wybierz z listy From Exotel.

Wypełnij następujące pola:
- Label: Opisowa nazwa (np.
Support Line). - Phone number: Numer Exotel w formacie E.164 (np.
+918048961234). - Exotel Account SID: Z kroku 1 powyżej.
- Exotel API Key: Z kroku 1 powyżej.
- Exotel API Token: Z kroku 1 powyżej (przechowywany jako sekret workspace).
- Region: Wybierz
Singapore (api.exotel.com)lubMumbai (api.in.exotel.com), zgodnie z klastrem Exotel. - Voicebot Applet ID: App ID z kroku 2 powyżej.
Kliknij Import, aby zapisać numer. ElevenLabs sprawdzi dane logowania w Exotel i zapisze token API jako sekret workspace.
Przypisz agenta
Po zaimportowaniu numeru otwórz go na liście Phone Numbers i wybierz agenta, który ma obsługiwać połączenia przychodzące, z listy Assigned agent.
Połączenia przychodzące wymagają przypisania apletu Voicebot do numeru po stronie Exotel (zobacz poprzednią sekcję). Konfiguracje tylko dla połączeń wychodzących nie wymagają przypisania dla połączeń przychodzących.
Przetestuj połączenie przychodzące
Zadzwoń na numer Exotel z dowolnego telefonu. Exotel skieruje połączenie do apletu Voicebot, który otworzy WebSocket do ElevenLabs. Agent odbierze i rozpocznie rozmowę.
Monitoruj połączenie w panelu historii połączeń, aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami.
Wykonywanie połączeń wychodzących
Zaimportowane numery Exotel mogą też inicjować połączenia wychodzące. Agent wybiera numer telefonu i rozpoczyna rozmowę, gdy odbiorca odbierze.
Zainicjuj połączenie wychodzące
W zakładce Phone Numbers znajdź numer Exotel i kliknij przycisk Outbound call.
Skonfiguruj połączenie
W oknie Outbound Call:
- Wybierz agenta, który będzie prowadzić rozmowę.
- Wpisz numer telefonu odbiorcy w formacie E.164.
- Kliknij Send Test Call, aby rozpocząć połączenie.
ElevenLabs wywołuje Connect API Exotel, używając zapisanych danych logowania. Exotel wybiera numer odbiorcy i kieruje dźwięk z powrotem przez aplet Voicebot po odebraniu połączenia.
Przy połączeniach wychodzących twój agent inicjuje rozmowę, więc upewnij się, że ma skonfigurowaną odpowiednią pierwszą wiadomość.
Aby wywoływać połączenia wychodzące programowo zamiast z panelu, użyj endpointu Outbound call via Exotel. Dokumentacja API zawiera schemat żądania i gotowe do użycia fragmenty SDK.
Wymagania konfiguracji agenta
Aplet Voicebot przesyła dźwięk w formacie 8 kHz PCM. Platforma ElevenLabs automatycznie obsługuje konwersję formatu audio. Nie musisz zmieniać ustawień TTS ani wejściowego audio agenta.
Formaty numerów telefonów
Numery telefonów są przechowywane w formacie E.164 (np. +918048961234). Importując indyjski numer Exotel, który lokalnie można zapisać jako 08048961234 lub 8048961234, wpisz +918048961234. ElevenLabs odrzuci duplikaty tego samego numeru importowane w różnych formatach.
Przekazywanie rozmów
Możesz przekazywać rozmowy od agenta z powrotem do Exotel, konfigurując u agenta narzędzie Transfer to number. Gdy narzędzie zostanie uruchomione, ElevenLabs zakończy połączenie Voicebot, a Exotel pobierze numer docelowy z dynamicznego adresu połączonego apletu Connect, a następnie wybierze ten numer.
Aby to działało, potrzebujesz obu elementów:
- Opcjonalnego apletu Connect skonfigurowanego bezpośrednio po aplecie Voicebot w flow ExoML (zobacz krok 5 w Konfiguracji w Exotel).
- Narzędzia Transfer to number skonfigurowanego u agenta. Zobacz przewodnik po przekazywaniu rozmów przez agenta.
Bez apletu Connect w flow próby przekazania rozmowy przez agenta zakończą się niepowodzeniem, ponieważ Exotel nie będzie miał dokąd skierować połączenia po zakończeniu Voicebot.
Rozwiązywanie problemów
Błąd exotel_connect_failed podczas rozpoczynania połączenia wychodzącego
Błąd exotel_connect_failed podczas rozpoczynania połączenia wychodzącego
ElevenLabs otrzymało odpowiedź inną niż 200 z Connect API Exotel. Najczęstsze przyczyny to:
- Nieprawidłowy Region. Upewnij się, że region wybrany podczas importu odpowiada klastrowi Exotel, w którym znajduje się twoje konto (
SingaporelubMumbai). - Nieprawidłowy API Key lub API Token. Sprawdź ponownie dane na stronie API Settings Exotel i zaimportuj numer ponownie z poprawnymi wartościami.
- Account SID nie pasuje do pary API Key / Token.
- Numer docelowy nie jest w formacie E.164.
Połączenia przychodzące nie trafiają do mojego agenta
- Sprawdź, czy pole URL apletu Voicebot dokładnie odpowiada endpointowi WebSocket ElevenLabs dla twojej rezydencji danych (w tym
wss://). - Sprawdź, czy numer telefonu Exotel jest skierowany do aplikacji ExoML zawierającej aplet Voicebot (panel Exotel, ExoPhones, numer, Installed App).
- W ElevenLabs sprawdź, czy numer telefonu ma przypisanego agenta w zakładce Phone Numbers.
Błędy niezgodności Applet ID podczas importowania
Błędy niezgodności Applet ID podczas importowania
Pole Voicebot Applet ID oczekuje numerycznego App ID z adresu URL edytora ExoML (np. dla .../exoml/start_voice/12345 ID to 12345). Nie wklejaj pełnego adresu URL. Użyj tylko ID.
Numer telefonu zaimportowany dwukrotnie w różnych formatach
ElevenLabs normalizuje numery Exotel do E.164 przed zapisaniem i wymusza unikalność dla (provider, phone_number). Jeśli wcześniej zaimportowałeś ten sam numer w formacie innym niż E.164, najpierw usuń stary wpis, a potem zaimportuj go ponownie w formacie E.164.