ナビゲーションにスキップ

FreePBXとAsterisk

SIPトランク経由で、FreePBXまたはAsterisk電話システムから受付担当者に通話を転送します。

PBXでは現在の通信事業者と電話番号をそのまま使用し、選択した通話をSIPトランク経由でReception.aiに渡します。PBXにReception.aiを接続先とする2つ目のトランクを追加し、DID、時間条件、またはIVRオプションをそのトランクにルーティングします。

はじめる前に

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

セットアップ

1

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

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

2

電話番号を追加する

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

3

FreePBXでTCPを有効にする

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

4

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

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

フィールド値
RegistrationNone
AuthenticationNone。Reception.aiで受信用の認証情報を設定した場合は、Username と Secret を指定した Outbound
SIP ServerReception.aiのSIPサーバーホスト
SIP Server PortTCPの場合は 5060、TLSの場合は 5061
TransportTCP(またはTLS)トランスポート(例:0.0.0.0-tcp)
5

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

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

6

DIDをReception.aiに送信する

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

7

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

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

8

テストする

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

通常のAsterisk

FreePBXを使用しないAsteriskでは、pjsip.conf に同じ設定を次のように記述します。SIP_SERVER をReception.aiに表示されるホストに置き換えてください。

[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形式の番号で通話を送信します。

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が送信する番号と一致していることを確認します。