2016-03-29 7 views
0

長時間のlurker、初めての質問者。この作業は比較的簡単です:VoiceXMLドキュメントを作成します。このドキュメントはテキストドキュメントを変更してスクリプトを起動して、口頭コマンドでゲームを実行します。VoiceXML <submit>タグphpでコンパイルエラーを投げるタグ

関連のVoiceXML:

<!--Encoding details--> 
<?xml version="1.0" encoding="UTF-8" ?> 
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml"> 

<if cond="command =='t1 go'"> 
    <submit next="tank.php?command=t1%20go" method="get" namelist="command"/> 
</if> 

場合/他のタグの最初の1以下の5つの条件の合計があります。 phone#が呼び出されると、コマンドを出すように求められますが、それは条件分岐に正しく行き、tank.phpドキュメントが "コンパイルできません"と断ち切ったことを示します。 トリックは、テキストファイルがこのverbalコマンドによって実際に変更され、phpがコンパイル/正常に実行されるということです。 「提出」タグを取り出すと、ドキュメントにエラーは発生しません。何らかの理由で、PHPからのこの 'コンパイルエラー'が、VoiceXMLフォームを途中で切断させているようです。

完全なPHPのドキュメント:

<?php 
    $myfile = fopen("gismoCommand.txt", "w") or die("Unable to open file!"); 
    $command = $_GET["command"]; 
    fwrite($myfile, $command); 
    fclose($myfile); 
?> 

私は5時間、この特定の問題に取り組んできました。あなたの提案は私の正気を救うことができます。

答えて

0

解決策!

Voxeo(私が使っているサービス)は、ボーカルコマンドよりも徹底的なデバッガを提供します。ああ、助かった。

ことが重要である何、このようなもの(正確な内容は重要ではありません)

TTS: Sorry, that content has an internal error. 
RTSP MESSAGE(o): ANNOUNCE rtsp://localhost:9974/synthesizer/ RTSP/1.0 Cseq: 11 Session: b5bdeff3d79236676847995d294d3445-9468 Content-Type: application/mrcp Content-Length: 649 SPEAK 946796007 MRCP/1.0 Kill-On-Barge-In: true Voice-Name: Allison-EnglishUS Speech-Language: en-us Vendor-Specific-Parameters: Voxeo-Resource="en-us.TTS.fc808afe12384bcb90415baee30fc0d7.Staging-Loquendo;plugin=vxttsloq7;speechLanguage=en-us;voiceName=Allison-EnglishUS;type=loquendo";Voxeo-Playback-Mode=VXML;Voxeo-Community-ID=f25af74e6f994e15ae7214ca83a2fcd9;Voxeo-Virtual-Platform=Staging-Loquendo;Voxeo-Site-ID=fc808afe12384bcb90415baee30fc0d7 Content-Type: application/synthesis+ssml Content-Length: 129 <?xml version="1.0" encoding="UTF-8"?> <speak version="1.0" xml:lang="en-us"> Sorry, that content has an internal error. </speak> 

このエラーは、私が予想ためとして、郵便配達やPHPのエラーを通って上に表示されなかったことである私を投げました、PHP自体は問題ではありませんでしたが、vxmlがそれを解釈する方法でした。 PHPスクリプトの前後に「vxml」タグを投げて(.phpの終わりを保ち)、プログラムは100%満足しています。私は2つの行の変更を見つけるのに苦労しました。

これが他の人に助けてくれることを願っています。

新しいPHP:

<vxml version="2.0"> 
<?php 
    $myfile = fopen("gismoCommand.txt", "w") or die("Unable to open file!"); 
    $command = $_GET["command"]; 
    fwrite($myfile, $command); 
    fclose($myfile); 
?> 
</vxml> 
0

"提出" は、有効なVoiceXMLドキュメントの要求です。 the official specificationを参照してください。ドキュメントの周りに "vxml"タグを置くことで、十分に有効なVoiceXMLスクリプトを作成して、インタプリタが読み、解釈できるようにしました。

個人的には、この場合、"data" tag available in VoiceXML 2.1を使用し、Voxeoのサポートを受けています。最小限のXML文書を返します。それを無視します;すばやくきれいで明確な出口でVoiceXMLの処理を続けます。