2014-06-13 1 views
1

Я установил Freeswitch и простую горячую линию, используя mod_callcenter, и он отлично работает. Мне любопытно, можно ли установить горячую линию текстового чата комбинацией mod_sms с mod_callcenter. Может быть, для этого нужно использовать разные модули?Возможно ли mod_sms с mod_callcenter?

ответ

0

Я не уверен, но это может предложить некоторые идеи вам нужно, чтобы вы собираетесь: http://www.thenoccave.com/2012/03/05/freeswitch-callcenter-sms-alerts/

РНР код, который был написан следующим образом:

#!/usr/bin/php 

<?php 

$GLOBALS['server'] = 'localhost'; 
$GLOBALS['port'] = '8021'; 
$GLOBALS['password'] = 'ClueCon'; 
$GLOBALS['clickatellapi_id'] = '1234456'; 
$GLOBALS['clickatelluser'] = 'username'; 
$GLOBALS['clickatellpassword'] = 'password'; 
$GLOBALS['contactnumbers'][] = '61123456789'; 
$GLOBALS['contactnumbers'][] = '61987654321'; 

$queuealerter = array(); 

require_once('/usr/local/freeswitch/scripts/ESL.php'); 

function sendnotification($queuename){ 

    $message = 'There is a call in the queue ' . $queuename . ' and no agents are logged in to take it'; 

    for($i=0; $i < count($GLOBALS['contactnumbers']); $i++){ 

     $curl_handle = curl_init(); 
     curl_setopt($curl_handle, CURLOPT_URL,'http://api.clickatell.com/http/sendmsg?api_id=' . $GLOBALS['clickatellapi_id'] . '&user=' . $GLOBALS['clickatelluser'] . '&password=' . $GLOBALS['clickatellpassword'] . '&to=' . $GLOBALS['contactnumbers'][$i] . '&text=' . urlencode($message)); 
     curl_exec($curl_handle); 
     curl_close($curl_handle); 

    } 


} 

$sock = new ESLconnection($GLOBALS['server'], $GLOBALS['port'], $GLOBALS['password']); 

$res = $sock->api('callcenter_config queue list'); 
$queuelist = preg_split('/\r\n|\r|\n/', $res->getBody()); 

//get a list of all the queues 
for($i=1; $i < count($queuelist); $i++){ 

    $queuedetails = explode('|', $queuelist[$i]); 
    if($queuedetails[0] != '+OK' && $queuedetails[0] != ''){ 


     $newQueue = array(); 
     $newQueue['Name'] = $queuedetails[0]; 
     $newQueue['AgentCount'] = 0; 
     $newQueue['CallCount'] = 0; 

     $queuealerter['Queues'][] = $newQueue; 

    } 
} 

//for each queue check if there is a logged in agent 
for($i=0; $i < count($queuealerter['Queues']); $i++){ 

    $res = $sock->api('callcenter_config queue list agents ' . $queuealerter['Queues'][$i]['Name']); 
    $agentdetails = preg_split('/\r\n|\r|\n/', $res->getBody()); 

    for($i2=1; $i2 < count($agentdetails); $i2++){ 

     $agentdetail = explode('|', $agentdetails[$i2]); 
     if($agentdetail[0] != '+OK' && $agentdetail[0] != '' && $agentdetail[5] == 'Available'){ 

      $queuealerter['Queues'][$i]['AgentCount'] += 1; 

     } 
    } 

    //get all the calls in the queue 

    $res = $sock->api('callcenter_config queue list members ' . $queuealerter['Queues'][$i]['Name']); 
    $calldetails = preg_split('/\r\n|\r|\n/', $res->getBody()); 

    for($i2=1; $i2 < count($calldetails); $i2++){ 

     $calldetail = explode('|', $calldetails[$i2]); 
     if($calldetail[0] != '+OK' && $calldetail[0] != ''){ 

      $queuealerter['Queues'][$i]['CallCount'] += 1; 

     } 
    } 


} 

//for each queue check 
for($i=0; $i < count ($queuealerter['Queues']); $i++){ 

    if($queuealerter['Queues'][$i]['CallCount'] > 0 && $queuealerter['Queues'][$i]['AgentCount'] == 0){ 
     sendnotification($queuealerter['Queues'][$i]['Name']); 
    } 

} 

?> 

 Смежные вопросы

  • Нет связанных вопросов^_^