Дело в том, что мы должны достичь. Во время конференц-звонка, если участники нажимают определенное DTMF, например, 0, мы должны переместить этих участников, чтобы оставить действие голосовой почты.
Позвольте мне объяснить вам с делом, что именно мы хотим сделать. Мы разрабатываем решение Call Center с использованием голосового API Plivo. В Plivo нет функций очереди вызовов, мы используем конференцию, как в следующих шагах.
Когда поступит звонок по номеру Plivo, мы будем помещать этот звонок в конференцию с удержанием музыки, пока у нас не появится бесплатный агент для связи. Здесь некоторое время звонящий должен ждать дольше, чтобы связаться с агентом. Мы хотим предоставить такие функции, как «Нажмите 0, чтобы организовать обратный вызов, или нажмите 9, чтобы оставить свое имя и номер в голосовой почте и вернуться к вам».
Во время удержания на конференции вызывающий абонент нажимает либо 0, либо 9 цифр, чтобы сгенерировать соответствующее действие, либо мы воспроизводим запрос на обратный вызов в базе данных, либо перемещаем этого вызывающего абонента для выхода из голосовой почты и прекращения вызова.
Можете ли вы рассказать нам, как мы можем использовать это, используя функцию Plivo Conference, или у вас есть какой-либо метод, с помощью которого мы можем управлять функциями очереди вызовов.
Как вы знаете в колл-центре, если для ответа на входящий вызов и большого объема входящего вызова меньше операторов, вызов будет оставаться в очереди в течение определенного периода с этими функциями. Вызывающий абонент может принять решение либо остаться, либо ждать в очереди, чтобы соединиться с агентом, либо уйти с возможностью выбора.
Пожалуйста, дайте мне знать, как мы можем достичь этой функции, используя Plivo API.
Я решил себя.
сначала создать конференцию
incomingcalltest.php
<Response>
<Conference waitSound="<?php echo $url; ?>waitmusic.php" callbackUrl="<?php echo $url; ?>testcallbackurl.php" digitsMatch="0,9">testroom</Conference>
</Response>
чем создать waitmusic.php для ожидания музыки
<Response>
<Play><?php echo $url; ?>MyMusicTherapy.mp3</Play>
<Speak>Please press 0 to disconnect the call or press 1 to leave a voicemail </Speak>
</Response>
чем создать страницу обратного вызова и написать код
$ConferenceDigitsMatch = $_REQUEST['ConferenceDigitsMatch'];
if($ConferenceDigitsMatch == '0'){
$p = new RestAPI($auth_id, $auth_token);
$string = 'testroom';
$params = array(
'conference_name' => $string, # ID of the call
);
$resp = $p->get_live_conference($params);
foreach ($resp['response']['members'] as $num) {
$call_uuid = $num['call_uuid'];
$parameters = array(
'call_uuid' => $call_uuid,
'aleg_url' => <?php echo $url; ?>.'test.php', # URL to transfer for aleg
);
$transfer_call = $p->transfer_call($parameters);
}
}
и создать новый файл для передачи вызова для голосовой почты и прошлого кода
<Response>
<Speak>Please leave a message after the beep. Press the star key when done. </Speak>
<Record action="<?php echo $url; ?>plivo_call_record.php" maxLength="30" finishOnKey="*" />
<Speak>Recording not received.</Speak>
</Response>
Других решений пока нет …