По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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. Надеюсь, что данный метод будет полезен и найдёт применение в ваших бизнес-процессах. Удачи!
img
Как очень популярный язык программирования, Java используется для разработки чего угодно, от легких мобильных приложений до настольных приложений. Java JDK (Java Development Kit) - это среда разработки программного обеспечения, используемая для разработки Java-приложений. JDK - это набор инструментов программирования, в частности JRE (Java Runtime Environment - среда выполнения Java), Java (приложение Loader for Java), Javac (компилятор), Jar (архиватор) и так далее. Эта статья поможет вам установить Oracle Java 11 на CentOS 8 или RHEL 8. JDK или JRE, OpenJDK или Oracle Java Разработчики приложений, которые плохо знакомы с Java, часто путают Java Development Kit с Java Runtime Environment. JDK - это пакет инструментов для разработки приложений Java, тогда как JRE - это пакет инструментов для запуска приложений Java. JRE входит в JDK. Есть два способа установки Java 11: Установка Oracle Java SE Development Kit 11 (JDK 11) Установка OpenJDK 11 Отличие в том Oracle Java имеет дополнительные коммерческие функций и разрешает только некоммерческое использование ПО, для личного использования. А OpenJDK, в свою очередь - это реализация платформы Java с открытым исходным кодом. Технической разницы между OpenJDK и Oracle JDK нет Установка OpenJDK 11 Для установки нужно выполнить всего лишь одну команду: sudo yum install java-11-openjdk-devel Проверим что все установилось корректно при помощи следующей команды: java -version Получим вывод: openjdk 11-ea 2018-09-25 OpenJDK Runtime Environment (build 11-ea+28) OpenJDK 64-Bit Server VM (build 11-ea+28, mixed mode, sharing) Либо c помошью команды which: which java Мы должны увидеть такой вывод: /usr/bin/java Готово! Мы успешно установили Java! Чтобы установить более старую версию LTS, OpenJDK 8, используйте следующую команду: sudo yum install java-1.8.0-openjdk-devel Установка OpenJRE Если вы не разрабатываете на Java, но по-прежнему должны запускать приложения Java, вы можете пропустить установку JDK и настроить среду выполнения Java (JRE). JRE представляет собой комбинацию виртуальной машины Java (JVM) и библиотек, необходимых для выполнения кода во время выполнения. Это минимальное требование для запуска любого Java-приложения. Как и в случае с комплектом разработчика, существует две версии среды выполнения LTS - JRE 8 и JRE 11. Примечание: помните - вам не нужно устанавливать OpenJRE, если у вас уже есть OpenJDK. Среда выполнения поставляется с Java Development Kit по умолчанию. Чтобы установить JRE 11, запустите: sudo yum install java-11-openjdk Чтобы установить JRE 8, используйте команду: sudo yum install java-1.8.0-openjdk Установка OpenJDK Headless Как и OpenJRE, Java Headless является частью OpenJDK и не должна устанавливаться поверх него. Headless - это минимальная среда выполнения, без графического интерфейса, более подходящая для серверных приложений. Она использует минимальные системные ресурсы и не включает поддержку клавиатуры или мыши. Установите OpenJDK 11 Headless, введя следующее: sudo yum установить java-11-openjdk-headless Для OpenJDK 8 Headless: sudo yum установить java-1.8.0-openjdk-headless Установка Oracle Java SE Development Kit 11 (JDK 11) Официальный Oracle JDK недоступен для загрузки из локального репозитория. Вы должны загрузить пакет .rpm со страницы загрузок Java SE. Java SE (Standard Edition) является стандартной версией программного обеспечения, в основном используемой для разработки портативных настольных приложений. Альтернативой Java SE является Java Enterprise Edition (Java EE), более подходящая для разработки на уровне энтерпрайза. Прокрутите вниз, чтобы увидеть разные версии Java SE и найти ту, которая вам нужна. В этой статье мы придерживаемся релиза LTS - Java 11. Раздел Java SE 11.0.5 (LTS) имеет кнопку загрузки для установки Oracle JDK (Java Development Kit). В отличие от предыдущих версий, в этом выпуске нет возможности загрузить Oracle JRE (Java Runtime Environment) в виде отдельного пакета. После завершения загрузки вы можете установить пакет с помощью команды: sudo yum install /home/user/Downloads/jdk-11.0.5-linux-x64.rpm Замените user фактическим именем пользователя. Кроме того, если ваше имя файла отличается, используйте имя файла вашей загрузки. Проверяем установку так же при помощи команды -version java -version java version "11.0.1" 2018-10-16 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode) Установить версию Java по умолчанию Используйте команду alternatives, чтобы установить версию Java по умолчанию. alternatives --config java Если ваша система имеет несколько версий Java, то приведенная выше команда выдаст список всех версий Java, как показано ниже. There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-1.el8_0.x86_64/jre/bin/java) 2 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.2.7-2.el8.x86_64/bin/java) *+ 3 /usr/java/jdk-12.0.2/bin/java Enter to keep the current selection[+], or type selection number: 2 Введите число ниже столбца выбора, чтобы установить версию Java по умолчанию. В нашем примере мы выбрали второй вариант. Установка переменной окружения JAVA_HOME Приложения Java часто требуют, чтобы переменные окружения JAVA были установлены в системе. Создайте новый файл в каталоге /etc/profile.d. vi /etc/profile.d/java.sh Установите переменные в зависимости от местоположения и версии Java (эти данные мы ранее находили с помошью команды alternatives): export PATH=$PATH:/usr/lib/jvm/java-11-openjdk-11.0.2.7-2.el8.x86_64/bin/ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.2.7-2.el8.x86_64/ export J2SDKDIR=/usr/lib/jvm/java-11-openjdk-11.0.2.7-2.el8.x86_64/ Загрузите окружения в текущий сеанс: source /etc/profile.d/java.sh Чтобы установить переменные среды для конкретного пользователя, поместите указанные выше переменные в файл ~/.bash_profile. Готово. Теперь, мы знаем как установить Java на сервер.
img
В нашей базе знаний есть довольно много статей о различных полезных трюках и командах для Linux, которые облегчают жизнь системному администратору – сегодня поговорим ещё о нескольких командах и объясним их синтаксис. История введённых команд Представьте себе долгую и утомительную сессию по настройке вашего сервера, и, вдруг, вы понимаете, что какой-то шаг был выполнен неверно – в таком случае может очень пригодиться команда history - как видно на скриншоте ниже, она выводит все введённые команды. Более того, если вы хотите повторить какую-нибудь уже введённую команду, достаточно ввести !####, где #### - номер команды. Однако номер команды даёт не очень много информации о том, когда эта команда была введена – для изменения этого факта, достаточно ввести команду HISTTIMEFORMAT="%d/%m/%y %T " - теперь вы увидите время, когда команда была исполнена. Итак, более подробное описание синтаксиса: history - непосредственно команда для вывода истории команд (библиотека GNU); HISTIMEFORMAT - переменная, отвечающая за вывод и формат даты; %d - дни; %m - месяцы; %y - годы; %T - описание; Файлы в системе, занимающие больше всего места и файловая информация Драгоценное место на сервере имеет тенденцию заканчиваться, особенно, если это сервер, служащий для записи звонков или IP-АТС - для вывода списка основных файлов «жрущих» место можно воспользоваться командой: du –hsx * | sort -rh | head -6 du - оценка занимаемого пространства; -hsx (-h) вывод в читаемом формате,(-s) суммаризация вывода команды, (-x) использование одного формата файла; sort - сортировка; -rh -(-r) вывод в обратном порядке,(h) вывод в читаемом формате; head - вывод первых N строк, в данном случае – 6; Команда stat filename_ext позволяет вывести информацию о файле – его объем, права, дату правки и так далее. Забавная команда для новичков, позволяющая постепенно постигать Linux Многие знакомы с командой man, которая показывает мануал по незнакомой команде, изучения – а скрипт ниже выводит какой-нибудь случайный мануал. Таким образом можно постоянно обучаться или просто развлекаться :) man $(ls /bin | shuf | head -1) man - страницы Linux Man; ls - команда ls; /bin - местоположение системного файла Binary; shuf - случайная генерация; head - вывод первых N строк, в данном случае – 1;
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59