如何通过将xml发送到tropo托管脚本来使用tropo拨打电话? 这个php脚本应该使用curl将xml发布到另一个php脚本(托管@tropo)。然后,tropo托管的脚本应该使用xml来拨打电话。在下面的示例中,tropo调试器正在接收正确的信息,因为这样的消息显示在调试器中:
customerName:Kent is added into the context of app instance : ApplicationInstance[http://hosting.tropo.com/107029/www/ExternalPhoneHelper.php , sas_2-14-sm25ogjh4vlab5tropo]
这是将xml数据发送到tropo的curl php脚本:
$token = "mytoken";//removed actual token
$url = PhoneHelper::$TROPO_URL;
$xml = "
<session>
<token>" . $token . "</token>
<var name=\"action\" value=\"create\"/>
<var name=\"customerName\" value=\"Kent\" />
<var name=\"numberToDial\" value=\"##########\" />
<var name=\"msg\" value=\"XML Test\" />
</session>";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
echo curl_error($ch);
echo $output;
curl_close($ch);
接收脚本为空:
<?php
?>
如果应该使用call()和say()方法,我如何引用已发布的xml来获取numberToDial和msg?
这是调试器日志:
|-----------------------------------------------------------------------|
|00000|00-1|02:18:47 AM|Set logging context for http/0.0.0.0/8080-t-31 |
| | | |to accountID=107029 host=tropo203.orl.voxeo.net |
| | | |sessionGUID=-1 sessionNumber=-1 callID=-1 |
|-----------------------------------------------------------------------|
|00001|00-1|02:18:47 AM|Attempting to determine application type via |
| | | |tropo-engine URL parameter in myURL |
|-----------------------------------------------------------------------|
|00002|00-1|02:18:47 AM|Attempting to determine application type by |
| | | |requesting HEAD from |
| | | |myURL to get Content-Type header |
|-----------------------------------------------------------------------|
|00003|00-1|02:18:47 AM|Opened URLConnection |
|-----------------------------------------------------------------------|
|00004|00-1|02:18:47 AM|Connecting for HEAD |
|-----------------------------------------------------------------------|
|00005|00-1|02:18:47 AM|Got HEAD response |
|-----------------------------------------------------------------------|
|00006|00-1|02:18:47 AM|No Content-Type header provided by HEAD. |
|-----------------------------------------------------------------------|
|00007|00-1|02:18:47 AM|Attempting to determine application type based |
| | | |on file extension for myURL |
|-----------------------------------------------------------------------|
|00008|00-1|02:18:47 AM|Determined type=php from filename suffix |
|-----------------------------------------------------------------------|
|00009|00-1|02:18:47 AM|Trying to create application for URL=myURL |
|-----------------------------------------------------------------------|
|00010|00-1|02:18:47 AM|Tropo app dir is /tropo_app_home |
|-----------------------------------------------------------------------|
|00011|0000|02:18:47 AM|Set logging context for http/0.0.0.0/8080-t-31 |
| | | |to accountID=107029 host=tropo203.orl.voxeo.net |
| | | |sessionGUID=0 sessionNumber=0 callID=0 |
|-----------------------------------------------------------------------|
|00012|0000|02:18:47 AM|Application[myURL ver(1.0.56092) has been |
| | | |created. |
|-----------------------------------------------------------------------|
|00013|0000|02:18:47 AM|Found hosted Application[myURL ver(1.0.56092) |
| | | |[token=myToken] |
|-----------------------------------------------------------------------|
|00014|0000|02:18:47 AM|Set logging context for http/0.0.0.0/8080-t-31 |
| | | |to accountID=107029 host=tropo203.orl.voxeo.net |
| | | |sessionGUID=0 sessionNumber=0 callID=0 |
|-----------------------------------------------------------------------|
|00015|0000|02:18:47 AM|Application[myURL ver(1.0.56092) has been found.|
|-----------------------------------------------------------------------|
|00016|0000|02:18:47 AM|Set logging context for http/0.0.0.0/8080-t-31 |
| | | |to accountID=107029 host=tropo203.orl.voxeo.net |
| | | |sessionGUID=0 |
| | | |sessionNumber=a8f0ba032d2a377e8fdcc8b68d82c766 |
| | | |callID=0 |
|-----------------------------------------------------------------------|
|00017|0000|02:18:47 AM|Thread http/0.0.0.0/8080-t-31 acquired engine |
| | | |QuercusScriptEngine[] of type php, |
| | | |activeEngines = 5 |
|-----------------------------------------------------------------------|
|00018|0000|02:18:47 AM|Thread http/0.0.0.0/8080-t-31 got engine to |
| | | |compile script |
|-----------------------------------------------------------------------|
|00019|0000|02:18:47 AM|?><?php // line 1121 |
|-----------------------------------------------------------------------|
|00020|0000|02:18:47 AM|if ($currentCall != null) // line 1122 |
|-----------------------------------------------------------------------|
|00021|0000|02:18:47 AM|{ // line 1123 |
|-----------------------------------------------------------------------|
|00022|0000|02:18:47 AM| say("I'm sorry, but I can not find or |
| | | |compile the Tropo script for this phone number."|
| | | |); // line 1124 |
|-----------------------------------------------------------------------|
|00023|0000|02:18:47 AM| hangup(); // line 1125 |
|-----------------------------------------------------------------------|
|00024|0000|02:18:47 AM|} // line 1126 |
|-----------------------------------------------------------------------|
|00025|0000|02:18:47 AM|?> // line 1127 |
|-----------------------------------------------------------------------|
|00026|0000|02:18:47 AM|Thread http/0.0.0.0/8080-t-31 returning engine |
| | | |after compiling script |
|-----------------------------------------------------------------------|
|00027|0000|02:18:47 AM|Thread http/0.0.0.0/8080-t-31 returned engine |
| | | |QuercusScriptEngine[] of type php, |
| | | |activeEngines = 4 |
|-----------------------------------------------------------------------|
|00028|0000|02:18:47 AM|In SimpleApplication.execute() for token launch,|
| | | |HttpSession |
| | | |hssn-9541A863A42B7294412DF27003FE67BF associated|
| | | |with SipApplicationSession |
| | | |sas_2-14-sm86gosslpnlz6tropo |
|-----------------------------------------------------------------------|
|00029|0000|02:18:47 AM|SipApplicationSession |
| | | |sas_2-14-sm86gosslpnlz6tropo associated with |
| | | |Tropo session a8f0ba032d2a377e8fdcc8b68d82c766 |
|-----------------------------------------------------------------------|
|00030|0000|02:18:47 AM|customerName:Kent is added into the context of |
| | | |app instance : ApplicationInstance[myURL, |
| | | |sas_2-14-sm86gosslpnlz6tropo] |
|-----------------------------------------------------------------------|
|00031|0000|02:18:47 AM|numberToDial:2087401235 is added into the |
| | | |context of app instance : ApplicationInstance[ |
| | | |myURL , sas_2-14-sm86gosslpnlz6tropo] |
|-----------------------------------------------------------------------|
|00032|0000|02:18:47 AM|action:create is added into the context of app |
| | | |instance : ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] |
|-----------------------------------------------------------------------|
|00033|0000|02:18:47 AM|format:xml is added into the context of app |
| | | |instance : ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] |
|-----------------------------------------------------------------------|
|00034|0000|02:18:47 AM|msg:XML Test is added into the context of app |
| | | |instance : ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] |
|-----------------------------------------------------------------------|
|00035|0000|02:18:47 AM|ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] has been created. |
|-----------------------------------------------------------------------|
|00036|0000|02:18:47 AM|com.voxeo.tropo.core.SimpleCallFactory@44d6123f |
| | | |is added into the context of app instance : |
| | | |ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] |
|-----------------------------------------------------------------------|
|00037|0000|02:18:47 AM|Clearing logging context for |
| | | |http/0.0.0.0/8080-t-31 |
|-----------------------------------------------------------------------|
|00038|0000|02:18:47 AM|Set logging context for |
| | | |Tropo-Thread-a8f0ba032d2a377e8fdcc8b68d82c766 |
| | | |to accountID=107029 host=tropo203.orl.voxeo.net |
| | | |sessionGUID=0 |
| | | |sessionNumber=a8f0ba032d2a377e8fdcc8b68d82c766 |
| | | |callID=-1 |
|-----------------------------------------------------------------------|
|00039|0000|02:18:47 AM|ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] starts execution |
| | | |on Thread |
| | | |Tropo-Thread-a8f0ba032d2a377e8fdcc8b68d82c766 |
|-----------------------------------------------------------------------|
|00040|0000|02:18:47 AM|Thread |
| | | |Tropo-Thread-a8f0ba032d2a377e8fdcc8b68d82c766 |
| | | |acquired engine QuercusScriptEngine[] of type |
| | | |php, activeEngines = 5 |
|-----------------------------------------------------------------------|
|00041|0000|02:18:47 AM|ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] replaced script |
| | | |engine [QuercusScriptEngine[]] --> |
| | | |[QuercusScriptEngine[]] in field <_engine> |
|-----------------------------------------------------------------------|
|00042|0000|02:18:47 AM|ApplicationInstance[myURL , |
| | | |sas_2-14-sm86gosslpnlz6tropo] ends execution on |
| | | |Thread |
| | | |Tropo-Thread-a8f0ba032d2a377e8fdcc8b68d82c766 |
|-----------------------------------------------------------------------|
|00043|0000|02:18:47 AM|Thread |
| | | |Tropo-Thread-a8f0ba032d2a377e8fdcc8b68d82c766 |
| | | |returned engine QuercusScriptEngine[] of type |
| | | |php, activeEngines = 4 |
|-----------------------------------------------------------------------|
|00044|0000|02:18:47 AM|sas_2-14-sm86gosslpnlz6tropo invalidated |
|-----------------------------------------------------------------------|
|00045|0000|02:18:47 AM|Instance a8f0ba032d2a377e8fdcc8b68d82c766 |
| | | |removed |
|-----------------------------------------------------------------------|
|00046|0000|02:18:47 AM|Clearing logging context for |
| | | |Tropo-Thread-a8f0ba032d2a377e8fdcc8b68d82c766 |
|-----------------------------------------------------------------------|
答案 0 :(得分:3)
这里似乎有一些混乱/问题,所以我会尽力为你解决这些问题。我想要讨论的第一件事是会话API的XML帖子是完全可选的,它只是您提交“令牌请求”的一种方式。开始拨打电话。如果你在解决这个问题时遇到了问题,那就让我们跳过它,然后尝试一下“飞机”。 HTTP GET直接从浏览器直到你最舒服:
api.tropo.com/1.0/sessions?action=create&token=123456&customerName=Kent&numberToDial=4075551212&msg=XML%20Test
现在进入脚本本身,我找到了你的accountID(是的,我在Voxeo Labs / Tropo工作:P),我注意到了一些事情。首先你拼错了应用程序startURL,我几乎可以肯定你的意思是ExternalPhoneHelper.php,但是你输入了ExterMalPhoneHelper.php,所以你需要先修复它。现在第二件事,你的文件实际上是空白的,但PHP标签除外。
所以如果你想打个电话并说些什么就可以使用call();有发言权();或者您可以使用组合/快捷方式消息(); Tropo脚本中的方法:
<?php
message("Received office voice mail.", array("to" => "+14075550100"));
?>
现在回答最后一个问题,如何在Tropo应用程序上下文中获取发布的数据?好吧,好消息是这很简单,我们实际上将这些作为全局变量放在你的应用程序中,所以numberToDial查询字符串参数变成$ numberToDial,例如:
<?php
message($msg, array("to" => "+".$numberToDial));
?>
我真的希望这会有所帮助,如果你仍然发现自己遇到了麻烦,请到我们的支持团队,或者在freenode(#tropo)的IRC找到我们。我的处理方式是dyer,而且我经常潜伏在通道中;)
小心!
-John