По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Виртуальный телефонный номер - один из ключевых сервисов современной IP-телефонии. Если говорить простым языком, это обычный телефонный номер с большим числом дополнительных преимуществ. Об особенностях виртуального номера и сферах его применения сегодня и пойдет разговор в нашей статье. Виртуальный номер подключается как отдельный сервис или вместе с виртуальной АТС. Сразу хотим отметить, что во втором случае число возможностей виртуального номера в разы увеличивается. Теперь об этих особенностях - более подробно. Особенности виртуальных номеров У номера много линий. Если у компании подключен обычный телефонный номер, то одновременно он может принять только один вызов. В случае с виртуальным номером число входящих звонков не ограничено. Как результат, в компанию легко дозвониться с первого раза, никто из клиентов не слышит сигнал "занято". Номер не привязан к адресу компании. Виртуальный номер никак не связан с адресом компании и местоположением абонента. Даже если фирма работает в Москве или Санкт-Петербурге, можно подключить виртуальный номер любого региона России. Клиент, который звонит на региональный номер никогда не узнает, что позвонил в столицу. Подключение номера за 15 минут. Чтобы подключить корпоративный номер, не надо прокладывать телефонные провода, покупать специальное оборудование и вызывать мастера. Для связи с помощью виртуальных номеров необходимы интернет и устройство для звонков (аналоговый, мобильный или специальный IP-телефон, ПК или ноутбук). Это 3 ключевых особенности виртуального номера. На самом деле, у виртуального номера еще больше преимуществ. Предлагаем их рассмотреть уже на реальных примерах из жизни российских компаний. Примеры использования виртуальных номеров Виртуальные номера решают большое число бизнес-задач, начиная от быстрой телефонизации бизнеса, заканчивая анализом рынка и эффективности рекламных кампаний. Сокращение расходов на связь "Компании используют виртуальные номера, чтобы оптимизировать бюджет на связь. Телефонные номера всех офисов подключаются к одной виртуальной АТС и, таким образом, создается единая корпоративная сеть. Звонить внутри компании можно абсолютно бесплатно. Чтобы связаться с коллегой из другого города и даже страны, достаточно набрать добавочный номер", - комментирует Иван Павлов, руководитель проектов Телфин, российского провайдера IP-телефонии. Выход на новые рынки сбыта Если компания планирует выйти на новый рынок, например, открыть представительство в Москве, можно подключить телефонный номер в коде 495 или 499, создать виртуальный офис и заранее оценить спрос на предоставляемые товары или услуги в столице. Таким образом, телефон не только помогает проанализировать возможность и целесообразность выхода на новый рынок, но и удаленно найти клиентов, сформировать базу постоянных лояльных покупателей. Организация удаленных рабочих мест "Корпоративный виртуальный номер может быть единым номером для всех сотрудников компании, даже если они работают вне офиса. Как пример, менеджер из Новосибирска может принять звонок клиента из Москвы или Екатеринбурга. В данном случае, вызов может прийти как на мобильный, так и домашний номер сотрудника. Сценарий переадресации и умная маршрутизация настраивается индивидуально в каждом конкретном случае", - добавил Иван Павлов. Компании выбирают виртуальные номера в зависимости от целей. Благо, что сегодня на рынке представлен большой выбор виртуальных номеров: российские, иностранные, мобильные, федеральные. Отличаются они по стоимости подключения и ежемесячной абонентской плате. Функциональные возможности виртуального номера меняются в зависимости от АТС, в паре с которой они работают.
img
Насколько часто вы попадаете в замкнутый цикл из ошибок при разработке приложения в PHP? Ошибка исчезает, а потом появляется в другом блоке кода, или баги постоянно сменяют друг друга. Самое неприятное обстоятельство - вернуться к багу, который был исправлен несколько часов назад. Когда отлаживание алгоритма начинает приносить раздражение - о конструктивном подходе к задаче можно забыть. Именно для того, чтобы не дать вам забросить перспективную разработку или просто выполнить поставленную задачу, существует возможность использовать PHPUnit тестирование. Что такое PHPUnit тестирование? С Unit или же "модулем" плотно связано понимание процесса тестирования. Модуль - это работающая часть кода, функционал которой можно протестировать автономно. Соответственно, PHPUnit тестирование представляет собой последовательную проверку всех модулей приложения на корректность выполнения их алгоритмов. Тесты можно прописать один раз и впоследствии использовать после внесения любых изменений. Преимущества модульного тестирования Вот несколько неоспоримых преимуществ Unit-тестирования: Оперативная проверка правок. Довольно удобно проверять работоспособность модуля немедленно после его изменения. Операция займет несколько секунд. Облегченная передача кода другому разработчику. Если вы прекратили разработку продукта и ее продолжит другой специалист, то процесс передачи пройдет намного легче. Безопасное редактирование. Если вы боитесь, что изменения модулей могут повлечь за собой глобальную проблему для системы в целом, то без предложенного Unit-тестирования обойтись будет очень сложно. Использование PHPUnit тестирования Использовать модульное тестирование достаточно просто. Ниже будет описано, как установить и запустить первый тест. Установка Элементарный способ установить библиотеку PHPUnit - выгрузить его по каналу PEAR. Для этого нужно вписать: "1 pear config-set auto_discover 1" "2 pear install pear.phpunit.de/PHPUnit" Для пользователей, которые хотят иметь углубленное понимание по этому процессу подойдет ручной вариант установки через официальный сайт PHPUnit. Запуск Любой тест запускается при помощи вызова команды phpunit. Укажите php-файл как в примере ниже: "1 phpunit /path/to/tests/RemoteConnectTest.php" После этого, запущенный тест вернет результат: "1 PHPUnit 2.5 by Aloizii MagaRich" "2 ." "3 Time: 1 second" "4 Tests: 1, Assertions: 1, Failures 0" Итог представляет из себя краткие статистические данные по работе теста, такие как время операции, количество тестов, утверждений и ошибок. Также во второй строке можно заметить знак ".", сигнализирующий о том, что тест завершился успешно. Это общий итог операции. Ниже представлены другие варианты вывода, если тест: "F" - не выполнен. "I" - невозможно закончить. "S" - пропущен. Стандартные тесты Также приведем список стандартных вариантов тестирования, которые можно использовать в 80% ситуаций. Название каждого теста начинается с упомянутого ранее утверждения или Assert: "True/AssertFalse". Используется для выявления корректности значений на соответствие true/false. "Equals". Проверяет равенство. "GreaterThan". Сопоставляет переменные (присутствует большее количество вариаций этого сравнения). "Contains". Тестирует правильность содержания переменной. "Type". Исследует тип переменной. "Null". Проверяет равенство null. "FileExists". Подтверждает существование файла. "RegExp". Тестирует регулярность выражения. Модульное тестирование: почему нет? Почему все разработчики не используют PHPUnit тестирование? Закономерный вопрос, когда дело касается такого эффективного инструмента. Вот несколько распространенных причин: Тестирование затратно по времени. Написание строк с тестом занимает время, которое можно было уделить построению общей структуры приложения. Однако в конечном счете продукт будет дополняться. Несколько часов добавления теста на раннем этапе сэкономит больше времени на стадии доработки или сопровождения. Использовать модульные тесты - скучно. Конечно, прогонять проверку каждого модуля в большой разработке - это рутина, особенно по сравнению с ее созданием. Но поддержка 100% работоспособности - это элемент такта, который может позволить себе только настоящий профессионал. Уверенность в то, что код будет работать без проверок. Возможно, что автор досконально знает свой код и может оперативно исправить любой баг. Однако если с приложением будет работать другой человек, то не факт, что он сможет вникнуть во все нюансы так же быстро. Как можно заметить, все причины, перечисленные выше, скорее, продиктованы ленью и непониманием предмета, нежели практичностью и здравым смыслом.
img
FHRP (Протокол резервирования первого перехода) - это группа протоколов способные обеспечить клиентов отказоустойчивым шлюзом. Что за первый переход такой?. У нас есть коммутируемая среда (SW1) и есть Internet . Internet это маршрутизируемая среда . И для того чтобы перейти из коммутируемой среды , в маршрутизируемую среду для того чтобы выйти в интернет , как раз эти роутеры(R1,R2,VR - Virtual Router) обеспечивают данный переход и для того ,чтобы обеспечить отказоустойчивость этого перехода , его нужно резервировать . А потому и называется протоколы резервирования первого перехода. И все протоколы группы FHRP будут работать в единой логике: R1 , R2 будут прикидываться VR и в случае отказа одного из маршрутизаторов, то его работу возьмет другой. Forwarding Router ( FR ) - это роутер ,который данный момент активен и маршрутизирует трафик . Standby Router ( SR ) - это роутер ,который стоит в резерве и ждет , когда накроется FR ,чтобы перехватите его работу на себя , в случае сбоя маршрутизатора. FHRPs - это группа ,а значит пришло время познакомить вас с этими протоколами. HSRP (Hot Standby Router Protocol) - Проприетарный протокол разработанный Cisco; VRRP (Virtual Router Redundancy Protocol) - Свободный протокол ,сделан на основе HSRP; GLBP (Gateway Load Balancing Protocol) - Проприетарный протоколCisco , обеспечивающий распределение нагрузки на несколько маршрутизаторов( шлюзов) используя 1 виртуальный адрес. CARP( Common Address Redundancy Protocol) - свободный , разработан как часть OpenBSD , портирован во FreeBSD. Итак начнём с HSRP Протокол HSRP рассчитан на 2 роутера, 3 это уже лишний и с этим уже справиться протокол GLBP Предположим ,что R1 это маршрутизатор выхода в интернет и для этого мы поднимем на нём Loopback 1 с адресом 200.200.200.200 и пропишем его в маршруте по умолчанию. Между маршрутизаторами будет настроен RIPv2 и будут анонсированы 2 классовые сети( network 10.0.0.0 и network 192.168.0.0) для простоты анонсирования маршрутов. R2,R1 настраивается также. А теперь по порядку , настроим HSRP: R1(config)# interface e 0/0 - переходим на интерфейс ethernet 0/0 (этот интерфейс смотрит в локальную сеть на коммутатор ) R1(config-if)# ip address 192.168.0.2 255.255.255.0 - задаем ip адрес для физического интерфейса R1(config-if)# standby 1 ip 192.168.0.254 - задаем виртуальный ip адрес (который будет основным шлюзом для свитчей, смотрящих на конфигурируемый роутер). У обоих роутеров он одинаковый R1(config-if)# stanby 1 priority 110 - устанавливаем приоритет данного роутера в 110 (по умолчанию приоритет 100) R1(config-if)# standby 1 preempt - задаем режим приемтинга R1(config-if)# standby 1 authentication md5 key-string MyPassword - задаем аутентификацию, если необходимо. Пароль будет передаваться с защитой алгоритмом хеширования md5, пароль будет MyPassword R1(config-if)# standby 1 timers 100 255 - регулировка таймеров hsrp, где 100 - hello интервал в секундах (как часто посылаются пакеты hello пакеты keep-alive) и 255 - hold interval в секундах (через какой промежуток времени признавать соседа недоступным) R1(config-if)# standby 1 preempt delay minimum 300 - настройка времени задержки (в секундах), через которое роутер будет становиться главным. Эта команда требуется для того,чтобы сначала отработали другие протоколы,прежде чем заработает HSRP . Пример: OSPF включенный на роутере в большой сети не успеет передать маршруты все ,а тут сразу заработает HSRP ,естественно он знать все маршруты не будет,а значить и стабильно гнать трафик тоже. Как раз время delay он будет использовать для того,чтобы дать OSPF передать все маршруты и после этого вкл HSRP. Сам VPC должен получить следующие настройки: IP : 192.168.0.10/24 GW: 192.168.0.254 Главное ,чтобы клиент был в одной подсети и в качестве шлюза был виртуальный IP адрес. TRACKING Также полезно вешать TRACK на интерфейсы ,так как HSRP работает только в сторону ,куда направлен интерфейс ,то он не сможет отработать,когда упадут линки ,смотрящие на роутеры выше.(в данном случае это R3) Router(config)# track 1 interface fa0/1 line-protocol - отслеживаем состояние интерфейса fa0/1, если он падает, то сработает объект отслеживания track 1. Router(config-if)# standby 1 track 1 decrement 15 - если сработает объект отслеживания track 1, то текущий приоритет будет понижен на 15 единиц. Router(config-if)# standby 1 track 1 fa0/1 20 - работает только в HSRP. Позволяет отслеживать интерфейс без дополнительного создания объекта отслеживания. R1,R2,R0 будут настраиваться одинаково, принцип сохраняется. А теперь нюансы HSRP При работе нескольких VLAN , HSRP может идти трафик не совсем рационально из-за протокола STP. Представим ,что R1 это root primary за 10 VLAN, а R2 это ACTIVE router в HSRP . Это значит ,что любой трафик за этот VLAN будет идти следующим образом:VPC - R2 - R1 - R3 вместо того,чтобы идти напрямую VPC - R1 - R3. (L2 трафик всегда ходит через root во избежание петель) Поэтому рекомендуют использовать HSRP version 2(по умолчанию вкл 1 максимум 255 процессов,а во 2 их 4095) и использовать наилучший приоритет для того роутера, который сейчас в сети root primary за текущий VLAN. И хорошей практикой будет если номер VLAN будет совпадать с номером процесса HSRP. ( № HSRP = VLAN ) 3 Роутера в HSRP не имеет смысла держать,так как он всё равно будет в состоянии Listen и включиться только тогда,если active пропадет, standby займет его место , и только тогда он перейдет в состоянии standby.(речь идет о 3 роутере) Тоже самое будет касаться 4,5 ...n роутеров. SLA Бывает и другая ситуация ,когда не сам линк от R1 падает ,а устройство находящиеся за ним,к примеру SW2 упал link до R3. Проблему способен решить сервис SLA - Service Level Agreement. Суть его проста,он ping сервис до провайдера и если он падает ,то отрабатывает track. R1(config)# ip sla 1 - создаем зонд R1(config-ip-sla)# icmp-echo 215.215.215.2 source-interface e0/2 - посылаем icmp echo ping на 215.215.215.2 R1(config-ip-sla-echo)# frequency 10 - посылаем icmp echo ping с частотой каждые 10 секунд R1(config)# ip sla schedule 1 start-time now life forever - задаем расписание работы ip sla. В данном случае зон будет запущен прямо сейчас, при этом время окончания не задано (навсегда) R1(config)# track 1 ip sla 1 reachability - устанавливаем объект отслеживания на доступность того хоста, на который посылаем icmp echo ping R1(config)# ip route 0.0.0.0 0.0.0.0 2.2.2.2 track 1 - направляем трафик по этому маршруту если объект трекинга track 1 работает (хост пингуется) R1(config)# ip route 0.0.0.0 0.0.0.0 3.3.3.3 10 - если не пингуется, направляем трафик в интернет по другому маршруту (Внимание! Здесь важно задать именно плохую метрику, например 10, иначе будут работать оба маршрута! (балансировка)) R1# show track 1 - показать состояние объекта отслеживания VRRP Настройка VRRP не сильно отличается от HSRP . Настраивается он также как и HSRP, только вместо standby используется vrrp. Router(config-if)# vrrp 1 ip 192.168.1.1 - включение vrrp. Проще пройтись по отличиям ,чем заново описывать все команды. У VRRP тоже только 2 состояния Master и Backup(HSRP active и standby) Preempt включен по умолчанию (HSRP он отключен) При падении линка VRRP проводит выборы роутера(HSRP имеет запасной). Главного выбирают по IP адресу, когда проводят выборы. Поддержка Аутентификации в VRRP отсутствует (RFC отсутствует),но в Cisco она реализована(HSRP по умолчанию) VRRP по умолчанию hello таймер равен 1 секунде , dead таймер равен 3(у HSRP 3 и 10 соответственно) Виртуальный адрес может совпадать с адресом интерфейса(HSRP такой адрес не даст прописать) Использует Multicast HSRP равен 224.0.0.2 ( version 1) 224.0.0.102 (version 2) ,а VRRP 224.0.0.18 Может отслеживать только объекты , а HSRP и интерфейсы , и объекты.(смотри раздел tracking) Диагностика Router# show standby (vrrp or glbp) - показать общую информацию по протоколу группы FHRP Router# show standby brief - показать информацию по протоколу группы FHRP в виде таблицы
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59