トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

|RIGHT:100|LEFT:410|c
|~ソフトウェア|Asterisk 1.4.11|
|~サーバOS  |Vine Linux 4.1|
|~クライアント  |Microsoft WindowsXP SP1|
|~マシン        |PC/AT Celeron 1.8GHz|
|~ドキュメント  |2007/09/30|
----
OCNの050 IP電話と接続すために、IP-PBXを構築する。
#contents
---- 
***必要なもの [#ne5e3b2d]
-zaptel
ISDNカード等のVoIP用のハードを使用する場合は必要。
また、テレコンを行う場合には必要。
-IP電話
無料のソフトフォンとしてx-liteが利用できる
http://www.counterpath.com/

***Install [#dd1ba3b0]
 [root@inasa asterisk-1.4.11]# ./configure --prefix=/usr/local/asterisk
 [root@inasa asterisk-1.4.11]# make
 [root@inasa asterisk-1.4.11]# make config

make samplesでサンプル設定ファイルが導入される。サンプルファイルは複雑なため、設定ファイルは必要な機能のみを記述したほうが良い。

 [root@inasa asterisk-1.4.11]# make samples
 [root@inasa asterisk-1.4.11]# cd /etc/
 [root@inasa asterisk-1.4.11]# mv asterisk asterisk.samples
 [root@inasa asterisk-1.4.11]# mkdir /etc/asterisk

稼動ユーザーIDを変更するために、専用のユーザーIDを作成する。

 [root@inasa asterisk-1.4.11]# groupadd -g 400 pbx
 [root@inasa asterisk-1.4.11]# useradd -u 401 -g 400 pbx
 [root@inasa asterisk]# chown -R pbx:pbx /var/log/asterisk/
 [root@inasa asterisk]# chown -R pbx:pbx /var/spool/asterisk/
 [root@inasa asterisk]# chown -R pbx:pbx /var/lib/asterisk/
 [root@inasa asterisk]# chown -R pbx:pbx /etc/asterisk/

コンソールでデバッグモードで稼動する。Asteriskのコンソールが表示される。
 [root@inasa asterisk]# /usr/local/asterisk/sbin/asterisk -U pbx -G pbx -vvvvvc
 Asterisk 1.4.11, Copyright (C) 1999 - 2007 Digium, Inc. and others.
 Created by Mark Spencer <markster@digium.com>
 Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
 This is free software, with components licensed under the GNU General Public
 License version 2 and other licenses; you are welcome to redistribute it under
 certain conditions. Type 'core show license' for details.
 =========================================================================
 
 Asterisk Ready.
 *CLI>
 
Asteriskの停止
 *CLI> stop now

***基本設定 [#f281267a]
-Asteriskで使用するディレクトリ
/etc/asterisk/asterisk.confを
-
-RTPで使用するポート設定
rtp.confで指定。サンプルは10000ポートから20000ポートとなっている
 [root@inasa asterisk]# cat rtp.conf
 [general]
 rtpstart=10000
 rtpend=20000

-モジュールの読み込み
Asteriskは必要な機能をモジュール単位で読み込む。モジュールを読み込まないと何も出来ない。
 [modules]
 load => モジュール名
手動で読み込む場合はコンソールからmodule loadコマンドを利用する。
 *CLI> module load モジュール名
~
,モジュール名,
,res_features.so,基本モジュール
,pbx_config.so,内線番号管理モジュール
,chan_sip.so,SIPモジュール
,app_dial.so,ダイヤル管理モジュール

-features.confの作成
res_fetures.soはfetuers.confが無いと読み込まれないため空ファイルを作成する。
 [root@inasa asterisk]# touch /etc/asterisk/features.conf

***内線PBX [#ra721168]
内線番号2000,2001の2つを定義する。
-SIPの基本設定 sip.conf
 [general]
 maxexpirey=3600
 defaultexpirey=3600
 registertimeout=300
 context=default
 bindport=5060
 bindaddr=0.0.0.0
 srvlookup=yes
 
 disallow=all
 allow=ulaw
 allow=alaw
 allow=gsm
 allow=ilbc
 
 musicclass=default
 
 ;language=en
 language=jp

-内線番号のアサイン sip.conf
 [2000]
 type=friend
 username=2000
 secret=password0
 canreinvite=no
 host=dynamic
 
 [2001]
 type=friend
 username=2001
 secret=password1
 canreinvite=no
 host=dynamic

-内線番号の挙動設定 extensions.conf
 [default]
 exten => 2000,1,Dial(SIP/2000)
 exten => 2000,2,Congestion
 exten => 2000,102,Busy 
 
 exten => 2001,1,Dial(SIP/2001)
 exten => 2001,2,Congestion
 exten => 2001,102,Busy

-x-Liteを設定する
「SIP Account Setting」から設定を行う。
#ref(xlite3.PNG,,50%,nolink)
~
,Display Name,x-Liteで表示する名前
,User name,内線番号
,Password,sip.confで指定したパスワード
,Authorization user name,sip.confで指定したユーザー名
,Domain,AsteriskサーバのIPアドレス
SIPサーバと接続が成功すると「Ready」と表示される。
#ref(xlite1.PNG,,50%,nolink)

***050VoIPとの接続する [#j89ef93f]
-Networkの設定(sip.conf generalセクション)
SIPヘッダのIPアドレスがローカルのプライベートアドレスにならないよう、ルータのWAN側のアドレスに書き換えるために、アドレスを登録する。
 externip=CTUのWAN側のアドレスを登録
 localnet=ローカル環境のアドレスを登録
 nat=never
WAN側のアドレスはDynamicDNSを利用することが可能である。確認感覚はexternresreshで指定する。
 externhost=foo.dyndns.net
 externrefresh=10 ;(単位:秒)


-050 SIPアカウントの登録(sip.conf)
generalセクションにOCNのVoIPサーバに登録する内容を設定します。
 register => 電話番号@サービスドメイン:パスワード:ユーザーID@VoIPサーバ/電話番号
専用のセクションを作成します。
 [voip-test.ocn.ne.jp]
 type=friend
 username=OCN VoIPユーザー名
 secret=OCN VoIPパスワード
 fromuser=050電話番号
 fromdomain=OCN VoIPサービスドメイン
 context=ocn-in ;ラベル
 host=OCN VoIPサーバ
 dtmfmode=inband
 canreinvite=no
 insecure=invite,port
 progressinband=no
 disallow=all
 allow=ulaw
 allow=alaw
 allow=gsm
 allow=ilbc

-転送先の指定(extentions.conf)
050で着信した場合、どの内線番号にマッピングするかを指定する。
下記の場合、内線番号2001に着信する設定である。
 [globals]
 CONSOLE=Console/dsp
 MYPHONEN => 050電話番号
 
 [ocn-in] sip.conで指定したラベル
 exten => ${MYPHONEN},1,Dial(SIP/2001)
 exten => ${MYPHONEN},2,Congestion
 exten => ${MYPHONEN},102,Busy

-発呼時の設定(extentions.conf)
defaultセクションに外線発呼する方法を記述する。この場合、先頭に99をつけて電話を行った場合、99を削除した電話番号をOCNのVoIPサーバに転送する指定を行っている。
 exten => _99.,1,Dial(SIP/${EXTEN:2}@voip-test.ocn.ne.jp) ←sip.confで指定したVoIP用セクション
 exten => _99.,2,Congestion

***Voice Mail留守番電話 [#becc7d23]
-Voice Mail用モジュールの読み込み(modules.conf)
Voice Mail用のモジュールを読み込む
 load => app_voicemail.so

-音声変換用モジュールの読み込み
モジュールが読み込まれていない場合、下記のようなエラーメッセージが出る。
 *CLI>     -- Executing [20011@default:1] VoiceMail("SIP/2000-08187748", "2001|u") in new stack
 [Sep 30 21:16:04] WARNING[3530]: file.c:563 ast_openstream_full: File vm-theperson 
 does not exist in any format
 [Sep 30 21:16:04] WARNING[3530]: file.c:813 ast_streamfile: Unable to open vm-theperson 
 (format 0x4 (ulaw)): No such file or directory
下記のモジュールをmodules.confに追加する。
 *CLI> module load format_wav_gsm.so
 *CLI> module load codec_gsm.so
 *CLI> module load format_gsm.so
 *CLI> module load codec_ulaw.so
-Voice Mailの設定(voicemail.conf)
 [general]
 format=gsm
 attach=no
 maxmessage=300
 skipms=3000
 maxsilence=10
 silencethreshold=128
 maxlogins=3
 saycid=yes
 cidinternalcontexts=default
 
 [default]
 2000 => 1234
 2001 => 1234

-Voice Mailルールの追加(extentions.conf)
内線2001で着信できなかった場合、2001ユーザーのvoicemailボックスに保管する。
 exten => 2001,1,Dial(SIP/2001)
 exten => 2001,2,Voicemail(2001,u)
同じく外線も追加する。
 exten => ${MYPHONEN},1,Dial(SIP/2001)
 exten => ${MYPHONEN},2,Voicemail(2001,u)



----
[0] http://voip.gapj.net/
[1] http://itpro.nikkeibp.co.jp/article/COLUMN/20070516/271238/?P=2&ST=ipcom
[2] http://asterisk.phalanx.co.jp/index.php?sip.conf
[3] http://www.aconus.com/~oyaji/suse9.3/asterisk_suse9.3_4.htm
#counter