








E-mail оповещение о входящих звонках и голосовых сообщениях на Asterisk
Настройка Asterisk для отправки e-mail оповещений о входящих звонках и голосовых сообщенияхНастройка Email оповещения пропущенных звонков Астериск PBX
Ubuntu 12.04+Asterisk+Sendmail
1. Задача:
1.1. Обеспечить возможность отправки Email оповещения о пропущенных звонках на Астериске с помощью sendmail relay через учетную запись gmail.com.
2. Исходная система:
2.1. Установленна система Ubuntu 12.04 LTS Server;
2.2. Имеется логин и пароль от учетной записи root;
2.3. Установлен астериск.
3. Этапы решения:
3.1.1. #apt-get install openssl
3.2. Установка Sendmail:
3.2.1. #apt-get install sendmail
3.3. Создание сертификата с помощью OpenSSL:
3.3.1. Создаем директорию под сертификаты: #mkdir /etc/mail/certs
3.3.2. Ограничиваем права на чтение, запись и исполнение суперпользователем. #chmod 700 /etc/mail/certs
3.3.3. Переходим в нашу директорию #cd /etc/mail/certs
3.3.4. Начинаем генерировать сертификат #openssl dsaparam 1024 -out dsa1024 -out dsa1024.pem
3.3.5. #openssl req -x509 -nodes -days 3650 -newkey dsa:dsa1024.pem -out /etc/mail/certs/mycert.pem -keyout /etc/mail/certs/mykey.pem
3.3.6. заканчиваем генерировать сертификат #openssl req -x509 -new -days 3650 -key /etc/mail/certs/mykey.pem -out /etc/mail/certs/mycert.pem
3.3.7. создаем линк #ln -s /etc/mail/certs/mycert.pem /etc/mail/certs/CAcert.pem
3.3.8. меняем права #chmod 600 /etc/mail/certs/*
3.4. Подготовка конфигов для компиляции конечной конфигурации для Sendmail пакета:
3.4.1. Создаем папку #mkdir /etc/mail/auth
3.4.2. Создаем файл и редактируем его #nano /etc/mail/auth/authinfo
3.4.3. Вбиваем в файл следующую информацию:
AuthInfo:smtp.gmail.com:587 "U:root" "I:USERNAME@gmail.com" "P:PASSWORD" "M:PLAIN"
AuthInfo: "U:root" "I:USERNAME@gmail.com" "P:PASSWORD" "M:PLAIN"
Где USERNAME@gmail.com – учетная запись на gmail.com
PASSWORD – пароль от учетной записи от gmail.com
3.4.4. Конвертируем данный файл:
makemap hash -r /etc/mail/auth/authinfo < /etc/mail/auth/authinfo
3.4.5. Добавляем в /etc/mail/sendmail.mc нужную конфигурацию. (Важно: сделать это до первого FEATURE)
#nano /etc/mail/sendmail.mc
dnl # Smrp relay
define(`CERT_DIR', `MAIL_SETTINGS_DIR`'certs')
define(`confCACERT_PATH', `CERT_DIR')
define(`confCACERT', `CERT_DIR/CAcert.pem')
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')
dnl #
dnl # gmail auth
define(`SMART_HOST',`[smtp.gmail.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/auth/authinfo.db')dnl
3.4.6. Компилируем конфигурацию:
make -C /etc/mail
3.5. Создание скрипта на шеле который будет отправлять сообщения о звонках (пропущенных, принятых и т д);
3.5.1. Создание шелл скрипта #nano /var/lib/asterisk/agi-bin/processEmail.sh
3.5.2. Вбиваем в данный файл:
processEmail.sh
Где your_sending@email.net – почта с которой хотим отправить.
3.5.3. Меняем права на данный файл:
#chmod 755 /var/lib/asterisk/agi-bin/processEmail.sh
3.6. Настройка Asterisk на отправку сообщений о событиях, связанных с обработкой звонка.
#nano /etc/asterisk/extensions.conf
И в конце экстеншена на который звонки будут отправляться и оповещения о звонках, которых должны приходить оповещения добавляем ниже:
exten => h,1,System(/var/lib/asterisk/agi-bin/processEmail.sh "my@email.net" "${CALLERID(num)}" "${CALLERID(name)}" "${DIALSTATUS}" "${VMSTATUS}" "${EXTEN}")
где my@email.net – почта куда хотим отправить сообщение о событии связанное со звонком.
3.7. Перезапускаем сервисы:
#service sendmail restart