VXML and GRXML---> using Genesys and Google dialog flow

517 views
Skip to first unread message

Karthi Keyan

unread,
Apr 21, 2022, 6:12:05 PM4/21/22
to UniMRCP
Hi Team,
    We are trying to integrate using VXML and GRXML in Genesys with uniMRCP server configuration. We are facing issue with this integration.

1. How gxml and uniMRCP will communicate. Is there any deployment steps are available in uniMRCP side.
 2. In  VXML grammar tag ,i have added src="builtin:grammar/names?projectid=3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb.
What is the projectid denotes ,it's GDF agent name (or) GDF agent-id ? 
3.Any configuration required for grxml in uniMRCP(umsgsr.xml / umsgdf.xml)  side to make it work in Genesys & GSR/GDF.
4. Please find the grxml code,how this will work in UniMRCP.
======================================================================
External GRXML code:
---------------------
<?xml version="1.0" encoding="UTF-8"?>
<grammar mode="voice" root=" names  " version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar">
<meta name="scope" content="builtin"/>
<meta name="projectid" content="3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb"/>
<rule id="names">
<one-of>
<item>call Steve</item>
<item>call John</item>
<item>dial 5</item>
<item>dial 6</item>
</one-of>
</rule>
</grammar>

==============================================================
VXML code :
--------------------

<form id="InputKB">
<property name="inputmodes" value="voice" />
<property name="bargein" value="true" />
<block name="InputKBP0">
<prompt gvp:langexpr="AppState.APP_LANGUAGE">
Thanks for calling, Please say or enter your mail id.
</prompt>
</block>
<field name="InputKBField" slot="out">
<grammar mode="voice" src="builtin:grammar/transcribe?projectid=3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb" />
<property name="interdigittimeout" value="3s"/>
<property name="termchar" value="#" />
<property name="timeout" gvp:expr="AppState.timeOut"/>
</field>
<filled mode="all" namelist="InputKBField">
<assign name="AppState.Result_Out" expr="InputKBField" />
<assign name="AppState.InputKB$" expr="InputKBField$" />

<goto next="#Prompt2KN" />
</filled>
</form>

Thanks
Karthik

    

Karthi Keyan

unread,
Apr 22, 2022, 10:16:50 AM4/22/22
to UniMRCP
correction in vxml file,

VXML code :
--------------------

<form id="InputKB">
<property name="inputmodes" value="voice" />
<property name="bargein" value="true" />
<block name="InputKBP0">
<prompt gvp:langexpr="AppState.APP_LANGUAGE">
Thanks for calling, Please say or enter your mail id.
</prompt>
</block>
<field name="InputKBField" slot="out">
<grammar mode="voice" src="builtin:grammar/names?projectid=3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb" />

<property name="interdigittimeout" value="3s"/>
<property name="termchar" value="#" />
<property name="timeout" gvp:expr="AppState.timeOut"/>
</field>
<filled mode="all" namelist="InputKBField">
<assign name="AppState.Result_Out" expr="InputKBField" />
<assign name="AppState.InputKB$" expr="InputKBField$" />

<goto next="#Prompt2KN" />
</filled>
</form>

Vahagn Kocharyan

unread,
Apr 22, 2022, 4:07:38 PM4/22/22
to UniMRCP
Hi 
1.there is no need to deploy anything in unimrcp server side for  SRGS    grammar. So you can find additional information by refering this link https://www.w3.org/TR/speech-grammar/
2.project-id is  ID associated to the corresponding Dialogflow agent. So you must create project in google cloud console to use dialogflow or bind dialogflow to any project otherwise you can't use gdf
if you want to use srgs external grammar you must set src to path of this grammar
              <grammar src="your path"/>

if you want to use srgs grammar in vxml you only need to write grammar in grammar tag inside <field> element  in vxml.

Thanks


Karthi Keyan

unread,
Apr 22, 2022, 6:41:51 PM4/22/22
to UniMRCP
Hi Kocharyan,
   Thanks for the  immediate response.
 In Vxml code , I am using External grammar ,How to define the path?

Anything i need to pass as query parameters in the path.

