Asteriskの設定ファイルは/etc/asteriskに設置されています。
されていない場合は、source dir で make sample とすれば、/etc/asterisk以下にサンプルファイルが作成されます。
/etc/astersik
:/etc/asterisk# ls adsi.conf cel_pgsql.conf func_odbc.conf queues.conf agents.conf cel_sqlite3_custom.conf gtalk.conf res_config_mysql.conf ais.conf cel_tds.conf h323.conf res_config_sqlite.conf alarmreceiver.conf chan_dahdi.conf http.conf res_curl.conf alsa.conf chan_mobile.conf iax.conf res_fax.conf amd.conf chan_ooh323.conf iaxprov.conf res_ldap.conf app_mysql.conf cli.conf indications.conf res_odbc.conf asterisk.adsi cli_aliases.conf jabber.conf res_pgsql.conf asterisk.conf cli_permissions.conf jingle.conf res_pktccops.conf calendar.conf codecs.conf logger.conf res_snmp.conf ccss.conf console.conf manager.conf res_stun_monitor.conf cdr.conf dbsep.conf manager.d rtp.conf cdr_adaptive_odbc.conf dnsmgr.conf meetme.conf say.conf cdr_custom.conf dsp.conf mgcp.conf sip.conf cdr_manager.conf dundi.conf minivm.conf sip_notify.conf cdr_mysql.conf enum.conf misdn.conf skinny.conf cdr_odbc.conf extconfig.conf modules.conf sla.conf cdr_pgsql.conf extensions.ael musiconhold.conf smdi.conf cdr_sqlite3_custom.conf extensions.conf muted.conf telcordia-1.adsi cdr_syslog.conf extensions.lua osp.conf udptl.conf cdr_tds.conf extensions_minivm.conf oss.conf unistim.conf cel.conf features.conf phone.conf users.conf cel_custom.conf festival.conf phoneprov.conf voicemail.conf cel_odbc.conf followme.conf queuerules.conf vpb.conf
複雑な多くの設定ファイルがありますが、まず最小設定で内線通話が可能になるよう設定していきます。
問題の切り分けのため、サンプルファイルはmvしておきます。
# cp -r /etc/asterisk /etc/asterisk.org # mkdir /etc/asterisk # cd /etc/asterisk
asteriskの音声はRTPで行います。
RTPはIP電話のデジタルデータを元にRTPパケットを構成し、IPネットワークに音声を送出します。IPパケットなので、ポートの指定をします。
今回は、内線のみの運用なのでポート使用は最小限に止めておきます。
rtp.conf
[general] rtpstart=4000 rtpend=4010
読み込むモジュールの設定
読み込むモジュールの設定は、modules.confを使います。
多くのモジュール設定がありますから、sampleファイルを加工して使います。
# cp /etc/asterisk.org/modules.conf /etc/asterisk/modules.conf # vi modules.conf
ほとんどのモジュールは、modules.confの
[modules] autoload=yes
で自動的に読み込まれますから、不要なmoduleは”noload =>module_name”で読み込まないように設定します。
modules.conf
[modules] autoload=yes ; noload => pbx_gtkconsole.so noload => pbx_kdeconsole.so ; noload => app_intercom.so ; noload => chan_mgcp.so noload => chan_skinny.so noload => chan_phone.so ; noload => chan_modem.so noload => chan_modem_aopen.so noload => chan_modem_bestdata.so noload => chan_modem_i41.so noload => chan_misdn.so ; load => res_susiconhold.so ; noload => chan_alsa.so noload => cham_oss.so ; noload =>app_adsiprog.so [global] chan_modem.so=y
SIP電話機(sip client)から接続する際のIDとパスワード等を設定するファイルが、sip.confです。
sip.confを設定しますが、内線のみでテストするので、2台分のIDを登録します。
sip.conf
[general] maxexpirey=3600 defaultexpirey=3600 content=test port=5060 bindaddr=0.0.0.0 srvlookup=yes disallow=all allow=ulaw allow=gsm language=jp localnet=192.168.1.0/255.255.255.0 [201] type=friend username=201 secret=password canreinvite=no host=dynamic dtmfmode=auto callgroup=1 pickupgroup=1 [202] type=friend username=201 secret=password canreinvite=no host=dynamic dtmfmode=auto callgroup=1 pickupgroup=1
ダイアルプランの作成
ダイアルプランは、何番を回せば、どういった処理をすると言ったことを記述していきます。
運用する上で非常に重要なファイルです。
extensions.conf
[general] writeprotect=yes [default] exten => _20Z,1,Dial(SIP/${EXTEN},60,tT) exten => _20Z,n,Congestion
ここまで設定が終われば、内線通話が可能になります。
asteriskを再起動するか、CLIで、
*CLI> sip reload *CLI> dialplan reload
設定をreloadします。
SIP電話で内線の確認が出来れば、保留音と会議室を実装していきます。
保留音は、musiconhold.confを編集します。
musiconhold.conf
[default] mode=mp3 directory=/var/lib/asterisk/mohmp3 ;random=yes
/var/lib/asterisk/mohmp3が無いので、作成して適当なMP3ファイルを配置します。
# mkdir /var/lib/asterisk/mohmp3 # cp hoge.mp3 /var/lib/asterisk/mohmp3/ # chown -R asterisk:asterisk /var/lib/asterisk/mohmp3
会議室の設定
会議室(音声会議)の設定はmeetme.soで実現されます。この機能を利用するためにdahdiを作成したわけです。
設定は、meetme.confを使います。
ここでは、会議室の番号を「300」としました。
記述 | 意味 | 値 | 定義例 |
[general] audiobuffers |
audio bufferを設定 音声会議のジッタバッファとして動作 |
2-32 | |
[room] conf => |
会議室の設定を定義 | 会議室番号 |
[room] conf => 300,4343 ←4343がPASSWORD |
meetme.conf
[rooms] conf => 300
300をダイアルすれば、会議室に繋がるようextensions.confに書き加えます。
extensions.conに追加
exten => 300,1,Meetme(300) exten => 300,n,Hangup
すこしmeetme.confの説明を付け加える。
300番をダイアルすると、スグに会議室に繋がるが、誰も接続していない場合、無音になり稼働しているのかわからなくなります。そこで、extensions.confで、
exten => 300,1,Meetme(300|M) ← M を付け加えています。
こうすることによって、会議室に1人しか接続していない場合、保留音が流れるようになります。
ここまでの設定が終われば、asteriskを再起動するか、CLIでreloadします。
reload app_meetme.so dialplan reload