2017-02-23 2 views
1

Вещь в том, что мы должны достичь. Во время конференц-живого вызова, если участники нажимают определенный DTMF, как 0, нам нужно переместить участников, чтобы они оставили голосовую почту.конференц-вызов в прямом эфире, чтобы участники покинули голосовое сообщение

Позвольте мне объяснить вам случай, что именно мы хотим сделать. Мы разрабатываем решение Call Center с использованием голосового API Plivo. В Plivo нет функций очереди вызовов, мы используем конференцию, например, следующие шаги.

  • Когда звонок приходит на номер Plivo, мы поместим этот вызов в конференцию с музыкой удержания, пока мы не получим бесплатный агент для связи. Здесь некоторое время, когда вызывающему абоненту приходится ждать больше времени, чтобы связаться с агентом. Мы хотим предоставить такие функции, как «Нажмите 0, чтобы организовать обратный вызов или нажмите 9, чтобы оставить свое имя и номер в голосовой почте и вернуться к вам».

  • Во время пребывания на удержании в конференц-зале, вызывающий абонент будет нажимать 0 или 9 цифр, чтобы сгенерировать соответствующее действие, либо мы выполняем запрос обратного вызова в базе данных, либо переместите вызывающего абонента, чтобы он оставил голосовую почту и повесил трубку.

Вы можете направлять нам, как мы можем использовать эту функцию с помощью Plivo конференции или у вас есть какие-либо метод, где мы можем управлять функциональностью очереди вызовов.

Как известно, в call-центре, если есть меньше агентов для ответа на входящий вызов и высокий уровень входящего вызова, вызов будет оставаться в очереди на определенный период с помощью этих функций. Caller может принять решение либо остаться, либо ждать в очереди, чтобы связаться с агентом или оставить с возможностью выбора.

Пожалуйста, дайте мне знать, как мы можем достичь этих возможностей с использованием API Plivo.

ответ

1

Я решил сам.

первой конференции создать

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> 

чем создать страницу URL обратного вызова и написать код

$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> 
Смежные вопросы