По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Система записи телефонных разговоров, позволяет компаниям иметь возможность оценивать качество работы сотрудников, отслеживать различные показатели взаимодействия с клиентом, разрешать спорные ситуации. Запись телефонных разговоров - это мощный инструмент, который позволяет оптимизировать работу компании, улучшить качество обслуживания и компетенции сотрудников. На сегодняшний день, лидерами рынка систем записи являются ZOOM, Verint, Nice, Cisco (MediaSense). По какому принципу работает система записи? На этот вопрос мы постараемся ответить. Запись телефонных разговоров как правило делят на два типа: активная и пассивная. Активная (SPANLess) запись – это возможность телефонного аппарата напрямую отправлять RTP поток на сервер записи, а сигнальный трафик приходит через JTAPI*. *JTAPI (Java Telephony Application Programming Interface) – специальный телефонный «эй-пи-ай», позволяющий интегрировать телефонные события. Данный вариант зачастую реализуется при действующем кластере CUCM версией выше 6.0(Cisco Unified Communications Manager) и телефонах с поддержкой Built-in-Bridge. Давайте посмотрим на схему работы активной записи: Активный режим записи разговоров В данном примере, пользователь А, звонит пользователю В. На телефоне пользователя А включен режим Built-in Bridge, и настроен соответствующий профиль записи. CUCM в этот момент фиксирует, что телефон пользователя В подлежит записи и начинает дублировать сигнализацию на интерфейс сервера записи. Вместе с тем, на сервер приходит и RTP поток от пользователя В. Медиа поток декодируется и соотносится с сигнализацией. По окончании обработки, через GUI системы записи мы видим наш разговор, с временными метками, DNIS, ANI и некоторые другие. В контактных центрах, так же возможна интеграция с платформой UCCX, UCCE, Genesys ,Avaya Communication Manager. В результате интеграции с данной платформой, будет возможно передавать агентскую информацию, CallType и многие другие параметры. Давайте теперь разберемся с пассивной записью. Пассивная запись организуется путем настройки SPAN** – сессий для RTP траффика и сигнализации. **SPAN (Switched Port Analyzer) – мониторинговая сессия, которая позволяет дублировать сетевой трафик с одного интерфейса на другой. Чтобы на сервер записи не приходил ненужный трафик, как правило, настраивают RSPAN в сочетании листами доступа (access-list). Давайте снова посмотрим на схему: Пассивный (устаревший) режим записи разговоров На схеме сверху, можно заметить, что роль CUCM сводится к управлению сигнализацией (SCCP или SIP). Предположим, что на центральном коммутаторе есть следующие настройки: SPAN_SW(config)#monitor session 1 source interface f0/1 SPAN_SW(config)#monitor session 1 destination interface f0/3 Все, теперь траффик в обе стороны, как на прием, так и на передаче, с порта Fa 0/1 будет дублироваться на порт Fa 0/3. Можно вводить ограничения по SPAN-сессиям, например: SPAN_SW(config)#monitor session 1 source interface f0/1 tx SPAN_SW(config)#monitor session 1 destination interface f0/3 Это ограничение будет дублировать только исходящий (с порта) траффик. Таким образом, мы рассмотрели архитектурные особенности систем записи. Наша компания имеет большой опыт в инсталляции и поддержке систем записи.
img
Учишься азам VoIP? Cisco Packet Tracer это отличное решение, в рамках которого ты сможешь попрактиковать свои навыки перед продакшном, подготовиться к экзаменам или просто поймать фан, делая то, чего не можешь сделать на работе (STP петли, широковещательные штормы и прочие радости). Итак, спешим показать способ, как собрать базовую лабу для тренировки своих VoIP (Voice over IP) навыков. Погнали. Наполняем лабу железом В явном виде тебе понадобится L3 девайс (у нас будет маршрутизатор 2811), L2 (коммутатор 2950) и телефончики, которых мы добавим 3 штуки (модели 7960). Перетаскивай все это дело в рабочее поле и соединяй патч – кордом, как показано на скриншоте: Отлично. Нажми 2 раза на IP – телефон и перейди во вкладку GUI, как показано на скриншоте ниже: Наш телефон ругается на то, что у него нет питания. Не проблема, подключим к нему блок питания. Переходим в раздел Physical и обращаем внимание на адаптер питания, который выделен красным на скриншоте ниже: Перетаскиваем его прямо к разъему под питание. Должно получиться примерно вот так: Как только мы включили питание на телефонах, у нас поднялись линки – обратите внимание на зеленые точки от телефонов до свича: На этапе подготовки нашей среды работы все. Переходим к конфигурации. Настройка оборудования Начинаем с маршрутизатора. Открываем его консоль, поднимаем интерфейс и присвоим IP – адрес: en conf t interface FastEthernet 0/0 ip address 192.168.0.1 255.255.255.0 no shutdown Поднимаем DHCP сервер на маршрутизаторе для IP – телефонов: en conf t ip dhcp pool voice network 192.168.0.0 255.255.255.0 default-router 192.168.0.1 exit Теперь нужно дать дополнительную команду для опции 150. Она позволяет подтягивать и автоматически подтягивать прошивки для телефонов с TFTP сервера. Выполняем: en conf t ip dhcp pool voice option 150 ip 192.168.0.1 Время поднастроить классические VoIP параметры, такие как: max-dn - максимально – возможное количество поддерживаемых DN (Directory Numbers). Номеров, другими словами; max-ephones - максимальное количество телефонных аппаратов. Сделаем по количеству DN’ов; ip source-address - откуда наш роутер будет принимать звонки (запросы) от SCCP девайсов; auto assign - присвоение линий в автоматическом режиме; en conf t telephony-service max-dn 15 max-ephones 15 ip source-address 192.168.0.1 port 3100 auto assign 1 to 19 Балдеж. Двигаемся к настройке свича (коммутатор). Нам нужно только включить поддержку VoIP на интерфейсах (голосовой VLAN): en conf t interface range FastEthernet 0/1 - FastEthernet 0/3 switchport mode access switchport voice vlan 1 exit Дело за малым. Присвоим телефонные номера нашим аппаратам: en conf t ephone-dn 1 number 11111 exit ephone-dn 2 number 2222 exit ephone-dn 3 number 3333 exit Готово. Можно звонить. Попробуем позвонить с 1111 на 2222: Продолжайте практиковать свои навыки в VoIP в сетях Cisco :)
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