AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Voice Prompts к Asterisk'у

Asterisk IP PBX 7 сообщений -
#1

Вем снова привет!
Возможно кому-нибудь еще понадобится скрипт, который я написал для облегчения 'надиктовки' переводов Voiceprompt'ов к Asterisk'у. Жду ваших комментариев Smile.
Код:

#!/bin/bash

## Romik 2005© :)
# This is under the terms of GNU GENERAL PUBLIC LICENSE
# See http://www.gnu.org/licenses/gpl.txt for details
#

# defining constants
astsound=/var/lib/asterisk/sounds
inbox=/var/spool/asterisk/voicemail/default/111/INBOX
old=/var/spool/asterisk/voicemail/default/111/Old
msg=msg0000.gsm
envelope=msg0000.txt
recfilescount=0
recordedlog=~/recordedlog
voicemailboxnumber=*******

# defining function 'prepare_for_recording'
prepare_for_recording ()
{
# Cleaning voicemailbox from unsuccessfully
# recorded voiceprompts
if [ -r $inbox/$msg ]
then
echo Removing unsuccessfully recorded
echo $inbox/$msg
rm -rf $inbox/$msg
fi
}

## main programm
#clean
echo

# for each .gsm voiceprompt which name starts with 'vm-' we do
for voiceprompt in $astsound/vm-*.gsm
do

# Do backup first
echo Backuping $voiceprompt
echo to $voiceprompt.back
echo
cp $voiceprompt $voiceprompt.back

# Move original voiceprompt to voicemailbox
echo Moveing $voiceprompt
echo to $inbox/$msg
echo
mv $voiceprompt $inbox/$msg
# We do not need to regenerate envelope text, 'cause Asterisk
# does not check if it is valid to message or not, so
# jusr moveing it back to INBOX from Old
echo Moveing $old/$envelope
echo back to $inbox/$envelope
echo
mv $old/$envelope $inbox/$envelope

# Now ...
echo Call $voicemailboxnumber to listen to the voiceprompt you will translate
echo " (press 1(mailbox num), then again 1(password) and again 1(new messages) after dialing)"
echo

# Start recording
read -s -n1 -p " Translate it and then press AnyKey to start recording new message" keypressed
echo
# Calling function that prepares voicemailbox
# for recording new message
prepare_for_recording

# Ask if we recorded good or not
read -s -n1 -p " Press 'y' or 'Y' if you succesfully recorded new message," keypressed
echo " otherwise press AnyKey"
echo
# And if good..
if [[ "$keypressed" = "y" || "$keypressed" = "Y" ]]
# ..then..
then
echo " You've just recorded new voiceprompt:"
echo " $voiceprompt"
echo
# ..save it;
echo Moveing new $inbox/$msg
echo to: $voiceprompt
echo
mv $inbox/$msg $voiceprompt
# increment recorded files counter
((recfilescount++))
# log what we just have translated
echo $voiceprompt >> $recordedlog
# otherwise record it again
else
prepare_for_recording
fi

done

# When we are done, show some stats
# about how cool we are :)
echo You have recorded $recfilescount files.
echo Their names are stored in $recordedlog
echo

# Exiting
exit $?

____________________________________________________
Вот так...
Комменты и подсказки все на английском, но кто уж его не знает?.. А так, может и большему количеству народа он поможет.


Последний раз редактировалось: Romik (Вт Июл 19, 2005 11:50)
#2

Привет
Smile
Решил изобрести велосипед? Wink
на voip-info давно валяется готовый, да и ничего сложного нет сделать пару екстеншинов и сунуть в конфиг... imho долбить клаву в консоли чтобы наговорить месаги это конечно нестандартное решение а это уже как минимум уважения заслуживает - но вопрос - а чем не нравится использовать для этих же целей кнопки обычного телефона? Wink
простейший вариант:
Код:
Example
; used to record prompts
exten => 205,1,Wait(2)
exten => 205,2,Record(/tmp/asterisk-recording:gsm)
exten => 205,3,Wait(2)
exten => 205,4,Playback(/tmp/asterisk-recording)
exten => 205,5,Wait(2)
exten => 205,6,System,/bin/mv /tmp/asterisk-recording.gsm /var/lib/asterisk/sounds/local/`date +%s`.gsm
exten => 205,7,Goto(205,1)


http://www.voip-info.org/tiki-index.php? ... ing%20menu


Последний раз редактировалось: anest (Ср Июл 27, 2005 15:24)
#3

Это была не критика - не подумай ничё тока Smile
просто вдруг ты не знал Wink
#4

Не, anest, все OK Smile
Я действительно не знал Smile Я всего лишь Newbie; а то что ты думаешь, мой самый первый пост был про компиляцию? - Да-да, именно по-этому Smile, я первый раз ставил Asterisk.
Спасибо тебе! Щас чуть-чуть пожалуй поковыряюсь и 'скручу' твой и мой скипты вместе Smile.
#5

Продолжаем...
Перевод VoicePrompt'ов к Asterisk VoiceMail System.

-----------------------!!!-----------------------
Для приведения VoicePrompt'ов к "нормальному" виду я использую следующий скрипт
Код:
#!/bin/sh
tmpfile=/tmp/rescale$$.wav
for i in *.wav; do
scale=$(sox $i /tmp/foo.wav stat -v 2>&1)
if [ $scale != "1.000" ]; then
echo -n "Rescale $i..."
cp $i $tmpfile
sox $tmpfile -v $scale $i
echo
fi
done

##
## http://www.voip-info.org/tiki-index.php?page=Asterisk+sound+files
##
# This is how you convert wav? files to gsm files used by Asterisk
# Сиё есть способ конвертирования полученных нормализованных по громкости/уровню
# wav файлов в родной Asterisk'y gsm формат:
# $ sox inputfile.wav -r 8000 -c 1 outputfile.gsm resample -ql
#
# Converting all files in a directory:
# Конвертирование из wav в gsm всех файлов в директории:
# for i in *.wav; do sox $i -r 8000 -c 1 $(basename $i .wav).gsm resample -ql; done
##
-----------------------!!!-----------------------

Есть у меня в переводе баг, по поводу vm-extension.gsm -"Расширение" - "extension"
Не судите строго,я еще сам не понял, как это по-русски нормально сказать Sad

_____________________________________________
Как всегда, жду ваших комментариев, замечаний, предложений заработать Wink
Rolling Eyes Rolling Eyes Rolling Eyes


Последний раз редактировалось: Romik (Вс Июл 24, 2005 16:42)
#6

Еще немножко...
Перевод VoicePrompt'ов к Asterisk VoiceMail System | Asterisk VoiceMail System VoicePrompt English to russian translation

Есть у меня в переводе баг, по поводу vm-extension.gsm -"Расширение" - "extension"
Не судите строго,я еще сам не понял, как это по-русски нормально сказать Sad

_____________________________________________
Как всегда, жду ваших комментариев, замечаний, и особенно предложений заработать Wink
Rolling Eyes Rolling Eyes Rolling Eyes
#7

По-русски это звучит так - "абонент". Так было и есть в предидущей руссификации звуков asterisk.