My External grammar is located in C:/usr/Project folder. Can i give simply this path in src (or) i need to pass project ID as a query string.

  <grammar src="C:/usr/Project"/>   -- i mentioned only grammar path

<grammar src="C:/usr/Project?projectid=3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb>  -- I mentioned grammar path and GDF project ID.

In the above two examples ,which one is correct.

Another question, How this VXML and GRXML is communicated by uniMRCP ?

Can you please clarify me this communication / Architecture part.


In the below example , I have mentioned external grammar and added two <meta> tags. These tags are correct ? Or i need to add anything specific to UniMRCP. Please clarify me.

<?xml version="1.0" encoding="UTF-8"?>
<grammar mode="voice" root=" names  " version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar">
<meta name="scope" content="builtin"/>
<meta name="projectid" content="3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb"/>




Thanks
Karthik

Arsen Chaloyan

unread,
Apr 23, 2022, 1:50:42 PM4/23/22
to UniMRCP
Hi Karthic,

To start off, no specific configuration is required to make Genesys PureConnect and/or Engage (GVP)  work with UniMRCP Server. All you basically need is to add the UniMRCP Server (IP address and port 8060) as an ASR and/or TTS resource for Genesys.

Now, narrowing down the scope, when it comes to the use of UniMRCP with Google Dialogflow, you may need to specify some Dialogflow parameters in your VoiceXML application running on Genesys. There are a few alternate ways of specifying those parameters:
  • MRCP header field Vendor-Specific-Parameters
  • query attributes to built-in grammar
  • meta parameters in SRGS XML grammar
All the above options can be used interchangeably in most of the cases, regardless of the actual integration.

You may get started with the following application:


--
You received this message because you are subscribed to the Google Groups "UniMRCP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unimrcp+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unimrcp/618a6f36-6a22-473e-baac-6ed099517189n%40googlegroups.com.


--
Arsen Chaloyan
Author of UniMRCP
http://www.unimrcp.org

Karthi Keyan

unread,
Apr 25, 2022, 4:05:29 PM4/25/22
to UniMRCP
Hi Arsen,
   Thanks for your response. I have attached my VXML,GRXML and UniMRCP logs in the zip file. Whenever I called External GRXML from VXML , I am getting Completion-Cause: 004 grammar-load-failure . We are using Genesys Voice platform (GVP) and GDF. Not able to attach it , so copy pasted the log and code.. We are using MRCPv2

External Grammar :

<?xml version="1.0" encoding="UTF-8"?>
<grammar mode="voice" root="hello" version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar">
<meta name="scope" content="strict"/>
<meta name="enable" content="true"/>
<meta name="language" content="en-US"/>
<meta name="speech-complete" content="true"/>
<meta name="project-id" content="3c5188cc-baee-4c37-94ca-e4ae2ae6e5fb"/>
  <rule id="hello">

    <one-of>
      <item>call Steve</item>
      <item>call John</item>
      <item>dial 5</item>
      <item>dial 6</item>
      <item>correct</item>
      <item>Yes</item>
    </one-of>
  </rule>
</grammar>



VXML Code :

