ПроCall-центр

19Фев/110

Infinity: Отправка клиенту смс с сотовыми номерами службы

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

  • Для большинства людей стоимость звонка с сотового номера на городские и мобильные номера существенно отличаются
  • Отправляем только тем, кто, не зная сотового, позвонил с мобильного на городской. Всегда приятно думать, что о тебе заботятся, ты кому-то нужен, вдвойне приятнее когда тебя не валят ненужным спамом 🙂
  • Каждому клиенту отправится смс только один раз, думаю этот "+" очевиден.
  • В текст можем на выбор заслать логин Скайпа, Sipneta,Web-сайт, страницу в соц-сетях и т.д.
  • Номера можно прямо из смс сохранить в справочнике, ну или всегда пролистать в истории, увидеть в номере отправителя Taxi (если дружите с провайдером смс :)), и оттуда позвонить.
  • Придумал, буквально, пока писал статью. Если имеются сим-карты нескольких операторов связи, то можно  отсылать номера телефонов тех операторов с которого клиент позвонил. Тем самым освободим некое количество символов в смс, и вместо этого отправим какую нибудь нужную информацию.

Реализуется сия деяние следующим способом:
Первым делом нам необходимо выяснить с какого номера позвонил клиент, сотового или городского.
Создаем процедуру в базе Infdata.dat:

 

CREATE PROCEDURE USER_CATEGORY (num varchar(30))
returns (category varchar(30)) as declare variable kod varchar(10);
begin
if (num = '') then
begin
category ='не определена';
suspend;
exit;
end
kod = lxcopy (num, strlen (num)-9, 1);
if (kod = '9') then category = 'сотовый' ;
else category = 'городской';
suspend;
end

Далее открываем наш любимый IVR - сценарий "Infinity – Главный входящий Такси".
В принципе в любом месте после запроса значения переменной АОН и, если сделана,  процедуры преобразования номеров, вставляем компоненту "Запрос в БД", со следующими параметрами:

Запрос:

 

select first 1 category from user_category (:Num)
Имя: категория номера
Параметры: Входной- переменную в которой хранится А-номер
Выходной-добавляем строковую переменную "категория"

Далее необходимо узнать куда позвонил клиент на городской номер или сотовый шлюз. Для этого нам потребуется компонента "Варианты". Здесь уже каждому надо смотреть как устроена его телефония. В общем случае это делается с помощью функции "Набранный номер Б-номер", ее и указываем в качестве аргумента, для переменных же указываем соответственно номера Ваших телефонов. В случае аналогового решения можно также использовать функцию "Линия". Номера линий и сопоставление им определенных устройств берутся из настроек Интеллектуальной АТС, раздела внешние линии.

Таким образом можно будет разделить в IVR-сценариях звонки той или иной категории. В нашей схеме это будет выглядеть примерно так:

Осталось сделать проверку отправляли ли мы ранее этому клиенту смс или нет, все примерно также как и с категорией. Запускаем скрипт на Infdat'у:

 

CREATE TABLE USER_SMS_ONCE (TEL  I_VARCHAR50 NOT NULL);
COMMIT;
/* Создаем таблицу в которую занесем номера телефонов, на которые уже отсылали смс */
CREATE INDEX USER_SMS_IDX1 ON USER_SMS_ONCE (TEL);
COMMIT;
/*Накладываем индекс для ускорения поиска*/
CREATE PROCEDURE USER_SMS_FIND (tel varchar(50))
returns (flag integer) as declare variable num varchar(50);
begin
flag =0;
select first 1 TEL  from user_sms_once where TEL=:TEL into :NUM;
if (num is null ) then
begin
insert into user_sms_once(TEL) values (:TEL);
suspend;
end
else flag=1;
suspend;
end
/*собственно сама процедура, если номера нет,
отдает на выходе 0 и заносит в базу, если же есть, отдает 1*/

Далее нам необходимо в IVR-сценарии добавить компоненту "Запрос в БД" со следующими параметрами:
Запрос:

 

SELECT FLAG FROM USER_SMS_FIND(:TEL)

Параметры: входной- А-номер выходной - добавляем переменную flag. После ставим "сравнение", проверяем равна ли переменная flag = 0 ? Если ложь, значит человеку уже отправляли, направляем стрелку к скрипту инфо_о_водителе, если истина на компоненту "смс", в которой в качестве текста Ваши номера телефонов, в качестве номера, переменная в которой хранится АОН

В конечном итоге наш IVR-сценарий будет выглядеть примерно так:

При создании данной статьи были использованы и модифицированы скрипты, любезно предоставленные сотрудником "ООО Протелеком" Сахабутдиновым Айратом.

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Автор mirazor

Метки записи: , , , Комментировать
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

*

Нет обратных ссылок на эту запись.