예제 #1
0
function invite($src, $dest, $creditLimit)
{
    global $config;
    $src = trim($src);
    $dest = trim($dest);
    $credit = trim($credit);
    $myAsterisk = new Asterisk();
    $objResponse = new xajaxResponse();
    $myAsterisk->config['asmanager'] = $config['asterisk'];
    $res = $myAsterisk->connect();
    if (!$res) {
        $objResponse->addAssign("mobileStatus", "innerText", "Failed");
    }
    $strChannel = "local/" . $src . "@" . $config['system']['outcontext'] . "/n";
    $_SESSION['callbacks'][$src . $dest] = array('legA' => $dest, 'legB' => $src, 'start' => 0, 'creditLimit' => $creditLimit);
    if ($config['system']['allow_dropcall'] == true) {
        $myAsterisk->dropCall($sid, array('Channel' => "{$strChannel}", 'WaitTime' => 30, 'Exten' => $dest, 'Context' => $config['system']['outcontext'], 'Account' => $_SESSION['curuser']['accountcode'], 'Variable' => "{$strVariable}", 'Priority' => 1, 'MaxRetries' => 0, 'CallerID' => $dest));
    } else {
        $myAsterisk->sendCall($strChannel, $dest, $config['system']['outcontext'], 1, NULL, NULL, 30, $dest, NULL, $_SESSION['curuser']['accountcode']);
    }
    // add to callback table
    $callback['lega'] = $dest;
    $callback['legb'] = $src;
    $callback['credit'] = $creditLimit;
    $callback['groupid'] = $_SESSION['curuser']['groupid'];
    astercc::insertNewCallback($callback);
    return $objResponse->getXML();
}