<?xml version="1.0" encoding="utf-8"?>
<vxml version="2.1" xml:lang="en-US"
        xmlns="http://www.w3.org/2001/vxml"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:gvp="http://www.genesyslab.com/2006/vxml21-extension" application="../src/ComposerRoot.vxml">

   
    <!-- VXML code generated by Composer 8.1.510.12 -->
    <!-- Diagram created by Composer: Composer 8.1.510.12 -->
    <!-- Project version: 8.1.510.12 -->
    <!-- Diagram version: 1.0 CreatedOn:  -->
    <!-- Application Author:  -->
    <!-- Release Mode: false -->

    <!-- Global Scripts includes -->
    <script src="../include/common.js" />
    <script src="../include/ctic.js" />
    <script src="../include/json.js" />
    <script src="../include/DataAccess.js" />

    <!-- Global Vars declarations -->
    <script>
        var AppState = new Object();
        AppState.System = new Object();
        AppState.System.RetainInputTypeVariableDefaultValue = false;
        AppState.CallUUID = session.connection.uuid;
        AppState.ANI = getANI();
        AppState.DNIS = getDNIS();
        AppState.USE_LCASE_USERDATAKEY = initSystemTypeVariable('USE_LCASE_USERDATAKEY',0);
         
          if (session.connection.protocol.sip.headers != undefined &amp;&amp;
                session.connection.protocol.sip.headers['x-genesys-gvp-session-id']){
            AppState.GVPSessionID = session.connection.protocol.sip.headers['x-genesys-gvp-session-id'];
        } else {
            AppState.GVPSessionID = 'undefined';
        }
             
       
        AppState.APP_ASR_LANGUAGE = initSystemTypeVariable('APP_ASR_LANGUAGE','en-US');
        AppState.APP_LANGUAGE = initSystemTypeVariable('APP_LANGUAGE','en-US');
        AppState.APP_OPM = initSystemTypeVariable('APP_OPM',eval('('+session.connection.protocol.sip.requesturi['parameters']+')'));
        AppState.canBargein = true;
        AppState.completeTimeout = '1s';
        AppState.COMPOSER_WSSTUBBING = initSystemTypeVariable('COMPOSER_WSSTUBBING','0');
        AppState.confidenceLevel = '0.5';
        AppState.contentType = session.connection.protocol.sip.headers['Content-Type'];
        AppState.DTFMGrammar = 'builtin:dtmf/digits';
        AppState.EnableFCR = initSystemTypeVariable('EnableFCR',true);
        AppState.EnableReports = initSystemTypeVariable('EnableReports',false);
        AppState.EnableSNMP = initSystemTypeVariable('EnableSNMP',false);
        AppState.external = '';
        AppState.GRAMMARFILEDIR = initSystemTypeVariable('GRAMMARFILEDIR','../Resources/Grammars');
        AppState.incompleteTimeout = '1s';
        AppState.interdigitTimeout = '3s';
        AppState.LAST_EVENT_ELEMENT = initSystemTypeVariable('LAST_EVENT_ELEMENT','undefined');
        AppState.LAST_EVENT_LINE = initSystemTypeVariable('LAST_EVENT_LINE','undefined');
        AppState.LAST_EVENT_MSG = initSystemTypeVariable('LAST_EVENT_MSG','undefined');
        AppState.LAST_EVENT_NAME = initSystemTypeVariable('LAST_EVENT_NAME','undefined');
        AppState.LAST_EVENT_URL = initSystemTypeVariable('LAST_EVENT_URL','undefined');
        AppState.maxSpeechTimout = '60s';
        AppState.OCS_Record = initSystemTypeVariable('OCS_Record',getCallflowOCSRecord());
        AppState.OCS_RecordURI = initSystemTypeVariable('OCS_RecordURI',getCallflowRecordURI());
        AppState.OCS_URI = initSystemTypeVariable('OCS_URI',getCallflowOCSURI());
        AppState.output = '';
        AppState.PREV_APP_ASR_LANGUAGE = initSystemTypeVariable('PREV_APP_ASR_LANGUAGE','undefined');
        AppState.PREV_APP_LANGUAGE = initSystemTypeVariable('PREV_APP_LANGUAGE','undefined');
        AppState.Result_Out = undefined;
        AppState.SCRIPTSDIR = initSystemTypeVariable('SCRIPTSDIR','../Scripts');
        AppState.timeOut = '10s';
        AppState.VoiceGrammar = 'builtin:speech/boolean?enable=true';
        AppState.VOXFILEDIR = initSystemTypeVariable('VOXFILEDIR','../Resources/Prompts');
        AppState.InputKB$ = new Object();
    </script>

       
    <!-- Global Scripts -->
    <script srcexpr="AppState.VOXFILEDIR + '/PromptSwitch.js'" />
    <script srcexpr="AppState.VOXFILEDIR + '/en-US/en-US.js'" />
    <script>var f = new Format();</script>

   
    <script srcexpr="AppState.VOXFILEDIR + '/en-US/customprompts.js'" />
   
   
    <!-- Global Properties declarations -->
    <property name="com.genesyslab.logtoasr" value="false" />
    <property name="com.genesyslab.ttsengine" value="GTTS" />
       
    <property name="com.genesyslab.asrengine" value="unimrcpgsr" />
       
    <property name="com.genesyslab.loglevel" value="5" />

    <!-- Metadata information -->
    <meta name="com.genesyslab.studio.resourcePath" content="/Callflows/Main.callflow"/>

    <!-- Global links -->
    <form>
        <block>
            <log expr="'Running Main workflow.'"/>
            <log expr="'Code Generated by Composer: 8.1.510.12.'"/>
            <log expr="'Diagram created/upgraded by Composer: Composer 8.1.510.12.'"/>
            <log expr="'Project version: 8.1.510.12.'"/>
            <log expr="'Diagram version: 1.0 CreatedOn: .'"/>
            <goto next="#SpeechEntry" />
        </block>
    </form>
    <!-- This is the Entry block -->
    <form id="SpeechEntry">
        <block name="Entry">
            <goto next="#PromptKB" />
        </block>
    </form>    
   
    <catch event="connection.disconnect.hangup">
        <assign name="AppState.LAST_EVENT_ELEMENT" expr="_element"/>
        <assign name="AppState.LAST_EVENT_MSG" expr="_message"/>
        <assign name="AppState.LAST_EVENT_NAME" expr="_event"/>
        <assign name="AppState.LAST_EVENT_LINE" expr="_line"/>
        <assign name="AppState.LAST_EVENT_URL" expr="_url"/>
        <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#PromptError" />
    </catch>
    <catch event="error.badfetch.grammar.load">
        <assign name="AppState.LAST_EVENT_ELEMENT" expr="_element"/>
        <assign name="AppState.LAST_EVENT_MSG" expr="_message"/>
        <assign name="AppState.LAST_EVENT_NAME" expr="_event"/>
        <assign name="AppState.LAST_EVENT_LINE" expr="_line"/>
        <assign name="AppState.LAST_EVENT_URL" expr="_url"/>
        <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#Prompt2" />
    </catch>
    <catch event="error.badfetch.grammar.uri">
        <assign name="AppState.LAST_EVENT_ELEMENT" expr="_element"/>
        <assign name="AppState.LAST_EVENT_MSG" expr="_message"/>
        <assign name="AppState.LAST_EVENT_NAME" expr="_event"/>
        <assign name="AppState.LAST_EVENT_LINE" expr="_line"/>
        <assign name="AppState.LAST_EVENT_URL" expr="_url"/>
        <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#Prompt2" />
    </catch>
    <catch event="error">
        <assign name="AppState.LAST_EVENT_ELEMENT" expr="_element"/>
        <assign name="AppState.LAST_EVENT_MSG" expr="_message"/>
        <assign name="AppState.LAST_EVENT_NAME" expr="_event"/>
        <assign name="AppState.LAST_EVENT_LINE" expr="_line"/>
        <assign name="AppState.LAST_EVENT_URL" expr="_url"/>
        <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#PromptError" />
    </catch>
    <catch event=".">
        <assign name="AppState.LAST_EVENT_ELEMENT" expr="_element"/>
        <assign name="AppState.LAST_EVENT_MSG" expr="_message"/>
        <assign name="AppState.LAST_EVENT_NAME" expr="_event"/>
        <assign name="AppState.LAST_EVENT_LINE" expr="_line"/>
        <assign name="AppState.LAST_EVENT_URL" expr="_url"/>
        <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#PromptError" />
    </catch>    
   

    <!-- This is the Exit block -->
    <form id="Exit1">
        <block>
            <exit/>
          </block>
    </form>

    <!-- This is the Prompt block -->
    <form id="PromptKB">
       
        <block name="PromptKBP0">
              <prompt bargein="true"  gvp:langexpr="AppState.APP_LANGUAGE">
                <audio expr="AppState.VOXFILEDIR + '/' + AppState.APP_LANGUAGE + '/' + 'months/01.vox'">Thanks for calling</audio>
            </prompt>
        </block>
        <block>
            <goto next="#InputKB" />
        </block>
    </form>

    <!-- This is the Prompt block -->
    <form id="Prompt2KN">
       
        <block name="Prompt2KNP0">
              <prompt bargein="true"  gvp:langexpr="AppState.APP_LANGUAGE">
                You Entered
                <value expr="AppState.Result_Out" />
            </prompt>
        </block>
        <block>
            <goto next="#Exit1" />
        </block>
    </form>

    <!-- This is the Prompt block -->
    <form id="PromptError">
       
        <block name="PromptErrorP0">
              <prompt bargein="true"  gvp:langexpr="AppState.APP_LANGUAGE">
                <audio expr="AppState.VOXFILEDIR + '/' + AppState.APP_LANGUAGE + '/' + 'Goodbye.wav'"></audio>
                <value expr="AppState.LAST_EVENT_NAME + AppState.LAST_EVENT_MSG" />
            </prompt>
        </block>
        <block>
            <goto next="#Exit1" />
        </block>
    </form>

    <!-- This is the Input block -->

    <form id="InputKB">
        <property name="inputmodes" value="voice" />
        <property name="bargein" value="true" />
        <block name="InputKBP0">
              <prompt gvp:langexpr="AppState.APP_LANGUAGE">
                Thanks for calling, Please say or enter your mail id.
            </prompt>
        </block>
       
       
        <field name="InputKBField" slot="InputKB">
              <grammar mode="voice" src="../Resources/Grammars/en-US/ExternalGrammar.grxml" />

            <property name="interdigittimeout" value="3s"/>
            <property name="termchar" value="#" />
            <property name="timeout" gvp:expr="AppState.timeOut"/>
        </field>
        <filled mode="all" namelist="InputKBField">
            <assign name="AppState.Result_Out" expr="InputKBField" />
            <assign name="AppState.InputKB$" expr="InputKBField$" />
           
            <goto next="#Prompt2KN" />
        </filled>
           
        <catch event="noinput" count="1">
        <prompt bargein="true" gvp:langexpr="AppState.APP_LANGUAGE">
                Say it again your mail id
          </prompt>
          </catch>
           
        <catch event="nomatch" count="1">
        <prompt bargein="true" gvp:langexpr="AppState.APP_LANGUAGE">
                Say it again your mail id
          </prompt>
          </catch>
        <catch event="noinput" count="2">
              <throw event="com.genesyslab.composer.toomanynoinputs" message="exceeded the number of noinput retries" />
          </catch>
        <catch event="nomatch" count="2">
              <throw event="com.genesyslab.composer.toomanynomatches" message="exceeded the number of nomatch retries" />
          </catch>
        <catch event="com.genesyslab.composer.toomanynoinputs">
            <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#Prompt1" />
        </catch>
        <catch event="com.genesyslab.composer.toomanynomatches">
            <script>storeCallflowException(_element, _message, _event, _line, _url)</script>  
            <goto next="#Prompt1" />
        </catch>
    </form>

    <!-- This is the Prompt block -->
    <form id="Prompt1">
       
        <block name="Prompt1P0">
              <prompt bargein="true"  gvp:langexpr="AppState.APP_LANGUAGE">
                Prompt Data
                <value expr="AppState.LAST_EVENT_MSG" />
            </prompt>
        </block>
        <block>
            <goto next="#Exit1" />
        </block>
    </form>

    <!-- This is the Prompt block -->
    <form id="Prompt2">
       
        <block name="Prompt2P0">
              <prompt bargein="true"  gvp:langexpr="AppState.APP_LANGUAGE">
                Error Message
                <value expr="AppState.LAST_EVENT_MSG +&quot;Name&quot;+AppState.LAST_EVENT_NAME +&quot;URL&quot;+AppState.LAST_EVENT_URL" />
            </prompt>
        </block>
        <block>
            <goto next="#Exit1" />
        </block>
    </form>

