Instrukcja konfiguracji

Vapi i polski numer +48

ACTIO jest operatorem: polska numeracja, SIP i SMS. Vapi zostaje silnikiem agenta (STT / LLM / TTS). Trunk jest standardowym BYO SIP z dokumentacji Vapi – ten sam wzorzec co u Zadarmy albo Telnyx, tylko gateway to sip.actio.pl.

Architektura: ACTIO +48 → SIP → Vapi → ElevenLabs / Deepgram / OpenAI. Jeśli potrzebujesz Twilio w środku: ACTIO +48 → BYOC → Twilio → Vapi (instrukcja Twilio).

Do połączeń potrzebujesz SIP Trunk albo wirtualnego numeru komórkowego. Pod voicebota jest pozycja SIP Trunk AI.

Dane SIP ACTIO, które wpisujesz w Vapi

Gateway / registrarsip.actio.pl
Port5060 UDP/TCP (zalecane na start), 7060 TLS
Username / Auth IDnumer użytkownika, np. 48XXXXXXXXX
Hasłohasło SIP z konta (inne niż hasło do panelu)
CLI / FromE.164 z +48, np. +48457XXXXXX
KodekiG.711a (PCMA), G.711u (PCMU) lub G.729 muszą być obecne w ofercie kodeków przy negocjacji SIP. Po stronie ACTIO na niektórych ścieżkach możliwe jest użycie AMR i AMR-WB (G.722.2); wymaga to także obsługi po stronie platformy. ACTIO nie udostępnia G.722.

Pod agenta AI bierz numer komórkowy +48, nie stacjonarny: na komórce masz od razu dwukierunkowy SMS. Stacjonarny tego nie da. Zakresy wirtualne ACTIO to +48 457 i +48 720.

1 Konto SIP i numer w ACTIO

Zakładasz konto SIP i numer, z którego bot ma dzwonić i na który ma odbierać. To ten numer widzi klient jako CLI.

  • Numer geograficzny (22, 12, 61…) albo wirtualny komórkowy +48 457/720 – ten drugi, jeśli potrzebujesz SMS na tym samym numerze.
  • Z panelu albo od BOK bierz: registrar, username 48XXXXXXXXX, hasło SIP.
  • Nie prezentuj na wyjściu numeru, którego nie masz na trunku. Polskie sieci odrzucają obcy CLIP (SIP 603).

2 Credential byo-sip-trunk w Vapi

Vapi opisuje to w dokumentacji SIP Trunking jako Custom BYO SIP Trunk: podajesz gateway i dane uwierzytelniające. Organizacja w UE – klucz i credential przez https://api.eu.vapi.ai, host SIP sip.eu.vapi.ai. US: api.vapi.ai / sip.vapi.ai. Nie mieszaj regionów.

Vapi odradza samą autoryzację po IP na współdzielonych bramkach. Z ACTIO używamy digest: username i hasło SIP.

export VAPI_API_BASE_URL="https://api.eu.vapi.ai"

curl -X POST "$VAPI_API_BASE_URL/credential" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_VAPI_PRIVATE_KEY" \
  -d '{
    "provider": "byo-sip-trunk",
    "name": "ACTIO Poland",
    "gateways": [{
      "ip": "sip.actio.pl",
      "port": 5060,
      "inboundEnabled": false,
      "outboundEnabled": true
    }],
    "outboundLeadingPlusEnabled": true,
    "outboundAuthenticationPlan": {
      "authUsername": "48XXXXXXXXX",
      "authPassword": "HASLO_SIP"
    }
  }'

Zapisz id z odpowiedzi – to credentialId. To samo da się kliknąć w panelu Vapi (SIP trunk / BYO), pola są te same: gateway, port, username, password, leading plus.

3 Numer byo-phone-number

Numer w Vapi to nie zakup u Vapi. To wskazanie DID-u, który już masz w ACTIO.

curl -X POST "$VAPI_API_BASE_URL/phone-number" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_VAPI_PRIVATE_KEY" \
  -d '{
    "provider": "byo-phone-number",
    "name": "ACTIO +48",
    "number": "+48457XXXXXX",
    "numberE164CheckEnabled": true,
    "credentialId": "YOUR_CREDENTIAL_ID"
  }'

Format numeru musi być spójny z tym, co ACTIO wysyła w INVITE (E.164 z +48). Zapisz id numeru do testu wychodzącego.

4 Test połączenia wychodzącego

