Example #1
0
 public function GetStatus()
 {
     $ViHttp = new CVoxImplantHttp();
     $result = $ViHttp->GetDocumentStatus();
     if (!$result) {
         $this->error = new CVoxImplantError(__METHOD__, $ViHttp->GetError()->code, $ViHttp->GetError()->msg);
         return false;
     }
     $verifications = array();
     foreach ($result as $key => $verification) {
         $regionName = GetMessage('VI_DOCS_COUNTRY_' . $verification->REGION);
         $regionName = strlen($regionName) > 0 ? $regionName : $verification->REGION;
         $verifications[$key]['REGION'] = $verification->REGION;
         $verifications[$key]['REGION_NAME'] = $regionName;
         $verifications[$key]['STATUS'] = $verification->STATUS;
         $verifications[$key]['STATUS_NAME'] = GetMessage('VI_DOCS_STATUS_' . $verification->STATUS);
         if ($verification->STATUS != 'VERIFIED' && $verification->UNVERIFIED_HOLD_UNTIL) {
             $data = new Bitrix\Main\Type\DateTime($verification->UNVERIFIED_HOLD_UNTIL, 'Y-m-d H:i:s');
             $verifications[$key]['UNVERIFIED_HOLD_UNTIL'] = $data->format(Bitrix\Main\Type\Date::getFormat());
         } else {
             $verifications[$key]['UNVERIFIED_HOLD_UNTIL'] = '';
         }
         if (isset($verification->DOCUMENTS)) {
             foreach ($verification->DOCUMENTS as $document) {
                 $data = new Bitrix\Main\Type\DateTime($document->UPLOADED, 'Y-m-d H:i:s');
                 $verifications[$key]['DOCUMENTS'][] = array('UPLOADED' => $data->format(Bitrix\Main\Type\DateTime::getFormat()), 'DOCUMENT_ID' => $document->DOCUMENT_ID, 'DOCUMENT_STATUS' => $document->DOCUMENT_STATUS, 'DOCUMENT_STATUS_NAME' => GetMessage('VI_DOCS_DOCUMENT_STATUS_' . $document->DOCUMENT_STATUS), 'IS_INDIVIDUAL' => $document->IS_INDIVIDUAL, 'IS_INDIVIDUAL_NAME' => GetMessage('VI_DOCS_IS_INDIVIDUAL_' . $document->IS_INDIVIDUAL), 'REVIEWER_COMMENT' => $document->REVIEWER_COMMENT);
             }
         }
     }
     return $verifications;
 }
Example #2
0
 public function UpdateAccountInfo()
 {
     $ViHttp = new CVoxImplantHttp();
     $result = $ViHttp->GetAccountInfo();
     if ($result) {
         $this->SetAccountName($result->account_name);
         $this->SetAccountBalance($result->account_balance);
         $this->SetAccountCurrency($result->account_currency);
         $this->SetAccountBetaAccess($result->account_beta_access);
     } else {
         if ($ViHttp->GetError()->error) {
             $this->error = new CVoxImplantError(__METHOD__, $ViHttp->GetError()->code, $ViHttp->GetError()->msg);
             return false;
         }
     }
     return true;
 }
Example #3
0
 public static function sipConnectorStatus()
 {
     if (!CVoxImplantMain::CheckAccess()) {
         throw new \Bitrix\Rest\AccessException();
     }
     $ViHttp = new CVoxImplantHttp();
     $info = $ViHttp->GetSipInfo();
     if (!$info || $ViHttp->GetError()->error) {
         throw new Bitrix\Rest\RestException($ViHttp->GetError()->msg, $ViHttp->GetError()->code, CRestServer::STATUS_WRONG_REQUEST);
     }
     $result = array('FREE_MINUTES' => intval($info->FREE), 'PAID' => $info->ACTIVE);
     if ($info->ACTIVE) {
         $result['PAID_DATE_END'] = CRestUtil::ConvertDate($info->DATE_END);
     }
     return $result;
 }