</vxml>


UniMRCP Log:

2022-04-25 18:42:18:465314 [INFO]   Receive SIP Event [nua_i_invite] Status 100 Trying [SIP-Agent-1]
2022-04-25 18:42:18:465347 [INFO]   Receive SIP Event [nua_i_state] Status 100 Trying [SIP-Agent-1]
2022-04-25 18:42:18:465353 [NOTICE] SIP Call State  [received]
2022-04-25 18:42:18:465368 [INFO]   Create Session 0x7f4ff4001dd8 <new> [uni2]
2022-04-25 18:42:18:465375 [INFO]   Remote SDP 0x7f4ff4001dd8 <new>
v=0
o=- 257 1 IN IP4 10.24.86.21
s=GVP MrcpV2 Client
c=IN IP4 10.24.86.21
m=application 9 TCP/MRCPv2 1
a=setup:active
a=connection:existing
a=resource:speechrecog
a=cmid:1
m=audio 45536 RTP/AVP 0 101
a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendonly
a=mid:1

2022-04-25 18:42:18:465558 [NOTICE] Add Session <ca214a3db7fd4307>
2022-04-25 18:42:18:465571 [INFO]   Receive Offer 0x7f4ff4001dd8 <ca214a3db7fd4307> [c:1 a:1 v:0]
2022-04-25 18:42:18:465592 [INFO]   Found MRCP Engine [GSR-1] for Resource [speechrecog] 0x7f4ff4001dd8 <ca214a3db7fd4307>
2022-04-25 18:42:18:465663 [INFO]   Add Pending Control Channel <ca214a3db7fd4307@speechrecog> [1]
2022-04-25 18:42:18:474626 [INFO]   Enable RTP Session 10.139.0.24:5002
2022-04-25 18:42:18:474668 [INFO]   Open RTP Receiver 10.139.0.24:5002 <- 10.24.86.21:45536 playout [50 ms] bounds [0 - 600 ms] adaptive [1] skew detection [1]
2022-04-25 18:42:18:474680 [INFO]   Media Path 0x7f4ff4001dd8 Source->[PCMU/8000/1]->Decoder->[LPCM/8000/1]->Bridge->[LPCM/8000/1]->Sink
2022-04-25 18:42:18:474748 [INFO]   Open <ca214a3db7fd4307@gsr>
2022-04-25 18:42:18:474762 [NOTICE] GSR Usage: 1/1/5
2022-04-25 18:42:18:474798 [INFO]   Send Answer 0x7f4ff4001dd8 <ca214a3db7fd4307> [c:1 a:1 v:0] Status OK
2022-04-25 18:42:18:474813 [INFO]   Local SDP 0x7f4ff4001dd8 <ca214a3db7fd4307>
v=0
o=UniMRCPServer 0 0 IN IP4 10.139.0.24
s=-
c=IN IP4 10.139.0.24
t=0 0
m=application 1544 TCP/MRCPv2 1
a=setup:passive
a=connection:existing
a=channel:ca214a3db7fd4307@speechrecog
a=cmid:1
m=audio 5002 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
a=mid:1

