Skip to content

cosicosilife.com

ライフハックについていろいろ書きます

Primary Menu
  • サイトマップ
  • クラウド技術
  • 安全資産投資
  • 旅行
  • ライフハック
  • プライバシーポリシー
  • 運営者情報とご連絡先
  • Home
  • 未分類
  • Twilio Elastic SIP Trunking を試す
  • 未分類

Twilio Elastic SIP Trunking を試す

david 2025年2月22日

この記事の目次(クリックしたらジャンプ)

Toggle
  • はじめに
  • この記事でわかることと前提条件
  • FreePBX のインストール
  • Twilio の無料トライアルの手順
  • US電話番号の購入
  • Credentialの設定
  • トランクの設定
  • Outbound route の設定
  • Extention の設定
  • freePBXトラブルシューティング
    • 1. FreePBXコンテナに入る
    • 2. FreePBXモジュールを手動で更新
    • 3. すべてのモジュールを更新(推奨)
    • 4. モジュール署名を強制的に修正
    • 5. FreePBXを再起動
  • Zoiper 5の設定

はじめに

この記事ではFreePBXを自宅のサーバで作成して、Twilio SIP trunk のサービスを利用してSIP電話を利用することを目的としています

この記事でわかることと前提条件

  • Twilio のSIP電話を利用して、電話を無料で使えます(無料枠制限あり)
  • docker とlinux の基礎知識は前提です
  • 今回は自宅のubuntu にdocker でfreepbx を入れました。ご自宅のFWの設定が重要になってきます

FreePBX のインストール

下記のdocker compose fileを作成して立ち上げてください。ポート番号を意図的に変更してありますが、基本的にHTTPやHTTPSで自宅外からアクセスすることはお勧めしません。30xx と書いておきましたが、docker でさらすポートは各自決めてください

version: '3.3'

services:
  freepbx-app:
    image: tiredofit/freepbx
    container_name: freepbx-app
    ports:
      - "30xx:80"       # HTTP
      - "30xx:443"     # HTTPS
      - "5060:5060/udp"  # SIP
      - "5160:5160/udp"  # SIP
      - "18000-18100:18000-18100/udp"  # RTP
    environment:
      - RTP_START=18000
      - RTP_FINISH=18100
      - AUTHTYPE=database
      - USERNAME=admin
      - PASSWORD=admin 
      - TZ=Asia/Tokyo
    volumes:
      - ./certs:/certs
      - ./data:/data
      - ./logs:/var/log
      - ./db:/var/lib/mysql
    restart: always
    privileged: true

docker compose で立ち上げたら、http://freepbx のアドレス/admin/ でセットアップします

パスワードを入力したらログインできるようになるはずです

Twilio の無料トライアルの手順

まずは無料トライアルでSIP Trunk をTwilio で設定します

めんどくさいから Google でログインして無料トライアルします

すぐにログインできるはずです 2400円くらいのトライアルができるのがうれしいです

SIP Trunking を検索

Get Started

Create SIP trunk をクリック

Trunkの名前を作成

各種設定を行います

これでトランクを設定します

US電話番号の購入

USで番号を取得します Add a number をクリック

Buy a Number をクリック

179円で月額買えるというのは素晴らしい、これもクレジットから差し引かれるので、クレジットを使いきるまで実質無料となります

適当な番号を購入します

Termination でSIPトランクの終端名を作成します

上記の Termination SIP URI は Freepbx の設定で利用しますので、メモっておいてください

購入したら、Add an Existing Number でAddします

Add selected で追加

これで番号が追加されました

PBXのアクセスリストとCredential list は必須です

PBXのIPを登録します。私の場合はfreePBX をインストールしているIPからしか接続しないので/32でアドレスを切ります。設定完了したら Create ACL を押して保存

保存します

Credentialの設定

creential list も登録します。後ほどfreepbx で利用します

設定が終わると早速クレジットから差し引かれています

トランクの設定

先ほどのFreePBX でトランクを設定します

Add Trunk をクリック

+ Add SIP(chan_SIP) trunk をクリック

Edit Tunk で先ほどのCredential を入れます

host= 先ほどのURI  
username=先ほどのcredential list の設定のユーザネーム
secret= 先ほどのcredential list の設定のパスワード
type=peer  (そのまま)

Outbound route の設定

Connectivity からOutbound Routes をクリック

Add outbound route をクリック

pattern は ピリオドを入れるだけで問題ないです。 「すべて適用」という意味です

Extention の設定

Applications >>> Extentions

Add New SIP(legacy) [chan_sip] Extension をクリック

User extention はSIP のユーザ名ですので、これがいわゆるSIP電話から見たユーザ名となります。

Port 5160 UDP とあるので、このポート番号をIPと紐づけて利用します

Extention の設定が終わったら、secret が発行されます(これは後ほどSIP電話の設定で使います)

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

以下の手順で FreePBX Framework モジュールを再ダウンロードして、署名を修正できます。

1. FreePBXコンテナに入る

docker exec -it freepbx bash
コンテナIDの場合は docker ps で調べてください

2. FreePBXモジュールを手動で更新

fwconsole ma downloadinstall framework --force
fwconsole reload

このコマンドは FreePBX Framework モジュールを再ダウンロードして再インストールします。


3. すべてのモジュールを更新(推奨)

もし他のモジュールも影響を受けている場合は、すべてのモジュールを最新化することを推奨します。

fwconsole ma upgradeall
fwconsole reload

4. モジュール署名を強制的に修正

もし上記の方法でも問題が解決しない場合は、以下のコマンドを試してください。

fwconsole chown
fwconsole reload

5. FreePBXを再起動

fwconsole restart

または、Dockerコンテナを再起動:

docker restart

Zoiper 5の設定

Zoiper5 をダウンロードします 初期設定では 先ほどのextention と freepbxをインストールしてあるパブリックアドレスと先ほどのポートの組み合わせです

secret にはfreepbx で設定した、Extention のcredential を入力します

ホストネーム=freepbx サーバのアドレス コロンに続いて ポート番号です

問題なければSIP UDPで設定を確認できます

これで一通り完了です。さっそく電話してみましょう。Twillio でテストコール用の番号が用意されているのでそこに架電しました

こんな感じになれば成功

上記のようになれば日本にも電話を掛けられるはずです。電話料金には注意しましょう

Continue Reading

Previous: AWS SSM を使ってみよう 

Related Stories

aws
  • 未分類

AWS SSM を使ってみよう 

david 2025年2月16日
DNS
  • 未分類

【初心者向け】AWS Route 53 で cosicosilife.org に DNSSEC を設定する方法

david 2025年2月10日
deepseek
  • 未分類

DeepSeekとは何か?ソースを覗いてみる

david 2025年2月10日
  • argocdの導入
  • (タイトルなし)
  • オンプレUbuntuでHelm中心にKubernetes運用・CI/CD構築
  • Ubuntu上にArgo CDをインストールし、ブラウザアクセスできるようにする手順(k8s.cosicosilife.com対応)
  • 【初心者向け】Argo CD に初めてのアプリケーションをデプロイしてみよう!
  • サイトマップ
  • クラウド技術
  • 安全資産投資
  • 旅行
  • ライフハック
  • プライバシーポリシー
  • 運営者情報とご連絡先
  • サイトマップ
  • クラウド技術
  • 安全資産投資
  • 旅行
  • ライフハック
  • プライバシーポリシー
  • 運営者情報とご連絡先
Copyright © Cosicosilife | MoreNews by AF themes.