> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# FreePBX i Asterisk

Twój PBX zachowuje operatora i numery, a wybrane rozmowy przekazuje do Reception.ai przez [trunk SIP](/docs/pl/reception-ai/phone-numbers/bring-your-own-number#sip-trunk). Dodajesz w PBX drugi trunk wskazujący na Reception.ai, a potem kierujesz do niego numer DID, warunek czasowy lub opcję IVR.

## Zanim zaczniesz

* FreePBX 15 lub nowszy albo Asterisk z PJSIP, dostępny z internetu.
* Statyczny publiczny adres IP dla PBX. Reception.ai przyjmuje rozmowy tylko z dozwolonych adresów.
* Osoba znająca trunki, trasy i zaporę sieciową twojego PBX.

## Konfiguracja

### Dodaj trunk SIP w Reception.ai

Przejdź do **Integrations**, wybierz **Add integration**, a potem **SIP Trunk**. W sekcji **Inbound allowed addresses** dodaj publiczny adres IP swojego PBX. Jeśli ustawisz też przychodzącą nazwę użytkownika i hasło, użyj tej samej pary w trunku PBX poniżej.

### Dodaj numer

Przejdź do **Receptionists**, wybierz kafelek **Phone**, wpisz numer wybierany przez dzwoniących wraz z kodem kraju i wybierz **Add SIP Trunk number**. Reception.ai wyświetli host serwera SIP i identyfikator URI żądania do użycia.

### Włącz TCP w FreePBX

Reception.ai nie obsługuje UDP. W FreePBX przejdź do **Settings** → **Asterisk SIP Settings** → **SIP Settings \[chan_pjsip]**, ustaw transport **tcp** na **Yes**, a następnie wybierz **Submit** i **Apply Config**. Uruchom ponownie Asterisk, aby załadować nowy transport. TLS też działa, jeśli skonfigurowałeś certyfikat w **Certificate Management**.

### Utwórz trunk do Reception.ai

Przejdź do **Connectivity** → **Trunks** → **Add Trunk** → **Add SIP (chan_pjsip) Trunk**. Na karcie **General** wpisz **Trunk Name**, na przykład `reception`. Ustaw **CID Options** na **Allow Any CID**, aby recepcjonistka widziała własny numer każdego dzwoniącego. Na karcie **pjsip Settings**:

| Pole                | Wartość                                                                                                  |
| ------------------- | -------------------------------------------------------------------------------------------------------- |
| **Registration**    | **None**                                                                                                 |
| **Authentication**  | **None** albo **Outbound** z **Username** i **Secret**, jeśli w Reception.ai ustawiono dane przychodzące |
| **SIP Server**      | Host serwera SIP Reception.ai                                                                            |
| **SIP Server Port** | `5060` dla TCP lub `5061` dla TLS                                                                        |
| **Transport**       | Transport TCP (lub TLS), na przykład `0.0.0.0-tcp`                                                       |

### Dodaj trasę wychodzącą wysyłającą +E.164

Przejdź do **Connectivity** → **Outbound Routes** i dodaj trasę o nazwie `Reception`, która używa tylko trunku `reception`. Dodaj wzorzec wybierania z nieużywanym **prefix**, na przykład `88`, **match pattern** `X.` i **prepend** `+`. Rozmowa na numer `8814155550123` opuści wtedy trunk jako `+14155550123`, czyli w formacie wymaganym przez Reception.ai.

### Wyślij DID do Reception.ai

Przejdź do **Applications** → **Misc Destinations** i dodaj pozycję wybierającą `88`, a następnie numer w formacie E.164 bez `+`, na przykład `8814155550123`. Potem przejdź do **Connectivity** → **Inbound Routes**, otwórz trasę dla swojego DID i ustaw jako cel tę pozycję misc destination. Możesz też użyć jej jako celu warunku czasowego, przepełnienia grupy dzwonienia lub opcji IVR.

### Napraw NAT i dźwięk

Przejdź do **Settings** → **Asterisk SIP Settings** → **General SIP Settings**. Ustaw **External Address** na publiczny adres IP PBX i podaj prywatne podsieci w **Local Networks**. Otwórz w zaporze zakresy **RTP Port Ranges** widoczne na tej stronie (UDP, domyślnie 10000–20000).

### Przetestuj

Zadzwoń na swój DID z innego telefonu i sprawdź, czy recepcjonistka odbiera.

## Czysty Asterisk

W Asterisk bez FreePBX ta sama konfiguracja w `pjsip.conf` wygląda tak. Zastąp `SIP_SERVER` hostem wyświetlanym przez Reception.ai.

```ini
[transport-tcp]
type=transport
protocol=tcp
bind=0.0.0.0:5060
external_signaling_address=PBX_PUBLIC_IP
external_media_address=PBX_PUBLIC_IP
local_net=192.168.0.0/16

[reception]
type=aor
contact=sip:SIP_SERVER:5060;transport=tcp

[reception]
type=endpoint
transport=transport-tcp
aors=reception
context=from-reception
disallow=all
allow=ulaw,alaw
```

W dialplanie wyślij rozmowę z numerem w formacie E.164:

```ini
exten => YOUR_DID,1,Dial(PJSIP/+14155550123@reception)
```

Jeśli w Reception.ai ustawisz dane przychodzące, dodaj sekcję `type=auth` z tymi danymi i odwołaj się do niej przez `outbound_auth=` w endpoint.

## Ograniczenia

* **Przekazywanie rozmów.** Recepcjonistka przekazuje rozmowy, nawiązując nowe połączenie z **Outbound SIP address**. Wskaż tam swojego operatora SIP, używając konta operatora, które akceptuje nazwę użytkownika i hasło. Przekierowywanie rozmów z powrotem do PBX nie jest tu opisane: Reception.ai dzwoni ze zmiennej puli adresów, więc PBX nie może dopasować tych połączeń do trunku po IP.
* **Twój PBX obsługuje każdą rozmowę dwa razy**, raz od operatora i raz do Reception.ai, więc potrzebuje wolnego kanału dla każdej części połączenia.

## Rozwiązywanie problemów

| Problem                                               | Co sprawdzić                                                                                                                                       |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Rozmowy kończą się przed sygnałem                     | Sprawdź, czy trunk używa transportu TCP lub TLS, a nie UDP, i czy port jest właściwy.                                                              |
| Rozmowy są odrzucane                                  | Dodaj publiczny adres IP PBX do **Inbound allowed addresses**. Sprawdź w konsoli Asterisk, czy URI żądania INVITE zaczyna się od `+` i kodu kraju. |
| Recepcjonistka widzi numer PBX jako numer dzwoniącego | Ustaw **CID Options** na trunku Reception.ai na **Allow Any CID**.                                                                                 |
| Dźwięk działa tylko w jedną stronę lub nie działa     | Ustaw **External Address** i **Local Networks** oraz otwórz zakres portów RTP w zaporze.                                                           |
| Recepcjonistka nie odbiera                            | Upewnij się, że numer jest dodany w kafelku **Phone** recepcjonistki i pasuje do numeru wysyłanego przez PBX.                                      |