2017-06-13 27 views
1

我在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添加我的項目,這是否有意義? –

回答

7

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

相關問題