「Asterisk」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→インストール: 飜訳) |
Kusanaginoturugi (トーク | 投稿記録) (→SIP: chan_sip に変更) |
||
38行目: | 38行目: | ||
}} |
}} |
||
− | === |
+ | === chan_sip === |
asterisk サーバーを動かしたら、後は2つのファイルを編集すれば設定できます: {{ic|sip.conf}} と {{ic|extensions.conf}}。asterisk の設定ディレクトリ ({{ic|/etc/asterisk}}) に移動して、{{ic|sip.conf}} を編集して以下を記述してください: |
asterisk サーバーを動かしたら、後は2つのファイルを編集すれば設定できます: {{ic|sip.conf}} と {{ic|extensions.conf}}。asterisk の設定ディレクトリ ({{ic|/etc/asterisk}}) に移動して、{{ic|sip.conf}} を編集して以下を記述してください: |
||
{{bc|1= |
{{bc|1= |
||
67行目: | 67行目: | ||
これでコンテキスト {{Ic|house}} が作成され SIP ユーザー {{Ic|me1}} にエクステンション 100 が、SIP ユーザー {{Ic|me2}} にエクステンション 101 が割り当てられます。後は実際に動作するか確認するだけです。 |
これでコンテキスト {{Ic|house}} が作成され SIP ユーザー {{Ic|me1}} にエクステンション 100 が、SIP ユーザー {{Ic|me2}} にエクステンション 101 が割り当てられます。後は実際に動作するか確認するだけです。 |
||
+ | |||
===保留音=== |
===保留音=== |
||
保留音はとても楽しい機能です。簡単に設定することができます。{{ic|/etc/asterisk/musiconhold.conf}} を編集して以下を追加してください: |
保留音はとても楽しい機能です。簡単に設定することができます。{{ic|/etc/asterisk/musiconhold.conf}} を編集して以下を追加してください: |
2023年5月1日 (月) 14:15時点における版
Asterisk は完全な PBX (構内交換機) ソフトウェアです。Linux, BSD, Windows, macOS などで動作し、PBX が通常備えている機能は全て含まれています。Asterisk は4つのプロトコルで Voice over IP を実現し、比較的安価なハードウェアでほぼ全ての規格の電話装置と一緒に使うことが可能です。
Asterisk はボイスメールサービス、電話帳、電話会議、自動音声応答、コールキューイングを実現します。また、三者通話、発信者番号通知サービス、ADSI、IAX、SIP、H.323 (クライアントとゲートウェイの両方)、MGCP (コールマネージャのみ)、SCCP/Skinny をサポートしています。
この記事では家庭ネットワークにおけるシンプルな設定を説明し、SIP ソフトフォンを使って LAN 上の他の SIP ソフトフォンと会話できるようにします。
目次
インストール
asteriskAUR パッケージをインストールしてください。Cisco の IP 電話を使用する場合はパッチが適用されている asterisk-ciscoAUR パッケージを使うことが推奨されます (https://issues.asterisk.org/jira/browse/ASTERISK-13145 を参照)。
あるいは、asterisk-lts-20AUR パッケージをインストールすると、長期サポートリリースを入手できます(現在の最新 LTS メジャーバージョンは Asterisk 20です)。Asterisk LTS リリースは機能が少ない傾向にありますが、ずっと長い間メンテナンスされます。すべての asterisk バージョンのリリースサイクルに関する完全な詳細については、Asterisk Versions ページを参照してください。
インストールしたら asterisk.service
systemd サービスを有効化および起動してください。
SIP ソフトフォンと最低2つのマシンが必要です。SIP フォンとしては Blink (blinkAUR)、 Linphone (liblinphone-gitAUR) または X-Lite (xlite-binAUR) が推奨されます。
ilbc コーデックのサポートを有効にするには PKGBUILD の build
セクションの冒頭に以下を追加してください:
cd ${srcdir}/${pkgname}-${pkgver}/contrib/scripts echo | ./get_ilbc_source.sh
設定
以下の説明は、すでに時代遅れとなっている sip
モジュールを使いたい場合を想定していることに注意してください。sip
モジュールはもうメンテナンスされていませんが、新しい pjsip
モジュールより設定が簡単です。2 つのモジュールの間の設定の変更点のまとめと、新しいモジュールへの移行方法は Asterisk wiki に記載されています。
sip
を使うには、古いモジュールを明示的にロードし、新しい pjsip
モジュールがアンロードされていることを確認する必要があります。/etc/asterisk/modules.conf
で、以下を調整してください。
noload => chan_pjsip.so noload => res_pjsip.so ; noload => chan_sip.so
chan_sip
asterisk サーバーを動かしたら、後は2つのファイルを編集すれば設定できます: sip.conf
と extensions.conf
。asterisk の設定ディレクトリ (/etc/asterisk
) に移動して、sip.conf
を編集して以下を記述してください:
[me1] type=friend username=me1 secret=PASSWORD host=dynamic context=house [me2] type=friend username=me2 secret=PASSWORD host=dynamic context=house
これで house
コンテキストに二人の SIP ユーザー me1
と me2
が作成されます。パスワードは PASSWORD
です。
次にコンテキストを定義します。extensions.conf
を以下のように編集:
[house] exten => 100,1,Dial(SIP/me1) exten => 101,1,Dial(SIP/me2)
これでコンテキスト house
が作成され SIP ユーザー me1
にエクステンション 100 が、SIP ユーザー me2
にエクステンション 101 が割り当てられます。後は実際に動作するか確認するだけです。
保留音
保留音はとても楽しい機能です。簡単に設定することができます。/etc/asterisk/musiconhold.conf
を編集して以下を追加してください:
[default] mode=files directory=mohmp3
後は合法的に入手したお気に入りの MP3 を /var/lib/asterisk/mohmp3
にコピーしてください。
ボイスメール
Asterisk にはボイスメール機能が存在します。設定する方法は多数ありますが、この記事ではシンプルな設定方法だけを紹介します。
voicemail.conf
を作成・編集:
[general] format=gsm|wav49|wav serveremail=asterisk attach=no mailcmd=/usr/sbin/sendmail -t maxmessage=180 maxgreet=60 [default] 100 => 1234,Me,me@mydomain.com
[general]
の設定の内容は こちら を見て下さい。Postfix が正しくセットアップされていれば PBX からメールの通知がユーザーに送信され、attach=yes
と定義されている場合、メールに音声ファイルが添付されます。
次にメールボックスの設定です。フォーマットは:
mailbox => password,user,email
上記の場合、'Me' というユーザー名でメールアドレスが me@mydomain.com、パスワードが 1234 のメールボックス 100 が設定されます。
それから、ボイスメールボックスにメッセージを残す方法と、記録されたメッセージにアクセスする手段を用意する必要があります。
extensions.conf
に戻り、既存のエントリを次のように変更します:
exten => 100,1,Dial(SIP/me1,20) exten => 100,2,Voicemail(100@default)
最初の 'exten' は 'Dial()' で20秒間電話を呼び出します。応答がない場合、default コンテキストの 100 番のボイスメールボックスに転送します。
さらに以下のように設定することで実際にボイスメールにアクセスすることができます:
exten => 600,1,VoiceMailMain,s100@default
600 番を呼び出すと、'VoiceMailMain' アプリケーションは default コンテキストの 100 番に行きます。s
で自動ログインが許可されます。
PSTN に接続
ここまで設定できたら、次は外線と繋ぎましょう。OnSIP などのプロバイダが必要です。asterisk に接続する手順がプロバイダによって用意されているかもしれないため、このセクションは共通のことだけ記述します。
一般的なセットアップ
sip.conf
[general] register => username:password@sip.specific.com [whatever] fromdomain=specific.com host=sip.specific.com insecure=very ; check with provider username=usernameduh secret=passwordduh type=peer
extensions.conf
[outboundwithCID] ; this can be whatever exten => _1NXXNXXXXXX,1,SetCIDNum(15555551234) exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@whatever) exten => _1NXXNXXXXXX,3,Congestion() exten => _1NXXNXXXXXX,103,Busy() [default] ; This should be set in your sip.conf for incoming calls ;These should to be changed to your actual number ; ie 15555555555 exten => 1NXXNXXXXXX,1,Answer() exten => 1NXXNXXXXXX,2,Playback(ttt-weasels) exten => 1NXXNXXXXXX,3,HangUp()
- 発信(outbound)コンテキストでは、ダイアルした番号を全てサービスプロバイダに送信します。2 の 'whatever' は
sip.conf
の設定と一致させる必要があります。 - もちろん、着信(inbound)番号計画は、あなたが望むように変更することができます。例えば、
Dial(SIP/me1)
とすることで、誰かがあなたの番号に電話をかけると、あなたのコンピュータの SIP 電話に転送されるようにすることができます。それから、ボイスメールなどを追加します。
iax.conf
まず、FWD にログインして、FWD 側の IAX を有効にします。これは extra features の下にあり、作者は有効化するのに少し時間がかかると主張しているのを覚えておいてください。
そして iax.conf
の 'general' セクションを以下のように編集:
register => FWDNUMBER:PASSWORD@iax2.fwdnet.net disallow = all allow = ulaw
そして末尾に以下を追加:
[iaxfwd] type=user context=fromiaxfwd auth=rsa inkeys=freeworlddialup
これにより、FWD からの呼び出しが許可されます。
extensions.conf
'[globals]' の一番上に以下を記述:
FWDNUMBER=MYFWDNUMBER ; your calling number FWDCIDNAME="MyName"; your caller id FWDPASSWORD=MYFWDPASSWORD ; your password FWDRINGS=sip/office ; the phone to ring FWDVMBOX=1000 ; the VM box for this user
次に、これを発信用のコンテキストに追加します:
exten => _393.,1,SetCallerId,${FWDCIDNAME} exten => _393.,2,Dial(IAX2/${FWDNUMBER}:${FWDPASSWORD}@iax2.fwdnet.net/${EXTEN:3},60,r) exten => _393.,3,Congestion
「393」は好きなように変更できます。これは、「転送」番号をダイヤルする前にダイヤルするものです。例えば、「744561」をダイヤルする場合は、「393744561」をダイヤルします。
そして最後に、着信です。
[fromiaxfwd] exten => ${FWDNUMBER},1,Dial(${FWDRINGS},20,r) exten => ${FWDNUMBER},2,Voicemail,u${FWDVMBOX} exten => ${FWDNUMBER},102,Voicemail,b${FWDVMBOX}
内線番号の 55555(有志のテスト回線)、514(会議)にかけてみてください。
音声
音声は /var/lib/asterisk/xx
フォルダに保存します。xx
は言語コードです。例えば英語なら "en" になります。新しい音声を追加したいときはこのフォルダにコピーしてください。以下のフォルダ構造を守って下さい:
/var/lib/asterisk/sounds/xx /var/lib/asterisk/sounds/xx/digits /var/lib/asterisk/sounds/xx/letters /var/lib/asterisk/sounds/xx/phonetic
sip.conf
の language パラメータを編集してください:
[general] ... language=en ...
音声が入手できる場所:
- http://downloads.asterisk.org/pub/telephony/sounds/
- https://packages.debian.org/wheezy/all/asterisk-prompt-xx
- voip-info.org
MeetMe
MeetMe は電話会議をできるようにするアプリケーションです。設定は簡単です。
meetme.conf
を編集:
conf => 1000
extensions.conf
を編集:
exten => 999,1,MeetMe(1000|M)
999 にダイアルすることで会議 1000 に入ることができます。|M
を設定することで誰もいないときは保留音が鳴ります。誰かが会議に参加すると保留音は自動的に消えます。
Asterisk コンソールとソフトフォン
Asterisk を立ち上げてください:
# asterisk -vvvvvvc
詳細な出力がされる Asterisk CLI が立ち上がります。
Asterisk が既に起動している場合、以下のコマンドを実行:
# asterisk -r
SIP クライアントを起動して sip.conf
の情報にあわせて設定してください。Asterisk CLI に戻って以下のように表示されることを確認:
Registered SIP 'me1' at 192.168.0.142 port 5061 expires 60
これで me1
から 101
にダイアルして me2
と会話できるはずです。
トラブルシューティング
404 Not Found エラーが表示される場合は extensions.conf
とダイアルした電話番号を確認してください。