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] = '+' . $number->phone_number; } } foreach ($arPhones as $phone => $phoneName) { $arFields = array('SEARCH_ID' => $phone, 'PHONE_NAME' => $phoneName, 'MELODY_LANG' => $country == 'RU' ? 'RU' : ($country == 'DE' ? 'DE' : 'EN')); $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; }
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; }