Z panelu Vapi albo API wywołujesz agenta na swój telefon testowy. CLI, które zobaczysz na słuchawce, to numer ACTIO.

curl -X POST "$VAPI_API_BASE_URL/call/phone" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_VAPI_PRIVATE_KEY" \
  -d '{
    "assistantId": "YOUR_ASSISTANT_ID",
    "customer": { "number": "+48600XXXXXX" },
    "phoneNumberId": "YOUR_PHONE_NUMBER_ID"
  }'
  • Brak dźwięku: kodek G.711, UDP RTP. ACTIO nie kompresuje HD pod G.729, jeśli obie strony mają G.711.
  • 401/403 na wyjściu: złe hasło SIP albo username bez prefiksu 48.
  • 603 Decline: prezentujesz CLIP, którego nie masz na trunku.

5 Połączenia przychodzące na agenta

Vapi nie rejestruje się jako telefon na sip.actio.pl. To ACTIO ma wysłać INVITE na URI Vapi. W dokumentacji Vapi ten adres to:

UE: {numer}@{credential_id}.sip.eu.vapi.ai
US: {numer}@{credential_id}.sip.vapi.ai

  • Przekazujesz BOK-owi credential_id i region (UE albo US). Ustawiamy kierowanie DID-u na ten URI.
  • Inbound w Vapi wymaga numerycznych IPv4 sygnalizacji ACTIO (hostname nie wystarczy do matchowania źródła). Adresy podajemy przy wdrożeniu – bez tego bywa 401 na przychodzących.
  • IP sygnalizacji Vapi UE: 63.182.83.170/32. US: 44.229.228.186/32, 44.238.177.138/32. RTP UDP 40000–60000. Źródło: dokumentacja sieciowa Vapi.

6 SMS na tym samym numerze

Vapi obsługuje głos. SMS idzie osobno, przez ACTIO, na wirtualnym numerze komórkowym. Agent po rozmowie może dostać webhook z treścią SMS albo wysłać SMS z REST API (platforma Sendly). Numer stacjonarny tego nie ma.

Szerzej: głos i SMS dla agentów AI oraz SMS API.

Transfer (SIP REFER)

Jeśli agent ma oddać rozmowę człowiekowi, Vapi wysyła SIP REFER. URI transferu ma iść na domenę ACTIO, np. sip:+48600XXXXXX@sip.actio.pl. CLIP na transferze – numer ACTIO, nie numer oryginalnego dzwoniącego, jeśli tego numeru nie masz na trunku.

Najczęstsze pytania

Jaki SIP trunk do VAPI, żeby dzwonić na +48 i mieć polski CLI?

SIP Trunk ACTIO, pod voicebota SIP Trunk AI (150 / 129 / 100 zł netto/mc). W Vapi: byo-sip-trunk + byo-phone-number, gateway sip.actio.pl, CLI +48. Inwentarz Twilio w PL to 73/79 i 800 – nie da 22/12/61.

Czy Vapi potrzebuje polskiego operatora, czy wystarczy Twilio?

Twilio wystarczy przy ich inwentarzu. Polski CLI, zwykła komórka +48 albo SMS bez nadpisania Sender ID wymaga polskiego SIP. ACTIO jest tą warstwą; agent zostaje w Vapi.

Czy na numerze Vapi + ACTIO działa SMS?

Tak, jeśli numer jest komórkowy ACTIO. SMS nie idzie przez Vapi, tylko przez API ACTIO / Sendly na tym samym DID.

Jaki login wpisać w SIP Auth Username / Auth ID i jakie hasło?

Login to numer z prefiksem 48, na przykład 48XXXXXXXXX. Hasło to hasło SIP z pliku z danymi konta – nie hasło do panelu klienta.

Jaki jest realm domeny SIP przy Digest Authentication?

Realm to sip.actio.pl. Wychodzące kierujesz na ten sam serwer.

Czy konto testowe ma aktywne połączenia wychodzące?

Tak. Konto testowe ma włączone połączenia wychodzące.

Czy Vapi wymaga dodatkowej konfiguracji albo whitelisty?

Osobnej listy IP nie trzeba. Do przychodzących podaj nam SIP URI z panelu Vapi.

Potrzebujesz pomocy?

Przy pierwszym trunku Vapi ustawiamy przychodzące URI i IP sygnalizacji. Napisz, z jakiego numeru +48 ma dzwonić agent.