По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Дорогой читатель! В поисках полезной автоматизации и кастомизации своего Asterisk продвинутые администраторы прибегают к использованию различных скриптов. Это может быть PHP, Perl C, Pascal или Shell. Для использования скриптов, написанных на одном из перечисленных языков программирования в диалплане Asterisk используется AGI (Asterisk Gateway Interface) – о нем и поговорим. Как это работает? AGI - это прослойка между скриптом и диалпланом (планом набора) в Asterisk. В скрипт мы можем передавать различные переменные, а можем получать какие - то значения из скрипта. Когда Asterisk инициирует запуск скрипта через AGI, он передает в него набор переменных. Все переменные обладают префиксом agi_: Переменная Описание Пример agi_request Имя файла исполняемого скрипта trunk.php agi_channel Канал, инициирующий звонок Local/89123456789@from-internal-00000002;2 agi_language Языковой код en agi_type Тип канала, инициирующий вызов Local agi_uniqueid Уникальный идентификатор звонка 1497364935.15 agi_version Версия Asterisk 13.10.0 agi_callerid Номер звонящего (CID Number) 89123456789 agi_calleridname Имя звонящего (CID Name) 89123456789 agi_dnid Набранный номер unknown agi_context Контекст обработки вызова macro-dialout-trunk Как вызвать AGI в диалплане? Вызвать AGI скрипт очень просто: предварительно, загрузите скрипт в директорию /var/lib/asterisk/agi-bin/. После этого, скрипту необходимо дать права и собственника. Предположим, наш скрипт называется trunk.php: chmod 755 /var/lib/asterisk/agi-bin/trunk.php chown asterisk:asterisk /var/lib/asterisk/agi-bin/trunk.php Теперь, чтобы скрипт был вызван в диалплане, просто добавьте следующую конструкцию: exten => 1333,n,AGI(trunk.php) Просто, не правда ли? А если мы хотим передать переменную в скрипт? Просто добавьте ее после запятой: exten => 1333,n,AGI(trunk.php, ${CALLERID(number)}) А как же написать скрипт? Теперь к самому скрипту – напишем его на PHP. Пусть нам нужно отправлять письмо с номером звонящего. Выглядеть скрипт будет так: #!/usr/bin/php -q <?php require('phpagi.php'); $agi = new AGI(); //подключаем файл phpagi.php – 1 и 2 строки обязательны в любом скрипте $cid = $agi->request['agi_callerid']; // берем из AGI номер звонящего mail("info@merionet.ru", 'Привет!', 'Вот и номер звонящего:', $cid); //отправляем в письме Вот и все. Нам будет приходить на почту письмо с номером звонящего – прокачав данный функционал можно отслеживать пропущенные вызовы, например.
img
Поговорим про популярную утилиту IP – АТС Asterisk FOP2 (Flash Operator Panel 2) . Данная панель позволяет видеть и понимать детальную real-time (реального времени) статистику вашей АТС, например, кто с кем разговаривает, продолжительность вызовов, количество вызовов в очереди или на удержании и так далее. Помимо этого, FOP2 предлагает полноценный телефон в браузере, с помощью которого можно осуществлять вызов и прием звонков, трансфер, перевод на мобильный и запись разговора, а для супервизора доступны опции прослушивания (шпионский канал) разговоров операторов в реальном времени и просмотр статистики по звонкам. /p> В бесплатной версии приложения вы можете работать максимум с пятнадцатью сущностями (экстеншены, конференц - румы, транки и так далее). В терминологии продукта их называют «кнопками. »Интересный функционал, не правда ли? В статье расскажем про установку и первичную настройку продукта. Пошаговое видео Установка Установку мы производим на операционную систему CentOS 6. Начнем с того, что определим разрядность нашей операционной системы: Важно! Перед установкой убедитесь, что у вас установлена компонента make. Для этого, дайте команду yum -y install make в консоль сервера. uname -m i686 - у вас 32 – х битная система; x86_64 - у вас 64 – х битная система; Отлично, теперь необходимо скачать нужный нам дистрибутив. Перейдем в директорию для загрузки файла командой cd /usr/src. Для 32-х битной системы: wget http://www.fop2.com/download/centos32 -O fop2.tgz Для 64-х битной системы: wget http://www.fop2.com/download/centos64 -O fop2.tgz Распаковываем скачанный архив и переходим в директорию установки: tar zxvf fop2.tgz cd fop2 Запускаем инсталлятор, который установит все необходимые файлы конфигурации, клиентской и серверной части программного комплекса: make install Настройка AMI Один из самых главных файлов конфигурации FOP2 это /usr/local/fop2/fop2.cfg. В нем находятся опции настройки подключения к AMI (Asterisk Management Interface). Для начала, давайте создадим параметры подключения для FOP2. Для этого, откроем файл конфигурации /etc/asterisk/manager.conf: vim /etc/asterisk/manager.conf Добавляем пользователя fop2 в конфигурацию следующим образом: [fop2] secret = ваш_пароль(устойчивый к взлому) deny=0.0.0.0/0.0.0.0 permit=127.0.0.1/255.255.255.0 read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message writetimeout = 500 Сохраняем конфигурацию файла и даем следующую команду в консоль (перегружаем AMI): [root@asterisk ~]# asterisk -rx "manager reload" Вносим изменения в файл конфигурации FOP2: vim /usr/local/fop2/fop2.cfg Меняем значение параметров manager_user и manager_secret на созданные выше. Должно получиться вот так: Сохраняем изменения. Проверим подключение между FOP2 и AMI. Для этого в консоль сервера дадим следующую команду: /usr/local/fop2/fop2_server --test Если все в порядке, то вы увидите следующий вывод: Запускаем приложение FOP2 командой: [root@asterisk ~]# service fop2 start Starting Flash Operator Panel 2: [ OK ] Установка одной командой Недавно, разработчики FOP2 разработали специальный скрипт, который последовательно установит панель оператора всего с помощью одной команды: wget -O - http://download.fop2.com/install_fop2.sh | bash Скрипт загрузит необходимые файлы, распакует и установит их. После, административный интерфейс будет доступен по ссылке http://ваш_сервер/fop2/admin, а интерфейс пользователя по ссылке http://ваш_сервер/fop2. Подключение по WEB Подключаемся к интерфейсу администратора FOP2. Для этого, откройте URL администраторской консоли по адресу http://IP-адрес/fop2/admin/: Если вы используете FreePBX, то можете указать при входе тот же логин и пароль. Как видно на скриншоте, с нашим сервером FOP2 все хорошо (FOP2 Server Status: OK – Version: 2.31.08): Создадим пользователя. Для этого, перейдите в раздел Users. В главной консоли будет отображен список текущих сущностей, настроенных в Asterisk. Выберем для редактирования нужную и создадим параметры доступа. Самое важное поле - Secret, которое представляет из себя пароль для доступа пользователя и интерфейс: Теперь переходим по адресу http://IP-адрес/fop2 для доступ к пользовательской консоли: Указываем логи и пароль, созданные ранее. Вуаля, мы вошли в операторскую панель :) Возможные проблемы Зачастую, при инсталляциях, может появиться проблема с доступом к пользовательской консоли (http://IP-адрес/fop2). Пользователи видят постоянную загрузку с надписью One moment please и счетчиком подключения к серверу. Для решения этой проблемы воспользуйтесь следующим алгоритмом: Проверьте, запущен ли сервер FOP2. Дайте команду ps -uax | grep fop2 в консоль Если сервер вернул значение в выводе команды: Проверяем наличие записей в iptables. Дайте команду iptables -vnL INPUT: Вывод команды содержит более 2 записей → Добавляем в iptables правило, которое разрешает подключение к порту 4445 по TCP командой sudo iptables -I INPUT -p tcp -m tcp --dport 4445 -j ACCEPT Вывод команды содержит менее 2 записей Ваш компьютер и сервер FOP2 находятся в одном сетевом сегменте (в одном LAN)? Да → Скорее всего проблема в Вашем браузере. Рекомендуемый для подключения браузер – Google Chrome. Попробуйте очистить куки браузера. Нет → Проблема на сетевом уровне. Скорее всего в сети имеет место фаервол, которые не пропускает трафик по tcp на порт 4454. Вывод отсутствует Проверяем, запущен ли сервис FOP. Дайте команду netstat -lnp | grep 444 Вывод команды присутствует. → Дайте команду service fop2 start Вывод отсутствует. Попробуйте запустить FOP2 прямо из CLI с помощью команды /usr/local/fop2/fop2_server -X 15 и с помощью service fop2 start Появляется ошибка FOP2 was unable to find an eth0 interface... → Наличие данной ошибки говорит об отсутствии на вашем сервере интерфейса eth0. Если вы используете eth1, то вам необходимо открыть файл /etc/sysconfig/fop2 и добавить туда опцию OPTIONS="-d -i eth1". Соответственно, если у вас иное обозначение NIC, то вместо eth1 укажите его. После этого даем рестарт FOP2 командой service fop2 start Появляется ошибка Segmentation Fault → Вам необходимо установить пакет ssl совместимости с помощью yum. Для этого, дайте команду yum install openssl098e в консоль сервера. После этого, делаем рестарт командой service fop2 start
img
Все, что нужно знать не разработчикам: SDK – это строительные блоки разработки приложений. Если ваша компания занимается тем, что разрабатывает или добавляет функциональные возможности в приложение, то вы, вероятно, слышали, как ваши разработчики используют термин «SDK». SDK (software development kit) – это пакет разработки средств ПО (иногда его называют devkit). Как можно понять из названия, это набор инструментов и инструкций, которые разработчики используют для создания приложений. SDK избавляют разработчиков от необходимости писать каждый банальный фрагмент кода своими руками. Они помогают стандартизировать разработку, что позволяет приложениям без каких-либо затруднений работать на различном оборудовании, операционных системах и совместно с другими приложениями. Итак, какое это вообще имеет для вас значение, если вы не разработчик программного обеспечения? Так как архитектура вашего приложения напрямую связана с его коммерческой ценностью, то, когда вы выбираете то, какие компоненты использовать (например, Stripe или PayPal для платежей), ваш выбор должен быть продиктован SDK. Здесь мы привели краткое описание того, что такое SDK, как они работают и как сравнить их по качеству. Пакет разработки средств ПО (SDK - Software Development Kit): определение и примеры SDK – набор инструментов, который используют разработчики для создания приложений с помощью готовых компонентов, тем самым не утруждая себя тем, чтобы создавать эти компоненты собственноручно. SDK предназначены для работы с определенными операционными системами, оборудованием и языками программирования. А вот вам аналогия из реальной жизни: если вы собираетесь собрать книжную полку, то SDK – это все то, что вы найдете в коробке из IKEA, то есть предварительно собранные детали, инструменты и инструкции, как все это собрать. А чтобы, например, собрать стол без SDK, вам придется пойти в лес, срубить дерево, чтобы у вас был свой пиломатериал, причем использовать для этого придется топор, который вы тоже должны сделать сами. Если, например, вы хотите создать мобильное приложение, то вам нужно загрузить iOS SDK от Apple. Это даст вам доступ к любым инструментам iPhone, которые вам будут нужны для того, чтобы создать приложение, например, подключение к камере, интерфейсу Siri или включение push-уведомлений. Аналогично, если вы хотите внедрить платформу Auth0 в свои мобильные и веб-приложения, то вы должны загрузить iOS SDK, Android SDK и веб-SDK. Что находится в SDK? Практически все SDK содержат несколько основных компонентов: Библиотеки кода. Это исходный код, который разработчики могут подключают, чтобы приложение выполняло те функции, которые им нужно. Программный интерфейс приложения (API - Application programming interface). Они позволяют приложению без проблем подключаться к другим службам (подробнее об этом позже). Интегрированная среда разработки (IDE - Integrated development environment). Это интерфейс, с помощью которого разработчики пишут программы. В него встроен компилятор, который переводит высокоуровневый язык программирования, на котором написан исходный код SDK, на язык более низкого уровня, который можно использовать для сборки приложений. Документация. Это инструкции для разработчиков, в которых описано, как нужно использовать код. Понятная и подробная документация – важный критерий хорошего SDK. Отладчик. Отладка автоматически исправляет мелкие ошибки, упрощая тем самым процесс разработки приложения. Примеры кода. Они помогают разработчикам начать работу. Это примеры кода в действии, которые показывают, как их можно использовать. Некоторые SDK также содержат учебные руководства и другие инструментальные средства поддержки. Виды SDK Для создания большинства приложений используются самые различные SDK. Некоторые из этих SDK оптимизируют приложение для конкретного устройства или операционной системы, а некоторые позволяют разработчикам добавлять различные инструменты. SDK с точки зрения аппаратных средств: SDK предназначены не только для мобильных и веб-приложений; они также используются для программирования Интернета вещей (IoT). Поэтому, если вы покупаете, например, набор солнечных батарей, то поставщик оборудования может включить в поставку SDK, чтобы разработчики могли запрограммировать их так, как им нужно. Операционная система мобильного устройства: как мы уже говорили, для того, чтобы разработать приложение, которое бы работало как на Android, так и на Apple необходимы SDK для каждой ОС. Язык программирования для веб-приложений: разработчикам требуются SDK, которые позволяют создавать веб-приложения на том языке программирования, который они выбрали, например, Python, Ruby, JavaScript или PHP. SDK с открытым исходным кодом: это бесплатные SDK, и разработчики могут их модифицировать как сочтут нужным. Это может быть, как преимуществом, когда дело доходит до настройки, так и недостатком, когда возникают риски для безопасности. Проприетарные SDK: в отличие от SDK с открытым исходным кодом, для проприетарных, или коммерческих, SDK нужна лицензия на использование, и к тому же разработчики не могут менять его исходный код. SDK vs API Различие между SDK и API может легко запутать вас, однако оно одновременно и очень простое, и очень важное. API – это фрагменты кода, которые взаимодействуют между двумя частями программного обеспечения. Таким образом, если вы создаете приложение для совместных поездок, то вам нужны API, которые бы соединяли его с телефоном пользователя и, соответственно, возможностью обмена сообщениями, платежной платформой и GPS. Все эти элементы могут находиться в разных серверных частях, но API позволяет им взаимодействовать друг другом и обеспечивает беспроблемное взаимодействие с пользователем. Большинство SDK содержат API, поэтому разработчики могут создавать приложения, которые подразумевают возможность подключения и взаимодействия. Без API подключение приложений чем-то похоже на знаменитую сцену из «Аполлона-13». Но все не так просто, так как вы можете использовать API и без SDK. А в некоторых случаях разработчикам приходится выбирать между SDK и API, чтобы можно было произвести интеграцию с конкретной службой. Преимущество SDK заключается в том, что его проще и быстрее интегрировать (как стол из IKEA – большая часть работы уже сделана за вас). Преимущество API в том, что он более компактный (то есть не содержит библиотек кода для ненужных вам функций) и дает больше возможностей для индивидуальной настройки (если вы мастерите свой собственный стол, то вы можете спроектировать его так, как вам нужно, - любого размера, который вам нужен). Составляющие хорошего SDK Если вы создаете приложение, то, скорее всего, для таких функций, как оплата, обмен сообщениями или аутентификация, вы будете использовать SDK. Разработчикам крайне сложно дается создание этих компонентов, и любые ошибки могут повлечь за собой серьезные проблемы с безопасностью. При выборе поставщика для этих услуг, вы можете сравнивать цены и функции, но также вы должны обратить внимание на их SDK. Вот что должно быть в хорошем SDK: Легковесность: вам нужен SDK, который бы выполнял все необходимые функции с минимальным количеством кода. В противном случае мобильное приложение может занимать слишком много места на телефоне пользователя и работать медленнее, чем нужно. Когда вы перестраиваете устаревшее приложение, то стоит посмотреть, сколько кода используют ваши существующие решения и задаться вопросом, а не упростит ли их SDK. Хорошая документация: представим: два практически идентичных SDK. Однако, если у одного есть подробная документация о том, как его использовать, а второй оставляет разработчиков разбираться с этим самостоятельно, то навряд ли их можно считать равными. Индивидуальная настройка: некоторые SDK настраивать нельзя, то есть вы можете использовать их только такими, какие они есть. Это становится проблемой, когда разработчики решают, что хотят настроить продукт под свои уникальные потребности или добавить фирменное оформление или графику. Безопасность: очень важно использовать SDK только из надежных источников, чтобы исключить возможность того, что вы нечаянно добавите вредоносный или иной нежелательный код в приложение. Из отчета SafeDK: «58% проверенных приложений все еще используют, как минимум, один SDK, который обращается к личным данным пользователя». В эпоху законов о конфиденциальности данных это может привести к тому, что ваше приложение может нажить себе юридических неприятностей. Простота использования: хороший SDK должен предоставлять учебные руководства и примеры кода, а также давать разработчикам возможность обращаться к надежному сообществу или службам поддержки при возникновении каких-либо проблем. SDK: не просто еще одна аббревиатура, которая сбивает с толку Любая компания, которая создает новые приложения или добавляет новые функции в уже существующие, будет использовать SDK как часть процесса разработки. Но SDK – это не просто загадочные концепции программирования; они напрямую влияют на безопасность приложения, его индивидуальную настройку и срок до выпуска на рынок. Если вы не разработчик, то вам необязательно разбираться во всех тонкостях данной темы, но вы должны уметь задавать правильные вопросы.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59