здравствуйте.
помогите с скриптом на 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.
я так понял что в конструкции menu нет возможности вставить кондишн, пожтому вижу рабочий вариант из трех скриптов-сервисов. один главный по времени вызывает тот или иной скрипт в котором уже свои меню.