2017年11月28日火曜日

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)







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