По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Ни для кого не секрет, что FreePBX – это совершенно бесплатный дистрибутив, который может скачать и установить каждый желающий. Однако, для того чтобы расширить, а иногда и улучшить функционал IP-АТС на FreePBX, компания-разработчик Schmooze продаёт коммерческие модули. Об одном из таких модулей и пойдёт речь в сегодняшней статье. Итак, встречайте – коммерческий модуль Conference Pro.
Настройка
Как многие могли уже догадаться, модуль Conference Pro, является дополнением для бесплатного модуля Conference, про который мы уже написали статью и даже сняли видео. Данный модуль позволяет конечному пользователю управлять конференциями, проходящими на сервере через интерфейс UCP.
Давайте же посмотрим, каким функционалом нам предлагают пользоваться 25 лет всего за $30 (на
Поговорим про популярную утилиту 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
JSON (JavaScript Object Notation – нотация объектов JavaScript) – это популярный способ структурирования данных. Он используется для обмена информацией между веб-приложением и сервером. Но как прочитать файл JSON в Python?
В этой статье я покажу вам, как использовать методы json.loads() и json.load() для интерпретации (или как еще говорят парсинга) и чтения файлов и строк JSON.
Синтаксис JSON
Прежде чем мы приступим к интерпретации и чтению файла JSON, сначала нам нужно разобраться с основным синтаксисом. Подробнее про JSON можно почитать в этой статье. Синтаксис JSON выглядит как объектный литерал JavaScript с парами ключ-значение.
Вот пример данных JSON с данными организации:
{
"organization": "Company 1",
"website": "https://www.website.org/",
"formed": 2014,
"certifications": [
{
"name": "Responsive Web Design",
"courses": [
"HTML",
"CSS"
]
},
{
"name": "JavaScript Algorithms and Data Structures",
"courses": [
"JavaScript"
]
},
{
"name": "Front End Development Libraries",
"courses": [
"Bootstrap",
"jQuery",
"Sass",
"React",
"Redux"
]
},
{
"name": "Data Visualization",
"courses": [
"D3"
]
},
{
"name": "Relational Database Course",
"courses": [
"Linux",
"SQL",
"PostgreSQL",
"Bash Scripting",
"Git and GitHub",
"Nano"
]
},
{
"name": "Back End Development and APIs",
"courses": [
"MongoDB",
"Express",
"Node",
"NPM"
]
},
{
"name": "Quality Assurance",
"courses": [
"Testing with Chai",
"Express",
"Node"
]
},
{
"name": "Scientific Computing with Python",
"courses": [
"Python"
]
},
{
"name": "Data Analysis with Python",
"courses": [
"Numpy",
"Pandas",
"Matplotlib",
"Seaborn"
]
},
{
"name": "Information Security",
"courses": [
"HelmetJS"
]
},
{
"name": "Machine Learning with Python",
"courses": [
"Machine Learning",
"TensorFlow"
]
}
]
}
Как парсить строки JSON в Python
Python имеет встроенный модуль, который позволяет работать с данными в формате JSON. Вам необходимо будет импортировать модуль json.
import json
Если вам необходимо проинтерпретировать строку JSON, возвращающую словарь, то вы можете воспользоваться методом json.loads().
import json
# assigns a JSON string to a variable called jess
jess = '{"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}'
# parses the data and assigns it to a variable called jess_dict
jess_dict = json.loads(jess)
# Printed output: {"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}
print(jess_dict)
Как парсить и читать файлы JSON в Python
В данном примере мы имеем файл в формате JSON с именем fcc.json, который содержит те же данные, что и ранее, касающиеся курсов, которые предлагает сайт.
Если вы хотите прочитать этот файл, то для начала вам нужно использовать встроенную в Python функцию open() с режимом чтения. Мы используем ключевое слово with, чтобы убедиться, что файл закрыт.
with open('fcc.json', 'r') as fcc_file:
Если файл не может быть открыт, то мы получим ошибку OSError. Это пример ошибки "FileNotFoundError" при опечатке в имени файла fcc.json.
Затем мы можем проинтерпретировать файл, используя метод json.load() и присвоить его переменной с именем fcc_data.
fcc_data = json.load(fcc_file)
И в конце мы должны напечатать результат.
print(fcc_data)
Вот так будет выглядеть полный код:
import json
with open('fcc.json', 'r') as fcc_file:
fcc_data = json.load(fcc_file)
print(fcc_data)
Как красиво напечатать данные JSON в Python
Если мы посмотрим на то, как печатаются данные, то увидим, что все данные JSON печатаются в одной строке.
Однако такой формат вывода может быть затруднительным для чтения. И чтобы это исправить, мы можем реализовать метод json.dumps() с параметром indent (отступ).
В данном примере мы сделаем отступ в 4 пробела и будем печатать данные в более удобном для чтения формате.
print(json.dumps(fcc_data, indent=4))
Также мы можем отсортировать ключи в алфавитном порядке, используя параметр sort_keys и установив его значение на True.
print(json.dumps(fcc_data, indent=4, sort_keys=True))
Заключение
JSON – это популярный способ структурирования данных, который используется для обмена информацией между веб-приложением и сервером.
Если вам необходимо проинтерпретировать строку JSON, которая возвращает словарь, то вы можете использовать метод json.loads().
Если вам необходимо проинтерпретировать файл JSON, который возвращает словарь, то вы можете использовать метод json.load().