Amr*_*ngh 2 php twilio twilio-php twilio-api
我在PHP项目中使用Twilio,目前我能够使用其API进行调用和发送SMS,如下所示:
$client = new \Services_Twilio($AccountSid, $AuthToken);
try {
// Initiate a new outbound call
$call = $client->account->calls->create(
"<From Number>",
$input['phone'],
array("url" => "http://demo.twilio.com/welcome/voice/")
);
//echo "Started call: " . $call->sid;
\Session::flash("success","Calling to ". $input['phone'] ."");
}
Run Code Online (Sandbox Code Playgroud)
但现在,如果未接听电话,客户端希望发送语音消息.
phi*_*ash 10
Twilio开发者传道者在这里.
这是一切如何运作.当有人拨打您的Twilio号码时,Twilio会向您在Twilio控制台的号码管理员中为您的电话号码设置一个HTTP请求,即webhook.
该URL需要响应一些TwiML,这只是一些XML标记,告诉Twilio如何处理该调用.
听起来,在您的情况下,您想要拨打自己的号码,并在一段时间后收到消息而不是继续响铃.您将需要两个端点.第一个应该拨号,第二个是重定向呼叫重定向到语音邮件的地方.
因此,第一个端点TwiML应该看起来像这样,<Dial>用于转发呼叫:
<Response>
<Dial timeout="30" action="/voicemail.php">
<Number>YOUR_PHONE_NUMBER</Number>
</Dial>
</Response>
Run Code Online (Sandbox Code Playgroud)
我们使用该timeout属性来设置您希望手机响铃的时间.您可以将其设置为5到600秒.该action属性是我们在超时完成后将调用定向到的端点.然后,该端点将向呼叫者读取一条消息,告诉他们留言使用<Say>文本到语音,然后<Record>是消息.
<Response>
<Say voice="alice">Your call could not be answered at the moment. Please leave a message.</Say>
<Record action="/hangup.php"/>
</Response>
Run Code Online (Sandbox Code Playgroud)
我在<Record>标签上添加了一个额外的动作,它只是挂断电话.这看起来像这样:
<Response>
<Hangup/>
</Response>
Run Code Online (Sandbox Code Playgroud)
您可以使用其他属性<Record>.最重要的是,该recordingStatusCallback属性采用一个URL,当有新记录时,将通知您的应用程序.
有关详细信息,请查看有关使用PHP录制电话的指南.
如果这有帮助,请告诉我.