我正在创建一个页面,其中包含存储为JSON的信息。例如:
"PatientContactHeader":{
"PatientID":14,
"PhoneNumber":"+1558881414",
"ContactType":"Phone Call",
"DateTimeOfCall":"2015-06-25: 11:00:00AM",
"TimeZone":"EST"
} "PatientContactDetails":[
{
"MessageID":123,
"RecordingURL":"http://examplerecording.com",
"MessageTitle":"Greeting"
}
]
}
初始页面将接受此JSON并使用它来创建出站呼叫。根据Twilio的API,出站向某个TwiML Url发出请求。
function initiateCall($fromNumber, $toNumber, $url) {
try {
// Initiate a new outbound call
$call = $client->account->calls->create(
$fromNumber, // The number of the phone initiating the call
$toNumber, // The number of the phone receiving call
$url, // The URL Twilio will request when the call is answered
array('IfMachine' =>'Continue')
);
echo 'Started call: ' . $call->sid;
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
}
}
我想要的是能够访问TwiML指令中的一些JSON信息。更具体地说,如果被调用的人应该接收多个消息,我希望能够遍历JSON数据并访问每个消息以进行回放。我的问题是,我知道无法将调用请求的初始页面中的信息传递给包含TwiML的页面。解决这个问题的逻辑方法似乎是会话变量,但我已经阅读(并发现)那些在进行出站呼叫时不起作用。有没有解决这个问题的方法?
答案 0 :(得分:2)
如果您已经存储了存储此信息的数据库,那么处理此信息的最快方法是传递一段数据,您可以使用这些数据在TwiML网址的查询字符串中查询数据库(可能是PatientID或MessageID)像这样:
$call = $client->account->calls->create(
$fromNumber, // The number of the phone initiating the call
$toNumber, // The number of the phone receiving call
$url . "?PatientID=" . $patientID, // The URL Twilio will request when the call is answered
array('IfMachine' =>'Continue')
);
然后在您为TwiML提供服务的文件中,您可以访问以下数据:
$patientID = $_GET['PatientID'];
// query your database with $patientID and get the info you need
希望有所帮助!