Asterisk 20 サンプル設定ファイル


Asterisk 20以降用のサンプル設定ファイル

難しくしました。そろそろみんな理解してるでしょうよと。
内線を抽象化することでPJSIPのエンドポイントと内線番号を切り離しました
ABSからのポーティングを含みますが、ABSとは互換性はありません

目次

入手

使い方

Asteriskデフォルトのconfを入れている場合には/etc/asteriskディレクトリをリネームしてバックアップしてから、/etc/asteriskをつくり、そこに入れると良いでしょう。
ほぼ全行にコメントを付けてありますので読んでください。
まずpj_phonege.shでPJSIPのエンドポイント、要するに電話機設定をつくります。

./pj_phonegen.sh > pjsip_wizard.conf

元からpjsip_wizard.confが入っていますが、これは参考用なので「そのまま」は使わないで下さい。

電話機類の設定

phone1~phone16は通常のSIP端末、phone17~phone32はブラウザ電話機(WebSocket)用です。
pjsip_wizard.confの以下のような箇所をみて電話機を設定してください。

[phone1](phone-defaults)
inbound_auth/username = phone1           <-ユーザ名
inbound_auth/password = f0064c965a91e513fec766ac0d658ed8 <-パスワード

電話機に設定するユーザ名とパスワードは上記の個所になります。各エンドポイントのその他の設定はテンプレートのものが使われます。
配布状態のSIPポートは5070です。電話機側でもこれを設定してください。(pjsip.conf)

電話機からのレジストが確認できたら電話機とAsteriskの接続はOKです。

ブラウザフォン

ブラウザフォン(WebSocket)はInnovateAsteriskのもので動作を確認しています。
自己署名証書をつくるためのスクリプト、make_crt.shを添付していますので、これを使って自己署名証書をつくってください。詳しい設定方法は InnovateAsteriskBrowser-Phone にあります。

内線番号の割り当て

内線は抽象化されているので内線番号はAstDBで行います。CLIから以下の例のようにコマンドを入力することで内線番号が設定されます。

CLI*> database put MYPBX/EXT 201 phone1

この例ではエンドポイント phone1 に内線番号 201 を割り当てます。
内線を削除したい場合には

CLI*> database del MYPBX/EXT 201

のようにします。
内線番号が割り当たっていないエンドポイントは発信できないようにextenで書いてあります。このためエンドポイント/電話機だけを設定しても発信はできません。

外線接続

外線の接続方法はここでは詳しく書きませんが他の情報を参考にしてください。いくつかテンプレートは入れてあります。
着信方法もextenに書いてあるので参考にしてください。
extenの書き換えを極力減らすためグローバル変数で設定を入れられるようにしてあります。

外線着信

番号で落とす方式をincomingコンテキストで用意してあります。外線トランクからincoming,番号,1へ落としてください。鳴動させる内線は複数指定可能でグローバルで設定できるようにしてあります。

サンプル設定ファイルの解説

その他

2024/07/22 処理のおかしいところを修正。一部処理をサブルーチン化しました。

SIPメッセージング 処理を入れました。ブラウザフォン等でチャットもできます(GSの電話機でも使えます)。