Поиск по этому блогу

16.03.2012

Первый IVR комом

Есть 2901 с E1 картой и такими лицензиями
..15.1(2)T2..

Technology Package License Information for Module:'c2900'

----------------------------------------------------------------
Technology Technology-package Technology-package
Current Type Next reboot
-----------------------------------------------------------------
ipbase ipbasek9 Permanent ipbasek9
security None None None
uc uck9 Permanent uck9
data None None None

Поскольку присоединение к телефонной сети осуществляется потоком, а не по ip, то понадобятся файлы,кодированные u-Law.



В общем, взял голосовые файлы отсюда, замесил их до нужного состояния программой Audacity, где сохранил как файл с кодированием u-Law
Далее в любом текстовом редакторе создается vxml-файл со сценарием

<?xml version="1.0"?>
<vxml version="2.0" base="flash:/ivr/ivr.vxml">


<var name="phone_num"/>
<var name="mydur"/>


<form id="main">
<property name="timeout" value="10s"/>
<block>
    <audio src="flash:/ivr/helo.wav" />
</block>
        <field name="get_phone_num" type="number">
                <grammar type= "application/grammar+regex">...</grammar>
                <filled>
                        <assign name="phone_num" expr="get_phone_num"/>
                </filled>
        </field>
        <transfer name="mycall" destexpr="'phone://'+phone_num" bridge="true" connecttimeout="20s">
                </transfer>
</form>
</vxml>
Звуковые файлы собираем на рабочем месте в папку ivr и пакуем архиватором, 7z например, в один tar-файл, выкладываем на ftp-сервер. Далее распаковываем его на маршрутизаторе:

VOIP-C2901#archive tar /xtract ftp://172.0.0.1/ivr.tar flash:
Loading ivr.tar
ivr/ (directory)!
extracting ivr/helo.wav (31823 bytes)
extracting ivr/ivr.vxml (1199 bytes)
extracting ivr/zanjat.wav (5491 bytes)
extracting ivr/zdravstujte.wav (7999 bytes)
[OK - 69120/4096 bytes]
Настраиваем диапир для входящей ноги и сервис:
application
service myivr flash:/ivr/ivr.vxml

dial-peer voice 100 pots
description IVR
service myivr
incoming called-number 987654321
port 0/0/0:15
Полезные команды:
call application voice load myivr
debug voip application vxml all
Первая команда загружает файл vxml, если его залили заново с изменениями. Чтобы не делать вот такой финт:
VOIP-C2901(config)#application
VOIP-C2901(config-app)#no service myivr flash:/ivr/ivr.vxml
VOIP-C2901(config-app)#service myivr flash:/ivr/ivr.vxml

За основу был взят скрипт отсюда, так как запарился с комбинацией prompt + block, поэтому на авторство скрипта не претендую. Немного работает, возможно с ошибками, но для начала уже хорошо.