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