Инструменты пользователя

Инструменты сайта


голосовые_сервисы_помогут_голосовой_почте

Голосовые сервисы спешат на помощь голосовой почте!

Анонс вебинара

Запись вебинара

Реклама вебинара

Вопрос в классе на курсе телефонии: кто пользуется голосовой почтой? - В ответ - ироничные усмешки… Следующий вопрос - а почему Вы не пользуетесь голосовой почтой? - В ответ - откровенный смех)

Действительно, первого знакомства, например, с решением, которое идет «из коробки» в Asterisk, достаточно что бы расхотеть иметь с ней дело:

Введите номер абонента… пароль … вы получили 5 новых сообщений, нажмите N что бы прослушать новые сообщения … первое сообщение получено … далее нудное перечисление даты и времени, наконец, воспроизведение самого сообщения, и так с каждым. А еще, надо удалять сообщения, не забывать то, о чем в них просили…

Конечно, со временем можно приноровиться ускорять процесс заученными последовательностями DTMF, но, удобным решением это назвать трудно.

С другой стороны, многие из нас, сочиняя текст очередного электронного письма, задумывались, что в этот раз было бы проще все объяснить голосом.

Почему бы не объединить обе технологии - голосовую и электронную почту?

На курсе, посвященном вопросам интеграции Asterisk с внешними системами, большой популярность пользуется лабораторная работа, в которой голосовая почта размещается в IMAP хранилище, что позволяет получить доступ к звуковым файлом как с телефонного аппарата, так и через интерфейс электронной почты. Да, выглядит зрелищно, но, будем честны, мало кому нравится прослушивать сообщения, присланные, например в WhatsApp или Viber, гораздо удобнее прочитать текст.

Вот мы и подошли к теме нашего вебинара - подключим к голосовой почте Aserisk голосовые сервисы Yandex и Ваши сотрудники будут получать голосовые сообщения в виде текста в электронной почте а у клиентов будет выбор - написать письмо или оставить сообщение голосом.

Шаг 1. Исходное состояние стенда

Система

  • Linux Debian 10 в домашней сети

Настройка сети

Установка ПО

# apt update

# DEBIAN_FRONTEND=noninteractive apt -y install postfix mailutils dovecot-imapd locales dialog default-mysql-server roundcube asterisk asterisk-core-sounds-ru-wav sox lame ffmpeg jq msmtp

Шаг 2. Сервис электронной почты

  • Вместо DNS используем:
# hostname server.corp13.un

# bash

# cat /etc/hosts
127.0.0.1       localhost

10.5.M.N server.corp13.un corp13.un server

Шаг 3. Настраиваем asterisk

Шаг 4. Разворачиваем Yandex SpeechKit

Шаг 5. Развертываем систему рассылки email

# cat /etc/msmtprc
defaults
port 25
tls off

account default
host localhost
domain localhost
auth off
asterisk@server:~$ cat mail.txt
Content-Type: text/plain; charset=UTF-8
To: user1@corp13.un
From: Вячеслав Лохтуров<user2@corp13.un>
Subject: Запись
cделана
asterisk@server:~$ cat mail.txt | msmtp -f user2@corp13.un user1@corp13.un

Шаг 6. Добавляем голосовую почту в диалплан

# cat /usr/local/bin/mailsend.sh
#!/bin/sh

DIR=/usr/share/asterisk/sounds/recordings/

RECFILENAME=${DIR}$1
MAILTO=$2
MAILFROM=$3
NUMFROM=$4
NAMEFROM=$5

logger -t asterisk -p local0.info $@
#exit 0

FOLDER_ID=b1gmpublpjhm23dm8nfk
IAM_TOKEN=`/var/lib/asterisk/yandex-cloud/bin/yc iam create-token`

/usr/bin/sox -t al -r 8000 -c 1 ${RECFILENAME}.alaw ${RECFILENAME}.wav

/usr/bin/ffmpeg -y -nostats -loglevel 0 \
        -i ${RECFILENAME}.wav \
        -acodec libvorbis ${RECFILENAME}.ogg

/bin/cat > ${RECFILENAME}.txt <<EOF
Content-Type: text/plain; charset=UTF-8
To: $MAILTO
From: $NAMEFROM <$MAILFROM>
Subject: Голосовое сообщение с номера ${NUMFROM}
EOF

/usr/bin/curl -s -X POST -H "Authorization: Bearer ${IAM_TOKEN}" \
        --data-binary "@${RECFILENAME}.ogg" \
        "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}" \
        | jq '.result' | tr -d '"' >> ${RECFILENAME}.txt

/bin/cat ${RECFILENAME}.txt | msmtp -f ${MAILFROM} ${MAILTO}

/bin/rm ${RECFILENAME}.*

exit 0
# cat /etc/asterisk/extensions.conf
[default]
...
exten => _4XX,1,Dial(PJSIP/${EXTEN},10)
exten => _4XX,n,Set(MY-CALLED-USER-ID=${PJSIP_ENDPOINT(${EXTEN},MY-USER-ID)})
exten => _4XX,n,Goto(mailrec,s,1)

[mailrec]

exten => s,1,Playback(vm-intro)
exten => s,n,Record(recordings/${UNIQUEID}.alaw,,,xk)
exten => s,n,Hangup()

exten => h,1,System(/usr/local/bin/mailsend.sh ${UNIQUEID} ${MY-CALLED-USER-ID} ${MY-USER-ID} ${CALLERID(num)} "${CALLERID(name)}" &)
голосовые_сервисы_помогут_голосовой_почте.txt · Последние изменения: 2019/12/05 13:09 — val