2017-11-29

Asterisk の再セットアップ -- ボイスメールを設定する



前回は googletts を設定しました。





今回はボイスメール(留守電)の設定をします。



例えばひかり電話に限らず、留守電って有料のケースが多いのです。



もっとも電話機の留守録機能でもできるのですが、IP 電話だと留守録機能があるところとないところがあります。





例えば、ブラステルにはまだ留守録機能がありません。



FUSION IP-Phone Smart は無料で留守録機能が使えます。





Asterisk を使えば無料で留守録し放題、というわけです。



そこで今回は留守録機能を設定します。





-------------------------------------------------------------------------------------------

❏ Raspbian STRETCH をクリーンインストールする

❏ Asterisk をインストールする

❏ googletts.agi を使ってみる

❏ Asterisk にボイスメールを設定する ⇐ いまココ

❏ Asterisk で FAX 送受信してみる

❏ Asterisk の各種設定ファイル


-------------------------------------------------------------------------------------------












今回は変則的方法と正攻法の2つについて記述します。









FUSION
IP-Phone Smart
を利用する方法








  これは FUSION IP-Phone SmartA
から
FUSION
IP-Phone Smart (B)
呼出しで


  留守電にするというものです。







 


  この場合、B)
はあらかじめ
FUSION
IP-Phone Smart
のマイページで留守電&


  メール通知設定しておきます。










  またA)=(B)
の場合は自分自身への呼出しですからビジーになりますので


  必ず留守電になるこれを利用します。












  本来の電番に着信時、extensions.conf
で FUSION
IP-Phone Smart
電番から自分自身を


  呼出すように設定しておくと、必ず留守電になるということです。












  FUSION
IP-Phone Smart
は加入料ゼロ、発信時のみ課金、FUSION
IP-Phone Smart


  同士、および提携
ITSP との間は無料なので、留守電に使う分には無料で済ませられる


  ことになります。












  ただし、この方法での留守録ではメールに留守電音声は添付されますが、発信者はA)


  なってしまいます。





  これが唯一の欠点といえますが、電話の着信記録には誰からか、が記録されていますから


  わからなくはないでしょう。















  sip.conf
に FUSION
IP-Phone Smart
の電番を register
設定します


  (下記事例ではfusion’)。





  extensions.conf
に以下を記述します(FUSIONNUMBER register した電番)。







  exten
=> s,1,Dial(SIP/${FUSIONNUMBER}@fusion)


  exten
=> s,n,Hangup()


  ;********
FUSION IP-Phone Smart
は、自分自身をコールすると留守電になる。


  ;********
留守電は通知メールアドレスに添付ファイル付きメールで通知される。
















































Asterisk Voicemail 機能を設定する方法








  まず、留守録をメール添付して通知するためメール送信パッケージをインストールします。







  #
apt-get update


  #
apt-get install ssmtp mailutils












  次にメール送信のため、
ssmtp
を設定します。







  #
leafpad /etc/ssmtp/ssmtp.conf 








  オリジナルのファイル内容を以下の内容で書き換えます。





  ここではメール通知に gmail を使った例になっていますが、もちろん現在ご使用の gmail


  以外のメールアカウントでも構いません。










   root=gmailアカウント名

xxxx@gmail.com


   Mailhub=smtp.gmail.com:587


   AuthUser=gmailのユーザ名

@の前の名前


   AuthPass=gmailのパスワード

パスワードに記号
#’
などが含まれると認証エラーになる


   AuthMethod=LOGIN


   UseSTARTTLS=Yes


   UseTLS=Yes


   hostname=gmail.com

初期値の raspberrypi’
ではあとで設定する FAX(hylafax)
 DNS
エラーとなるので変更しておきます。
















**gmail

パスワード」は2段階認証がオンの場合、通常パスワードではエラーになる。





  Google
のアカウント
Google
へのログイン
➡ アプリパスワード ➡ 新規に追加する。


  「アプリを選択
➡ “メール”」「端末を選択 ➡ その他(名前を入力)
=
“RaspberryPi”


  「生成」ボタンをクリック
➡ 新しいパスワードが提示されるので、そのパスワードを上の


  「gmail
のパスワード」欄に入力する。








  次に
asterisk.conf

以下の箇所を変更します(これはすでに設定しているでしょう)。







  #
