現在、GRXML文法でNuance OSDMを使用するVXML 2.0アプリを開発中です。Nuance OSDMで日付入力時に「*を押してキャンセル」しますか?
私たちのプロンプトでは、発信者に生年月日を入力するよう求めていますが、手元にない場合は「キャンセル」とかアスタリスクを押してもかまいません。それは、日付OSDMです。私は、「キャンセル」やスピーチとDTMFエントリのアスタリスクを処理するために、追加のコマンド文法を追加しました。
「キャンセル」と表示されます。日付文法がバイパスされ、コマンド文法が有効になり、期待どおりにコードが実行されます。しかし、アスタリスクは別の話です。デバッグコールを実行して電話機のアスタリスクキーを押すと、ノマッチとして処理されます。 OSDMハンドブックを参照すると、Nuance Date OSDMのDTMFエントリは、組み込みのDTMF数字文法(2〜8桁の範囲)で実行されているようです。 "parallelgrammarが指定されている場合、OSDMはDTMF入力をDTMF収集文法と並列文法の両方に一致させます。DTMF文字が両方の文法に一致する場合、parallelgrammarの一致が返されます。
だから、私は桁の文法が焼き-に終了文字として「*」があることを考えていて、それが唯一の「#」は、終端文字することができ、私の明示的な宣言をオーバーライドだ:私は
- をアスタリスクを押します。
- DTMF数字文法が有効になります。
- アスタリスクが用語文字であり、他の入力が行われなかったため、DTMF数字文法の結果は空白になります。
- 空白は、長さが2〜8桁であるため、OOGです。
- Nomatchが返されます。
OSDMを使用しているため、私たちのアプリケーションがイベントロギングを行う上で非常に重要です。しかし、私はアスタリスクに応答して創造的になることができます。
アスタリスクを有効な入力としてカウントし、カスタムコマンド文法に達しているか、OSDMへの呼び出しをバイパスして自分で処理する方法がありますか?