Настройка голосовой почты(voicemail) в Asterisk

#1 2015.11.05 06:48:12

0

В этой заметке будет маленькая инструкция, как поставить “заглушку” в виде голосовой почты и осуществить отправку на электронную почту. Задача не хитрая, но будет описано несколько нюансов.
Продолжение читайте дальше…

И так, для начала нужно удостовериться, что система на которой установлен asterisk может отсылать почту во внешний мир. Это может быть как ваш внутренний корпоративный сервер, так и какой-либо внешний почтовый релей. Как научить postfix отправлять сообщения во внешний мир через gmail.

Ниже я приведу листинг простого конфигурационного файла /etc/asterisk/voicemail.conf

[general]
format=wav49|gsm|wav
serveremail=root@asteriskserver.com
attach=yes ; да, нам нужны вложения со звуковым файлом
maxmsg=100 ; максимальное кол-во сообщений для ящика. 100 будет достаточно
maxsecs=180 ; максимальная длинна сообщения, 3 минуту обычно больше чем достаточно...
minsecs=3
maxgreet=60
skipms=3000
;maxsilence=1
;silencethreshold=128
maxlogins=3
moveheard=yes
charset=UTF-8 ; поменяйте кодировку, чтобы избежать проблем с русским текстом
pbxskip=yes
fromstring=Asterisk Voicemail server ; от этого "лица" будут приходить сообщения
emailsubject=Новое голосовое сообщение ${VM_MSGNUM} в ящике ${VM_MAILBOX} ; можете поменять Subject
emailbody=Уважаемый ${VM_NAME}:\n\nХотим сообщить, что Вам пришло новое голосовое сообщение длиной ${VM_DUR} под номером (number ${VM_MSGNUM})\nв ящик ${VM_MAILBOX} от ${VM_CALLERID}, в ${V
M_DATE}. \nКак будет время, проверьте его! Спасибо!\n\n\t\t--Ваша IP-станция\n ; и поменять сообщение
emaildateformat=%A, %B %d, %Y at %r
pagerdateformat=%A, %B %d, %Y at %r
;mailcmd=/usr/sbin/sendmail -t ; если у вас какой-то особенный MTA агент - его можно указать тут.
delete=yes ; Для варианта, когда голосовая почта отправляется только на email - это хорошая опция. Сообщение будет удалено из системы как только будет отправлено
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM

[voicemailcontext] ; контекст голосовой почты
1101 => 1234,USER LOOSER, user@maildomain.com ; укажите почту получения сообщения


Итак, простая конфигурация голосовой почты закончена.
Теперь нужно отредактировать dialplan. Вот такой небольшой примерчик

[inc]
exten => 4956655543,1,NoOp(Incomming)
same => n,Answer
same => n,GotoIfTime(18:30-8:55,mon-fri,*,*?non-work)
same => n,GotoIfTime(0:00-23:59,sat-sun,*,*?non-work)
same => n,Set(CDR(accountcode)=incomming)
same => n,Set(TIMEOUT(digit)=4)
same => n,Background(rabotaem) ; greatings
same => n,WaitExten(4)
same => n,Goto(next)
same => n(non-work),Set(NONWORK=1)
same => n,Background(ne_rabotaem)
same => n,WaitExten(5)
same => n,Goto(voicem,s,1)
same => n(next),Goto(t,1)

[voicem]
exten => s,1,NoOp(Voicemail handler)
same => n,Set(CDR(accountcode)=voicemail)
same => n,VoiceMail(1101@voicemailcontext)
same => n,Hangup


Заходим в консоль asterisk -rvvvv
и перезагружаем наш конфиг

voicemail reload
dialplan reload