VineでAsterisk

Vinelinux4.1を使って、Asteriskのサーバを構築
ひかり電話、ISPのIP電話に接続する

留守番電話をWebで見る( webvmail / vmail.cgi )、電子メールで受ける

2007-09-02 08:41:09 | Weblog
留守番電話も動いたので、もう少し便利に使えるように
したいので、Webページで留守番電話を聞けるようにして、
さらに、電子メールでも電話があったことを送信するように
しました。

参考にさせて頂いたページは、
http://www.aconus.com/~oyaji/suse9.3/asterisk_suse9.3_2.htm
のところです。大変有難うございます。

●WebVoiceMailのインストール
 Asteriskのパッケージに同梱されています。

[asterisk@vine41 asterisk]$ cd ~/src/asterisk-1.2.24
[asterisk@vine41 asterisk-1.2.24]$ su
[root@vine41 asterisk-1.2.24]# make HTTP_DOCSDIR=/home/asterisk/public_html HTTP_CGIDIR=/home/asterisk/public_html/cgi-bin webvmail
[root@vine41 asterisk-1.2.24]# chown -R asterisk.asterisk /home/asterisk/public_html
[root@vine41 asterisk-1.2.24]# exit
[asterisk@vine41 html]$ cd ~/public_html
[asterisk@vine41 public_html]$ ls -R
.:
_asterisk/ cgi-bin/

./_asterisk:
animlogo.gif play.gif

./cgi-bin:
vmail.cgi*
[asterisk@vine41 public_html]$ cd cgi-bin
 ☆ユーザホーム内のpunlic_html、わたしのasterisk環境で動作するように、
  ディレクトリを修正
[asterisk@vine41 cgi-bin]$ sed "s/_asterisk/~asterisk\/_asterisk/" vmail.cgi > vmail.txt
[asterisk@vine41 cgi-bin]$ sed "s/etc\/asterisk/home\/asterisk\/app_root\/etc\/asterisk/" vmail.txt > vmail.cgi
[asterisk@vine41 cgi-bin]$ sed "s/var\/spool/home\/asterisk\/app_root\/var\/spool/" vmail.cgi > vmail.txt
[asterisk@vine41 cgi-bin]$ mv vmail.txt vmail.cgi
[asterisk@vine41 cgi-bin]$ chmod 755 vmail.cgi

●Apacheの設定
 まずは、こっちが動いていないと。
[asterisk@vine41 cgi-bin]$ su
[root@vine41 cgi-bin]# vi /etc/apache2/conf/httpd.conf
-------httpd.conf(の一部)----------------------------------
<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    #UserDir disable

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disable" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html

</IfModule>

#
# Control access to UserDir directories.  The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>

<Directory /home/*/public_html/cgi-bin>
       Options ExecCGI
       SetHandler cgi-script
</Directory>

-------httpd.conf(の一部)----------------------------------

これで、Apacheの設定も動作するはず

[root@vine41 cgi-bin]# /etc/init.d/apache2 restart
[root@vine41 cgi-bin]# /sbin/chkconfig apache2 on
[root@vine41 cgi-bin]# exit

●ディレクトリが読めるように、
[asterisk@vine41 cgi-bin]$ chmod 755 ~

●これで、ブラウザからアクセスします。
 「ありゃ?!」
Software error:
Can't locate DBI.pm in .......

どうやら、perlのモジュールが足りなかったようです。
[asterisk@vine41 cgi-bin]$ su
[root@vine41 cgi-bin]# apt-get install perl-DBI
[root@vine41 cgi-bin]# exit

動作しました。

●留守番電話のユーザ名とパスワード
留守番電話の留守番電話ボックス番号は、
extension.confによって、exten => _20Z,n,Voicemail(${EXTEN})と
指定されているので、201で着信する場合は、201が
voicemail.confの指定に基づいて動作しているはずです。


●メールで留守番電話を受け取る
voicemail.confを修正することで可能になります。
[asterisk@vine41 asterisk]$ cd ~/app_root/etc/asterisk
[asterisk@vine41 asterisk]$ vi voicemail.conf
--------voicemail.conf(の一部)-------------------------
[general]
format=wav49|gsm|wav    <-- ファイルとして保存するのは左記の3つのフォーマット全部
serveremail=asterisk    <-- メール送信者のアドレスに
attach=no    <-- グローバル設定ではメール送信はしないことにして、個別で設定する。
maxmessage=180
;minmessage=3
;maxgreet=60
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
mailcmd=/usr/sbin/sendmail -t    <-- メールの送信プログラムを指定して有効に

;;~~~~~~
[default]
201 => 1234,UserName,mail_get_user_mail_address@localhost,,attach=yes|format=wav49|saycid=no|maxmsg=10|tz=japan
メールボックス番号 =>パスワード,ユーザ名,メールの受信アドレス,,オプション設定
--------voicemail.conf(の一部)-------------------------

受け取れたので、成功です。


最新の画像もっと見る