Всем известно, что кроме GSM-шлюзов FS (FreeSWITCH) умеет работать и с dongle. Как заставить с донгла получить СМСку, расскажем в этой статье.
Предполагается, что у вас уже установлен и настроен mod_gsmopen и Lua. Если нет, то предлагаю обратиться к официальному источнику https://freeswitch.com/confluence/display/FREESWITCH/mod_gsmopen
Для работы с СМСками на нужно настроить chatplan ../freeswitch/conf/chatplan/default.xml
В котором нам нужно написать примерно следующее:
..
<extension name="demo">
<condition field="to" expression="^gsm(.*)$" break="on-true">
<action application="lua" data="mail.lua"/>
</condition>
</extension>
..
То есть, мы указываем имена донглов, которые нужно слушать и отправляем в Lua-скрипт, который и будет пересылать СМСку в нужное нам место - Grounwire.
Пример Lua-скрипта:
mail.lua
--
-- Устанавливаем переменные выдергивая из заголовков сообщений
local from = message:getHeader("from");
local to = message:getHeader("to");
local body = message:getBody();
local time = message:getHeader("Event-Date-Local");
local ext = "1001"; -- Указываем extension куда нужно отправлять СМСку
-- Переправляем полученные СМС в софтфон
freeswitch.consoleLog("info", "chat console***********************************************************************\n") -- Выводим в CLI
local event = freeswitch.Event("CUSTOM", "SMS::SEND_MESSAGE");
event:addHeader("proto", "sip");
event:addHeader("dest_proto", "sip");
event:addHeader("from", "sip:".. from .."@voip.ru");
event:addHeader("from_full", "sip:".. from .."@voip.ru:5063"); -- Я думаю это понятно что означает :)
event:addHeader("to", "".. ext .."@voip.ru");
event:addHeader("subject", "sip:".. to .."@voip.ru:5063");
event:addHeader("type", "text/html");
event:addHeader("hint", "the hint");
event:addHeader("replying", "true");
event:addBody('Сообщение для '.. to ..' в '.. time ..',\n\n '.. body ..'');
event:fire();
Вот и всё. Теперь все сообщения, которые будут приходить на dongle будут перенаправляться в софтфон:
Так же можно писать и в базу MySQL и отправлять на почту. У меня это именно так сделано. Кроме этого можно и отправлять СМСки из веб-морды, а так же, и через смартфон, но для этого нужно дописать Lua-скрипт. А ещё можно управлять, например, своим компьютером на основе текста в СМС, то есть, перезагрузить/выключить, или ещё чем-то.
Так у меня отправляется СМСка из WEB – интерфейса: