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