我需要幫助,以阻止呼叫。我嘗試了兩種方法。Twilio,如何保持呼叫
。使用排隊動詞當我按下掛機鍵我有用戶的更新呼叫方法
<Response>
<Enqueue waitUrl="urltoplaytheholdmusic">1111</Enqueue>
</Response>
(和當我按下取消保留按鈕我使用相同的更新方法和使用。)
<Response>
<Queue >1111</Queue>
</Response>
但是當使用隊列動詞調用獲取斷開連接。
。所以當我按下按鈕時,我嘗試了另一種方式來播放音樂。
<Response><Say>We are putting you on hold Please wait!</Say><Play loop="0">https://api.twilio.com/cowbell.mp3</Play></Response>
現在我不知道該怎麼做才能保持呼叫。
這一切我在做什麼。 當我提出叫我用JS liberay對於這一點,使用此功能
function call(dial_number, from_phone) {
params = {
"to_phone": to_phone,
"from_phone": from_phone,
"from_id": current_user_id,
"to_id": user_id
};
connection = Twilio.Device.connect(params);
connection._onAnswer = function(conn) {
console.log(conn.callsid);
/*get parentcall sid when make the call*/
Sid = {
parent_callSid: conn.callsid,
type: 'outgoing'
};
};
}
並把保持的電話我已經使用這行代碼
function holdaction() {
jQuery.ajax({
url: 'url',
type: 'POST',
data: 'sid=' + parentSid + '&admin_no=' + encodeURIComponent(jQuery('#twilio_from_number').val()) + '&action=' + hold_action,
dataType: 'json',
success: function(data) {}
});
}
這通過獲取callsid使用parentcallsid從我的DB調用這個functionto將呼叫保持
function update_call($callSid, $action, $admin_no = '') {
$rr = array(
"url" => "holdactionurl?type=".$action.
'&admin_no='.$admin_no,
"method" => "POST"
);
$call = $this->client->calls($callSid)->update($rr);
return $call->to;
}
而且在holdactionurl我已經使用這個 -
<Response>
<Enqueue waitUrl="wait_url">first_queue</Enqueue>
</Response>
而且在wait_url我已經使用這個 -
<Response>
<Say>You are on hold </Say>
<Redirect>wait_url</Redirect>
</Response>
而我爲了unholding呼叫我(指已擱置呼叫的相同數量的)不同的使用相同的holdaction方法參數和該XML代碼是 -
<Response>
<Dial>
<Queue>first_queue1</Queue>
</Dial>
</Response>
我知道我在做這個錯誤的,但我不能找出正確的路,所以我會非常感激如果你能幫助我弄清楚什麼我做錯了
一旦它被取消,你打算怎麼處理這個電話?你是連接到另一個呼叫者還是做其他事情?我可以幫忙,我只需要知道接下來會發生什麼。 – philnash
感謝您的回覆。我按住暫停按鈕時,我暫停通話,但我無法弄清楚如何保持通話並重新連接相同的通話人。 –
好的,酷,那麼他們怎麼連接在一起,你怎麼處理另一端?你可以分享到目前爲止使用的代碼嗎? – philnash