[英]Join an active Twilio Voice conference call from browser as Supervisor (Muted) and Coach (Whisper to agent)
I have implemented Twilio Conference call using Twilio JavaScript SDK and PHP. 到目前為止,正在運行的功能是:
<?php
require_once './vendor/autoload.php';
use Twilio\TwiML\VoiceResponse;
use Twilio\Rest\Client;
$response = new VoiceResponse();
$dial = $response->dial('');
$dial->conference('first-conference-room',
['startConferenceOnEnter' => 'true', 'endConferenceOnExit' => 'true']);
$sid = getenv("TWILIO_ACCOUNT_SID");
$token = getenv("TWILIO_AUTH_TOKEN");
$twilio = new Client($sid, $token);
$twilio->conferences("first-conference-room")
->participants
->create($fromnumber,
$tonumber,[
"statusCallbackEvent" => ["ringing","initiated","answered","completed"],
"statusCallback" => "link-to-php-function-to-write-call-record-to-database",
"statusCallbackMethod" => "POST"
]);
return $response;
?>
現在,作為主管,一旦在座席(使用瀏覽器)和另一個電話號碼之間建立電話會議,我就會獲取並顯示正在進行的通話記錄,並帶有一個按鈕以作為主管加入。 下面的代碼已執行,但我在瀏覽器上聽不到任何聲音。
public function supervisecall()
{
$response = new VoiceResponse();
$dial = $response->dial('');
$dial->conference('first-conference-room', ['muted' => 'true']);
echo $response;
}
下面是當主管單擊加入呼叫按鈕時執行的代碼。
$("#btn-supervisor").click(function(e){
$("#btn-supervisor").hide();
$("#btn-coach").hide();
$("#btn-endcall").show();
e.preventDefault();
var scallsid = $(this).attr('data-ssid');
$.post("<?=base_url()?>TwilioTest/supervisecall",
{
callsid: scallsid,
},
function(data,status){
//alert("Data: " + data + "\nStatus: " + status);
if(status=="success")
{
alert("You have successfully dialled into call as supervisor:"+scallsid);
}
else
{
alert("Failed to join as a supervisor.")
}
});
});
以下是我的初始化設備 function,主管瀏覽器已在他將監視/插入/指導電話會議的頁面上執行。
function intitializeDevice() {
const data = await $.getJSON('link-to-function-to-get-token');
token = data.token;
device = new Twilio.Device(token, {
codecPreferences: ["opus", "pcmu"],
allowIncomingWhileBusy: false,
});
addDeviceListeners(device);
device.register();
}
有什么建議可以讓第三個人作為主管或教練加入會議嗎?
一個單獨的問題 - 三個人(號碼)之間的 Twilio 會議是否按兩次 Twilio 語音通話或一個 Twilio 語音通話收費,第三人加入會議的費用較低?
您的主管也在瀏覽器中,因此當您單擊加入按鈕時,我假設您正在使用Twilio 語音 SDK進行呼叫,並且您的 TwiML 應用程序將 webhook 定向到運行問題中第二個代碼塊的端點。
當您想要指導通話時,您實際上想要的不僅僅是靜音。 您希望能夠在另一端的人聽到的情況下收聽電話、與座席交談,或者插入並與會議中的兩個人交談。 為此,您需要使用<Conference>
TwiML 的coach
屬性。
要使用coach
,您需要獲取座席呼叫段的SID。 如果代理從瀏覽器發出出站呼叫,那么他們的 SID 將是發送到您的 webhook URL 的CallSid
參數。 如果他們正在接收呼叫,則他們的呼叫 SID 將從 API 呼叫返回以創建會議參與者。
獲得 SID 后,在代理的 webhook 響應中,您需要撥入會議並添加帶有代理呼叫 SID 值的coach
屬性。
$response = new VoiceResponse();
$dial = $response->dial('');
$dial->conference('first-conference-room', ['coach' => $agentCallSid ]);
echo $response;
一個單獨的問題 - 三個人(號碼)之間的 Twilio 會議是否按兩次 Twilio 語音通話或一個 Twilio 語音通話收費,第三人加入會議的費用較低?
Twilio 按呼叫段收費。 Twilio 和調用者之間的每個連接都是一條腿。 所以在這種情況下,會議中的三個人是三條腿,每人按每分鍾的會議費率收費。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.