leafpad /etc/asterisk/asterisk.conf







   languageprefix=yes


   defaultlangeage=ja









 


  続いて voicemail.conf
を編集します。







  #
leafpad /etc/asterisk/voicemail.conf







   [general]


   format=wav49


   servermail=asterisk


   attach=yes


   maxmsg=999 ;
最大保存メッセージ


   maxsecs=180 ;
最大メッセージ長(録音時間:秒)


   skipms=3000 ;
デフォルトのまま


   maxsolence=10 ;
最大無音許容時間(この時間内(s)に録音されなければ切断)


   silencethreshold=128 ;



   maxlogins=3 ;
最大ログイン数


   charset=UTF-8 ;
日本語メールのための文字セットをUTF-8にする


   emailsubject=[PBX]:
音声メールボックス:
${VM_MAILBOX}

${
VM_MSGNUM}
番に新しいメッセージです


;
メールの題名


   emailbody=
話 番 号
:
${VM_CALLERID}¥n¥n
メッセージ長:
${VM_MSGNUM}
\n¥n${VM_DATE}¥n¥n¥t¥t---
by Asterisk Server



   emaildateformat=
信 日 時
:
%Y/%m/%d, %r



   mailcmd=/usr/sbin/sendmail
-t
;
コメントアウトを外す(sendmailを指定)


   saycid=yes


   sendvoicemail=yes

   delete=yes ; 個別メールボックスのボイスメールを通知送信後に削除







   [zonemessages]


   japan=Japan|Q
PHM ‘jp-ni’ ‘vm-received’







   [default]


   500
=>
1111,
名前・任意,gmailsアドレス,,delete=1|tz=japan
; 1111
 はメッセージを再生するときのパスワード



   ;
送信先名前、送信先メールアドレス、タイムゾーン









   ** ”delete=1" は通知メール後に、ボイスメールを削除









  extensions.conf