2022-04-25 18:42:18:475103 [INFO]   Receive SIP Event [nua_i_state] Status 200 OK [SIP-Agent-1]
2022-04-25 18:42:18:475117 [NOTICE] SIP Call State 0x7f4ff4001dd8 [completed]
2022-04-25 18:42:18:482418 [INFO]   Receive SIP Event [nua_i_ack] Status 200 OK [SIP-Agent-1]
2022-04-25 18:42:18:482440 [INFO]   Receive SIP Event [nua_i_state] Status 200 OK [SIP-Agent-1]
2022-04-25 18:42:18:482445 [NOTICE] SIP Call State 0x7f4ff4001dd8 [ready]
2022-04-25 18:42:18:482449 [INFO]   Receive SIP Event [nua_i_active] Status 200 Call active [SIP-Agent-1]
2022-04-25 18:42:18:484127 [NOTICE] Accepted TCP/MRCPv2 Connection 10.139.0.24:1544 <-> 10.24.86.21:12074
2022-04-25 18:42:18:506557 [INFO]   Receive MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [334 bytes]
MRCP/2.0 334 SET-PARAMS 2
Channel-Identifier:ca214a3db7fd4307@speechrecog
Speech-Language: en-US
Confidence-Threshold: 0.500000
Sensitivity-Level: 0.500000
Speed-Vs-Accuracy: 0.500000
N-Best-List-Length: 1
No-Input-Timeout: 86400000
Recognition-Timeout: 60000
Speech-Complete-Timeout: 400
Speech-Incomplete-Timeout: 1000


