The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ссылку на vxml примерчик подкиньте"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Маршрутизаторы CISCO и др. оборудование. (VoIP)
Изначальное сообщение [ Отслеживать ]

"ссылку на vxml примерчик подкиньте"  +/
Сообщение от andreyka459 email(??) on 15-Фев-07, 22:58 
нужно срочно налепить стандартное голосовое меню. Типа

нажмите:
1-абон отдел
2-техотдел
или наберите внутренний номер специалиста
или отправте fax
или дождитесь ответа секретаря.

Поверхностное изучение инета пока не принесло пользы - то что нашел как надо не работает. В частности ругается на отсутствие ресурсов ASL. Я чтото не так делаю? где эту ASL выключить нафиг.

На более глубокое изучение катастрофически нет времени - компания после переезда сидит без связи, секретарша уволилась, главспец болеет. Выручите пожалуйста рабочим примером. Буду ОООЧЕНЬ признателен.  


Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ссылку на vxml примерчик подкиньте"  +/
Сообщение от andreyka459 email(??) on 19-Фев-07, 10:31 
ну что, ни у кого нет? а у меня есть!
решил поделиться. может кому сгодится. много чего сделано не так как надо, зато работает.
поправки принимаются.


<?xml version="1.0"?>
<vxml version="2.0" base="ftp://xxx/menu.vxml">

<var name="number" expr="99"/>

<menu id="main" dtmf="true">
<property name="timeout" value="5s"/>
<catch event="com.cisco.fax.cng"> <goto next="#fax"/>  </catch>
<catch event="noinput">   <goto next="#sek"/>  </catch>
<catch event="nomatch">   <goto next="#bad"/>  </catch>
  <prompt>
  <audio src="ftp://xxx/tiho3s.wav"/>
  <audio src="ftp://xxx/welcome2.wav"/>
  </prompt>
  <choice next="#sek">   <grammar type="application/grammar+regex">0</grammar>  </choice>
  <choice next="#abn">   <grammar type="application/grammar+regex">1</grammar>  </choice>
  <choice next="#tech">  <grammar type="application/grammar+regex">3</grammar>  </choice>
  <choice next="#nm">    <grammar type="application/grammar+regex">2</grammar>  </choice>
</menu>

<form id="abn">
<block><prompt> <audio src="ftp://xxx/abn_o.wav"/></prompt></block>
<transfer name="mycall"  dest="phone://201" bridge="false"> </transfer>
</form>
                                                
<form id="tech">
<block><prompt> <audio src="ftp://xxx/tech_o.wav"/></prompt></block>
<transfer name="mycall"  dest="phone://202" bridge="false"> </transfer>
</form>
                                                

<form id="sek">
<block><prompt> <audio src="ftp://xxx/sek.wav"/></prompt></block>
<transfer name="mycall"  dest="phone://200" bridge="false"> </transfer>
</form>
                                                

<form id="fax">
<transfer name="mycall"  dest="phone://219" bridge="false"> </transfer>
</form>


<form id="bad">
<block>
<prompt> <audio src="ftp://xxx/bad.wav"/> </prompt>
<goto next="#sek"/>
</block>
</form>


<form id="nm">
<catch event="noinput">   <goto next="#sek"/>  </catch>
<catch event="nomatch">   <goto next="#bad"/>  </catch>
<field name="num">
<grammar type="application/grammar+regex">[01][0-9]</grammar>
  <filled>
   <assign name="number" expr="'phone://2'+num"/>
   <goto next="#nm2"/>
  </filled>
</field>
</form>


<form id="nm2">
  <block><prompt> <audio src="ftp://xxx/abn.wav"/></prompt></block>
  <transfer name="mycall"  destexpr="number" bridge="false"> </transfer>
</form>                                                            
                                                
</vxml>


menu.vxml - файл, что выше
welcome2.wav - "Вы похвонили в ххх, наберите 1 - абон.отдел, 3 - тех отдел,  отправте факс или наберите внутренний номер(200-219), секретарь ответит через 5 сек"
abn_o.wav - соединяю с абонентским отделом
tech_o.wav - соединяю с техническим отделом
abn.wav - соединяю с абонентом
sek.wav - соединяю с секретарем
bad.wav - номер набран неверно

wav записываются при помощи "звукозаписи" в винде. Кодек ставим CCITT ALAW 8кгц
складываем все это на ftp://xxx

в конфиге пишем

dial-peer voice 10 pots
service mymenu
incoming called-number XXXXXXXXX

application
service mymenu ftp://XXX/menu.vxml


PS cisco2821 IOS 12.4(3f) C2800MN-SPSERVICESK9-M


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ссылку на vxml примерчик подкиньте"  +/
Сообщение от andreyka459 email(??) on 11-Май-07, 21:58 
вот еще vxml - примерчик. говорящие часы.
вызывается у нас при наборе 100.

100.vxml:


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


<var name="tm1" expr="'pusto'"/>
<var name="tm2" expr="'pusto'"/>
<var name="tm3" expr="'pusto'"/>
<var name="tm4" expr="'pusto'"/>
<var name="tm5" expr="'pusto'"/>
<var name="tm6" expr="'pusto'"/>

