Телеком блог

Неутомимый труженик телекома

  • Главная
    Главная Страница отображения всех блогов сайта
  • Категории
    Категории Страница отображения списка категорий системы блогов сайта.
  • Теги
    Теги Отображает список тегов, которые были использованы в блоге
  • Блоггеры
    Блоггеры Список лучших блоггеров сайта.
  • Блоги групп
    Блоги групп Страница списка лучших командных блогов.
  • Авторизация
    Войти Login form
05
Фев

Отправка факсов через сценарий Октелл

Добавлено : Дата: в разделе: Call-центры

Функционал оказался востребованным, поэтому, дорабатывая, я решил сделать нечто наподобие версий, отличающихся функуционалом по мере доработки, и выложить все варианты.

  • Версия 1.0. Кладем файл формата "номер.tiff" в папку, октелл его отправляет, удаляет файл из папки.
  • Версия 2.0. Кладем файл формата "номер.tiff" в папку, октелл его отправляет, удаляет файл из папки.
  • Версия 3.0. В разработке, настраиваю отправку факсов во взаимодействии с программой 1С. 

Версия 1.0

Поступила задача сделать автоматическую отправку факсимильных сообщений средствами Октелл. Через клиентское приложение Октелл это делается элементарно, но нам необходимо это сделать по-другому. Рассматривалось два варианта:

  1. сотрудник отправляет скан сообщения на определенный адрес электронной почты, Октелл проверяет почту, принимает сообщение и отправляет.
  2. есть общая папка, куда любой сотрудник может скопировать скан отправляемого сообщения и Октелл убедившись в наличии файла в папке отправит его получателю

Мы остановились на втором варианте, реализацию которого я и опишу. Если необходимо реализовать 1-й вариант, то это можно сделать путем небольших изменений имеющихся сценариев.

 Сценарий Октелл

Сценарий Октелл

Начнем!

Первое, что необходимо определить- это то, откуда Октелл будет доставать номер телефона, на который отправлять факс? Естественное решение- имя файла.

Определяем папку, куда сотрудники будут копировать файлы: C:/FAXOUT

Если требуется ввод префикса для выхода на городскую сеть связи, то либо надо, чтобы префиксы пользователи сохраняли в названии файла, например, "9241212.tiff" либо средствами сценария по длине номера добавлять необходимые префиксы (9 или 0, 8 и т.д.). Это сделать не сложно, поэтому не останавливаемся на этом.

Параметры отправляемого файла можно найти в статье WIKI.OKTELL.RU, поэтому тоже не останавливаемся и идем дальше.

Необходимо учесть, что в папку с файлами нельзя скопировать два файла с одинаковым именем. Такая ситуация маловероятна, но вполне возможна, что в одим момнет времени два или более пользователя захотят отправить факсы на один номер.  Этот нюанс необходимо просто учесть и принять.

Мы имеем три сценария:

  • Проверка наличия факса.scr
  • Отправка факса.scr
  • Очистка БД

Проверка наличия факса.scr

Служебный сценарий, который необходимо сделать автозапускаемым с определенной периодичностью средствами Октелл (Общие настройки- Служебные задачи)

Если запущенный сценарий определяет, что в папке отсутствуют файлы, то происходит завершение работы сценария.

Здесь необходимо поподробнее остановиться на том, зачем я использую таблицу базы данных urg_faxout, чтобы стало понятнее.

Создаем таблицу БД:

USE [oktell]
GO

