Przejdź do treści

Migracja

Przejście z Twilio na volai w jedno popołudnie.

Mniejsze API, te same pojęcia. Mapowanie pojęć Twilio na volai, porównanie kodu obok siebie, gotowy prompt dla agenta AI i lista kontrolna tego, co trzeba przełączyć.

Czy to ma dla Państwa sens?

Tak, jeśli potrzebują Państwo

  • Czeskich numerów telefonicznych (+420) i lokalnych stawek za połączenia.
  • Gotowego agenta głosowego z pudełka, a nie budowanego ze strumieni audio i własnego modelu.
  • Salda kupowanego w walucie Państwa kraju, bez niespodzianek kursowych na wyciągu z karty.
  • Połączeń i SMS-ów na jednym czeskim numerze - w Twilio czeski numer obsługuje albo połączenia, albo SMS-y, a volai oferuje numer do połączeń i SMS (praską linię stacjonarną).

Proszę zostać przy Twilio, jeśli potrzebują Państwo

  • Więcej numerów do odbioru SMS-ów, niż pozwalają limity konta, lub odbioru SMS-ów w innych krajach - numery głosowe volai nie odbierają SMS-ów, a SMS-y potrafią odbierać numer komórkowy (czeski numer komórkowy tylko do SMS) oraz numer do połączeń i SMS (praska linia stacjonarna), od każdego rodzaju najwyżej dwa na konto; kodów weryfikacyjnych od usług nie gwarantujemy.
  • Numerów telefonicznych spoza oferty volai: czeskich, słowackich z bratysławskim numerem kierunkowym oraz numerów w krajach z aktualnej oferty, te tylko do połączeń, bez SMS-ów i z dzwonieniem wyłącznie do kraju numeru i do Czech.
  • WhatsApp, wideo lub innych kanałów komunikacji.

Co czemu odpowiada

SDK Twilio nie podłączy się do volai przez zmianę adresu - to mniejsze, inne API. Pojęcia mapują się jednak jeden do jednego.

Twiliovolai
Account SID + Auth Tokenklucz API vk_...
Messages resourcePOST /v1/messages
From (numer nadawcy)fromNumber (dodatek numer komórkowy lub numer do połączeń i SMS)
Calls resourcePOST /v1/calls
IncomingPhoneNumbersGET i POST /v1/numbers (numery komórkowe: GET i POST /v1/sms-numbers; numer do połączeń i SMS: GET i POST /v1/voice-sms-numbers)
Webhook wiadomości przychodzącej (SmsUrl)zdarzenie message.received
StatusCallbackwebhook zdarzeń
TwiMLagent głosowy (systemPrompt)
X-Twilio-SignatureVolai-Signature

Kod obok siebie

Wysyłanie SMS-a - ta sama idea, inne API.

Twilio (Node.js SDK)

javascript
const twilio = require("twilio");
const client = twilio(accountSid, authToken);

await client.messages.create({
  body: "Hi from Twilio!",
  from: "+15017122661",
  to: "+420777123456",
});

volai (fetch)

javascript
await fetch("https://volai.cz/v1/messages", {
  method: "POST",
  headers: {
    Authorization: "Bearer vk_YOUR_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    to: "+420777123456",
    body: "Hi from volai!",
  }),
});

Twilio ustawia nadawcę polem from. volai ignoruje pole from, a nadawcę wybiera polem fromNumber (numer z GET /v1/sms-numbers, dodatek numer komórkowy, lub z GET /v1/voice-sms-numbers, numer do połączeń i SMS). Bez fromNumber SMS-y wychodzą pod wspólną nazwą SMSinfo, na którą odbiorca nie może odpowiedzieć.

Proszę przekazać to agentowi AI

Proszę skopiować prompt do Claude Code, Cursora lub innego edytora AI i zlecić mu przeprowadzenie migracji - SKILL.md dostarcza mu całą referencję.

text
Przeczytaj plik SKILL.md ze strony volai (znajduje się w nim bazowy URL API). Znajdź w moim projekcie wywołania SDK Twilio dla SMS-ów i połączeń (client.messages.create, client.calls.create) i przepisz je na REST API volai: POST /v1/messages dla SMS-ów, POST /v1/calls dla połączeń, nagłówek Authorization: Bearer vk_YOUR_KEY. Dostosuj także obsługę webhooków do formatu z SKILL.md, łącznie z weryfikacją nagłówka Volai-Signature.

Lista kontrolna przełączenia

  1. Numer

    Proszę kupić czeski numer (POST /v1/numbers lub w portalu) i ustawić mu routing - agent, przekazywanie albo SIP. Do odbioru SMS-ów i wysyłania z własnego numeru należy dokupić jeszcze numer komórkowy (POST /v1/sms-numbers lub w portalu w Numerach): czeski numer komórkowy tylko do SMS, bez połączeń. Jeśli mają Państwo mieć połączenia i SMS-y na jednym numerze, zamiast dwóch numerów należy zamówić numer do połączeń i SMS (POST /v1/voice-sms-numbers lub w portalu): praską linię stacjonarną, która po zamówieniu jest rejestrowana u operatora, zwykle w ciągu 1 dnia roboczego. Połączenia na nią odbiera wyłącznie agent na własnym silniku głosowym volai (nie da się jej skierować na SIP ani przekierować), więc nie nadaje się dla agenta działającego gdzie indziej.

  2. Klucz

    Proszę wygenerować klucz API w portalu w sekcji Asystent AI.

  3. Webhook

    Proszę ustawić webhook (PUT /v1/webhook) na ten sam adres, na który dziś przychodzi Twilio StatusCallback, i dostosować obsługę do nowego kształtu zdarzenia. Jeśli adres zawiera w sobie nazwę użytkownika i hasło, logowanie należy przenieść do własnego nagłówka (headers, na przykład Authorization: Basic ...), adres z danymi logowania volai odrzuci.

  4. Test

    Zanim zostanie przełączony ruch produkcyjny, proszę wysłać sobie SMS i wykonać połączenie testowe na własny telefon komórkowy.

  5. DNS i stare kontakty

    DNS zazwyczaj zmieniać nie trzeba - volai nie używa Państwa domeny. Należy jednak sprawdzić strony, stopki e-mail i dokumentację, w których stary numer telefonu jest wpisany na stałe.

Kiedy zostać przy Twilio

Migracja nie musi być dla każdego - oprócz powyższego przeglądu warto rozważyć także to:

  • Połączenia wychodzące z volai idą tylko na numery czeskie i słowackie (+420, +421) - na numer zagraniczny nie da się dodzwonić, także z zakupionego czeskiego numeru.
  • Potrzebują Państwo większego wolumenu niż 60 żądań na minutę - to wspólny limit REST API i serwera MCP.

Rozpoczęcie migracji

Rejestracja trwa minutę, a pierwsze 50 kr salda dostają Państwo od nas - nowe API można wypróbować, zanim przełączy się ruch produkcyjny.