По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
FOP2 - одна из лучших панелей для IP – АТС Asterisk, которая позволяет наблюдать за телефонной активностью АТС, такой как разговоры сотрудников, количество вызовов в очереди, продолжительность и прочие. Помимо этого, панель позволяет управлять текущим вызовом пользователя. В этой статье мы покажем легкий способ решить проблему с парковкой вызова. Многие пользователи обратили внимание, что при нажатии на парковочный слот, а затем инициации парковки с помощью кнопки Transfer вызов обрывается. Помимо этого, обрыв случается при парковке через кнопку в верхней панели управления Park, которая выглядит как булавка :) Сгенерирован ли диалплан для FOP2? В процессе инсталляции, многие пользователи забывают сгенерировать диалплан для FOP2. Есть ли у вас в директории /etc/asterisk/ файл extensions_override_fop2.conf? Если нет, то воспользуйтесь следующей командой: /usr/local/fop2/generate_override_contexts.pl -write Доработка из консоли Теперь нужно внести некоторый правки в конфигурацию FOP2. Открываем файл extensions_override_fop2.conf: vim /etc/asterisk/extensions_override_fop2.conf Найдите контекст [fop2-park] и сделайте его содержание следующим: [fop2-park] exten => _X.,1,Set(ARRAY(RETURN_EXTENSION,RETURN_CONTEXT,PARKBUTTON)=${CUT(EXTEN,:,1)},${CUT(EXTEN,:,2)},${CUT(EXTEN,:,3)}) exten => _X.,2,GotoIf($["${PARKBUTTON}" = "PARK/DEFAULT"]?5) exten => _X.,3,GotoIf($["${PARKBUTTON}" = ""]?5) exten => _X.,4,Set(PARKINGLOT=${PARKBUTTON:5}) exten => _X.,5,Park(default,${RETURN_CONTEXT},${RETURN_EXTENSION},1,s) Доработка из консоли Прыгаем в FreePBX. Переходим по пути Applications → Parking и сделайте имя для слота (Parking Lot Name) равным значению default: Сохраняем настройки. Проверка Проверяем, что у нас получилось: Делаем звонок из города на номер оператора FOP2; Выбираем парковочный слот и нажимаем Transfer; Видим, что вызов попал в парковочный слот :)
img
Когда клиент ожидает ответа специалиста, ждет окончания трансфера или поставлен в очередь он привык слышать из своей трубки какие-либо звуки. Определенные компании предпочитают выжимать из этого времени максимум и озвучивать клиенту рекламный ролик, а другие просто дают клиенту возможность послушать приятную музыку. В статье поговорим о том, как работает модуль Music on Hold (музыки ожидания) и как его настроить в FreePBX 13. Теория В целом, данный модуль предназначен для уведомления звонящих о том, что они всё еще находятся на линии звонка. Он позволяет легко добавлять вашу собственную музыку или звуковые файлы в систему в .wav или .mp3 формате, или же просто «стримить» их в режиме онлайн. Добавление music on hold является отличным способом персонализации вашей АТС. FreePBX позволяет использовать два различных способа настройки мелодии при удержании вызова – с помощью файлов, которые должны быть загружены на ваш сервер и далее проигрываются при звонке, или при помощи стриминга – АТС подключается к какому-либо аудио источнику через сеть. Как пример источника – любой интернет стрим, стрим со звуковой карты или любого другого записывающего устройства. Различные категории MoH могут быть наложены на любой входящий маршрут, так же как и на очередь, ринг-группу, исходящий маршрут или конференцию. Важный момент – категории, назначенные локально на уровне ринг-группы или очереди, смогут переопределить значение MoH для целого маршрута, но как только звонок покинет ринг-группу – для него снова будет установлено такое значение MoH, как настроено для входящего или исходящего маршрута. Настройка музыки в ожидании Порядок настройки Music on Hold приведен далее. Для начала во вкладке Settings необходимо выбрать Music on Hold и нажать «Add Category» Далее необходимо присвоить имя и тип - файл или стрим Затем нужно нажать Submit и кликнуть на иконку редактирования созданной категории MoH. Таким образом, вы попадете в поле редактирования категории, где можно загрузить аудиофайлы, выбрать формат для их конвертации и так далее По умолчанию, IP - АТС проигрывает загруженные файлы в порядке очереди. Включенная опция Enable Random Play позволяет озвучивать аудио - файлы поставленному на удержание абоненту в случайном порядке. Важный момент – при загрузке аудиофайла возможно настроить уровень громкости. Если же используется тип Streaming, то в поле тип необходимо указать «Custom Application» Поле Application заполняется в соответствии с источником стрима – будь это онлайн стрим или путь к скрипту для использования линейного порта на звуковой карте. Как пример заполнения строки: /usr/bin/testmpg -q -s --mono -r 8000 -f 8192 -b 1024 http://urlofyourlivestreamformoh/ Использование стриминга для MoH может серьезно повлиять на производительность АТС – по причине повышенного использования полосы пропускания или проблем с кодированием. Как пример – при множестве одновременных звонков с их попаданием под одну стриминговую категорию, нагрузка будет существенно возрастать. Если же эти звонки будут использовать иной, нежели ulaw кодек, такой, как, например G.722, АТС будет вынуждена транскодировать все потоки в G.722 – в случае маломощных серверов это может оказаться критичным.
img
Протоколы API, как и все в этом мире, активно развиваются. Многие компании, включая GraphQL, gRPC и Thrift, пользуются классическими API SOAP и REST. В списке этих API есть и JSON-RPC. JSON-RPC, созданный для быстрой разработки многофункциональных сайтов, быстро стал лучшим другом разработчиков. Давайте разберемся, что это такое, и в чем оно полезно специалистам по разработке приложений и API. Знакомство с JSON-RPC начинается с азов JSON. Так что первая глава данной статьи посвящена общей информации о JSON. JSON – что это такое, и как оно работает JSON – это легковесный формат обмена сообщениями, который подходит для более быстрой передачи данных. Именно поэтому он так активно используется в современной разработке. JSON (JavaScript Object Notation, или нотация объектов JavaScript) производит многократную разбивку данных до тех пор, пока они не примут удобный для обработки вид. В основе JSON лежит JavaScript, поэтому просматривая элементы данных, вы не раз встретите строки, нулевые символы, объекты и бинарные переменные. JSON разбивает сложные сопоставленные данные на управляемые структуры, облегчая обработку данных на многих языках программирования, и считается независимым от языка ресурсом. Его придумал Дуглас Крокфорд в 2000 году с целью упрощения взаимодействия между веб-приложениями и сервером. Что такое JSON RPC? JSON-RPC – это не что иное, как преемник JSON, повсеместно признанный протокол для удаленного вызова процедур (RPC - Remote Procedure Calls). Работая на уровне разработки, JSON-RPC запускает различную структуру данных, определяя задачи для приложений. Это сравнительно новый протокол с узкой областью применения.  Наборы команд, гибкость и сценарии развертывания – все работает с ограничениями. Но, тем не менее, разработчики видят в нем идеальный вариант для простой и быстрой разработки. В простых сценариях данные ограничения не являются помехой и побуждают разработчиков переходить с REST на JSON-RPC. Стоит также добавить, что: JSON-RPC определяет сетевые ограничения, связанные с обработкой данных. Легкая конструкция и быстрая обработка – все это подходит для инициации передачи данных с узлами Ethereum. Будучи транспортно-независимым протоколом, JSON-RPC может использовать для взаимодействия сокеты и HTTP. Это отличное решение для разработки решений на базе Ethereum с использованием блокчейн. В настоящий момент предлагается 2 стандарта JSON-RPC: JSON-RPC 1.0 и JSON-RPC 2.0: JSON-RPC 1.0 не хватает возможностей сразу по нескольким пунктам. Отсутствие названий параметров и пояснений к ошибкам вызывает куда больше проблем, чем кажется. Скорее уж, это метод для одноранговой передачи данных. Обновленный JSON RPC 2.0 значительно доработали, заполнив ряд пробелов предыдущей версии. Версию 1.0. заменили клиент-серверной 2.0. Кроме того, в 2.0. появились транспортные зависимости. Разумеется, со временем добавили именованные параметры. Поля урезали. Нет ID для уведомлений; в качестве ответа отправляется только результат/ошибка. В обновленной версии есть дополнительные расширения с информацией об ошибках.  Как пользоваться JSON RPC? Главная функция протокола заключается в отправке клиентских запросов на сервер (при поддержке JSON-RPC). Здесь под клиентом мы подразумеваем общепринятые приложения, которые развертываются для получения запроса от удаленной системы на консолидированный метод. Введенные параметры передаются удаленной системе в формате массива или объекта. В зависимости от используемой версии JSON-RPC, удаленная система будет отправлять в источник запроса разные итоговые значения. Все веб-передачи через JSON-RPC унифицированы и сериализированы с помощью JSON. Запрос JSON-RPC – это вызов удаленного метода. Он состоит из 3 элементов: Метод. Указывает на строку, которая будет запрашиваться при вызове метода. Существует набор зарезервированных имен с префиксом ‘rpc’ – они предназначаются для внутренних вызовов RPC. Параметры. Второй элемент JSON-RPC (объект или массив) со значением параметра, который будет переноситься. Параметры не вызываются в каждом вызове.  ID. Целое или строковое число, которое регулярно используется для поддержания баланса между запросами и ответами. Если на запрос нет ответа, то ID автоматически удаляется. В запросе JSON-RPC получатель обязан вернуться к проверенному ответу на каждый полученный запрос. Добавляются 3 компонента: Результат – первая и важнейшая часть запроса, передающая данные, которые возвращает вызываемый метод. Его часто называют JSON-stat, и при ошибке он остается пустым. Ошибка – второй компонент. Появляется, если в процессе вызова что-то идет не так. В ошибке отображаются код и сообщение. ID ответа указывает на запрос, по которому приходит ответ. Если ответов не требуется, то JSON-RPC использует уведомление, в котором написано, что запрос был без ID. В версии 1.0 ID уведомление приходит пустым, а в версии 2.0. оно полностью отсутствует. Плюсы от использования JSON-RPC JSON-RPC – это довольно «умный» протокол, который предлагает своим клиентам множество плюсов: Простая обработка JSON-RPC намного проще, чем REST. Его легко понимают люди и машины. Здесь нет сложных команд и наборов данных, так что JSON-RPC идеально подходит для начинающих разработчиков. Этот протокол Unicode предлагает компактную командную строку. Кроме того, он способен обрабатывать данные с именованными фразами или отдельными ключевыми словами. Таким образом, JSON-RPC считается простым и понятным инструментом для работы. Быстрое время разработки С JSON-RPC не надо ничего придумывать. Все источники доступны и понятны. Такая простота сокращает время разработки и сроки выхода на рынок. Это самое подходящее решение для разработки приложений в сжатые сроки. Качественный обмен информацией JSON-RPC гарантирует своевременный, быстрый и точный обмен данными, поскольку может обрабатывать уведомления и несколько вызовов. Чтобы продолжить свою работу, ему не нужно ждать ответа от сервера или клиента. Если сделан запрос сообщения, то JSON-RPC гарантированно доставит его «адресату». Не важно, насколько сложные компоненты приложения входят в цепочку коммуникации, JSON-RPC обеспечит должный обмен информацией. Улучшенная производительность API С помощью JSON-RPC можно создавать API, которые не зависят от развертываемого протокола. Такая возможность крайне важна для улучшения производительности API, т.к. заменяет HTTP и TCP, а также снижает рабочую нагрузку. Описание результатов JSON-RPC выдает понятные результаты запроса, которые легко прочитать и обработать. Создание пакетных запросов, объяснение body в HTTP и передача параметров – все это гораздо проще реализовать через JSON-RPC. Улучшенная передача JSON-RPC – это очень удобный для передачи инструмент, ведь поддерживает такие платформы, как XMPP, WebSockets, SFTP, SSH и SCP. Данное разграничение позволяет разрабатывать быстрые, простые в отладке и удобные для пользователя API. Кроме того, этот протокол полностью отделяет запрошенный контент от используемого процесса передачи. А любые ошибки в запросах, данные и предупреждения передаются через полезную информацию запроса. REST и JSON-RPC: что выбрать для разработки API?  Богатый выбор API-ресурсов – это всегда хорошо, но остановиться на каком-то одном варианте бывает не так просто. Ниже мы постараемся помочь разработчикам и объясним ключевые особенности популярных протоколов.  JSON-RPC подходит для начинающих разработчиков с ограниченным количеством ресурсов. JSON-RPC – это очень ограниченный в ресурсах протокол, который отлично выполняет свою функцию. Кроме того, если цель разработчика хоть как-то связана с технологией распределенных реестров, то единственным жизнеспособным решением станет именно JSON-RPC. С таким развертыванием не сможет справиться ни один другой протокол. Для разработки приложений, использующих технологии распределенных реестров, требуется независимый от протокола API, и JSON-RPC отлично подходит. Он позволяет разработчикам создавать API, которые могут взаимодействовать друг с другом с помощью любого протокола. Есть еще одна область, в которой JSON-RPC превосходит REST. В REST доступен ограниченный набор глаголов, что приводит к ошибкам при выполнении операции. При использовании REST необходимо подробно описать HTTP-метод, и на это тратится много времени. Кроме того, в REST доступны только CRUD-операции. Так что лучше отдавать предпочтение JSON-RPC. Тем не менее JSON-RPC нельзя назвать универсальным решением для всего. Его проблема заключается во взаимозависимости. Клиенты должны быть тесно связаны с реализацией служб, поэтому вносить изменения в эту реализацию довольно сложно. При попытке изменить что-то, клиенты чаще всего ломаются. REST решает такие задачи намного лучше. Например, API на базе REST мало того, что легко создаются, так еще и не отслеживают состояния. Этот протокол совместим с HTTP и предлагает огромное множество HTTP-библиотек. REST позволяет создавать гибкие API. Это идеальное решение для CRUD-операций. Оба протокола имеют свои плюсы и минусы. Разработчикам необходимо принять взвешенное решение, исходя из главной цели разработки. Например, если разработчику нужны высокопроизводительные вычисления, то стоит остановиться на JSON-RPC. Если требуется независимая разработка приложения с удобным интерфейсом, то смело выбирайте REST. Не стоит также забывать о безопасности API. JSON-RPC, graphql, grpc Два самых известных аналога JSON-RPC – это GraphQL и gRPC. GraphQL – это полностью адаптивная система. Она используется для точной локализации данных запроса и получения только необходимых запрашиваемых данных. Основная черта – ориентация на клиента. Сервер практически никак не участвует в веб-передаче. Клиент сам устанавливает правила для обработки запрошенных данных. GraphQL относится к языкам запросов, а JSON-RPC относится к удаленному вызову процедур. Еще есть gRPC – легковесный протокол с акцентом на производительность. Это обновленная версия RPC. В JSON-RPC серверы и клиенты договариваются о запрашиваемых данных, а архитектура не важна. А в gRPC, наоборот, запросы обрабатываются по готовой схеме. Этот протокол может выполняться в любой экосистеме. JSON-RPC интегрируется с MQTT, Python и Kallithea. Для gRPC доступны такие ресурсы, как .NET, JavaScript, C++, Swift и многие другие. Главные отличия между всеми решениями заключаются в открытости кода и удобстве для клиентов.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59