예제 #1
0
         $post["WORKTIME_DAYOFF_NUMBER"] = substr($post["WORKTIME_DAYOFF_NUMBER"], 0, 20);
     }
 } else {
     $post["WORKTIME_DAYOFF_NUMBER"] = '';
 }
 $arFields = array("DIRECT_CODE" => $post["DIRECT_CODE"], "DIRECT_CODE_RULE" => $post["DIRECT_CODE_RULE"], "CRM" => $post["CRM"], "CRM_RULE" => $post["CRM_RULE"], "CRM_CREATE" => $post["CRM_CREATE"], "CRM_FORWARD" => $post["CRM_FORWARD"], "QUEUE_TIME" => $post["QUEUE_TIME"], "TIMEMAN" => $post["TIMEMAN"], "NO_ANSWER_RULE" => $post["NO_ANSWER_RULE"], "FORWARD_NUMBER" => $post["FORWARD_NUMBER"], "RECORDING" => $post["RECORDING"], "MELODY_LANG" => $post["MELODY_LANG"], "MELODY_WELCOME" => $post["MELODY_WELCOME"], "MELODY_WELCOME_ENABLE" => $post["MELODY_WELCOME_ENABLE"], "MELODY_WAIT" => $post["MELODY_WAIT"], "MELODY_HOLD" => $post["MELODY_HOLD"], "MELODY_VOICEMAIL" => $post["MELODY_VOICEMAIL"], "WORKTIME_ENABLE" => isset($post["WORKTIME_ENABLE"]) ? "Y" : "N", "WORKTIME_FROM" => $workTimeFrom, "WORKTIME_TO" => $workTimeTo, "WORKTIME_HOLIDAYS" => $workTimeHolidays, "WORKTIME_DAYOFF" => $workTimeDayOff, "WORKTIME_TIMEZONE" => $post["WORKTIME_TIMEZONE"], "WORKTIME_DAYOFF_RULE" => $post["WORKTIME_DAYOFF_RULE"], "WORKTIME_DAYOFF_NUMBER" => $post["WORKTIME_DAYOFF_NUMBER"], "WORKTIME_DAYOFF_MELODY" => $post["WORKTIME_DAYOFF_MELODY"]);
 $post["QUEUE"] = is_array($post["QUEUE"]) ? $post["QUEUE"] : array();
 $post["QUEUE"]["U"] = is_array($post["QUEUE"]["U"]) ? $post["QUEUE"]["U"] : array();
 $queue = array();
 if (is_array($post["QUEUE"]) && is_array($post["QUEUE"]["U"])) {
     foreach ($post["QUEUE"] as $type => $k) {
         $queue[$type] = str_replace($type, "", $k);
     }
 }
 if ($skipSaving) {
     $error = $viSip->GetError()->msg;
 } else {
     if (($res = Bitrix\Voximplant\ConfigTable::update($arParams["ID"], $arFields)) && $res->isSuccess()) {
         // TODO We should work with other socialnetwork entities
         $toDrop = array_diff($arResult["~QUEUE"], $queue["U"]);
         $toAdd = array_diff($queue["U"], array_keys($arResult["QUEUE"]));
         foreach ($toDrop as $primary => $id) {
             Bitrix\Voximplant\QueueTable::delete($primary);
         }
         foreach ($toAdd as $k) {
             Bitrix\Voximplant\QueueTable::add(array("CONFIG_ID" => $arParams["ID"], "USER_ID" => $k, "STATUS" => "OFFLINE"));
         }
         LocalRedirect(CVoxImplantMain::GetPublicFolder() . 'lines.php?MODE=' . $arResult["ITEM"]["PORTAL_MODE"]);
     }
     $error = $res->getErrorMessages();
 }
예제 #2
0
}
if (!CVoxImplantMain::CheckAccess()) {
    echo CUtil::PhpToJsObject(array('ERROR' => 'AUTHORIZE_ERROR'));
    require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
    die;
}
if (check_bitrix_sessid()) {
    if ($_POST['VI_ADD']) {
        $arSend['ERROR'] = '';
        CUtil::decodeURIComponent($_POST);
        $viSip = new CVoxImplantSip();
        $result = $viSip->Add(array('TYPE' => strtolower($_POST['TYPE']), 'PHONE_NAME' => $_POST['TITLE'], 'SERVER' => $_POST['SERVER'], 'LOGIN' => $_POST['LOGIN'], 'PASSWORD' => $_POST['PASSWORD']));
        if ($result) {
            $arSend['RESULT'] = $result;
        } else {
            $arSend['ERROR'] = $viSip->GetError()->msg;
        }
        echo CUtil::PhpToJsObject($arSend);
    } else {
        if ($_POST['VI_DELETE'] == 'Y') {
            $arSend['ERROR'] = '';
            $viSip = new CVoxImplantSip();
            $viSip->Delete($_POST['CONFIG_ID']);
            echo CUtil::PhpToJsObject($arSend);
        } else {
            echo CUtil::PhpToJsObject(array('ERROR' => 'UNKNOWN_ERROR'));
        }
    }
} else {
    echo CUtil::PhpToJsObject(array('BITRIX_SESSID' => bitrix_sessid(), 'ERROR' => 'SESSION_ERROR'));
}
예제 #3
0
 public static function sipStatus($arParams)
 {
     if (!CVoxImplantMain::CheckAccess()) {
         throw new \Bitrix\Rest\AccessException();
     }
     $arParams = array_change_key_case($arParams, CASE_UPPER);
     $viSip = new CVoxImplantSip();
     $result = $viSip->GetSipRegistrations($arParams['REG_ID']);
     if (!$result) {
         throw new Bitrix\Rest\RestException($viSip->GetError()->msg, $viSip->GetError()->code, CRestServer::STATUS_WRONG_REQUEST);
     }
     return array('REG_ID' => $result->reg_id, 'LAST_UPDATED' => $result->last_updated, 'ERROR_MESSAGE' => $result->error_message, 'STATUS_CODE' => $result->status_code, 'STATUS_RESULT' => $result->status_result);
 }