Example #4
0
 public function GetOnlineUsers()
 {
     $ViHttp = new CVoxImplantHttp();
     $result = $ViHttp->GetOnlineUsers();
     if (!$result || $ViHttp->GetError()->error) {
         $this->error = new CVoxImplantError(__METHOD__, $ViHttp->GetError()->code, $ViHttp->GetError()->msg);
         return false;
     }
     return $result->result;
 }
Example #5
0
 public static function VerifyCallerID($number)
 {
     $number = CVoxImplantPhone::Normalize($number);
     if ($number) {
         $ViHttp = new CVoxImplantHttp();
         $result = $ViHttp->VerifyCallerID($number);
         if ($result) {
             return 200;
         } else {
             if ($ViHttp->GetError()->code) {
                 return $ViHttp->GetError()->code;
             }
         }
     }
     return false;
 }
Example #6
0
 public static function AttachPhoneNumber($country, $regionId, $number = '', $countryState = '', $type = self::PHONE_TYPE_FIXED)
 {
     $arResult = array();
     if (!in_array($type, array(self::PHONE_TYPE_FIXED, self::PHONE_TYPE_TOLLFREE, self::PHONE_TYPE_TOLLFREE804, self::PHONE_TYPE_MOBILE, self::PHONE_TYPE_MOSCOW495))) {
         return $arResult;
     }
     if ($country == 'RU' && $regionId == '15') {
         $type = 'MOSCOW495';
     }
     $arPhones = array();
     $viHttp = new CVoxImplantHttp();
     $result = $viHttp->AttachPhoneNumber($type, $country, $regionId, $number, $countryState);
     if ($result->result && !empty($result->phone_numbers)) {
         foreach ($result->phone_numbers as $number) {
             $arPhones[$number->phone_number]['PHONE_NUMBER'] = '+' . $number->phone_number;
             $arPhones[$number->phone_number]['VERIFICATION_REGION'] = isset($number->required_verification) ? $number->required_verification : '';
             $arPhones[$number->phone_number]['VERIFICATION_STATUS'] = isset($number->verification_status) ? $number->verification_status : 'VERIFIED';
             $arPhones[$number->phone_number]['VERIFICATION_UNVERIFIED_HOLD_UNTIL'] = $arPhones[$number->phone_number]['VERIFICATION_STATUS'] != 'VERIFIED' && isset($number->unverified_hold_until) ? $number->unverified_hold_until : '';
         }
         CVoxImplantHistory::WriteToLog($arPhones, 'ATTACHED PHONES');
     } else {
         CVoxImplantHistory::WriteToLog($viHttp->GetError(), 'ERROR WHILE ATTACH');
     }
     foreach ($arPhones as $phone => $phoneObj) {
         $melodyLang = 'EN';
         if ($country == 'RU') {
             $melodyLang = 'RU';
         } else {
             if ($country == 'DE') {
                 $melodyLang = 'DE';
             } else {
                 if ($country == 'UA') {
                     $melodyLang = 'UA';
                 }
             }
         }
         $arFields = array('SEARCH_ID' => $phone, 'PHONE_NAME' => $phoneObj['PHONE_NUMBER'], 'PHONE_VERIFIED' => $phoneObj['VERIFICATION_STATUS'] == 'VERIFIED' ? 'Y' : 'N', 'PHONE_COUNTRY_CODE' => $country, 'MELODY_LANG' => $melodyLang);
         $result = VI\ConfigTable::add($arFields);
         if ($result) {
             $userId = $GLOBALS['USER']->GetId();
             if ($userId > 0) {
                 VI\QueueTable::add(array('CONFIG_ID' => $result->getId(), 'USER_ID' => $userId, 'STATUS' => 'OFFLINE'));
             }
             $arResult[] = array('ID' => $result->getId(), 'SEARCH_ID' => $phone);
             if (CVoxImplantConfig::GetPortalNumber() == CVoxImplantConfig::LINK_BASE_NUMBER) {
                 CVoxImplantConfig::SetPortalNumber($arFields['SEARCH_ID']);
             }
         }
     }
     if (!empty($arPhones)) {
         CVoxImplantConfig::SetModeStatus(CVoxImplantConfig::MODE_RENT, true);
     }
     return $arResult;
 }