Fax

Как бы я этого не хотел, но с факсами сталкиваемся. В этой заметке хочу описать как можно организовать принятие факсов в Webitel с дальнейшей отправкой на Email.

Нам понадобится утилита convert.exe из пакета ImageMagick. Утилиту забрасываем в папку CallManager\ (с ее помощью будим конвертировать TIF в PDF для отправки на Email). Так же, создадим папку CallManager\htdocs\storage\FAX – тут будут хранится оригиналы полученных факсов в TIF формате. Не забываем про настройки SMTP клиента, иначе ничего никуда не отправится!

Собственно Lua-скрипт довольно простой:

t38 = "false";
CallerID = session:getVariable("caller_id_number");
FaxDir = session:getVariable("storage_dir").."/FAX/";
FaxFile = FaxDir..os.date("%Y").."_"..os.date("%m").."_"..os.date("%d").."_"..os.date("%H").."-"..os.date("%M").."_"..CallerID..".tif";

session:answer();
session:sleep(1000);
session:execute("playback", "users/auto_fax.wav");
session:execute("playback", "users/press_start_to_receive_a_fax.wav");
session:execute("set", "fax_enable_t38_request="..t38);
session:execute("set", "fax_enable_t38="..t38);
session:execute("playback", "silence_stream://2000");
session:execute("rxfax", FaxFile);

freeswitch.email("to@webitel.ua",
	"from@webitel.ua",
	"subject: FAX from "..CallerID.."\n",
	"Приветствую!\n\nВам отправили FAX, который я прикрепил во вложение.\n\n--\nВаш, Webitel",
	FaxFile,
	"convert.exe",
	"pdf");

session:hangup();

Осталось назначить внутренний номер для этого скрипта и все факсы будут сохранятся на сервере:

Принятые Факсы
Принятые Факсы

А так же, приходят на Email:

Факс на Email
Факс на Email

Softswitch – Выпуск #04 от 15.09.2012

После перерыва в 3 недели я записал 4 выпуск!
Из новостей. Обновились: YATE, 3CX, Asterisk. Мысли о безопасности программных IP АТС.
Практика отправки SMS, FAX и как пропустить 30 звонков через канал в 0,5 Mbps
Встречаем новый кодек Opus. Когда уже наступит эра HD телефонии???
У нас есть первый победитель!
Жду Ваших вопросов!

Недавно мне задали вопрос: “Как можно с помощью 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

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

Відбувся перший вебінар по Oktell IP ATC “Оптимізація телефонних витрат. Автоматизація пошуку та обслуговування клієнтів”. Ви можете переглянути запис вебінару або скачати його разом із презентацією.
Дякую усім за участь!
[flashvideo file=”wp-content/uploads/2010/08/Oktell_IP-PBX.flv” /]

Oktell logoМне очень понравилось Интервью с участником форума CRMonline.ru Максимом К. (Максимом Красноперовым) о внедрении решения Oktell подготовленное Аверкиевым Антоном, менеджер по PR ООО “Телефонные Системы”

Читаем: Интервью с участником форума crmonline.ru Максимом К. (Максимом Красноперовым) о внедрении решения Oktell

Компания «Телефонные системы» произвела внедрение коммуникационной платформы Oktell в службе технической поддержки ООО «ИНИТ» (г.Уфа). Особенностью реализации данного проекта является его публичность. С момента первого обращения и до финала внедрения все этапы работы описывались сторонами-участницами на портале CRMonline.ru. Таким образом, все посетители портала могли принять участие в обсуждении, задать свои вопросы и попросить Максима К. (форумный никнейм руководителя службы технической поддержки компании «ИНИТ» Максима Красноперова) лично оценить ход внедрения «из первых рук».

О ходе внедрения и событиях ему предшествовавших мы попросили рассказать руководителя службы тех.поддержки компании «ИНИТ» Максима Красноперова, известного форумчанам под ником Максим К.

Я думаю, что все уже знают как просто в Oktell можно сделать виртуальною факс-машину, что бы все факсы приходили Вам на Email. Сегодня у меня обратная задача: отправить Email, который уже Oktell переправит факсом (во закрутил).

Реализация

1. Создаю под это дело новый ящик: fax@it-sfera.ua. На этот Email сотрудники будут отправлять письма с прикрепленным документом (пока, только изображения), где в теме нужно указать номер телефона на который нужно отправить факс.

2. Создаю служебный сценарий в Oktell, который проверяет данный почтовый ящик, сохраняет файл на сервере, получает Email отправителя и номер телефона из темы. Дальше, проверка разрешенных отправителей и запуск автодозвона с передачей управления другому IVR-сценарию: