По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Телефонная станция Cisco Unified Communications Manager (далее CUCM) является системой обработки вызовов на базе программного обеспечения, разработанного компанией Cisco Systems. Первая версия CUCM была анонсирована в 1997 году, под названием CallManager 1.0. На момент написания статьи последняя и самая актуальная версия - CUCM 10.5. CUCM работает с такими элементами сетей передачи голоса поверх протокола IP (VoIP) как: шлюзы, телефонные аппараты, мосты для конференцсвязи, голосовая почта, видеоконференцсвязью и многими другими.
Чаще всего, для работы с оконечными устройствами CUCM использует собственный протокол сигнализации, разработанный компанией Cisco Systems под названием Skinny Client Control Protocol (SCCP). Помимо собственных разработок, CUCM поддерживает и открытые стандарты, такие как H.323, Media Gateway Control Protocol (MGCP) или Session Initiation Protocol (SIP). Схема работы CUCM приведена рисунке ниже:
На рисунке схематично обозначена схема работы CUCM в рамках корпоративной сети. Пунктирными линиями обозначены Real-time Transport Protocol (RTP) потоки, которые переносят в поле информационной (полезной) нагрузки медиа – данные разговора. Особое внимание следует обратить на расположение линий направления RTP – они проходят напрямую от телефонного аппарата до телефонного аппарата. Телефонная станция CUCM контролирует телефонную сигнализацию, на данном примере, по протоколам SIP/SCCP. Это означает, что если во время разговора CUCM перестанет работать, разговор между абонентами будет продолжен, но такие функции как удержание, трансфер, отбой вызова и другие функции управления вызовом будут не доступны.
Цифровая телефонная станция CUCM выполнена на базе операционной системы Linux с закрытыми правами администратора и с предустановленной базой данных IBM Informix. В совокупности, такой вид операционной системы носит название VOS (voice operating system). Продукт устанавливается пакетом, сначала VOS, а затем само программное обеспечение.
Интерфейс управления цифровой телефонной станцией CUCM выполнен как WEB – приложение, доступное через протокол HyperText Transfer Protocol (HTTP). Интерфейс имеет удобную навигацию по вкладкам, пять разных Graphical user interface (GUI) для сегментации функций администрирования и возможность предоставлять уровни доступа администраторам. Основной интерфейс проиллюстрирован на рисунке:
Как было сказано ранее, CUCM имеет пять различных панелей администрирования:
Cisco Unified CM Administration
Cisco Unified Reporting
Disaster Recovery System
Cisco Unified Serviceability
Cisco Unified OS Administration
Интерфейс Cisco Unified CM Administration – основной интерфейс администратора. Здесь можно настраивать системные настройки, параметры маршрутизации вызовов, настройка медиа – ресурсов, таких как Music On Hold (MOH), параметров интеграции с другими продуктами компании Cisco Systems, конфигурацию телефонных аппаратов, шлюзов, «привратников» (gatekeepers), администрирование групп пользователей и многие другие настройки.
Интерфейс Cisco Unified Reporting обеспечивает доступ к отчетам о работе телефонной станции. Данная консоль отчетности собирает данные с различных системных журналов и предоставляет эту информацию в просто для администратора виде.
Интерфейс Disaster Recovery System (DRS) создан для резервирования конфигурации, или как принято говорить «бэкапа» телефонной станции CUCM. Бэкап может происходить как локально на сервер, так и на удаленные площадки по протоколу SSH File Transfer Protocol (SFTP).
Графический интерфейс Cisco Unified Serviceability предоставляет наблюдение и контроль работоспособности телефонной станции, включая в себя такие настройки как конфигурацию опций оповещения о проблемах в работе CUCM, систему трассировки для обнаружения причин проблем, богатое меню инструментов, в котором можно смотреть отчеты Call Detail Record (CDR). Данный интерфейс позволяет настроить параметры Simple Network Management Protocol (SNMP), созданного для управления и контроля.
Последним в списке интерфейсов значится Cisco Unified OS Administration. Он предназначен для мониторинга аппаратной платформы и различных системных статистических данных, таких как: загруженность центрального процессора, свободного пространства жестких дисков, мониторинга системного времени, информации об IP – адресах, работы в рамках протокола Internet Control Message Protocol (ICMP).
Еще один немаловажный интерфейс, это Command Line Interface (CLI) – консоль. Он удобен для перезагрузки сервиса, например, при недоступности основного графического интерфейса через порт 8080.
Cisco UCM - решение для крупного бизнеса или государственного учреждения
Телефонная станция CUCM это гибкое и масштабируемое решение. Одним из важных преимуществ является возможность кластеризации серверов, или другими словами объединения. В общем случае, в одном кластере может работать до 20 серверов. Среди них только 8 серверов занимаются обработкой вызовов, остальные, это дополнительные сервера предназначенные для расширения функционала кластера (сервисы музыка на удержании, Trivial File Transfer Protocol (TFTP) сервер и многие другие). Работая в кластере, сервера CUCM могут работать с 30 000 абонентами.
При работе в кластере различают два типа серверов – «паблишер» (публикатор) и «сабскрайбер» (подписчики). В данной модели один сервер, который является «паблишером» дублирует базу данных на все остальные сервера, которые являются «сабскрайберами. Схема работы кластера показана на рисунке:
Большое преимущество IP PBX CUCM – это возможность развернуть сервер в виртуальной среде.
Системы виртуализации появились после того, как соотношение эффективности использования одного аппаратного сервера к стоимости данного сервера, с каждым днем стремилось к меньшему и меньшему значению. Виртуализация позволяет делить аппаратные ресурсы сервера между различными приложениями. Например, предприятие покупает аппаратный сервер, для конкретной цели. Системный администратор данной организации устанавливает на него операционную систему на базе Windows, а затем, приложение, для которого был куплен этот сервер. Спустя некоторое время, у организации появилось требование для внедрения в корпоративный контур бизнес – приложений, которые работают на базе Linux. За неимением систем виртуализации, компания сталкивается с новой проблемой – покупкой нового сервера, по причине того, что разнородные операционные системы не смогут существовать на одном и том же аппаратном ресурсе.
При наличии системы виртуализации, компания может установить специальное программное обеспечение «гипервизор» на имеющийся Windows сервер. Гипервизор позволит изолировать друг от друга различные операционные системы на одном и том же сервере, обеспечит безопасность, защиту, целостность данных, предоставит централизованное и удобное управление виртуальным серверным ресурсом компании, а так же множество встроенных средств и инструментов автоматизации, предназначенных для автоматического резервирования данных и конфигурации серверов. Предприятия решит поставленную задачу, оптимизировав расходы на аппаратные сервера.
Преимущества
Выделим основные конкурентные преимущества систем виртуализации
Экономия расходов предприятия на покупке дополнительного сервера.
Экономия места в телекоммуникационной стойке.
Снижение тепловыделения и электропотребления.
«Бесшовное» обновление операционной системы сервера, позволяющее не производить перезагрузку и не останавливать работу приложения.
Централизация управления и администрирования серверов.
Гибкая настройка конфигурации, автоматического резервирования. Создание отказоустойчивости внутренними средствами программного обеспечения гипервизора.
Общий принцип работы систем виртуализации проиллюстрирован на рисунке: Виртуализация CUCM
Ведущие производители систем виртуализации, это такие компании как VMware, Hyper-V, Xen и Citrix Systems.
Предыдущая статья из цикла про устранение неисправностей DHCP на Cisco доступна по ссылке.
Последняя статья будет посвящена некоторым проблемам с FHRP, мы начнем с VRRP!
Урок 1
В сценарии выше у нас есть проблема с HSRP. Сначала разберем топологию. С левой стороны находится клиент (мы используем маршрутизатор, чтобы иметь возможность воссоздать его в GNS3), который использует виртуальный IP-адрес в качестве шлюза по умолчанию. R2 и R3 настроены для HSRP. На правой стороне есть маршрутизатор с IP-адресом 4.4.4.4 на интерфейсе loopback0. К сожалению, наш клиент не может пропинговать 4.4.4.4. Что здесь происходит?
Сначала мы отправим эхо-запрос от клиента на IP-адрес 4.4.4.4. Вы видите символ U (недостижимый), поэтому мы знаем, что получаем ответ от шлюза по умолчанию.
Таблица маршрутизации была отключена на этом клиентском маршрутизаторе (нет ip-маршрутизации), но вы можете видеть, что шлюз по умолчанию был настроен. Давайте посмотрим, доступен ли этот IP-адрес.
Достигнуть шлюза по умолчанию не проблема, поэтому мы можем перенести фокус на R2 или R3.
Мы можем использовать команду show standby, чтобы убедиться, что R3 является активным маршрутизатором HSRP. Давайте проверим, может ли он достичь IP-адреса 4.4.4.4.
Увы ...пинг не проходит.
Его нет в таблице маршрутизации, и если вы посмотрите внимательно, то увидите, что FastEthernet1/0 не находится в таблице маршрутизации как непосредственно подключенный, это указывает на то, что что-то не так с этим интерфейсом.
Ну вот...интерфейс отключен.
R3(config)#interface fastEthernet 1/0
R3(config-if)#no shutdown
Включим его!
Ну вот, теперь он работает.
Проблема устранена ... теперь клиент может пинговать 4.4.4.4! Есть еще одна вещь, хотя ... мы используем HSRP, так что наш шлюз по умолчанию не является единственной точкой отказа, но в этом случае R3 имел сбой соединения...разве R2 не должен взять на себя управление?
interface tracking было включено, и вы можете видеть, что приоритет должен уменьшиться на 10, если интерфейс FastEthernet1/0 перейдет в состояние down. Это означает, что обычно R2 должен взять на себя управление, но preemption is disabled по умолчанию для HSRP.
R2(config)#interface fastEthernet 0/0
R2(config-if)#standby 1 preempt
R3(config)#interface fastEthernet 0/0
R3(config-if)#standby 1 preempt
Прежде чем отпраздновать нашу победу в устранении неполадок, мы должны убедиться, что эта проблема больше не возникнет в будущем. Мы включим приоритет на обоих маршрутизаторах. Теперь все готово!
Итог урока: убедитесь, что preemption включена для HSRP, если вы используете interface tracking
Урок 2
Вот та же топология, но на этот раз мы используем VRRP вместо HSRP. Однако проблема заключается в другом: клиент жалуется, что не все IP-пакеты попадают в 4.4.4.4.
Некоторые из IP-пакетов не поступают в 4.4.4.4.
IP-адрес шлюза: 192.168.123.254.
Шлюз пингуется без проблем.
R2 не может достичь 4.4.4.4, но у R3 нет никаких проблем. Прежде чем мы продолжим проверять, почему R2 не может достичь 4.4.4.4, мы взглянем на конфигурацию VRRP, чтобы увидеть, какой маршрутизатор является главным.
Вывод show vrrp интересен. Оба маршрутизатора считают, что они активны, и, если вы посмотрите внимательно, вы поймете, почему. Аутентификация включена, и в key-string имеется несоответствие. Поскольку оба маршрутизатора активны, половина пакетов окажется в R2, а остальные в R3. Вот почему наш клиент видит, что некоторые пакеты приходят, а другие нет. Давайте исправим нашу аутентификацию:
R2(config)#interface fa0/0
R2(config-if)#vrrp 1 authentication md5 key-string SECRET
Мы сделаем key-string одинаковыми.
Это сообщение в консоли R2 является многообещающим.
R3 был выбран в качестве главного маршрутизатора. Теперь давайте выясним, почему R2 не смог достичь 4.4.4.4, поскольку эта проблема устранена.
Странно, R2 показывает только одну запись в таблице маршрутизации, что-то не так с FastEthernet 1/0.
Кажется, кому-то нравится команда shutdown Имейте в виду, что это может быть что-то еще списки доступа, blocking traffic между R2 и R4, port-security (если был коммутатор в середине), интерфейсы в режиме err-disabled, неправильные IP-адреса и другое. Проверьте все!
R2(config)#interface fastEthernet 1/0
R2(config-if)#no shutdown
Включим интерфейс!
Проблема устранена!
Итог урока: убедитесь, что маршрутизаторы VRRP могут связаться друг с другом.
Насколько часто вы попадаете в замкнутый цикл из ошибок при разработке приложения в 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% работоспособности - это элемент такта, который может позволить себе только настоящий профессионал.
Уверенность в то, что код будет работать без проверок. Возможно, что автор досконально знает свой код и может оперативно исправить любой баг. Однако если с приложением будет работать другой человек, то не факт, что он сможет вникнуть во все нюансы так же быстро.
Как можно заметить, все причины, перечисленные выше, скорее, продиктованы ленью и непониманием предмета, нежели практичностью и здравым смыслом.
