По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Мессенджер Telegram - удобное и популярное средство связи на территории РФ. Несмотря на ограничение доступа, многие юзеры продолжают пользоваться и обмениваться сообщениями в Телеграме. А кто-то пошел еще дальше и интегрирует различные системы с отличным и прозрачным API от «телеги».
Сегодня поговорим про готовый модуль интеграции с Telegram для графической оболочки FreePBX, который будет отправлять вам уведомления о пропущенных вызовах и в случае, если пользователю оставлена голосовая почта. Кстати, этот материал и модуль в очередной раз прислал наш друг Максим (BioDamage) через портал ShareIT :)
Обновление 0.1.1 - 15 августа 2018 г.:
Поддержка extensions типа SIP, PJSIP, IAX2;
Работа в группах вызовов (ring group);
Модуль протестирован на сборках FreePBX Distro (SNG7-FPBX-64bit-1805-1.iso) и на чистом Asterisk поверх Debian с отдельным web – интерфейсом FreePBX 14. Работает :)
Профит и идея
Настройка кастомных контекстов и корректировка диалплана вручную бывает сложна для новичков, которые только приступают к изучению Asterisk и используют графическую оболочку FreePBX. К тому же, большой недостаток таких интеграция, это отсутствие гибкой настройки уведомлений (кому отправлять, а кому нет, в том числе персонализированные уведомления).
Есть потребность – будет и решение. За основу был взят один из старых модулей под названием missedcallnotify человека по имени John Nurick. Скачать модуль можно по ссылке ниже:
Скачать модуль для FreePBX
Установка
Установка вполне стандартная – переходим в раздел Admin → Module Admin и нажимаем Upload modules. В следующем меню выбираем Upload (From Hard Disk), выбираем архив, который скачали по кнопке выше и загружаем:
После этого, в списке модулей находим модуль Missed Call Notifications Telegram, раскрываем описание и жмем Install:
Готово. Переходим к настройке модуля.
Настройка
Cоздаем бота в Телеграме (если его нет). Воспользуйтесь нашим пошаговым материалом по созданию бота, который доступен по ссылке ниже. Выполнив все шаги, которые указаны в пункте «Создание бота в Telegram» - возвращайтесь сюда и переходите к следующему шагу.
Создание бота
С возвращением :) В разделе Applications → Extensions, выбираем нужный нам внутренний номер и открываем его для редактирования. Во вкладке Other делаем следующее:
Уведомления - чтобы включить уведомления, выбираем Enabled, выключить - Disabled;
Токен телеграм бота - токен, который вы получили, пройдя по ссылке в начале этого раздела;
Telergram ID - ID группового чата, который вы получили, пройдя по ссылке в начале этого раздела, либо личный идентификатор;
Тест
Мы – инженеры. И, чтобы проверить модуль, мы смотрим в консоль, а не в лучезарный интерфейс Telegram :) Итак, звоним, не отвечаем на вызов:
Как тебе такое, Илон Маск?
При решении целого ряда задач администратору требуется изменить уровень доступа, который управляется командой chmod (change mode – изменить режим). Разберём подробнее как именно происходит изменение прав и какие ещё команды могут пригодиться Вам в этом процессе.
Введение
Структура разрешений для файлов и директорий в Linux являет собой матрицу 3 на 3 – есть три различных уровней доступа (read, write и execute – чтение, запись и выполнение), которые доступны для трёх типов пользователей – владельца файла, группы и others – «остальных».
Для наглядности, посмотрите на вывод команды ls -l
-rw-r--r-- 1 root root 0 Mar 10 11:05 freepbx_menu.conf
В примере выше, пользователь - root, обладает правами чтения и записи, группа имеет права чтения, также, как и others.
r (read) - разрешение на чтение содержимого файла, в случае директории – право на просмотр файлов и поддиректорий
w (write) - разрешение на запись в файл, для директории – возможность создания файлов в директории и создание поддиректорий
x (execute) - разрешение на запуск файла в виде программыскрипта, для директории – допуск в директорию
Изменение уровня доступа
Для начала необходимо указать на важный момент – каждый уровень доступа имеет свое численное обозначение:
r (read) - 4
w (write) - 2
x (execute) - 1
Для получения комбинаций прав – числа нужно сложить. Для уровня доступа rwx число будет равным 7 (4+2+1). Использовать можно также и буквенные обозначения, как удобнее конкретно для вас, но с численным представлением команды получаются короче :) При изменении уровня доступа у файла нужно знать следующее:
Первое число - права для юзера
Второе число - права для группы
Третье число - права для others
К примеру, дадим права на чтение для пользователя, чтение для группы и нулевой уровень доступа для остальных:
chmod 440 file.txt
Права на чтение, запись и исполнение для пользователя, группы и остальных:
chmod 777 file2.txt
И соответственно, так далее, в зависимости от ваших нужд.
Использование umask – настройка уровня доступа по умолчанию
По умолчанию значение umask - 0022, которое определяет права доступа по дефолту для нового файла или директории. Для файла разрешение по умолчанию равно 0666, для директории - 0777. Значение маски вычитается из этих дефолтных значений и получается финальное значение.
У файла по умолчанию – 0666, то есть права rw-rw-rw-, но с учетом дефолтной маски 0022, файл будет создан со значением 0644 – rw-r—r--.
В случае директории результирующим значением будет 0755, то есть rwx-r-x-r-x.
С помощью команды umask xxxx всегда можно изменить значение маски по умолчанию. К примеру:
umask 0077
Как видно, права изменились с rw-r--r--для нового файла на –rw-------.
Несколько полезных примеров использования chmod
Ниже приведён список нескольких вариантов использования команды chmod - во многих случаях они очень сильно облегчают процесс настройки вашего сервера.
На всякий случай помните, что пользователь имеет обозначение u, группа g и остальные - o. Если же необходимо изменение прав сразу у всех вышеупомянутых сущностей – используйте обозначение a.
chmod u+x %имяфайла% - добавление права выполнения только для пользовательского уровня, то есть добавление права execute для user;
chmod u+r,g+x %имяфайла% - добавление прав чтения для юзера и исполнения для группы;
chmod u-rx %имяфайла% - модификатор - используется для того, чтобы убрать какое-то разрешение, в данном случае – для пользователя остается только право записи в файл;
chmod a+rx %имяфайла или директории% -добавление права выполнение и чтения для юзера, группы и остальных – то есть вообще все могут исполнять этот файл;
$ chmod --reference=%имяфайла1% %имяфайла2% - установка прав доступа для файла1 равными правам доступа у файла2;
chmod -R 755 %имядиректории%/ - рекурсивное изменение прав доступа для всех файлов и подкаталогов в директории;
chmod u+X * -изменение прав доступа только для подкаталогов, у файлов в главной директории уровень прав доступа останется неизменным;
Если ты используешь модуль EndPoint Manager, о котором мы рассказывали в нашей предыдущей статье, или же другое решение auto-provisioning для автоматической настройки телефонных аппаратов на FreePBX, то эта статья для тебя!
В ней мы покажем универсальный способ для поиска и устранения проблем, которые могут возникнуть в процессе работы с решениями auto-provisioning, таких как EPM.
Как ты уже знаешь, принцип auto-provisioning заключается в том, что телефонный аппарат обращается на сервер, на котором для него уже подготовлен конфигурационный файл. Затем он скачивает его, применяет настройки и становится готовым к работе.
Сервер может работать по протоколам TFTP, FTP, HTTP и др. в зависимости от выбранного режима и протоколов, которые поддерживает аппарат.
Давайте рассмотрим типовую проблему, с которой мы можем столкнуться, при автоматической настройке телефонных аппаратов с помощью auto-provisioning на примере модуля EPM
Кейс
Допустим, мы сделали глобальные настройки для сервера TFTP и создали типовой шаблон для телефона Yealink SIP-T28P. Теперь мы пробуем назначить этот шаблон конкретному телефонному аппарату. Для этого, либо через модуль Extension, либо через Extension Mapping в самом EPM мы привязываем созданный шаблон к телефону по его MAC-адресу. Затем перезагружаем телефон и обнаруживаем что … он не получает настройки.
Для начала, проверим логи TFTP сервера и выясним, посылает ли телефонный аппарат какие-либо запросы. Для этого откроем CLI нашего сервера и дадим такую команду:
tail -f var/log/asterisk/messages | grep tftp
После того, как мы введём эту команду, мы будем в реальном времени получать записи из лога messages, относящиеся к сервису tftp.
Скорее всего, мы увидим там что-то типа:
Где:
192.168.2.57 - IP адрес телефонного аппарата;
1111ссссdddd.cfg - Конфигурационный файл, который телефонный аппарат запрашивает с сервера. 1111ссссdddd - MAC адрес телефонного аппарата;
Сообщение RRQ from 192.168.2.57 filename 1111ccccdddd.cfg означает, что телефон запрашивает с tftp сервера свой конфигурационный файл, а сообщение sending NAK (1, File not found) to 192.168.2.57 означает ответ сервера о том, что файл с таким именем не найден.
Давайте теперь проверим директорию tftpboot, где EPM хранит конфигурационный файлы для телефонов и проверим, есть ли там файл с именем 1111ccccdddd.cfg. Для этого в CLI даём такие команды:
cd /tftpboot
ls -la | grep 1111ccccdddd
Скорее всего, мы получим пустой вывод, а значит такого файла нет. В этом случае нужно ещё раз проверить, что телефон корректно привязан по MAC адресу к нужному шаблону через модуль Extension или Extension Mapping.
После чего, ещё раз проверьте директорию tftpboot на предмет конфигурационного файла своего телефонного аппарата по MAC адресу: