Всем известно, что кроме 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*********************************************************************** ") -- Выводим в 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 ..', '.. body ..''); event:fire();
Вот и всё. Теперь все сообщения, которые будут приходить на dongle будут перенаправляться в софтфон:
Так же можно писать и в базу MySQL и отправлять на почту. У меня это именно так сделано. Кроме этого можно и отправлять СМСки из веб-морды, а так же, и через смартфон, но для этого нужно дописать Lua-скрипт. А ещё можно управлять, например, своим компьютером на основе текста в СМС, то есть, перезагрузить/выключить, или ещё чем-то.
Так у меня отправляется СМСка из WEB – интерфейса: