По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Интерфейс администрирования FreePBX создан для удовлетворения как простых, так и сложных конфигурационных требований и обладает действительно богатым функционалом. С одной стороны, администратор может в графической среде произвести настройки, а с другой стороны, сделать это через конфигурационные файлы с помощью интерфейса командной строки (CLI). При решении нетривиальных задач, которые невозможно выполнить с помощью FreePBX, опытные администраторы IP – АТС Asterisk создают собственные диал – планы с помощью консоли в файле конфигурации /etc/asterisk/extensions_custom.conf. Но, к сожалению, после создания подобных диал - планов, FreePBX не будет знать о их существовании. Со временем, это чревато пересечением конфигураций (например, появление дублей внутренних номеров). В этой ситуации на выручку приходит модуль Custom Extension, о котором и поговорим Настройка модуля Итак, давайте от теории к практике. Представим, вы создали собственный диал – план следующего содержания: [play-audiofile] exten => 777,1,Playback(tt-audiofile) Здесь, при наборе номер 777, первым приоритетом мы проигрываем аудио – файл tt-audiofile. Сохраняем изменения и даем команду asterisk -rx "dialplan reload" Спустя некоторое время, мы создаем внутренний номер 777 в FreePBX. Что будет в таком случае? Верно, будет пересечение конфигураций. Asterisk не будет знать что делать. Чтобы этого не было, открываем вкладку Admin -> Custom Extension и нажимаем кнопку + Add Extension: Заполняем поля в открывшейся форме. Условно говоря, мы сообщаем FreePBX, что номер 777 зарезервирован, и его нельзя более использовать: Custom Extension - введите номер, который используется в вашем диал – плане для дальнейшего исключения его из настроек FreePBX. В нашем примере это 777. Description - тезисное описание для создаваемого правила. Notes - опишите здесь подробно, по какой причине вы исключаете данный номер. Это поможет вам в будущем быстрее ориентироваться в создаваемых правилах. Готово. По окончанию настроек нажмите Submit и затем Apply Config.
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
В сегодняшней статье расскажем как подключить Asterisk к виртуальной АТС от Манго – Телеком на примере FreePBX 13 Теория Перед тем как мы приступим к настройке, давайте разберемся со схемой работы интеграции. Подключаться к виртуальной АТС мы будет по протоколу SIP. В интерфейсе виртуальной АТС мы создадим сотрудника и назовем его Asterisk. Вслед за этим, нам необходимо будет создать SIP учетную запись и прикрепить ее к созданному ранее сотруднику. На этом этапе у нас будет логин, пароль и домен для регистрации нашего SIP – аккаунта. Следующим этапом, мы создаем переадресацию на созданного пользователя в настройках распределения звонков. Заключительным этапом мы создаем SIP – транк на нашем Asterisk в сторону виртуальной АТС и регистрируем его. Схема работы приведена ниже: Настройка Придерживаясь созданного плана, переходим к созданию нового сотрудника на виртуальной АТС. Для этого, в разделе «Обработка звонков» выбираем пункт «Сотрудники и группы». Далее, переходим во вкладку «Список абонентов» и нажимаем на кнопку «Добавить сотрудника». Откроется форма «Новый абонент»: Шаг 1 - указываем имя для нашего сотрудника. Мы указали просто asterisk Шаг 2 - указываем внутренний номер Шаг 3 - в качестве устройства можете выбрать либо опцию «На обычный IP – телефон», либо «На софтфон (компьютер)». В динамически сформированном ниже меню выбираем «Создать новую учетную запись SIP автоматически» Шаг 4 - если у вас заведено несколько номеров на виртуальной АТС, то выберите необходимую линию – этим номером буду закрываться все исходящие вызовы с Asterisk Нажимаем на кнопку создать. На скриншоте ниже сохраните себе выделенные красным параметры: Пусть в нашем примере это будут следующие настройки: SIP ID = user11@domain.mangosip.ru Пароль = Vf5kNm7Z Теперь необходимо создать правила распределения вызова на наш Asterisk. Переходим в раздел «Настройка», выбираем меню «Обработка входящих звонков» и нажимаем на «Распределение звонков, приветствие, голосовое меню». В открывшемся пункте меню выбираем номер, звонки на который мы будем маршрутизировать Далее, создаем схему, для этого справа нажмите добавить и введите название для схемы, например, «переадресация» и затем нажмите «Активировать»: Пролистываем ниже. Создаем схему с переадресации на созданного сотрудника asterisk. У вас должно получиться вот так: Настройка FreePBX Создаем SIP – транк в нашем FreePBX. Для этого, переходим в вкладку Connectivity -> Trunks: Во вкладке sip Settings, в разделе Outgoing скопируйте конфигурацию ниже, предварительно изменив параметры логина, пароль и домена: type=friend username=user11 secret=Vf5kNm7Z host=domain.mangosip.ru dtmfmode=rfc2833 disallow=all allow=alaw&g729 fromuser=user11 fromdomain=domain.mangosip.ru canreinvite=no insecure=port,invite qualify=200 context=from-trunk canreinvite=no Во разделе Incoming скопируйте строку регистрации ниже: user11:Vf5kNm7Z@domain.mangosip.ru/4991234567 Здесь, номер 4991234567, это DID, который будет нам передавать Манго - Телеком (номер, выбранный на этапе настройки распределения вызовов). О том, как настроить маршрутизацию вызовов с помощью FreePBX читайте по ссылке ниже: Маршрутизация вызовов FreePBX 13
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59