/****** Object: Table [dbo].[utyos_faxout] Script Date: 06.04.2015 13:42:39 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[utyos_faxout](
[Id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](max) NULL,
CONSTRAINT [PK_urg_fazout] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ID заполняется автоматически при SQL-запросе от Октелл на добавление записи.

Допустим, что у нас есть несколько файлов в папке. Когда стартует сценарий Октелл "Проверка наличия факса.scr", то он  определяет количество  файлов и начинает работать с первым. Вполне вероятно, что согласно заданному времени запуска сценария в "Общие настройки- Служебные задачи" сценарий запуститься повторно, когда еще не закончера работа предыдущего запуска (запусков). Так вот, чтобы сценарий не начал отправлять  уже отправляемый файл, я использую БД.

После запуска, сценарий проверяет количество файлов в папке. Далее считывает имя первого (в качестве считываемого имени я использую и путь и имя, т.е., например имя будет выглядеть так: C:/FAXOUT/9241212.tiff).

После этого производится запрос в БД, ищем такое же имя в столбце "name". Если имя найдено, то это означает, что данный файл отправляется, мы считываем имя следующего файла, так же проверяем. Сценарий работает до тех пор, пока не проверит все файлы либо не найдет файл, с которым Октелл еще не работает.

Следующим шагом мы делаем запись в БД, записываем имя файла, с которым будем работать. После чего выделяем номер телефона из имени и осуществляем дозвон по этому номеру с передачей управления в другой сценарий Октелл: Отправка факса.scr.

Данный сценарий имеет тип IVR, а не Служебный, как Проверка наличия факса.scr

В случае, если телефонный номер занят или не отвечает, мы удаляем запись из БД и завершаем работу сценария , чтобы смогли работать с файлом при последующем запуске.

 Отправка факса.scr

 В качестве параметра запуска из сценария Проверка наличия факса.scr мы передаем в сценарий Отправка факса.scr имя файла: C:/FAXOUT/9241212.tiff

Дозвонившись до абонента, не факт, что нам автоматически "отфетит" факс, установленный на автоматический прием. Поэтому необходимо записать голосовой файл, сообщающий, например: "Примите, пожалуйста факсимильное сообщение от компании "Рога и копыта", для чего нажмите кнопку старт или переведите вызов на факсимильный аппарат". Ну или что-то в этом роде.

Далее производится отправка факсимильного сообщения, удаление записи из БД и удаление самого файла из папки.

На этом работа сценариев завершена.

 

 Очистка БД отпраки факсов.scr

Данный сценарий выполняет роль чистильщика БД от записей, еоторые по какой-либо причине ну удалились при выполнении первых двух сценариев.

Вв разделе "Общие настройки-Служебные задачи" необходимо настроить разовый запуск этого сценария в ночное время, чтобы очистить БД.

 

Важно: Не забудьте настроить в разделе "Общие настройки-Служебные задачи " режим запуска служебного сценария Проверка наличия факса.scr . Я сделал 7 секунд. И не забудьте, что во внерабочее время и особенно ночью работа сценария не желательна, поэтому настройте график работы, чтобы Октелл не названивал никому по ночам.

Есть еще ряд нюансов при работе по отправке факсов, на которые я не стал акцентировать внимание. Все-таки факсы, на мой взгляд, отмирают. Переходите, господа, на соврененные технологии )))

В принципе, я постарался в самих сценариях подробно закомментировать все элементы, поэтому, думаю, что если кому-то это будет надо, то разберется.

Сценарий Октелл для отправки факсов (zip архив, 37 кб)


 

Версия 2.0

Подробно поэлементно ничего расписывать не буду.

Изменился алгоритм работы:

1. Копируем в папку "D:/FaxOut" документ формата "номер.tiff"

2. Сценарий проверки наличия факса стартует каждые 10 секунд и проверяет наличие файлов на отправку в папке "D:/FaxOut". Если файл присутствует, то сценарий проверяет наличие записи, соответствующей имени файла в БД, если запись есть (это означает, что в настоящее время производится отправка этого файла), то этот файл игнорируется и считывается имя другого файла. Если же в БД записи нет, то выделяем из имени файла номер телефона и производим отправку факсимильного сообщения.

3. В случае неудачной отправки, хапись из БД удаляется, чтобы еще раз произвести отправку.

4. Если факсимильное сообщение успешно отправлено, то производится переименование файла. Перед номером телефона я добавляю дату и время отправки (меняю ":" во времени на "-", т.к. в имени файла не может содержаться символ ":")

5. Файл переносится в папку "D:/FaxSend".   

Все! Вот такая логика работы. 

Сценарий Октелл для отправки факсов v2 (zip архив, 43 кб)

 


 

Версия 3.0

Основная цель создания данного сценария- осуществлять отправку документов из .

Так же было обнаружено, что сценарий Октелл не переименовывает файлы,если время меньше 9 часов утра.  Это происходило из-за того, что в параметре дата/время сценария Октелл часы до 10 обозначаются одной цифрой, поэтому пришлось подправить. В Версии 3 этот недостаток устранен.

Как это делается?

Пользователь хочет отправить какой-то документ из 1С контрагенту, нажимает кнопку в интерфейсе программы . Далее формирует файл такого вида: уникальныйидентификатор_номертелефона.tiff, и кладет его в папку D:/FAXOut

Октелл периодически запускает служебный сценарий, который проверяет наличие файла(ов) в данной папке. Если файл присутствует, то Октелл производит отправку его, переименование (как описано в Версии 2), переносит файл в папку D:/FAXSend, делает запись в таблицу utyos_faxout_logs базы данных (дата и время отправки, идентификатор). Таким образом, система 1С может периодически делать запросы в данную таблицу, чтобы знать состояние отправляемого файла.)

Таблица создавалась таким запросом: 

USE [oktell]
GO

/****** Object: Table [dbo].[utyos_faxout_logs] Script Date: 06.04.2015 13:43:12 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[utyos_faxout_logs](
[Id] [int] IDENTITY(1,1) NOT NULL,
[data] [datetime] NULL,
[code] [varchar](max) NULL,
CONSTRAINT [PK_utyos_faxout_logs] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Сценарий Октелл для отправки факсов v3 (zip архив, 569 кб)

Вот теперь и все, закончилась эпопея с созданием данного сценария.

 

Привязка к тегам ivr октелл сценарий факс

Комментарии

  • Гость
    Сергей Четверг, 07 Май 2015

    Интересное применение Октелл. Я думал, что факсы уже умирают, а тут такое применение. Тем более, насколько я помню, Октелл не поддерживает Т.38. Насколько надежно отправляются факсы?

Оставить комментарий

Гость Суббота, 23 Сентябрь 2017

Первые впечатления очень хорошие. И Escene ES220-N и Escene ES220-PN стали более...

PSS PSS 23. Декабрь, 2014 |

Первые впечатления очень хорошие. И Escene ES220-N и Escene ES220-PN стали более...

PSS PSS 23. Декабрь, 2014 |

Yealink- одни из самых заказываемых ip-телефонов- это факт. Именно спрос...

Super User Super User 14. Апрель, 2014 |

Скоро (предварительно 3-й квартал 2014 года) появятся новые модели: TAU-16.IP и TAU-24.IP, которые должны так же понравиться пользователям.

Super User Super User 14. Апрель, 2014 |