По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Салют! Изо дня в день администраторы IP – АТС Asterisk выполняют рутинные действия связанные с обслуживанием: добавить внутренний номер, настроить новый транк и соответствующие маршруты, посмотреть статус пиров и другие итерации. Для облегчения этих действия существует графическая оболочка FreePBX 13. Сегодня хотим рассказать про очень полезную «кастомизацию» этой самой графической оболочки – настройку вкладок и пунктов меню так, как это будет удобно именно Вам :) Как это работает? Кастомизацию интерфейса FreePBX можно осуществлять с помощью файла freepbx_menu.conf, который должен быть расположен в директории /etc/asterisk. При загрузке интерфейса, FreePBX проверяет существование этого файла, парсит настройки и отображает их администратору. Pre-work Перед началом работы, давайте проверим наличие файла кастомизации в директории /etc/asterisk. Для этого, выполните последовательность следующих команд: [root@asterisk ~]# cd /etc/asterisk/ [root@asterisk asterisk]# ls -l | grep freepbx_menu.conf В случае, если файл находится в указанной директории, он будет отображен в выводе последней команды. В противном случае, просто создадим его вручную командой: [root@asterisk ~]# touch /etc/asterisk/freepbx_menu.conf Теперь открываем интерфейс FreePBX, и переходим во вкладку Settings → Advanced Settings. Находим параметр Use freepbx_menu.conf Configuration и выставляем его в значение Yes. Важно! Убедитесь, что в данном пункте меню, параметры Display Readonly Settings и Override Readonly Settings выставлены в значение Yes. Процесс настройки Допустим, мы хотим создать дополнительную вкладку под названием «Основное», куда вынесем пункты настройки внутренних номеров, транков, входящих и исходящих маршрутов и статус Asterisk. Переходим к конфигурации файла. Открываем его для редактирования: [root@asterisk ~]# vim /etc/asterisk/freepbx_menu.conf Для редактирования нажимаем «O» на клавиатуре и добавляем следующую конфигурацию: [extensions] category=Основные name=Внутренние номера [trunks] category=Основные name=Линии к провайдеру [did] category=Основные name=Входящие маршруты [routing] category=Основные name=Исходящие маршруты [asteriskinfo] category=Основные name=Статус Asterisk Синтаксис следующий: [extensions] - наименование модуля; category - категория (наименование вкладки, в которой будет отображаться данный модуль; name - видимое имя для модуля (параметр для удобства); Дополнительные параметры: sort - порядок расположения модуля сверху вниз во вкладке; remove - удалить модуль из рабочей области интерфейса; Важно! Параметр remove не удаляет модуль с сервера. Он просто не будет отображаться среди доступных для конфигурации модулей в FreePBX. Готово. Давайте посмотрим, что у нас получилось в FreePBX:
img
Когда нужно найти какой-нибудь файл или папку в системе Linux в голову сразу приходит команда find. Она проста в использовании и имеет множество разных опций, которые позволяют оптимизировать поиск файлов. Далее приведём несколько примеров использования этой команды. Поиск папок Чтобы сделать поиск по папкам команде find нужно передать параметр type d. Таким образом мы скажем команде find вести поиск только по директориям: $ find /path/to/search -type d -name "name-of-dir" Поиск скрытых файлов Так как скрытые файлы и директории в Linux начинаются с точки, то мы можем задать шаблон поиска так, чтобы команда рекурсивно выводила нам все скрытые файлы и директории. Для этого достаточно ввести следующую команду: $ find /path/to/search -name ".*" Поиск файлов по размерам Команда find дает возможность вести поиск файлов размером больше, меньше или равным указанному значению. Чтобы найти файл размером больше 10Мб нужно ввести команду: $ find /path/to/search -size +10M Для поиска файлов размером меньше указанного значения или равного ему нужно ввести следующие команды: $ find /path/to/search -size -10M $ find /path/to/search -size 10M Также есть возможность искать файлы размер которых находится в указанном промежутке. $ find /path/to/search -size +100M -size -1G Поиск файлов по списку Допустим нам нужно найти несколько файлов, указанные в списке, который хранится в виде файла с расширением .txt. Для этого мы можем воспользоваться комбинацией команд find и grep. Чтобы данная команда работала корректно, каждый шаблона поиска в списке должен начинаться с новой строки. $ find /path/to/search | grep -f filelist.txt Парметр f переданный команде grep означает файл и даёт нам возможность указать файл с шаблонами для поиска. В результате работы вышеуказанной команды система вернёт нам все файлы, название которых указаны в списке. Найти файл, которого нет в списке Так же в системе Linux есть возможность поиска, противоположная указанному выше. То есть мы можем искать файлы, которые не указаны в списке файлов. Для этого команде grep передадим параметр vf, что означает обратное сопоставление и вернет нам файлы, названий которых не найдёт в списке шаблонов. $ find /path/to/search | grep -vf filelist.txt Указываем максимальную глубину поиска По умолчанию, команда find ищет файлы во всех директориях и поддиректориях. Допустим, если мы в качестве пути для поиска укажем корневую директорию "/", то система будет искать искомый файл по всему жесткому диску. Мы можем ограничить область поиска командой maxdepth указав ему насколько глубоко нужно искать файл. $ find . -maxdepth 0 -name "myfile.txt" Команды указанная выше говорит системе искать файл только в указанной директории. А следующая команда предписывает вести поиск в указанной директории и в одной поддиректори. $ find . -maxdepth 1 -name "myfile.txt" Поиск пустых файлов Команда find также позволяет вести поиск по пустым файлам и директориям. Для этого команде добавляем флаг empty. Следующие две команды позволяют найти пустые файли и папки. Для поиска папок к строке поиске добавляет ключ d: $ find /path/to/search -type f empty $ find /path/to/search -type d empty Так же можно автоматически удалять найденные пустые файлы или папки. Следующая команда найдет и удалит все пустые файлы в указанной папке и всех подпапках: $ find /path/to/search -type f -empty delete Поиск самого большого файла или папки Если нужно быстро определить какой файл или какая папка в системе занимает больше всего места, то команда find с соответствующими ключами позволит нам рекурсивно искать и сортировать файлы/папки по их размеру: $ find /path/to/search -type f -printf "%s %p " | sort -n | tail -1 Заметьте, что при поиске мы прибегнули к двум другим удобным инструментам Linux: sort и tail. Sort отсортирует файл по их размеру, а tail покажет самый последний файл в списке, который и будет самым большим файлом/папкой. Мы можем изменить команду так, чтобы она выводила пять самых больших файлов для этого нужно воспользоваться следующей командой: $ find /path/to/search -type f -printf "%s %p " | sort -n | tail -5
img
Наверняка кто-то из вас хоть раз в жизни получал SMS после звонка в определенную компанию. Обычно, это просьба оценить работу операторов. Так, например, это сделано у GSM операторов. Также это может быть SMS с благодарностью за обращение от компании или же об актуальных акциях и предложениях. Сегодня я хотел бы рассказать о том, как Вы можете реализовать подобную функцию с использованием FreePBX Статья написана по мотивам существующей на данном ресурсе публикации "Оценка оператора после звонка" У данного метода есть один недостаток - для его работы нужен chan_dongle и тариф с безлимитными SMS. Для тех, у кого нет пресловутого chan_dоngle, есть другой метод, который я постараюсь объяснить. Для особо нетерпеливых прошу Вас заглянуть в контакты, возможно, я уже там появился :) В данном методе мы не будем ломать диалплан FreePBX и использовать тяжелую артиллерию в виде MySQL. Итак, приступим. Для начала открываем конфигурационные файлы, а именно: /etc/asterisk/extensions_custom.conf Вносим в него такой кусочек диалплана. В коде я дал комментарии зачем нужны некоторые части: [send-sms] exten => _.,1,NoOp(Start sms) exten => _.,n,DIAL(SIP/${EXTEN},,trg) ;опция g позволяет "проваливаться вниз". ВНИМАНИЕ агент должен использовать вашу технологию (sip или pjsip) exten => _X.,n,GotoIf($[${DIALSTATUS}=BUSY]?busy:answered) //проверяем, был ли отвечен вызов, вот здесь мы или пропускаем клиента дальше если с ним уже говорили или нет. exten => _X.,n(busy),Hangup() exten => _X.,n(answered),Goto(sms,${EXTEN},1) [sms] exten => _X.,1,NoOp(Statrt SendSms) exten => _X.,n,Answer() same => n,Set(COUNT=1); установка счетчика. По идее, он тут не нужен, но сделан на всякий аварийный случай. Вдруг заклинит и клиента заспамит смс? :) same => n,Set(RECIVER=Имя донгла в системе); если используете донгл same => n,Set(RECIPIENT=${CALLERID(num)}) same => n,Set(TEXT="Спасибо что обратились в нашу компанию Рога и копыта"); текст смс same => n,GotoIf($["${RECIPIENT:0:2}" != "79"]?end); это проверка на принадлежность к мобильным номерам. Уточните формат входящих CALLERID(num) на вашей АТС - с 7 или 8? same => n,System(/usr/sbin/asterisk -rx 'dongle sms ${RECIVER} 7${RECIPIENT:1} ${TEXT}'); тут отправка с донгла. same => n,Set(COUNT=$[${COUNT} + 1]); увеличение счетчика (который не нужен, а вдруг) same => n,GotoIf($["${COUNT}" > "1"]?end); проверка и отправка на завершение exten => _X.,n(end),Goto(macro-hangupcall,s,1); Конец Обратите внимание на пометки в диалплане. В частности, Агент должен использовать вашу технологию подключения. Входящие форматы на ваши транки, 7 или 8. Если он еще не унифицирован, то рекомендую это сделать и привести в норму стандарта E164. Если входящие у вас содержат + то, вместо ${RECIPIENT:0:2} сделайте ${RECIPIENT:0:3} На этом, настройка конфигурационного файла extensions_custom.conf закончена. Теперь открываем файл queues_post_custom.conf и вставляем туда такую строку: member=Local/4015781@send-sms/n,0,4015781,hint:4015781@ext-local Где 4015781 номер существующего Агента в очереди. После этого, закрываем файл, перезагружаем диалплан командой dialplan reload и тестируем. Применять можно, например, для отправки благодарности клиенту с напоминанием времени работы или адреса компании. Чтобы не огорчить тех, кто не использует донглы или использует GoIP или другие Gsm шлюзы, на мой взгляд, есть более "красивый" метод: Идем в один из множества веб сервисов для SMS рассылок (названия писать не буду), регистрируемся у них и берем их готовые библиотеки для доступа к API. Я покажу на примере PHP API одной известной компании: #!/usr/bin/php -q <?php #парсим данные из AGI require(′phpagi.php′); $agi = new AGI(); $phone = $agi->request[′agi_arg_1′]; text = $agi->request[′agi_arg_2′]; $sender = ′INFORM′; // !!! Замените API-ключ на свой. $apikey = ′XXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZXXXXXXXXXXXXYYYYYYYYYYYYZZZZZZZZ′; $url = ′https://smspilot.ru/api.php′ ′?send=′.urlencode( $text ) .′&to=′.urlencode( $phone ) .′&from=′.$sender .′&apikey=′.$apikey .′&format=json′; $json = file_get_contents( $url ); echo $json.′′; $j = json_decode( $json ); if ( !isset($j->error)) { echo ′SMS успешно отправлена server_id=′.$j->send[0]->server_id; } else { trigger_error( $j->description_ru, E_USER_WARNING ); } Используем AGI. И в представленном диалплане меняем одну строку, а именно: same => n,System(/usr/sbin/asterisk -rx 'dongle sms ${RECIVER} ${TEXT}'); тут отправка с донгла. на: same => n,AGI(sendsms.php, 7${RECIPIENT:1}, "${TEXT}") И на этом - все. Чем данный способ лучше? Могу точно сказать, что в подобных сервисах для компаний есть возможность в качестве отправителя зарегистрировать название организации – это явно плюс в копилку лояльности клиента :) Это значит, что не нужен донг и SMS клиенту приходит не с безликих цифр, а от имени вашей компании в поле отправитель. Это, безусловно, повышает доверие и лояльность получателя SMS. Надеюсь, что данный метод будет полезен и найдёт применение в ваших бизнес-процессах. Удачи!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59