首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php动态创建vxml

使用php动态创建vxml
EN

Stack Overflow用户
提问于 2014-11-12 03:24:33
回答 1查看 492关注 0票数 2

我试图将一个简单的电话号码传递给一个vxml块。我如何将一个动态变量传递到这个过程中?

代码语言:javascript
复制
$my_phone_number_here = '12197719191';

$string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<vxml version = "2.1">
<menu dtmf="true">  
<prompt>
<audio src="http://my.site.com/app/service-interaction-center.mp3"/>
</prompt>
<choice dtmf="1" next="#sales"/>
</menu>
<form id="sales">
<block>
<audio src="http://my.site.com/app/service-interaction-center-thank-you.mp3"/>
</block>
<transfer name="MyCall" dest="tel:+{$my_phone_number_here}" bridge="true" connecttimeout="20s"/>
</form>
</vxml>
XML;

我已尝试将其转化为使用:

代码语言:javascript
复制
$string = '';
$string .= $to_call;
$string .= '';
etc...

但这似乎也行不通。我只想让一个php变量出现在{my_phone_number_here}上,我遗漏了哪些不允许它正确工作的内容?

编辑:

显示的代码现在呈现与电话号码到位,但我的电话从来没有真正连接。当呼叫被放置时,您可以在音频中列出,然后按一个提示,然后播放“谢谢”通知--但是它会突然响起,然后电话就会掉线。仍然必须使用xml。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-12 03:30:25

您可以将其加载到解析器(特别是DOMDocument)中,并使用->setAttribute()将其更改为

代码语言:javascript
复制
$transfer->item(0)->setAttribute('dest', $telephone_number);

简单的例子:

代码语言:javascript
复制
// use the parser
$dom = new DOMDocument;
$dom->loadXML($string);
$xpath = new DOMXpath($dom);

// setup those values
$number = 123131;
$telephone_number = 'tel:+' . $number;
// target that element
$transfer = $xpath->query('/vxml/form[@id="sales"]/transfer');
// set the value
$transfer->item(0)->setAttribute('dest', $telephone_number);
// show output
echo $dom->saveXML();

或者只是简单地替换并放入一个变量,让它被内插:

代码语言:javascript
复制
$my_phone_number_here = 123456879;
$string = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
    <vxml version = "2.1">
        <menu dtmf="true">
            <prompt>
                <audio src="http://my.site.com/app/service-interaction-center.mp3"/>
            </prompt>
            <choice dtmf="1" next="#sales"/>
        </menu>
        <form id="sales">
            <block>
                <audio src="http://my.site.com/app/service-interaction-center-thank-you.mp3"/>
            </block>
            <transfer name="MyCall" dest="tel:+{$my_phone_number_here}" bridge="true" connecttimeout="20s"/>
        </form>
    </vxml>
XML;

echo $string;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26878722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档