Esempio n. 1
0
 public function SetVerifyResult($params)
 {
     if ($params['STATUS'] == 'VERIFIED') {
         $phoneVerified = array();
         $orm = VI\ConfigTable::getList(array('filter' => array('=PHONE_COUNTRY_CODE' => $params['REGION'])));
         while ($config = $orm->fetch()) {
             VI\ConfigTable::update($config['ID'], array('PHONE_VERIFIED' => 'Y'));
             $phoneVerified[] = $config['PHONE_NAME'];
         }
         if (!empty($phoneVerified)) {
             CVoxImplantHistory::WriteToLog($phoneVerified, 'VERIFY PHONES');
         }
     }
     return true;
 }
Esempio n. 2
0
 public static function DeleteConfigBySearchId($searchId)
 {
     if (strlen($searchId) <= 0) {
         return array('ERROR' => 'Config is`t found for undefined number');
     }
     $orm = VI\ConfigTable::getList(array('filter' => array('=SEARCH_ID' => (string) $searchId)));
     $config = $orm->fetch();
     if (!$config) {
         $result = array('ERROR' => 'Config is`t found for number: ' . $searchId);
     } else {
         $orm = VI\QueueTable::getList(array('filter' => array('=CONFIG_ID' => $config["ID"])));
         while ($row = $orm->fetch()) {
             VI\QueueTable::delete($row['ID']);
         }
         VI\ConfigTable::delete($config["ID"]);
         $result = array('RESULT' => 'OK', 'ERROR' => '');
     }
     return $result;
 }
Esempio n. 3
0
 public function Delete($configId)
 {
     $configId = intval($configId);
     if ($configId <= 0) {
         $this->error = new CVoxImplantError(__METHOD__, 'CONFIG_ID_NULL', GetMessage('VI_SIP_CONFIG_ID_NULL'));
         return false;
     }
     $orm = VI\SipTable::getList(array('filter' => array('=CONFIG_ID' => $configId)));
     $element = $orm->fetch();
     if (!$element) {
         return false;
     }
     if (intval($element['REG_ID']) > 0 && !$this->DeleteSipRegistration($element['REG_ID'])) {
         return false;
     }
     VI\SipTable::delete($element['ID']);
     VI\ConfigTable::delete($configId);
     return true;
 }
Esempio n. 4
0
 public function Update($configId, $fields)
 {
     $configId = intval($configId);
     if ($configId <= 0) {
         $this->error = new CVoxImplantError(__METHOD__, 'CONFIG_ID_NULL', GetMessage('VI_SIP_CONFIG_ID_NULL'));
         return false;
     }
     $arUpdate = $this->PrepareFiedls($fields, self::CHECK_UPDATE);
     if (!$arUpdate) {
         return false;
     }
     if (isset($arUpdate['SEARCH_ID'])) {
         $orm = VI\ConfigTable::getList(array('filter' => array('=SEARCH_ID' => $arUpdate['SEARCH_ID'], '!=ID' => $configId)));
         if ($orm->fetch()) {
             $this->error = new CVoxImplantError(__METHOD__, 'SEARCH_ID_EXISTS', GetMessage('VI_SIP_SEARCH_ID_EXISTS'));
             return false;
         }
     }
     if (isset($arUpdate['PHONE_NAME'])) {
         $orm = VI\ConfigTable::getList(array('filter' => array('=PHONE_NAME' => $arUpdate['PHONE_NAME'], '!=ID' => $configId)));
         if ($orm->fetch()) {
             $this->error = new CVoxImplantError(__METHOD__, 'TITLE_EXISTS', GetMessage('VI_SIP_TITLE_EXISTS'));
             return false;
         }
     }
     if (isset($arUpdate['SEARCH_ID'])) {
         $result = \Bitrix\Voximplant\ConfigTable::getById($configId);
         $currentConfig = $result->fetch();
         if ($currentConfig['SEARCH_ID'] == CVoxImplantConfig::GetPortalNumber()) {
             COption::SetOptionString("voximplant", "portal_number", $arUpdate['SEARCH_ID']);
         }
         VI\ConfigTable::update($configId, array('SEARCH_ID' => $arUpdate['SEARCH_ID']));
     }
     if (isset($arUpdate['PHONE_NAME'])) {
         VI\ConfigTable::update($configId, array('PHONE_NAME' => $arUpdate['PHONE_NAME']));
     }
     unset($arUpdate['SEARCH_ID']);
     unset($arUpdate['PHONE_NAME']);
     unset($arUpdate['CONFIG_ID']);
     if (empty($arUpdate)) {
         return true;
     }
     $orm = VI\SipTable::getList(array('filter' => array('=CONFIG_ID' => $configId)));
     $entity = $orm->fetch();
     if (!$entity) {
         $this->error = new CVoxImplantError(__METHOD__, 'CONFIG_NOT_FOUND', GetMessage('VI_SIP_CONFIG_NOT_FOUND'));
         return false;
     }
     VI\SipTable::update($entity['ID'], $arUpdate);
     if (isset($arUpdate['SERVER']) || isset($arUpdate['LOGIN']) || isset($arUpdate['PASSWORD'])) {
         $orm = VI\SipTable::getById($entity['ID']);
         $sipConfig = $orm->fetch();
         if ($entity['SERVER'] != $sipConfig['SERVER'] || $entity['LOGIN'] != $sipConfig['LOGIN'] || $entity['PASSWORD'] != $sipConfig['PASSWORD'] || $fields['NEED_UPDATE'] == 'Y') {
             $this->UpdateSipRegistration($sipConfig['REG_ID'], $sipConfig['SERVER'], $sipConfig['LOGIN'], $sipConfig['PASSWORD']);
         }
     }
     return true;
 }
Esempio n. 5
0
 public static function CheckDeleteAgent($configId)
 {
     $result = VI\ConfigTable::getList(array('select' => array('ID'), 'filter' => array('=ID' => intval($configId), '=TO_DELETE' => 'Y', '<DATE_DELETE' => new Bitrix\Main\Type\DateTime())));
     while ($row = $result->fetch()) {
         self::DeletePhoneConfig($row['ID']);
     }
     return false;
 }