建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块

postYouth

发帖: 16粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-22 14:17:44 1814 28 楼主 显示全部楼层
[入驻式求助] vxml <field>元素怎么收集按键 * #

【问题简要】【必填】 

        <field type="number"></field>   <field type="digit"></field>  这样设置都不行,输入*  # 时提示输入错误。


【问题类别】【必填】
      vxml1.0
【IPCC解决方案版本】【必填】
        IPCC V200R001C80
【期望解决时间】【选填】
    7月22号

【问题现象描述】【必填】


举报
分享

分享文章到朋友圈

分享文章到微博

联络中心_...

发帖: 5粉丝: 4

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-7-22 16:55:54 沙发 显示全部楼层

您好:

Vxml demo合辑的下载地址:

https://forum.huawei.com/enterprise/zh/forum.php?mod=viewthread&tid=418577

您可以参考《2.1.6 放音收一位号.jsp》章节的demo。

点赞 回复 举报

postYouth

发帖: 16粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-23 12:26:50 板凳 显示全部楼层

完全把demo代码复制,按* # 还是提示无匹配,我不需要这个提示,需要采集到这2个按键做特殊处理。

如:<if cond="collect == '*'">

            <goto next="#Main"/>

     </if>


image.png

点赞 回复 举报

联络中心_...

发帖: 0粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-24 17:57:01 地板 显示全部楼层

您好:

        请问您这边收集"#"和"*"干什么用?"#"和"*"默认是结束建和取消键.

点赞 回复 举报

postYouth

发帖: 16粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-24 21:19:24 5# 显示全部楼层

返回菜单上一层和 订购键(不要建议我用其他键代替,上帝指定要用这2个键)

点赞 回复 举报

联络中心_...

发帖: 5粉丝: 4

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2019-7-25 15:37:59 6# 显示全部楼层

您好:

在vxml的field收号标签中*和#分别是默认的取消键和结束键,您可以参考《IPCC V200R001C80SPC700 VoiceXML1.0 开发指南.chm》中的“播放收号”接口进行测试


另外C80版本的开发指南下载地址如下:

https://support.huawei.com/enterprise/zh/integrated-communications-platform/cloudipcc-pid-21796204?category=developer-documents



点赞 回复 举报

postYouth

发帖: 16粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-26 15:48:52 7# 显示全部楼层

你建议的使用华为 object “播放收号”不可行,太麻烦,也是是非标准的。使用标准vxml   field是可以实现的,是通过<grammer> 语法实现的。在华为平台试不行。别人实现方案如下,麻烦给出华为平台事例。

<grammar mode="dtmf" version="1.0" root="top"> <rule id="top"> <one-of> <item>1</item> <item>2</item> <item>3</item> </one-of> </rule> </grammar>

点赞 回复 举报

postYouth

发帖: 16粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-26 16:30:25 8# 显示全部楼层

  补充一下:

<grammar mode="dtmf" version="1.0" root="top">
<rule id="top">
<one-of>
<item>1</item>
<item>2</item>
<item>3</item><item>*</item><item>#</item></one-of>
</rule>
</grammar>

点赞 回复 举报

postYouth

发帖: 16粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-29 14:05:09 9# 显示全部楼层

麻烦各位专家帮忙指导一下。谢谢。

点赞 回复 举报

联络中心_...

发帖: 0粉丝: 0

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2019-7-30 19:37:41 10# 显示全部楼层
postYouth 发表于 2019-7-29 14:05 麻烦各位专家帮忙指导一下。谢谢。

您好:  

        经过我们本地测试验证,vxml <field>元素不支持收集按键 * 和#,直接用 classid="method://huawei/ResouceOperate/PlayCollect".这个接口可以进行收集,具体流程可以参考以下流程文件.

<?xml version="1.0" encoding="UTF-8"?>

<vxml version="2.0">

<var name="wait_event2"/>

<var name="dtmfResult"/>

