如何在Twilio中未找到号码的情况下录制语音邮件?

问题描述:

我在PHP项目中使用Twilio,目前我能够拨打电话和使用其API发送短信下面给出:如何在Twilio中未找到号码的情况下录制语音邮件?

 $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'] .""); 
     } 

但现在客户想如果呼叫不拿起发送语音邮件。

+0

你是什么意思“客户想要发送语音消息,如果没有拿起电话”?你的意思是你想播放一个预先录制的信息,以防通话进入应答机? –

+0

不,我想让来电者能够留下他的语音留言,如果有人没有选择他的电话。 –

+0

@AlexBaban,好吧,让我解释一下,看看你是否想给别人打电话,但他没有选择你的电话,那么你想留给他一个语音信息,这是所有移动公司提供的常见事情,同样的事情想用Twilio添加我的项目,这是否有意义? –

Twilio开发人员在这里传播。

以下是它的全部工作原理。当有人拨打您的Twilio号码时,Twilio会将您的电话号码设置为number admin in your Twilio console中设置的网址HTTP request, a webhook

该URL需要回应一些TwiML,这只是一些XML标记告诉Twilio如何处理这个调用。

听起来像,在你的情况下,你想拨打自己的号码,并在一段时间后消息,而不是继续响。你会需要两个端点。第一个应该做拨号,第二个是我们将重定向一旦呼叫被重定向为语音邮件。

所以,第一个端点TwiML应该看起来有点像这样,使用<Dial>转移呼叫:

<Response> 
    <Dial timeout="30" action="/voicemail.php"> 
    <Number>YOUR_PHONE_NUMBER</Number> 
    </Dial> 
</Response> 

我们使用timeout attribute设置要多久手机就响。你可以设置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> 

我添加了一个额外的行动给<Record>标签刚刚挂断电话。这将是这样的:

<Response> 
    <Hangup/> 
</Response> 

有您能与<Record>使用其他属性。最重要的是,recordingStatusCallback attribute需要一个URL,在有新的录音时,您的应用程序将被通知。

欲了解更多信息,请阅读guide on recording phone calls in PHP

让我知道这是否有帮助。

+1

我很抱歉如此晚回复,我不知道我是怎么想它的,是的,它帮了我很多,我想感谢你这么好的信息。 –

+0

不用担心!我很高兴它有帮助! – philnash