User Tools

Site Tools


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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
голосовые_сервисы_помогут_голосовой_почте [2020/12/11 18:42]
val [Шаг 6. Добавляем голосовую почту в диалплан]
голосовые_сервисы_помогут_голосовой_почте [2022/06/16 12:48] (current)
val [Система]
Line 30: Line 30:
 ==== Система ==== ==== Система ====
  
-  * Linux [[http://​val.bmstu.ru/​unix/​img/​My%20Documents/​debian_10.0_64_01.ova|Debian 10]] в домашней сети+  * Linux [[https://​val.bmstu.ru/​unix/​img/​My%20Documents/​debian_10.11_64_01.ova|Debian 10]] в домашней сети
  
 ==== Настройка сети ==== ==== Настройка сети ====
Line 102: Line 102:
   * [[https://​console.cloud.yandex.ru/​billing]]   * [[https://​console.cloud.yandex.ru/​billing]]
  
 +  * Установка ПО для [[Перекодировка звука#​Перекодировка в ogg формат]]
   * Используя [[Пакет 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 124:
 RECFILENAME=${DIR}$1 RECFILENAME=${DIR}$1
 MAILTO=$2 MAILTO=$2
-MAILFROM=${3:​-asterisk@server.corpX.un}+MAILFROM=${3%.empty}
 NUMFROM=$4 NUMFROM=$4
-NAMEFROM=${5:-Asterisk}+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 $@
Line 161: Line 144:
         -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: Voice message from ${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 -${MAILFROM} ${MAILTO}+export EMAIL="​${NAMEFROM}<​${MAILFROM}>"​ 
 +cat ${RECFILENAME}.txt | mutt -s "​Голосовое сообщение от абонента ​${NUMFROM}" -a ${RECFILENAME}.ogg -- ${MAILTO}
  
 /bin/rm ${RECFILENAME}.* /bin/rm ${RECFILENAME}.*
Line 180: Line 157:
 exit 0 exit 0
 </​code><​code>​ </​code><​code>​
 +# chmod +x /​usr/​local/​bin/​mailsend.sh
 +
 # cat /​etc/​asterisk/​extensions.conf # cat /​etc/​asterisk/​extensions.conf
 </​code><​code>​ </​code><​code>​
 [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)
 +
 +...
  
 [mailrec] [mailrec]
  
 exten => s,​1,​Playback(vm-intro) exten => s,​1,​Playback(vm-intro)
-exten => s,​n,​Record(recordings/​${UNIQUEID}.alaw,,,​xk)+exten => s,​n,​Record(recordings/​${UNIQUEID}.alaw,,​29,xk)
 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>​
голосовые_сервисы_помогут_голосовой_почте.1607701347.txt.gz · Last modified: 2020/12/11 18:42 by val