Ejemplo n.º 1
0
    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();
    $skipSaving = false;
    $arFieldsSip = array();
    if (isset($post['SIP'])) {
        $viSip = new CVoxImplantSip();
        $result = $viSip->Update($arParams["ID"], array('TYPE' => $arResult["SIP_CONFIG"]["TYPE"], 'PHONE_NAME' => $post['SIP']['PHONE_NAME'], 'SERVER' => $post['SIP']['SERVER'], 'LOGIN' => $post['SIP']['LOGIN'], 'PASSWORD' => $post['SIP']['PASSWORD'], 'NEED_UPDATE' => $post['SIP']['NEED_UPDATE']));
        $skipSaving = !$result;
        $arFieldsSip = array('PHONE_NAME' => $post['SIP']['PHONE_NAME'], 'SERVER' => $post['SIP']['SERVER'], 'LOGIN' => $post['SIP']['LOGIN'], 'PASSWORD' => $post['SIP']['PASSWORD']);
    }
    if (IsModuleInstalled('timeman')) {
        $post["TIMEMAN"] = isset($post["TIMEMAN"]) ? 'Y' : 'N';
    } else {
        $post["TIMEMAN"] = 'N';
    }
    if ($post["NO_ANSWER_RULE"] == CVoxImplantIncoming::RULE_PSTN_SPECIFIC) {
        if (strlen($post["FORWARD_NUMBER"]) <= 0) {
            $post["NO_ANSWER_RULE"] = CVoxImplantIncoming::RULE_PSTN;
        } else {
            $post["FORWARD_NUMBER"] = substr($post["FORWARD_NUMBER"], 0, 20);
        }
    } else {
Ejemplo n.º 2
0
 public static function sipUpdate($arParams, $nav, $server)
 {
     if (!CVoxImplantMain::CheckAccess()) {
         throw new \Bitrix\Rest\AccessException();
     }
     $arParams = array_change_key_case($arParams, CASE_UPPER);
     $dbResCnt = \Bitrix\Voximplant\SipTable::getList(array('filter' => array('CONFIG_ID' => $arParams["CONFIG_ID"], 'APP_ID' => $server->getAppId()), 'select' => array("CNT" => new Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(1)'))));
     $arResCnt = $dbResCnt->fetch();
     if (!$arResCnt || $arResCnt["CNT"] <= 0) {
         throw new Bitrix\Rest\RestException("Specified CONFIG_ID is not found", Bitrix\Rest\RestException::ERROR_NOT_FOUND, CRestServer::STATUS_NOT_FOUND);
     }
     if (!isset($arParams['TYPE'])) {
         $arParams['TYPE'] = CVoxImplantSip::TYPE_CLOUD;
     }
     $arUpdate = array('TYPE' => $arParams['TYPE'], 'NEED_UPDATE' => "Y");
     if (isset($arParams['TITLE'])) {
         $arUpdate['TITLE'] = $arParams['TITLE'];
     }
     if (isset($arParams['SERVER'])) {
         $arUpdate['SERVER'] = $arParams['SERVER'];
     }
     if (isset($arParams['LOGIN'])) {
         $arUpdate['LOGIN'] = $arParams['LOGIN'];
     }
     if (isset($arParams['PASSWORD'])) {
         $arUpdate['PASSWORD'] = $arParams['PASSWORD'];
     }
     if (count($arUpdate) == 2) {
         return 1;
     }
     $viSip = new CVoxImplantSip();
     $result = $viSip->Update($arParams["CONFIG_ID"], $arUpdate);
     if (!$result || $viSip->GetError()->error) {
         throw new Bitrix\Rest\RestException($viSip->GetError()->msg, $viSip->GetError()->code, CRestServer::STATUS_WRONG_REQUEST);
     }
     return 1;
 }