Первые впечатления очень хорошие. И Escene ES220-N и Escene ES220-PN стали более...
CallBack сценарий для Октелл или как удаленно пользоваться офисной телефонией
- Размер шрифта: Больше Меньше
- Просмотров: 5633
- Комментариев: 0
- Подписаться на обновления
- Печатать
- Поделиться
В этой теме я хочу поделиться наработкой по реализации описанного в теме функционала. Сценарии не претендуют на роль эталона, каждый может реализовать данную функцию так как он хочет, но это реально работающе на протяжении нескольких лет решение.
И так начнем с постановки задачи:
- При вызове определенного номера Октелл должен определить, что звоню именно я.
- Отбить вызов
- Перезвонить мне
- Дать возможность набрать внутренний номер, городской номер, междугородний номер.
Небольшое, но ля меня необходимое дополнение: если я звоню с неизвестного Октеллу номера, он дает мне возможность прописать этот номер в БД и далее действовать по описанному выше сценарию. (данная функция полезна, например, в коммандировке, когда я беру местную симку и мне надо, не имея удаленного доступа к серверу, совершать с нее вызовы.)
Итак начнем с подготовки таблиц в базе данных (БД):
создаю таблицу с зарегистрированными номерами следующего вида:
где
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ценарий "Перезвон":
В этом сценарии происходит запрос в БД для определения исходящего аона, передаваемого в ТфОП (outaon), затем абоненту дается возможность донабрать любой внешний номер. У меня сделано так, что необходимо вводить номер со всеми префиксами (0-выход на город, 8-для выхода на межгород). Конец набора номера- "#". После этого происходит набор номера во внешнюю сеть.
Еще маленькая доработка: если я ввожу 1 и #, то происходит удаление из БД записи с моим аоном.
Сценарии: Callback Перезвон(служебный сценарий) Перезвон (ivr-сценарий)
Первые впечатления очень хорошие. И Escene ES220-N и Escene ES220-PN стали более...
Скоро (предварительно 3-й квартал 2014 года) появятся новые модели: TAU-16.IP и TAU-24.IP, которые должны так же понравиться пользователям.
TAU-8.IP одно из лучших предложений из числа малопортовых шлюзов. Ставим с...
- агатux5110
- yeastar
- dinstar
- SIP-T27P
- sip
- система записи
- модуль
- системный телефон
- yealink
- escene
- многопортовый шлюз
- Hanlong
- voip шлюз
- агат cu
- мини атс
- запись разговоров
- gsm sip шлюз
- элтекс
- абонентский шлюз
- ip-телефон
- eltex
- ip телефон
- модуль расширения
- Skype for Business
- ip атс