の内容は巻末の設定ファイル内容で確認ください(留意事項だけ以下に記載)。













  ボイスメールを録音するアプリケーションは Voicemail(’番号’) で、再生するときの


  アプリケーションが VoiceMailMain('番号',[s])になります。











  VoiceMailMain アプリケーションは最新バージョンでは 's' オプションでパスワード入力が


  不要になります。








  VoiceMailMain(${CALLERID(num)},s





  ➡ 呼び出す人の番号でメールボックスに保存している場合の再生のとき。













  呼び出す番号を間違った場合にも留守録できるよう、共通の音声メールボックス


  として例えば 500
番を使用する場合は下記のように記述します。







  Voicemail(500)         ; 留守録音時





  VoiceMailMail(500,s)  ; 再生時



















































































  留守録されると、留守録が添付されてメール送信されてきます。





  また、再生用の
exten
に設定の内線番号を呼び出すと、留守電の確認が音声でできます。








 (留守電ボックス番号は例では「500」、パスワード「1111」は 's' オプションで不要です)。



















  留守電内容を内線で確認するときの(IVRの)ダイヤル数字のそれぞれの意味は


  次のようになっています。



















  1:
メッセージ聴取


  2:
フォルダの変更


   0:
新規メッセージフォルダ

   1:
聴取済みメッセージフォルダ

   2:
ワークメッセージフォルダ

   3:
家族メッセージフォルダ

   4:
友人メッセージフォルダ

   #:
キャンセル


  3:
アドバンスオプション


   1:
返信

   3:
録音メッセージの再生

   5:
録音

   *:
メインメニューに戻る


  4:
前のメッセージを再生

  5:
現在のメッセージを繰り返す

  6:
次のメッセージを再生

  7:
現在のメッセージを削除

  8:
他のメールボックスに転送

  9:
他のフォルダに移動


   0:
メールボックスオプション


   1:
不在時(呼出タイムアウトや電源未投入等)等の応答メッセージの録音

   2:
話中時の応答メッセージの録音

   3:
ユーザ名の録音

   4:
パスワードの変更

   *:
メインメニューに戻る


  *:
ヘルプ/再生中は巻き戻し

  #:
終了/再生中は早送り






























今回はボイスメールの設定までを記載しました。





次回は FAX の設定をします。














Asterisk の再セットアップ -- 各種設定ファイル


Asterisk/Hylafax/iaxmodem/ssmptp の各種設定ファイルは以下のとおりです。


これらはコピペして使っていいのですが、各自の環境や運用に合わせて変更しなくてはならないものを含んでいますので、適正に判断ください。



-------------------------------------------------------------------------------------------
❏ Raspbian STRETCH をクリーンインストールする
❏ Asterisk をインストールする
❏ googletts.agi を使ってみる
❏ Asterisk にボイスメールを設定する
❏ Asterisk で FAX 送受信してみる
❏ Asterisk の各種設定ファイル ⇐ いまココ
-------------------------------------------------------------------------------------------




一覧にすると以下のファイルが対象です。

この中には変更や新たに設定するもの、および変更がないものも含まれています。


プログラム
場所(ディレクトリ)
対象ファイル(xxxxは変更なし)
asterisk
/etc/asterisk
asterisk.conf
sip.conf
extensions.conf
iax.conf
modules.conf
voicemail.conf
hylafax
/etc/hylafax
config
config.ttyIAX
FaxDispatch
faxmail.ps
hfaxd.conf
hosts.hfaxd
hyla.conf
pagesizes
sendfax.conf
setup.cache
setup.modem
templates(ディレクトリ)
typerules
/etc
dialrules
lutRS18.pcf
iaxmodem
/etc/iaxmodem
ttyIAX
Iaxmodem 起動スクリプト
/etc/init.d
iaxmodem
ssmtp
/etc/ssmtp
ssmtp.conf



設定ファイルの・新たな内容/変更内容



❏ asterisk:; asterisk.conf(以下を変更)

31行目(コメントを外して 'yes' にする)
languageprefix = yes

71行目('en' を 'ja' に変更する)
defaultlanguage = ja




❏ asterisk:; sip.conf(各自の環境に合わせて設定ください)




❏ asterisk:; extensions.conf(各自の環境に合わせて設定ください)





❏ asterisk:; iax.conf(ファイル全体の内容)

[general]
port=4569
iaxcompat=yes
language=ja
bandwidth=medium
jitterbuffer=no
forcejitterbuffer=no
minregexpire=300
maxregexpire=3600
quality=yes
transfer=no

[iaxmodem]
type=friend
username=iaxmodem
secret=パスワード
host=dynamic
disallow=all
allow=ulaw
allow=slin
allow=gsm
context=fax-out  extensions.conf FAX送信 exten を記述するセクション名





❏ asterisk:; modules.conf

以下を最終行に追記

noload => res_phoneprov.so
noload => res_ari.so
noload => chan_mobile.so
noload => chan_skinny.so
noload => app_confbridge.so
noload => cel_custom.so





❏ asterisk:; voicemail.conf(ファイル全体の内容)

[general]
format=wav49
serveremail=asterisk
attach=yes
maxmsg=999
maxsecs=180
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3

charset=UTF-8
emailsubject=[PBX]: 音声メールボックス: ${VM_MAILBOX} ${VM_MSGNUM} 番に新しいメッセージです

emailbody=電 話 番 号: ${VM_CALLERID}\n\nメッセージ長: ${VM_DUR} \n\n${VM_DATE}\n\n\t\t--- by   Asterisk Server

emaildateformat=着 信 日 時: %Y/%m/%d, %r
mailcmd=/usr/sbin/sendmail -t
saycid=yes
sendvoicemail=yes
delete=yes

[zonemessages]
japan=Japan|Q PHM 'jp-ni' 'vm-received'

[default]
500 => 1111,送信者名,メールアドレス,,delete=1|tz=japan
;500 はボイスメール番号、1111 はパスワード
;送信者名(任意)、メールアドレス(送信して欲しいメールアドレス)
[other]
;*** End of voicemail.conf



❏ hyafax:; config(ファイル全体の内容)

LogFacility: daemon
CountryCode: 81
AreaCode: 50   ; 電番の 03 とか(IP電話の場合 50)
LongDistancePrefix: 0
InternationalPrefix: 001
DialStringRules: "etc/dialrules"
ServerTracing: 1




❏ hylafax:; config.ttyIAX(ファイル全体の内容)

CountryCode: 81
AreaCode: 50
FAXNumber: +81.50.abcd.efgh
LongDistancePrefix: 0
InternationalPrefix: 001
DialStringRules: etc/dialrules
ServerTracing: 1
SessionTracing: 0xFFF
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: "050.abcd.efgh"
TagLineFont: etc/lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 10

ModemType: Class1
Class1AdaptRecvCmd: AT+FAR=1
Class1TMConnectDelay: 400
Class1RMQueryCmd: "!24,48,72,96"
Class1TMQueryCmd: "!24,48,72,96"

ModemResetCmds: AT+VCID=1
PagerTTYParity: none

CallIDPattern: "NMBR="
CallIDPattern: "NAME="
CallIDPattern: "ANID="
CallIDPattern: "NDID="




❏ hylafax:; FaxDispatch(ファイル全体の内容・以下の3行のみ)

SENDTO=メールアドレス
FROMADDR=メールアドレス
FILETYPE=pdf;




❏ hyafax:; hfaxd.conf

28行目に追記
JobFmt: "%-5j %1a %-12.12e %5P %5D %Y %.27s"

最終行に追記
TimeZone: local




❏ hylafax:; hosts.hfaxd(ファイル全体の内容・5〜6行目は2〜3行目をコピペする

localhost 127.0.0.1
^root@:::pppppppp          個々のセットアップ状況で異なる
^ユーザー名@:::qqqqqqqq  個々のセットアップ状況で異なる
192.168.xxx.*                   個々のセットアップ状況で異なる
^root@:::pppppppp           ➡ 個々のセットアップ状況で異なる
^ユーザー名@:::qqqqqqqq   ➡ 個々のセットアップ状況で異なる




❏ hylafax:; pagesizes

最終行に追記
default    A4     9920   14030  9240   13200    472    345




❏ hylafax:; sendfax.conf(ファイル全体の内容)

以下の2行のみ
MaxTries: 2
MaxDials: 2



❏ hylafax:; typerules

最終行に以下を追記
0 byte x ps %F/textfmt -f Courier-Bold -u -p 11 -s %s >%o <%i



❏ iaxmodem:; ttyIAX(ファイル全体の内容)


device /dev/ttyIAX
owner uucp:uucp
mode 660
port 4569
refresh 300
server 127.0.0.1
peername iaxmodem
secret iaxのコンテキストのパスワード
cidname 送信者名
cidnumber 050abcdefgh

codec slinear




❏ iaxmodem:; 起動スクリプト(ファイル全体の内容)

#! /bin/sh
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/iaxmodem
DAEMON_OPTS=ttyIAX
NAME=iaxmodem
DESC=iaxmodem

test -x $DAEMON || exit 0

set -e

case "$1" in
  start)
  echo -n "Starting $DESC: "
  start-stop-daemon --start --quiet --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
    echo "$NAME."
    ;;
  stop)
    echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/$NAME.pid \ 
              --exec $DAEMON -- $DAEMON_OPTS
    echo "$NAME."
    ;;
  restart)
    echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/$NAME.pid \
              --exec $DAEMON -- $DAEMON_OPTS
    echo "$NAME."
    sleep 1
    echo -n "Starting $DESC:"
    start-stop-daemon --start --quiet --background --make-pidfile --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
    echo "$NAME."
    ;;
  status)
        if [ -s /var/run/$NAME.pid ]; then
            RUNNING=$(cat /var/run/$NAME.pid)
            if [ -d /proc/$RUNNING ]; then
               if [ $(readlink /proc/$RUNNING/exe) = $DAEMON ]; then
                   echo "$NAME is running."
                   exit 0
               fi
            fi

            # No such PID, or executables don't match
            echo "$NAME is not running, but pidfile existed."
            rm /var/run/$NAME.pid
            exit 1
       else
            rm -f /var/run/$NAME.pid
            echo "$NAME not running."
            exit 1
       fi
       ;;
*)
       N=/etc/init.d/$NAME
       echo "Usage: $N {start|stop|restart|status}" >&2
       exit 1
       ;;
esac

exit 0





❏ ssmtp:; ssmtp.conf(ファイル全体の内容)

root=メールアドレス
Mailhub=smtpサーバーアドレス:送信ポート番号
AuthUser=ユーザ名@の前の名前)
AuthPass=パスワード
AuthMethod=LOGIN
UseSTARTTLS=Yes(使用する暗号化方式)
UseTLS=Yes(使用する鍵方式)
hostname=メールサーバーのドメインアドレス(例: gmail.com)



設定ファイルは以上です。