<form id="vrem">
<block>
  
  <script>
  var d = new Date();
  var h = d.getHours()+'';
  var m = d.getMinutes()+'';
  tm3='hours';
  if(h > 20) {
  tm1=h.substr(0,1)+'0';
  tm2=h.substr(1,1);
  } else {
  tm2=h;
  }
  if( tm2 == '1' ) { tm3='hour'; };
  if( tm2 == '2' ) { tm3='houra'; };
  if( tm2 == '3' ) { tm3='houra'; };
  if( tm2 == '4' ) { tm3='houra'; };

  tm6='minutes';
  if(m > 20) {
  tm4=m.substr(0,1)+'0';
  tm5=m.substr(1,1);
  } else {
  tm5=m;
  }
  if( tm5 == '1' ) { tm6='minuta'; tm5 = '1a'; };
  if( tm5 == '2' ) { tm6='minuty'; tm5 = '2e'; };
  if( tm5 == '3' ) { tm6='minuty'; };
  if( tm5 == '4' ) { tm6='minuty'; };
  </script>

  <prompt>
   <audio src="flash:mtime.wav"/>
   <audio expr="'flash:'+tm1+'.wav'"/>
   <audio expr="'flash:'+tm2+'.wav'"/>
   <audio expr="'flash:'+tm3+'.wav'"/>
   <audio expr="'flash:'+tm4+'.wav'"/>
   <audio expr="'flash:'+tm5+'.wav'"/>
   <audio expr="'flash:'+tm6+'.wav'"/>
   <audio src="flash:tiho3.wav"/>
  </prompt>
  
  
</block>
</form>

                                                
</vxml>


в конфиге пишем

application
service 100 flash:100.vxml

dial-peer voice 15 pots
service 100
incoming called-number 100

файлы  типа wav c именами 0,1,1а,2е,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,30,40,50,60,70,80,90,
содержат очевидные фонемы,

minuty - "минуты"
minuta - "минута"
hour - "час"
houra - "часа"
mtime - "московское время"
tiho3 - 3 сек тишины
pusto - 0 сек тишины

все фонемы пишутся за один раз в "звукозаписи" от Виндовс, конвертятся в 8кгц Аlaw и "нарезаются" этой же программой, затем копируются на Flash карту, на которой также находится загрузочный образ IOS. Flash можно поменять на побольше (например 512МБ), обязательно отформатировав его ciscoй и переписав образ IOS.


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "ссылку на vxml примерчик подкиньте"  +/
Сообщение от andreyka459 email(??) on 11-Май-07, 22:03 
а вот и еще vxml - примерчик. говорящий аон
при наборе говорит номер с которого набрали.
полезно при проверочных работах на атс

номер АОН(CLID) у нас бывает 7 или 10 цифр


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

<var name="aons" expr="session.connection.remote.uri"/>

<form id="aon">
<block>
  <log>aons <value expr="aons"/> </log>
<prompt>
  <audio src = "flash:yornum.wav"/>
</prompt>
  <if cond = "aons.length == 0">
   <prompt>
   <audio src = "flash:neopr.wav"/>
   <audio src = "flash:tiho3.wav"/>
   </prompt>
   <exit/>
  </if>
<prompt>
  <audio expr="'flash:'+aons.substring(0,1)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(1,2)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(2,3)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(3,4)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(4,5)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(5,6)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(6,7)+'.wav'"/>
</prompt>  
  <if cond = "aons.length == 7">
   <prompt>  <audio src = "flash:tiho3.wav"/>  </prompt>
   <exit/>
  </if>
  <prompt>
  <audio expr="'flash:'+aons.substring(7,8)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(8,9)+'.wav'"/>
  <audio expr="'flash:'+aons.substring(9,10)+'.wav'"/>
  <audio expr="'flash:tiho3.wav'"/>
  </prompt>
</block>
</form>

                                                
</vxml>

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "а что неправильно в данном коде?"  +/
Сообщение от tihar (ok) on 15-Фев-12, 12:52 
проигрывает сообщение
после нажатия пользователем любой клавиши умирает :(

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vxml SYSTEM "http://www.w3.org/TR/2007/REC-voicexml21-20070619/vxml.dtd&q...
<vxml version="2.1">
    <form id="main">
        <var name="phoneNum"/>
        <field name="number" type="digits">
            <prompt>
            <audio src="flash:welcome.au"/>
        </prompt>
            <filled>
                <if cond="number.length != 4 && number == 1">
                <assign name="phoneNum" expr="2000"/>
                <elseif cond="number.length == 4"/>
                <assign name="phoneNum" expr="number"/>
                    <else/>
                    <goto expr="#choise0"/>
                </if>
            </filled>
        </field>
        <transfer name="mycalld1" destexpr="'phone://'+phoneNum" connecttimeout="60s" bridge="true">
            <filled>
                <assign name="mydurd1" expr="mycalld1$.duration"/>
                <if cond="mycalld1 == 'busy'">
                    <goto next="#choise0"/>
                    <elseif cond="mycalld1 == 'noanswer'"/>
                    <goto next="#choise0"/>
                </if>
            </filled>
        </transfer>
        <noinput>
            <goto next="#choise0"/>
        </noinput>
    </form>
    
    <form id="choise0">
        <transfer name="mycall0" dest="phone://2004" connecttimeout="300s" bridge="false"/>
    </form>
</vxml>

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру