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(); }