2017-03-31 48 views
1

我正在使用twilio.js通過我的網站調用人員。由twilio.js庫創建的twilio調用狀態更改掛斷撥號用戶

Twilio.Device.connect({ 
    agent: "Smith", 
    phone_number: "4158675309" 
}); 

我試圖改變連接的呼叫狀態。例如:

@client = Twilio::REST::Client.new account_sid, auth_token 
@call = @client.account.calls.get("CAe1644a7eed5088b159577c5802d8be38") 
@call.update(:url => "http://demo.twilio.com/docs/voice.xml", 
     :method => "POST") 

上面的代碼是從我的Rails應用程序,但它是從JavaScript中的ajax調用。

問題 - 當我改變通話狀態時,我撥打的人會掛斷電話。 如何防止撥打的用戶掛機?

+0

你想發生什麼事情,你正在嘗試重定向呼叫的一部分,但呼叫的另一部分應該去哪裏? – philnash

+0

@philnash我想讓撥打的用戶重定向並收聽留言。現在它重定向呼叫發起方並掛斷所撥打的用戶。我正在嘗試創建一個功能,用twilio.js撥打一個號碼,如果我收到了他們的語音郵件,我會點擊一個按鈕開始播放預先錄製的留言以留下他們的語音信箱。 – Dty

回答

1

Twilio開發者傳道這裏。

如果您希望呼叫的另一方被重定向,那麼您需要找到第二程的Call Sid。我想你現在通過ajax將Call Sid從Twilio Client調用傳遞給你的服務器。由於這是始發呼叫,那將是父母呼叫sid。

然後,您可以使用REST API list callscall as the parent。下面是一些紅寶石,顯示的是:

@client = Twilio::REST::Client.new account_sid, auth_token 
parent_call_sid = params["call_sid"] 
child_calls = @client.calls.list(parent_call_sid: parent_call_sid) 
child_call = child_calls.first 
@call = @client.calls.get(child_call.sid) 
@call.update(:url => "http://demo.twilio.com/docs/voice.xml", 
     :method => "POST") 

在這個例子中,我假設只有一個孩子的呼叫和挑頭,但也許應該在這種情況下工作。值得注意的是,重定向孩子的電話將掛斷呼叫者。如果您不希望發生這種情況,請添加您使用的TwiML的action attribute on the <Dial>或添加TwiML以遵循<Dial>

讓我知道這是否有幫助。

+0

非常感謝。我不知道Twilio爲每個人打電話時都有不同的電話號碼。我會試試這個,讓你知道它是如何發展的。 – Dty

+0

這正是我想要做的。謝謝您的幫助。你比twilio支持者更有幫助。保持偉大的工作。 – Dty

+0

如果你有機會我有另一個相關的問題http://stackoverflow.com/questions/43218074/update-and-record-ongoing-call – Dty