示例#1
0
 * @var $APPLICATION CMain
 */
/********************************************************************
				Input params
********************************************************************/
/***************** BASE ********************************************/
$arParams["ID"] = intval($arParams["ID"] > 0 ? $arParams["ID"] : $_REQUEST["ID"]);
/********************************************************************
				/Input params
********************************************************************/
$arResult = array("ITEM" => Bitrix\Voximplant\ConfigTable::getById($arParams["ID"])->fetch(), "QUEUE" => array(), "SIP_CONFIG" => array(), "~QUEUE" => array());
if (!!$arResult["ITEM"]) {
    if (!empty($arResult["ITEM"]["WORKTIME_DAYOFF"])) {
        $arResult["ITEM"]["WORKTIME_DAYOFF"] = explode(",", $arResult["ITEM"]["WORKTIME_DAYOFF"]);
    }
    $db_res = Bitrix\Voximplant\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $arResult["ITEM"]["ID"])));
    while ($res = $db_res->fetch()) {
        $arResult["QUEUE"][$res["USER_ID"]] = $res;
        $arResult["~QUEUE"][$res["ID"]] = $res["USER_ID"];
    }
    if ($arResult["ITEM"]["PORTAL_MODE"] == CVoxImplantConfig::MODE_SIP) {
        $viSip = new CVoxImplantSip();
        $arResult["SIP_CONFIG"] = $viSip->Get($arParams["ID"]);
        $arResult["SIP_CONFIG"]['PHONE_NAME'] = $arResult['ITEM']['PHONE_NAME'];
    }
}
if (empty($arResult["ITEM"])) {
    return;
}
if ($_REQUEST["action"] == "save" && check_bitrix_sessid()) {
    $post = \Bitrix\Main\Context::getCurrent()->getRequest()->getPostList()->toArray();
示例#2
0
             $res = Bitrix\Voximplant\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $call['CONFIG_ID'])));
             while ($queue = $res->fetch()) {
                 if ($params['USER_ID'] == $queue['USER_ID'] || $call['PORTAL_USER_ID'] == $queue['USER_ID']) {
                     continue;
                 }
                 CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $queue['USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_2'));
             }
         }
     }
     echo json_encode(array('result' => 'OK'));
 } else {
     if ($params["COMMAND"] == "HangupCall") {
         $res = Bitrix\Voximplant\CallTable::getList(array('filter' => array('=CALL_ID' => $params['CALL_ID'])));
         $userTimeout = array();
         if ($call = $res->fetch()) {
             $res = Bitrix\Voximplant\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $call['CONFIG_ID'])));
             while ($queue = $res->fetch()) {
                 if ($call['TRANSFER_USER_ID'] == $queue['USER_ID']) {
                     continue;
                 }
                 $userTimeout[$queue['USER_ID']] = true;
                 CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $queue['USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_3'));
             }
             if ($call['TRANSFER_USER_ID'] > 0) {
                 $userTimeout[$call['TRANSFER_USER_ID']] = true;
                 CVoxImplantTransfer::SendPullEvent(array('COMMAND' => 'timeoutTransfer', 'USER_ID' => $call['TRANSFER_USER_ID'], 'CALL_ID' => $call['CALL_ID']));
             }
             if ($call['PORTAL_USER_ID'] > 0 && !$userTimeout[$call['PORTAL_USER_ID']]) {
                 $userTimeout[$call['PORTAL_USER_ID']] = true;
                 CVoxImplantMain::SendPullEvent(array('COMMAND' => 'timeout', 'USER_ID' => $call['PORTAL_USER_ID'], 'CALL_ID' => $call['CALL_ID'], 'MARK' => 'timeout_hit_4'));
             }