[MEDIACTRL] msc-ivr XSD not allowing to use an inlined custom grammar

Jean-Francois Bertrand <jeffy@broadsoft.com> Fri, 23 July 2010 18:14 UTC

Return-Path: <jeffy@broadsoft.com>
X-Original-To: mediactrl@core3.amsl.com
Delivered-To: mediactrl@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id B7CAC3A6A66 for <mediactrl@core3.amsl.com>; Fri, 23 Jul 2010 11:14:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.002
X-Spam-Level:
X-Spam-Status: No, score=0.002 tagged_above=-999 required=5 tests=[BAYES_50=0.001, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id L2-AnroYkxY7 for <mediactrl@core3.amsl.com>; Fri, 23 Jul 2010 11:13:59 -0700 (PDT)
Received: from smtp-out01.seaservers.net (smtp-out01.seaservers.net [72.37.232.66]) by core3.amsl.com (Postfix) with ESMTP id D71143A6A81 for <mediactrl@ietf.org>; Fri, 23 Jul 2010 11:13:06 -0700 (PDT)
Received: from EXMBXCLUS01.citservers.local ([fe80::a488:d1ec:a706:3a6d]) by CASUMHUB02.citservers.local ([::1]) with mapi; Fri, 23 Jul 2010 11:13:25 -0700
From: Jean-Francois Bertrand <jeffy@broadsoft.com>
To: "mediactrl@ietf.org" <mediactrl@ietf.org>
Date: Fri, 23 Jul 2010 11:12:10 -0700
Thread-Topic: msc-ivr XSD not allowing to use an inlined custom grammar
Thread-Index: AcsqkpHEsUYAxTzmS4CC2ODaxQBghA==
Message-ID: <D64134C7765B58448BEF1C5E0B4BBB1514AB216ACA@EXMBXCLUS01.citservers.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-cr-hashedpuzzle: AZKC Aa+X AsjO A3hT BUm2 CC2F Cf/4 DRNt Fa8B Fo1G Gr73 J+eM KamW Kotw KwWd LTxJ; 1; bQBlAGQAaQBhAGMAdAByAGwAQABpAGUAdABmAC4AbwByAGcA; Sosha1_v1; 7; {894F8DB7-AFCD-4CF6-8C1C-7FF51FC94DFF}; agBlAGYAZgB5AEAAYgByAG8AYQBkAHMAbwBmAHQALgBjAG8AbQA=; Fri, 23 Jul 2010 18:12:10 GMT; bQBzAGMALQBpAHYAcgAgAFgAUwBEACAAbgBvAHQAIABhAGwAbABvAHcAaQBuAGcAIAB0AG8AIAB1AHMAZQAgAGEAbgAgAGkAbgBsAGkAbgBlAGQAIABjAHUAcwB0AG8AbQAgAGcAcgBhAG0AbQBhAHIA
x-cr-puzzleid: {894F8DB7-AFCD-4CF6-8C1C-7FF51FC94DFF}
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_D64134C7765B58448BEF1C5E0B4BBB1514AB216ACAEXMBXCLUS01ci_"
MIME-Version: 1.0
Subject: [MEDIACTRL] msc-ivr XSD not allowing to use an inlined custom grammar
X-BeenThere: mediactrl@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Media Control WG Discussion List <mediactrl.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/mediactrl>, <mailto:mediactrl-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mediactrl>
List-Post: <mailto:mediactrl@ietf.org>
List-Help: <mailto:mediactrl-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mediactrl>, <mailto:mediactrl-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Jul 2010 18:14:01 -0000

Our MediaServer support the digitmap grammar, as defined by MSCML-04f.  An application Server should be able to use this custom grammar by sending a message like this:

<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
       <dialogstart dialogid="1:1864798348" connectionid="1:1864798348">
              <dialog repeatDur="10s" repeatCount="10">
                     <prompt>
                           <media loc="file:///var/www/media/en/SomeMessagePart1.wav"/>
                           <media loc="file:///var/www/media/en/SomeMessagePart2.wav"/>
                     </prompt>
                     <collect cleardigitbuffer="false" timeout="86400000ms" termchar="" interdigittimeout="5000ms">
                          <grammar type="application/mgcp-digitmap">(*|*[0-9])</grammar>
                     </collect>
              </dialog>
       </dialogstart>
</mscivr>


Note that 'type' is used to specify the mimetype of the inline grammar, in this case we are using application/mgcp-digitmap.

When performing a strict XSD validation, our Media Server ends up responding with the following:

<mscivr version="1.0" xmlns="urn:ietf:params:xml:ns:msc-ivr">
  <response status="400" dialogid=""
            reason="error: message:'value '' does not match regular expression facet '[0-9#*A-D]''
line:9
column:119
publicId:unknown
systemId:localhost
"/>
</mscivr>


With strict XSD validation, xerces-c complains that the grammar does not match the regular expression facet '[0-9#*A-D]'.  XSD validation also fails when enclosing the grammar with a CDATA section.   When a custom grammar is specified, the XSD should not attempt to parse the inlined grammar.

The msc-ivr XSD should be updated so that it does not attempt to validate a custom inlined grammar.

Jean-François Bertrand
Sr. Software Designer| BroadSoft, Inc.