AsteriskをDocker Composeで動作させてみよう

はじめに

おはようございますからこんばんわまで。ギークフィードのaraoです。
ギークフィード Advent Calendar 2025の20日目のブログです。

今回はAsteriskをDocker composeで動かしてみます。
Asterisk案件をやったことがある人なら100%見たことがあるであろうVoIP-Info.jp
DockerでAsteriskを動作させる記事がありました。
この記事をベースに自分なりに手を加えて、ローカルでSIPのテストに使っているので体裁を整えてレポジトリで公開します。

レポジトリ

asterisk-docker

参照元との違い

以下の点の違いがあります。

  • bridgeモードを利用しているため、Mac/Window環境で利用可能
    • 私がMacを利用しているのでWindows環境は未確認。EC2で動作することを確認済みです
  • Opusを利用しないように変更
    • 私がMacを利用しているので
  • Makefileによるコマンドの簡略化

一番大変な0→1の部分は参照元を利用させていただいているので感謝です。

使い方

READMEに基本的な使い方を書いてますが、補足です。

初回起動

1. 環境変数の設定

Asteriskはコンテナで動作するため、NATが必須となります。
そのため、EXTERNAL_IPを設定してNATの外側のIPアドレスを設定します。

自分の端末で動作させる場合、自分のPCのIPアドレスを設定します。
今回は例として、192.168.10.28を設定します。
※EC2などサーバで動作させる場合はグローバルIPを設定してください。

2. makeコマンドで起動

まず、buildを行います。

必要に応じて、config/asterisk配下の設定ファイルを修正します。
すぐ動作確認できるように基本的な設定は記載済みです。

次に設定ファイルのコピーなど初期設定とコンテナの起動を行います。

3. ソフトフォンからテストコール

コンテナが起動したら、ソフトフォンからテストコールしてみましょう。
Zoiper5での設定例を記載します。

画像の例ではIPアドレスをlocalhostにしていますが、EXTERNAL_IPで指定したIPアドレス(例:192.168.10.28)でも動作します。

999にダイヤルするとMilliwattコマンドを実行するようにしています。
Milliwattはジッターやパケロスなど音声品質を調査するときに利用するコマンドで、ピーーーーーという音が再生されます。

>

ピーーーーと聞こえたら成功です。
内線間通話を試すなり設定変更をするなり、色々お試しください。

終わり

VoIP案件でローカルで開発したものをテストする際に、テストコール先として活用しているので共有しました。
5060ポートが重複しないようにポート番号をずらすなどの対応は必要ですが、SIPpのシナリオ書いたりするときにローカルで完結するので便利です。
また、コーディングエージェントを利用しやすい点も気に入っててAsteriskの設定や関連プログラムを作成するのが楽ちんで気に入ってます。
ぜひ、ご活用いただければと思います。
何かあればissueをあげてもらえれば!

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