【发布时间】:2017-02-15 05:45:47
【问题描述】:
我需要帮助来接听电话。我尝试了两种方法。
1。当我按下保持按钮时使用入队动词我有用户更新调用方法
<Response>
<Enqueue waitUrl="urltoplaytheholdmusic">1111</Enqueue>
</Response>
(当我按下取消保持按钮时,我使用了相同的更新方法并使用了。)
<Response>
<Queue >1111</Queue>
</Response>
但是当使用队列动词调用时会断开连接。
2。所以我尝试了另一种方式,在按下保持按钮时播放音乐。
<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) {}
});
}
这通过使用我的数据库中的 parentcallsid 来获取 callid 调用此函数来保持呼叫
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>
而我为了解除呼叫,我(意味着保持呼叫的同一个号码)使用了相同的 holdaction 方法和不同的参数,并且 xml 代码是-
<Response>
<Dial>
<Queue>first_queue1</Queue>
</Dial>
</Response>
我知道我做错了,但我想不出正确的方法,所以如果你能帮我弄清楚我做错了什么,我将不胜感激
【问题讨论】:
-
通话被挂断后,你想做什么?您是在连接另一个呼叫者还是在做其他事情?我可以帮忙,我只需要知道接下来会发生什么。
-
感谢您的回复。当我按下保持按钮时,我将通话置于保持状态,但我不知道如何取消保持通话并再次重新连接相同的呼叫者。
-
好的,很酷,那么它们首先是如何连接的,你如何处理另一端?你能分享到目前为止你用来实现这一目标的代码吗?
-
我已经使用这个'
<Response><Dial callerId="callerid"><Number statusCallbackEvent="initiated ringing answered completed" statusCallback="url1" satusCallbackMethod="POST">number</Number></Dial> </Response>'拨出号码并使用更新方法将呼叫置于保持状态-<Response><Enqueue waitUrl="wait_url">1111</Enqueue></Response>和 wait_url 我播放保持音乐并取消保持我使用相同的更新方法并使用了“<Response><Dial><Queue>1111</Queue></Dial></Response>” -
我遵循了你在回答这个问题时提到的确切过程 [stackoverflow.com/questions/41236926/… 但是当我使用
<Response> <Dial action="/holding"> <Queue>ADMIN_ID</Queue> </Dial> </Response>时它不起作用
标签: twilio twilio-php twilio-api twilio-click-to-call