Author: Vitaly Kovalyshyn

IT-SFERA and Webitel
Managing Partner

Web: kovalyshyn.pp.ua

Недавно мне задали вопрос: «Как можно с помощью FreeSWITCH сделать рассылку факсов по списку номеров?» Я набросаю ключевые пункты, как это сделать.

Во-первых, у Вас должна быть какая-то SQL база со списком номеров. К примеру, берем MySQL с одной табличкой fax, где находиться колонка distination.

Во-вторых, файл, который будем отправлять. Что бы привести его в пригодный нам формат, воспользуемся утилитой convert:

convert -density 204x98 -units PixelsPerInch -resize 1728x1186\! -monochrome -compress Fax my-fax-file.pdf /opt/freeswitch/storage/fax_out/01.tif

В-третьих, напишем LUA-скрипт scripts/send_fax.lua, который будет лезть в базу, выбирать номер и отправлять наш файлик:

local fax_file = "/opt/freeswitch/storage/fax_out/01.tif"

local dbh = freeswitch.Dbh("dsn", "user", "password")
if dbh:connected() then
        freeswitch.consoleLog("NOTICE", "database connected\n")
else
        freeswitch.consoleLog("ERR", "database error\n")
    return
end

local my_query = "select distination from fax "

assert(dbh:query(my_query, function(row)
        freeswitch.consoleLog("NOTICE", "\nSending FAX to " ..row.distination.. "\n")
        send_fax = "originate sofia/gateway/farlep/" ..row.distination.. " &txfax(" ..fax_file.. ")"
        api = freeswitch.API()
        reply = api:executeString(send_fax)
        freeswitch.consoleLog("DEBUG", "\nSending " ..reply.. "\n")
end))

Теперь можем просто из консоли FreeSWITCH выполнить скрипт:

luarun send_fax.lua

Дальше, приправляем на свой вкус: записать результат отправки в базу или еще чего….

Говорим мы сегодня о конференциях: ClueCon, ElastixWorld и AstriCon. Что новое мы увидим в Asterisk 11.0. А так же, много слов о вебе и телефонии: Websocket и WebRTC — будущие веб-телефонии!

Начиная с 4 выпуска у нас будут подарки за лучший вопрос в podcast! Детали в этом выпуске.

Прочитал статью на habrahabr.ru и решил проверить у себя. Вот запись аудио: message.mp3, а вот что пришло на мыло:

добрый день александр трофименко игра 1000 для работы я не могу дойти до 120 инуяша телефону номер
для девчонок которая 3 3 3 он метро смоленская

Прочитав такое, я все равно буду слушать запись 🙂

Все знают о возможности «подслушивать» телефонные разговоры. А как Вам вариант слушать разговор в любимом медиаплеере, как обычное аудио вещание в сети? Оказывается, во FreeSWITCH это возможно! Все, что Вам нужно — включить модуль Mod_shout (о котором я уже писал). С модулем становиться доступная функция telecast . Через webAPI (по адресу http://<Ваш_Сервер>:8080/webapi/telecast/index) Вы сможете увидеть список текущих разговоров:

И открыть выбранный разговор в плеере:

Второй подкаст! Я решил проводить недолгие (до 30 минут) подкасты, но, еженедельно. И в этот раз мы поговорим о незабудках, Terrasoft, МТТ, infratel, о видео колл-центре и о 1.2.0 🙂

Слушаем, задаем свои вопросы в комментариях или мне в twitter и ждем следующий выпуск!

Сегодня поговорим о безопасных разговорах 🙂 Вы конечно же поняли: шифрование в SIP. Хочу научить FreeSWITCH использовать TLS (вместо UDP) и шифровать голос по SRTP (с помощью ZRTP), в качестве клиента будет телефон Yealink.

Я искал модуль, который бы мог воспроизводить и записывать MP3 в FreeSWITCH и нашел. Но, как оказалось Mod_shout не только это умеет, а еще и воспроизводить потоковое вещание (Интернет-радио), которое можно подключить вместо Music On Hold. Вот простой пример диалплана:

<extension name="RadioRocks">
     <condition field="destination_number" expression="^0000$">
       <action application="answer"/>
       <action application="playback" data="shout://online-radioroks.tavrmedia.ua:7000/RadioROKS"/>
       <action application="hangup"/>
     </condition>
   </extension>

Послушать радио можно через эту кнопку »

Звонок с сайта«.