This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
голосовые_сервисы_помогут_голосовой_почте [2019/12/05 13:09] val [Запись вебинара] |
голосовые_сервисы_помогут_голосовой_почте [2021/03/26 14:29] val [Шаг 6. Добавляем голосовую почту в диалплан] |
||
---|---|---|---|
Line 95: | Line 95: | ||
* [[Сервис Asterisk#Настройка базового плана нумерации]], номерной план _4XX | * [[Сервис Asterisk#Настройка базового плана нумерации]], номерной план _4XX | ||
- | * Используя номера 302 и 303 из темы [[Сервис Asterisk#Интерактивное голосовое меню IVR]] записываем и прослушиваем сообщение | + | * Используя тему "[[Сервис Asterisk#Запись звукового файла]]" записываем и прослушиваем сообщение |
===== Шаг 4. Разворачиваем Yandex SpeechKit ====== | ===== Шаг 4. Разворачиваем Yandex SpeechKit ====== | ||
Line 103: | Line 103: | ||
* Используя [[Пакет sudo]] переключаемся на пользователя аsterisk | * Используя [[Пакет sudo]] переключаемся на пользователя аsterisk | ||
- | * Инициализируем [[Yandex SpeechKit]] | + | * [[Перекодировка звука]] в ogg |
- | * Тестируем распознавание подготовив звуковой файл ([[Перекодировка звука#Перекодировка alaw в ogg формат]]) | + | * Инициализируем и тестируем распознавание [[Yandex SpeechKit]] |
===== Шаг 5. Развертываем систему рассылки email ====== | ===== Шаг 5. Развертываем систему рассылки email ====== | ||
- | * [[Организация рассылки электронной почты#Утилита msmtp]] | + | * [[UA mutt]] |
- | + | ||
- | <code> | + | |
- | # cat /etc/msmtprc | + | |
- | </code><code> | + | |
- | defaults | + | |
- | port 25 | + | |
- | tls off | + | |
- | + | ||
- | account default | + | |
- | host localhost | + | |
- | domain localhost | + | |
- | auth off | + | |
- | </code><code> | + | |
- | asterisk@server:~$ cat mail.txt | + | |
- | </code><code> | + | |
- | Content-Type: text/plain; charset=UTF-8 | + | |
- | To: user1@corp13.un | + | |
- | From: Вячеслав Лохтуров<user2@corp13.un> | + | |
- | Subject: Запись | + | |
- | cделана | + | |
- | </code><code> | + | |
- | asterisk@server:~$ cat mail.txt | msmtp -f user2@corp13.un user1@corp13.un | + | |
- | </code> | + | |
===== Шаг 6. Добавляем голосовую почту в диалплан ====== | ===== Шаг 6. Добавляем голосовую почту в диалплан ====== | ||
Line 146: | Line 123: | ||
RECFILENAME=${DIR}$1 | RECFILENAME=${DIR}$1 | ||
MAILTO=$2 | MAILTO=$2 | ||
- | MAILFROM=$3 | + | MAILFROM=${3%.empty} |
NUMFROM=$4 | NUMFROM=$4 | ||
- | NAMEFROM=$5 | + | NAMEFROM=${5%.empty} |
+ | |||
+ | if [ -z "$MAILFROM" ] | ||
+ | then | ||
+ | MAILFROM=asterisk@server.corpX.un | ||
+ | fi | ||
logger -t asterisk -p local0.info $@ | logger -t asterisk -p local0.info $@ | ||
#exit 0 | #exit 0 | ||
- | FOLDER_ID=b1gmpublpjhm23dm8nfk | + | FOLDER_ID=b1gg4j6ru4esprat3uu7 |
IAM_TOKEN=`/var/lib/asterisk/yandex-cloud/bin/yc iam create-token` | IAM_TOKEN=`/var/lib/asterisk/yandex-cloud/bin/yc iam create-token` | ||
Line 161: | Line 143: | ||
-i ${RECFILENAME}.wav \ | -i ${RECFILENAME}.wav \ | ||
-acodec libvorbis ${RECFILENAME}.ogg | -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}" \ | /usr/bin/curl -s -X POST -H "Authorization: Bearer ${IAM_TOKEN}" \ | ||
--data-binary "@${RECFILENAME}.ogg" \ | --data-binary "@${RECFILENAME}.ogg" \ | ||
"https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}" \ | "https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?folderId=${FOLDER_ID}" \ | ||
- | | jq '.result' | tr -d '"' >> ${RECFILENAME}.txt | + | | jq '.result' | tr -d '"' > ${RECFILENAME}.txt |
- | /bin/cat ${RECFILENAME}.txt | msmtp -f ${MAILFROM} ${MAILTO} | + | export EMAIL="${NAMEFROM}<${MAILFROM}>" |
+ | cat ${RECFILENAME}.txt | mutt -s "Голосовое сообщение от абонента ${NUMFROM}" -a ${RECFILENAME}.ogg -- ${MAILTO} | ||
/bin/rm ${RECFILENAME}.* | /bin/rm ${RECFILENAME}.* | ||
Line 184: | Line 160: | ||
[default] | [default] | ||
... | ... | ||
- | exten => _4XX,1,Dial(PJSIP/${EXTEN},10) | + | ;exten => _4XX,1,Dial(PJSIP/${EXTEN},10) |
- | exten => _4XX,n,Set(MY-CALLED-USER-ID=${PJSIP_ENDPOINT(${EXTEN},MY-USER-ID)}) | + | exten => _4XX,1,Dial(SIP/${EXTEN},10) |
+ | ;exten => _4XX,n,Set(MY-CALLED-USER-ID=${PJSIP_ENDPOINT(${EXTEN},MY-USER-ID)}) | ||
+ | exten => _4XX,n,Set(MY-CALLED-USER-ID=${SIPPEER(${EXTEN},chanvar[MY-USER-ID])}) | ||
exten => _4XX,n,Goto(mailrec,s,1) | exten => _4XX,n,Goto(mailrec,s,1) | ||
Line 194: | Line 172: | ||
exten => s,n,Hangup() | 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)}" &) | + | exten => h,1,System(/usr/local/bin/mailsend.sh ${UNIQUEID} ${MY-CALLED-USER-ID} ${MY-USER-ID}.empty ${CALLERID(num)} "${CALLERID(name)}.empty" &) |
</code> | </code> |