2016-03-29 11 views
0

Uzun zamandır lurker, ilk kez asker. Bu görev nispeten basit görünüyor: bir metin belgesini değiştirmek için bir komut dosyasını tetikleyecek bir VoiceXML dokümanı oluşturun ve daha sonra sözlü komutlarla bir oyun çalıştırın.VoiceXML <submit> etiketi php üzerinde bir derleme hatası atıyor

İlgili 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> 

5 koşullar toplam if/else etiketleri ilk baştaki bir altına vardır. Telefon numarası aranırsa, komutunuzu vermenizi ister, doğru koşullu branşmana gider ve tank.php belgesinin "derlenemeyeceğini" belirtir ve bağlantıyı keser. trick, metin dosyasının bu sözlü komutla gerçekten değiştirilmiş olması ve php'nin düzgün çalıştığıdır. 'Gönder' etiketini çıkardığımda, belge hata alamaz. Sebep ne olursa olsun, bu 'derleme hatası', php'in voiceXML formunun zamanından önce kesilmesine neden oluyor gibi görünüyor.

Komple php belge:

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

ben 5 saat boyunca bu özel konuda çalışıyoruz. Öneriniz aklımı koruyabilir.

cevap

0

Çözünürlük!

Voxeo (kullandığım hizmet), sesli komutlardan daha kapsamlı bir hata ayıklayıcı sunar. Tanrıya şükür.

O (tam içeriği önemli değildir) önemli olan

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> 

beklediğim gibi çünkü bu hata Postman veya PHP hataları üzerinden gösterilmesini değildi olmasıdır böyle bana bazı şeyler attı php'nin kendisi problem değildi ama vxml'nin yorumladığı yol buydu. Php betiği etrafında 'vxml' etiketlerini atmak (.php sonunu korumak) ve program% 100 mutludur ve iki satırlık bir değişim bulmak için yaklaşık 9 saat harcadım.

Bu bir başkasına yardımcı olabilir, şerefe!

Yeni 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

"Gönder" geçerli bir VoiceXML belge için bir istek olduğu; the official specification'a bakın. Dokümanın etrafına "vxml" etiketlerini koyarak, tercümanın okuyabileceği ve yorumlayabileceği yeterince yasal bir VoiceXML komut dosyası oluşturdunuz.

Şahsen, bu durum için, "data" tag available in VoiceXML 2.1 kullanıyor ve Voxeo tarafından destekleniyordum. En az bir XML belgesi döndürün; boşver; VoiceXML'inizi güzel, temiz ve iyi tanımlanmış bir çıkışla işlemeye devam edin.