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


ソフトウェアAsterisk 1.4.11
サーバOSVine Linux 4.1
クライアントMicrosoft WindowsXP SP1
マシンPC/AT Celeron 1.8GHz
ドキュメント2007/09/30

OCNの050 IP電話と接続すために、IP-PBXを構築する。


必要なもの

  • zaptel
    ISDNカード等のVoIP用のハードを使用する場合は必要。
    また、テレコンを行う場合には必要。
  • IP電話
    無料のソフトフォンとしてx-liteが利用できる
    http://www.counterpath.com/

Install

[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

基本設定

  • 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.soSIPモジュール
    app_dial.soダイヤル管理モジュール
  • features.confの作成
    res_fetures.soはfetuers.confが無いと読み込まれないため空ファイルを作成する。
    [root@inasa asterisk]# touch /etc/asterisk/features.conf

内線PBX

内線番号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」から設定を行う。
    nolink

    Display Namex-Liteで表示する名前
    User name内線番号
    Passwordsip.confで指定したパスワード
    Authorization user namesip.confで指定したユーザー名
    DomainAsteriskサーバのIPアドレス
    SIPサーバと接続が成功すると「Ready」と表示される。
    nolink

050VoIPとの接続する

  • 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留守番電話

  • 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: 9106, today: 2, yesterday: 0