Телеком блог

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

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

CallBack сценарий для Октелл или как удаленно пользоваться офисной телефонией

Добавлено : Дата: в разделе: АТС, IP-АТС, IP-шлюзы

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

И так начнем с постановки задачи:

  • При вызове определенного номера Октелл должен определить, что звоню именно я.
  • Отбить вызов
  • Перезвонить мне
  • Дать возможность набрать внутренний номер, городской номер, междугородний номер.

Небольшое, но ля меня необходимое дополнение: если я звоню с неизвестного Октеллу номера, он дает мне возможность прописать этот номер в БД и далее действовать по описанному выше сценарию. (данная функция полезна, например, в коммандировке, когда я беру местную симку и мне надо, не имея удаленного доступа к серверу, совершать с нее вызовы.)

Итак начнем с подготовки таблиц в базе данных (БД):

создаю таблицу с зарегистрированными номерами следующего вида:

 Таблица зарегистрированных номеров

где

     id- идентификатор (практически номер по-порядку)

     aon- аон вызывающего абонента

     num- набираемый номер со всеми префиксами (в моем случае 08+номер, т.к. префикс выхода на город-"0", 8-ка- для вызова федерального мобильного номера)

     outaun- аон, который должен "уходить" в ТфОП

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

SQL-запрос на создание таблицы   urg_callback:

CREATE TABLE [dbo].[urg_callback](
[id] [int] NOT NULL,
[aon] [varchar](50) NULL,
[num] [varchar](50) NULL,
[outaon] [varchar](50) NULL,
CONSTRAINT [PK_urg_callback] 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]

GO

мне захотелось сохранить следы всех дозвонов в отдельной таблице и я сделал отдельную таблицу для лога:

Таблица лога отзвонов

где

     id- идентификатор (практически номер по-порядку)

     date- дата и времы вызова

     aon- номер телефона звонящего

SQL-запрос на создание таблицы urg_callback_logs:

CREATE TABLE [dbo].[urg_callback_logs](
[id] [int] NOT NULL,
[date] [varchar](max) NULL,
[aon] [varchar](50) NULL,
CONSTRAINT [PK_urg_callback_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]

GO

Логика работы сценария по приему вызова:

 

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

Поступает вызов. (определяется АОН вызывающего абонента)

|

Происходит запрос в БД и проверка на наличие АОНА в БД

/\                    

                                               аон есть в БД                                                                                         аона нет в БД

                                                           |                                                                                                                    |

ищется максимальное значение id (последняя запись) в таблице urg_callback_logs

|

делается запись в таблицу лога urg_callback_logs

|

 

запускается служебный сценарий "Перезвон" (набор номера вызывающего абонента) с параметром запуска "аон" и отбивается входящий вызов.

 

вызывающему абоненту воспроизводится звуковой сигнал (файл ding.wav) 

|

В течение 20-ти секунд абонент должен ввести "Пароль". В выложенном сценарии для примера я переделал под проверку текущей даты. В моем сценарии  Вы должны ввести день, месяц, год и номер АОНа, который будет "уходить" в ТфОП при исходящем вызове с сервера.. Например: 140920124951234567

|

Происходит проверка на корректность введения пароля. В случае неправильного введенного пароля происходит "отбой" абонента. Если пароль введен правильно, то в таблицу urg_callback нашей БД  вноситься новая запись с id на единицу больше, чем id последней записи. В таблицу добавляется: аон абонента (aon), формируется в зависимости от того городской или междугородний номер значение набираемого номера со всеми префиксами (num) и аон, отдаваемый в ТфОП (outaon)- то значение, которое мы вместе с паролем ввели.  

Таким образов мы автоматически внесли в БД новый номер. Теперь при вызове нашего сценария с этого номера обработка вызова будет осуществляться по соседней ветке: "  аон есть в БД  "

 

 Служебный Сценарий "Перезвон":

 

Служебный сценарий Перезвон

Здесь, я думаю, особо объяснять нет смысла. Происходит запрос в БД  и поиск строки по параметру запуска, которым является аон абонента. Осуществляется набор номера (таблицf urg_callback) из столбца num с аоном outaon. У меня происходит одиночный набор номера. Можно сделать по типу автодозвона: повторение наборов в случае занятости или неответа абонента. Коку как нравится, мне этого не надо было.

После ответа абонента управление передается в IVR-сценарий однофамилец "Перезвон" с параметром запуска aon.

IVR-cценарий "Перезвон":

 

IVR-сценарий Перезвон

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

Еще маленькая доработка: если я ввожу 1 и #, то происходит удаление из БД записи с моим аоном.

Сценарии: Callback  Перезвон(служебный сценарий)  Перезвон (ivr-сценарий)

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

Комментарии

  • Никаких комментариев пока не было создано. Будьте первым комментатором.

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

Гость Среда, 13 декабря 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 |