2017-02-23 93 views
1

事情是我们必须做到的。在会议现场通话过程中,如果参与者按下某个DTMF​​(例如0),那么我们必须移动该参与者以留下语音邮件操作。会议现场呼叫让参与者留下语音信箱动作

让我用案例来解释你,我们究竟想做什么。我们正在开发使用Plivo语音API的呼叫中心解决方案。在Plivo中没有Call Queue功能,我们正在使用会议,如下面的步骤。

  • 当有来电时上Plivo号,直到我们得到与之连接的自由球员,我们将放置在保持音乐发布会上说,电话。在这里,一些时间来电者必须等待更长的时间才能与座席联系。我们希望提供诸如“按0安排回拨或按9将您的姓名和号码留在语音信箱中并回复给您”等功能。

  • 在会议暂停期间,主叫方会按0或9位数字生成相应的操作,或者我们在数据库中播放回叫请求,或者移动该呼叫者以留下语音邮件并挂断呼叫。

您能指导我们如何使用此功能使用Plivo会议功能,或者您有任何一种方法可以管理呼叫队列功能。

正如您在呼叫中心所了解到的,如果代理人接听来电较少且呼入电话呼入量较高,则通过此功能,呼叫将在特定时间内保持队列。呼叫者可以决定是否停留并等待队列中的连接,或者通过选择选项离开。

请让我知道我们如何使用Plivo API实现此功能。

回答

1

我解决了我的自我。

首先创建会议

incomingcalltest.php

<Response> 
<Conference waitSound="<?php echo $url; ?>waitmusic.php" callbackUrl="<?php echo $url; ?>testcallbackurl.php" digitsMatch="0,9">testroom</Conference> 

</Response> 

比等待音乐

<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页面和编写代码创建waitmusic.php

$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>