2022-04-25 18:42:18:506595 [INFO]   Assign Control Channel <ca214a3db7fd4307@speechrecog> to Connection 10.139.0.24:1544 <-> 10.24.86.21:12074 [0] -> [1]
2022-04-25 18:42:18:506629 [INFO]   Process SET-PARAMS Request <ca214a3db7fd4307@speechrecog> [2]
2022-04-25 18:42:18:506708 [INFO]   Process SET-PARAMS Response <ca214a3db7fd4307@speechrecog> [2]
2022-04-25 18:42:18:506756 [INFO]   Send MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [80 bytes]
MRCP/2.0 80 2 200 COMPLETE
Channel-Identifier: ca214a3db7fd4307@speechrecog


2022-04-25 18:42:18:507884 [INFO]   Receive MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [323 bytes]
MRCP/2.0 323 DEFINE-GRAMMAR 4
Channel-Identifier:ca214a3db7fd4307@speechrecog
Content-Type: text/uri-list
Content-Id: 0x000001ea
Fetch-Timeout: 30000
Cache-Control: max-stale=0
Speech-Language: en-US
Content-Length: 94

http://lapca8lnwtn2.corp.suth.com:8080/MainFlow/Resources/Grammars/en-US/ExternalGrammar.grxml
2022-04-25 18:42:18:507935 [INFO]   Process DEFINE-GRAMMAR Request <ca214a3db7fd4307@speechrecog> [4]
2022-04-25 18:42:18:507984 [WARN]   Unsupported Grammar Format [http://lapca8lnwtn2.corp.suth.com:8080/MainFlow/Resources/Grammars/en-US/ExternalGrammar.grxml] <ca214a3db7fd4307@gsr>
2022-04-25 18:42:18:508011 [INFO]   Process DEFINE-GRAMMAR Response <ca214a3db7fd4307@speechrecog> [4]
2022-04-25 18:42:18:508056 [INFO]   Send MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [112 bytes]
MRCP/2.0 112 4 200 COMPLETE
Channel-Identifier: ca214a3db7fd4307@speechrecog
Completion-Cause: 000 success


2022-04-25 18:42:18:578402 [INFO]   Receive MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [475 bytes]
MRCP/2.0 475 RECOGNIZE 5
Channel-Identifier:ca214a3db7fd4307@speechrecog
Content-Type: text/uri-list
Speech-Language: en-US
Confidence-Threshold: 0.500000
Sensitivity-Level: 0.500000
Speed-Vs-Accuracy: 0.500000
N-Best-List-Length: 1
Recognition-Timeout: 60000
Start-Input-Timers: false
Speech-Complete-Timeout: 400
Speech-Incomplete-Timeout: 1000
Recognition-Mode: normal
Cancel-If-Queue: true
Clear-Dtmf-Buffer: true
Content-Length: 20

session:0x000001ea

2022-04-25 18:42:18:578471 [INFO]   Process RECOGNIZE Request <ca214a3db7fd4307@speechrecog> [5]
2022-04-25 18:42:18:578561 [WARN]   No Such Session Grammar [0x000001ea] <ca214a3db7fd4307@gsr>
2022-04-25 18:42:18:578595 [INFO]   Process RECOGNIZE Response <ca214a3db7fd4307@speechrecog> [5]
2022-04-25 18:42:18:578639 [INFO]   Send MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [125 bytes]
MRCP/2.0 125 5 404 COMPLETE
Channel-Identifier: ca214a3db7fd4307@speechrecog
Completion-Cause: 004 grammar-load-failure



2022-04-25 18:42:18:590243 [INFO]   Receive MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [71 bytes]
MRCP/2.0 71 STOP 6
Channel-Identifier:ca214a3db7fd4307@speechrecog


2022-04-25 18:42:18:590303 [INFO]   Process STOP Request <ca214a3db7fd4307@speechrecog> [6]
2022-04-25 18:42:18:590348 [INFO]   Send MRCPv2 Data 10.139.0.24:1544 <-> 10.24.86.21:12074 [80 bytes]
MRCP/2.0 80 6 200 COMPLETE
Channel-Identifier: ca214a3db7fd4307@speechrecog


2022-04-25 18:42:18:602452 [INFO]   Receive SIP Event [nua_i_bye] Status 200 Session Terminated [SIP-Agent-1]
2022-04-25 18:42:18:602473 [INFO]   Receive SIP Event [nua_i_state] Status 200 Session Terminated [SIP-Agent-1]
2022-04-25 18:42:18:602481 [NOTICE] SIP Call State 0x7f4ff4001dd8 [terminated]
2022-04-25 18:42:18:602494 [INFO]   Receive SIP Event [nua_i_terminated] Status 200 Session Terminated [SIP-Agent-1]
2022-04-25 18:42:18:602499 [INFO]   Deactivate Session 0x7f4ff4001dd8 <ca214a3db7fd4307>
2022-04-25 18:42:18:602510 [INFO]   Terminate Session 0x7f4ff4001dd8 <ca214a3db7fd4307>
2022-04-25 18:42:18:602544 [INFO]   Close <ca214a3db7fd4307@gsr>
2022-04-25 18:42:18:602552 [INFO]   Remove Control Channel <ca214a3db7fd4307@speechrecog> [0]
2022-04-25 18:42:18:602554 [NOTICE] GSR Usage: 0/1/5
2022-04-25 18:42:18:604548 [INFO]   Close RTP Receiver 10.139.0.24:5002 <- 10.24.86.21:45536 [r:0 l:0 j:0 p:50 d:0 i:0]
2022-04-25 18:42:18:604561 [INFO]   Remove RTP Session 10.139.0.24:5002
2022-04-25 18:42:18:604612 [NOTICE] Remove Session <ca214a3db7fd4307>
2022-04-25 18:42:18:604619 [INFO]   Session Terminated 0x7f4ff4001dd8 <ca214a3db7fd4307>
2022-04-25 18:42:18:604636 [NOTICE] Destroy Session <ca214a3db7fd4307>
2022-04-25 18:42:41:975692 [INFO]   Receive SIP Event [nua_i_options] Status 100 Trying [SIP-Agent-1]
2022-04-25 18:42:41:975728 [INFO]   Resource Discovery SDP
[v=0
o=UniMRCPServer 0 0 IN IP4 10.139.0.24
s=-
c=IN IP4 10.139.0.24
t=0 0
m=application 0 TCP/MRCPv2 1
a=resource:speechsynth
a=resource:speechrecog
m=audio 0 RTP/AVP 0 8 96 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
a=rtpmap:101 telephone-event/8000
]

2022-04-25 18:42:45:972574 [INFO]   Receive SIP Event [nua_i_options] Status 100 Trying [SIP-Agent-1]
2022-04-25 18:42:45:972609 [INFO]   Resource Discovery SDP
[v=0
o=UniMRCPServer 0 0 IN IP4 10.139.0.24
s=-
c=IN IP4 10.139.0.24
t=0 0
m=application 0 TCP/MRCPv2 1
a=resource:speechsynth
a=resource:speechrecog
m=audio 0 RTP/AVP 0 8 96 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 L16/8000
a=rtpmap:101 telephone-event/8000
]

2022-04-25 18:42:55:548412 [




Thanks
Karthik

Arsen Chaloyan

unread,
May 3, 2022, 6:24:50 PM5/3/22
to UniMRCP
Hi Karthik,

HTTP grammar reference is currently not supported. You should use either a built-in or an inline SRGS XML grammar in your VXML.

For example:
      <grammar src="builtin:grammar/transcribe"/>
or
      <grammar mode="voice" root="transcribe" type="application/srgs+xml">

        <meta name="scope" content="builtin"/>
        <rule id="transcribe">
          <one-of><item>blank</item></one-of>
        </rule>
      </grammar>

Reply all
Reply to author
Forward
0 new messages