<var name="currentEventType"/>

<var name="currentObjectType"/>

<var name="call_id"/>

<var name="dtmfCollect" expr="Object()"/>

<var name="sepcFilePlay" expr="Object()"/>

<var name="wait_event1" expr="Object()"/>

<var name="objectDetail" expr="Object()"/>

<var name="eventDetail" expr="Object()"/>

   <form id="ASR">

        <object name="get_call_id" classid="method://huawei/Other/GetCallID">

            <param name="CallID" expr="call_id"/>

        </object>

        <block name="set_params">

            <assign name="dtmfCollect.MaxDigit" expr="1"/>

            <assign name="dtmfCollect.MinDigit" expr="1"/>

            <assign name="dtmfCollect.EndDigit" expr="'6'"/>

            <assign name="dtmfCollect.CancelDigit" expr="'7'"/>

            

            <assign name="sepcFilePlay.PlaySourceInfo" expr="'N:/welcome.wav'"/>

        </block>

        <object name="play_collect" classid="method://huawei/ResouceOperate/PlayCollect">

            <param name="AudioPlayInd" expr="2"/>

            <param name="SepcFilePlay" expr="sepcFilePlay"/>

    <param name="DTMFCollect" expr="dtmfCollect"/>  

        </object>

          <block name="asr_next">

             <goto next="#waitevent"/>                   

          </block>                 

</form>

<form id="waitevent">

         

        <object name="wait_event1" classid="method://huawei/Other/WaitEvent">

            <param name="CurrentEventType" expr="currentEventType"/>

            <param name="CurrentObjectType" expr="currentObjectType"/>


            <filled>

                <log>!!!!!!!!!!<value expr="wait_event1"/></log>

                <log>@@@@@@@@@@<value expr="currentEventType"/></log>

            <assign name="wait_event2" expr="wait_event1"/>

                <if cond="currentEventType == '10'&& wait_event1 == '0'">

                    <log>======================================</log>

                <elseif cond="currentEventType == '30' && wait_event1 != '4'"/>

<goto next="#dtmf_stop_prompt"/>

                <elseif cond="currentEventType == '31' && wait_event1 == '0'"/>

                    <goto next="#pre_get_result"/>

                <else/>

                    <log>#######</log>

                    <goto next="#waitevent"/>

                   

                </if>

            </filled>

        </object>   

</form>

<form id="pre_get_result">

        <block name="pre_get_result1">

            <assign name="objectDetail.ObjectType" expr="currentObjectType"/>

            <assign name="objectDetail.ConfResID" expr="call_id"/>

            <assign name="eventDetail.EventType" expr="currentEventType"/>

            <goto next="#get_event"/>

        </block>

    </form>

<form id="get_event">

        <object name="get_event1" classid="method://huawei/Other/GetEvent">

            <param name="ObjectDetail" expr="objectDetail"/>

            <param name="EventDetail" expr="eventDetail"/>


            <filled>

                <log>11111111111<value expr="get_event1"/></log>

                <log>22222222222<value expr="currentEventType"/></log>

                <log>33333333333<value expr="wait_event2"/></log>

                <goto nextitem="get_result"/>

            </filled>

        </object>


        <block name="get_result">

            <if cond="currentEventType == '31' && wait_event2 == '0'">

                <assign name="dtmfResult" expr="eventDetail.DtmfResult"/>


                <log>4444444444<value expr="dtmfResult"/></log>

<log>6666666666<value  expr="eventDetail.DtmfResult"/></log>

            <elseif cond="currentEventType == '41' && wait_event2 == '0'"/>

                <assign name="asrResult" expr="eventDetail.AsrResultSlotValue1"/>


                <log>555555555<value expr="asrResult"/></log>    

            <else/>

                <log>7777777777</log>

                <exit/>

            </if>

        </block>

</form>

</vxml>


点赞 回复 举报

游客

您需要登录后才可以回帖 登录 | 立即注册