URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 476
[ Назад ]

Исходное сообщение
"VOICEXML"

Отправлено dmitrytim , 23-Янв-13 18:11 
здравствуйте.
помогите с скриптом на voicexml для шлюза 2821 (ios 12.4(23))
задача такая.
надо чтобы в рабочее время проигрывалось приветствие+ можно подождать и попасть на секретаря или донабрать известный номер или набрать цифру и на факс или цифру и на секретаря.
во внерабочее время надо чтобы проигралось другое приветствие + нажать цифру и попасть к охране или нажать цифру и попасть на факс или подождать и попасть на охрану.

вообщем есть рабочий скрипт который реализует почти все но без учета времени.
<?xml version="1.0"?>
<vxml version="2.0" base="flash:/ivr/test.vxml">

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

<menu id="main" dtmf="false">
<property name="timeout" value="4s"/>
<prompt><audio src="flash:/en_enter_destination.au"/></prompt>
<catch event="com.cisco.fax.cng"><goto next="#fax"/></catch>
<catch event="noinput"><goto next="#sek"/>  </catch>
<catch event="nomatch"><prompt bargein="false"><audio src="flash:/en_bacd_invalidoption.au"/></prompt><goto next="#sek"/></catch>
<choice dtmf="0" next="#sek"/>
<choice dtmf="7" next="#nm1"/>
<choice dtmf="9" next="#fax"/>
</menu>
<form id="nm1">
<catch event="noinput">   <goto next="#sek"/>  </catch>
<field name="num">
<grammar type="application/grammar+regex">[0-9][0-9][0-9]</grammar>
  <filled>
   <assign name="number" expr="'phone://7'+num"/>
   <goto next="#main_nm"/>
  </filled>
</field>
</form>
<form id="main_nm">
<transfer connecttimeout="20s" name="mycall"  destexpr="number" bridge="true">
<catch event="error.connection.noroute error.connection.baddestination error.connection.noauthorization ">
<prompt><audio src="flash:/en_bacd_invalidoption.au"/></prompt>
<goto next="#sek"/>
</catch>
<filled>
<if cond="mycall == 'busy'">
   <prompt><audio src="flash:/en_bacd_invalidoption.au"/></prompt>
   <goto next="#sek"/>
<elseif cond="mycall == 'noanswer'"/>
   <prompt><audio src="flash:/en_bacd_invalidoption.au"/></prompt>
   <goto next="#sek"/>
</if>
</filled>
</transfer>
</form>    
<form id="sek">
<transfer name="mycall"  dest="phone://7000" bridge="false"> </transfer>
</form>    
<form id="fax">
<transfer name="mycall"  dest="phone://7014" bridge="false"> </transfer>
</form>
                                                                                          </vxml>

есть пример который учитывает время
  <?xml version="1.0"?>
    <vxml version="2.0" base="flash:/ivr/tivr.vxml">
    
    <!-- Time is in UTC -->
    <!-- Day of week: 0 - sunday, 1 - monday ... 6 - sunday -->
    <var name="VAR_Hour" expr="new Date().getHours()"/>
    <var name="VAR_Day" expr="new Date().getDay()"/>
    
    <!-- Time condition -->
    <form id="IVR_TimeCondition">
        <block>
            <if cond="5 <= VAR_Hour && VAR_Hour < 15 && 0 < VAR_Day && VAR_Day < 6">
                <goto next="#IVR_Business" />
            <else />
                <goto next="#IVR_NonBusiness" />
            </if>
        </block>
    </form>
    
    <!-- Non business hours -->
    <form id="IVR_NonBusiness">
        <block>
            <prompt><audio src="flash:/ivr/ivr2.wav"/></prompt>
    <transfer name="mycall" transferaudio="flash:/ivr/music.wav" bridge="false" dest="phone://7456"></transfer>
        </block>
    </form>
    
    <!-- Business hours -->
    <form id="IVR_Business">
        <block>
            <prompt><audio src="flash:/ivr/ivr1.wav"/></prompt>
        </block>
        <transfer name="mycall" transferaudio="flash:/ivr/music.wav" bridge="false" dest="phone://7101">
            <filled>
                <log>TRANSFER RETURNED: <value expr="mycall"/></log>
            </filled>
        </transfer>
    </form>
    
    </vxml>

как необходимо его применить в основном скрипте.
подскажите, пожалуйста. я только что столкнулся с vxml.


Содержание

Сообщения в этом обсуждении
"VOICEXML"
Отправлено dmitrytim , 24-Янв-13 10:28 
я так понял что в конструкции menu нет возможности вставить кондишн, пожтому вижу рабочий вариант из трех скриптов-сервисов. один главный по времени вызывает тот или иной скрипт в котором уже свои меню.