> 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とAsterisk

PBXでは現在の通信事業者と電話番号をそのまま使用し、選択した通話を[SIPトランク](/docs/ja/reception-ai/phone-numbers/bring-your-own-number#sip-trunk)経由でReception.aiに渡します。PBXにReception.aiを接続先とする2つ目のトランクを追加し、DID、時間条件、またはIVRオプションをそのトランクにルーティングします。

## はじめる前に

* インターネットからアクセスできるFreePBX 15以降、またはPJSIP対応のAsterisk。
* PBX用の固定パブリックIPアドレス。Reception.aiは許可されたアドレスからの通話のみ受け付けます。
* PBXのトランク、ルート、ファイアウォールに詳しい担当者。

## セットアップ

### Reception.aiにSIPトランクを追加する

**Integrations** に移動し、**Add integration** を選択して、**SIP Trunk** を選びます。**Inbound allowed addresses** にPBXのパブリックIPアドレスを追加します。受信用のユーザー名とパスワードも設定する場合は、以下のPBXトランクでも同じ組み合わせを使用します。

### 電話番号を追加する

**Receptionists** に移動して **Phone** タイルを選択し、発信者がダイヤルする番号を国番号付きで入力して、**Add SIP Trunk number** を選択します。使用するSIPサーバーのホストとリクエストURIがReception.aiに表示されます。

### FreePBXでTCPを有効にする

Reception.aiはUDPに対応していません。FreePBXで、**Settings** → **Asterisk SIP Settings** → **SIP Settings \[chan_pjsip]** に移動し、**tcp** トランスポートを **Yes** に設定して、**Submit**、**Apply Config** の順に選択します。新しいトランスポートを読み込むため、Asteriskを再起動します。**Certificate Management** で証明書を設定済みの場合は、TLSも使用できます。

### Reception.aiへのトランクを作成する

**Connectivity** → **Trunks** → **Add Trunk** → **Add SIP (chan_pjsip) Trunk** に移動します。**General** タブで、`reception` などの **Trunk Name** を入力します。受付担当者に各発信者自身の番号が表示されるように、**CID Options** を **Allow Any CID** に設定します。**pjsip Settings** タブでは、次のように設定します。

| フィールド               | 値                                                                                   |
| ------------------- | ----------------------------------------------------------------------------------- |
| **Registration**    | **None**                                                                            |
| **Authentication**  | **None**。Reception.aiで受信用の認証情報を設定した場合は、**Username** と **Secret** を指定した **Outbound** |
| **SIP Server**      | Reception.aiのSIPサーバーホスト                                                             |
| **SIP Server Port** | TCPの場合は `5060`、TLSの場合は `5061`                                                       |
| **Transport**       | TCP（またはTLS）トランスポート（例：`0.0.0.0-tcp`）                                                 |

### +E.164を送信するアウトバウンドルートを追加する

**Connectivity** → **Outbound Routes** に移動し、`reception` トランクのみを使用する `Reception` という名前のルートを追加します。`88` などの未使用の **prefix**、`X.` の **match pattern**、`+` の **prepend** を指定したダイヤルパターンを追加します。これにより、`8814155550123` への通話は、Reception.aiが必要とする形式である `+14155550123` としてトランクから送信されます。

### DIDをReception.aiに送信する

**Applications** → **Misc Destinations** に移動し、`88` の後に `+` を除いたE.164形式の番号を続けてダイヤルする宛先を追加します（例：`8814155550123`）。次に、**Connectivity** → **Inbound Routes** に移動し、DIDのルートを開いて、その宛先を今追加したMisc Destinationに設定します。時間条件、リンググループのフェイルオーバー、またはIVRオプションの宛先としても使用できます。

### NATとオーディオを修正する

**Settings** → **Asterisk SIP Settings** → **General SIP Settings** に移動します。**External Address** をPBXのパブリックIPに設定し、**Local Networks** にプライベートサブネットを指定します。ファイアウォールで、そのページに表示されている **RTP Port Ranges**（UDP、デフォルトでは10000～20000）を開放します。

### テストする

別の電話からDIDに電話をかけ、受付担当者が応答することを確認します。

## 通常のAsterisk

FreePBXを使用しないAsteriskでは、`pjsip.conf` に同じ設定を次のように記述します。`SIP_SERVER` を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
```

ダイヤルプランでは、E.164形式の番号で通話を送信します。

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

Reception.aiで受信用の認証情報を設定した場合は、その情報を指定した `type=auth` セクションを追加し、エンドポイントの `outbound_auth=` で参照します。

## 制限事項

* **転送。** 受付担当者は、**Outbound SIP address** に新しい通話を発信して転送します。ユーザー名とパスワードによる認証に対応した通信事業者のアカウントを使用し、SIP通信事業者を接続先に指定します。PBXへの転送のルーティングについては、ここでは説明しません。Reception.aiは変動するアドレスプールから発信するため、PBXはIPに基づいて通話とトランクを照合できません。
* **PBXは各通話を2回中継します**。通信事業者からの着信時とReception.aiへの送信時にそれぞれ中継するため、各区間に空きチャネルが必要です。

## トラブルシューティング

| 問題                       | 確認事項                                                                                                       |
| ------------------------ | ---------------------------------------------------------------------------------------------------------- |
| 呼び出し音が鳴る前に通話が失敗する        | トランクがUDPではなくTCPまたはTLSトランスポートを使用していること、およびポートがトランスポートと一致していることを確認します。                                       |
| 通話が拒否される                 | PBXのパブリックIPを **Inbound allowed addresses** に追加します。Asteriskコンソールで、INVITEのリクエストURIが `+` と国番号で始まっていることを確認します。 |
| 受付担当者に発信者としてPBXの番号が表示される | Reception.aiトランクの **CID Options** を **Allow Any CID** に設定します。                                              |
| 片方向通話になる、または音声が聞こえない     | **External Address** と **Local Networks** を設定し、ファイアウォールでRTPポート範囲を開放します。                                    |
| 受付担当者が応答しない              | 受付担当者の **Phone** タイルに電話番号が追加され、PBXが送信する番号と一致していることを確認します。                                                  |