По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Как дела, дорогой коллега? :) Сегодня в статье мы рассмотрим настройку трансфера (Call Transfer) в CME(CUCME) . Перевод звонка является одной из самых используемых функций в голосовых сетях. Для перевода звонка нужно нажать клавишу Trnsfer (softkey), во время активного звонка. После этого будет слышен гудок, и можно будет набрать номер телефона, на который необходимо перевести вызов. То, что произойдет дальше, будет зависеть от того, как сконфигурирован CME роутер. Доступно два метода перевода звонка: Consult transfer– консультативный трансфер позволяет непосредственно перед переводом говорить с абонентом на который будет переведен вызов. После того как вы набрали номер другой стороны нужно дождаться ответа, и затем нажать второй раз клавишу Trnsfer. Звонок будет переведен, а вы будете отключены от разговора. Этот вид трансфера требует второю линию или конфигурацию dual-line; Blind transfer – слепой трансфер немедленно переводит звонок после нажатия клавиши Trnsfer и набора номера. Этот вид трансфера работает с single-line конфигурацией; Настройка трансфера происходит с помощью команды transfer-system: CME(config)# telephony-service CME(config-telephony)# transfer-system ? full-blind full-consult local-consult CME(config-telephony)# transfer-system full-consult Здесь доступно три метода трансфера: full-blind, full-consult и local-consult. Full-blind и full-consult методы используют стандарт H.450.2, при котором при переводе звонка CME роутер полностью сбрасывает вызов с переводящего телефона и инициирует новый вызов к телефону на который переводится вызов. Метод local-consult использует проприетарный метод трансфера Cisco, который выполняет перевод, если настроены множественные линии или настроена конфигурация ephone-dn dual-line, но если доступна только одна линия, то будет выполнен blind transfer. Также можно настраивать виды трансфера индивидуально для каждого ephone-dn: CME(config)# ephone-dn 1000 CME(config-ephone-dn)# transfer-mode blind CME(config)# ephone-dn 1001 CME(config-ephone-dn)# transfer-mode consult По умолчанию роутеры Cisco запрещают делать перевод вызова на внешние номера. Для того чтобы разрешить это делать необходимо использовать команду transfer-pattern [паттерн] , где паттерн отражает номера, на которые можно переводить звонки (где точка “.” это означает любую цифру от 0 до 9): CME(config)# telephony-service CME(config-telephony)# transfer-pattern 8………. Также для настройки паттерна можно использовать Cisco Configuration Professional (CCP) в разделе Unified Communications → Advanced Telephony Settings, выбрать вкладку Transfer Pattern и нажать Add.
img
На базе нашего опыта и статей мы сделалем еще один полезный документ: руководство администратора по Linux/Unix системам. В документе мы описали самые частые сценарии повседневной работы администратора, с которыми встречались сами. От Ubuntu до FreeBSD, от 10 команд, которые "убьют" твой сервер до 15 лучших дистрибутивов Linux, от установки RPM до принципов работы с CURL. Получившееся руководство администратора по Linux/Unix можно получить по ссылке ниже: Скачать
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% работоспособности - это элемент такта, который может позволить себе только настоящий профессионал. Уверенность в то, что код будет работать без проверок. Возможно, что автор досконально знает свой код и может оперативно исправить любой баг. Однако если с приложением будет работать другой человек, то не факт, что он сможет вникнуть во все нюансы так же быстро. Как можно заметить, все причины, перечисленные выше, скорее, продиктованы ленью и непониманием предмета, нежели практичностью и здравым смыслом.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59