Не удивительно, что во многих бизнес процессах так или иначе встречается такая задача как позвонить на один номер телефона и потом соединить его с другим номером. Чаще всего такой сервис называют callback или обратный вызов, иногда — заказ звонка. Многие встречали его на сайтах интернет-магазинов, но в большинстве случаев это не автоматизированный обратный звонок, а обычная заявка, которая падает менеджеру на email или появляется в CRM, после чего менеджер ручками набирает номер клиента и с ним беседует. Некоторые крупные компании реализуют автоматизированный callback и даже интегрируют его с очередями в контакт-центре. В данном посте мы рассмотрим как буквально за несколько минут создать callback-сценарий с помощью платформы VoxImplant, а также интегрировать это хозяйство с каким-нибудь существующим бэкендом для сохранения/получения данных по звонку, запасайтесь поп-корном и добро пожаловать под кат.Читать полностью »
Метка «callback»
Быстрое создание callback-сценариев с помощью VoxImplant
2014-06-16 в 7:10, admin, рубрики: callback, diy или сделай сам, ip-телефония, voximplant, Веб-разработка, метки: callback, voximplantО вольностях в ссылках или простейший обмен сообщениями
2014-02-05 в 11:25, admin, рубрики: c++, c++11, callback, callbacks, event-driven, С++, сообщения, метки: c++11, callback, callbacks, event-driven, С++, сообщения Обмен сообщениями достаточно фундаментальная вещь в науке Computer Science. Будем рассматривать её в приближении к событийно-ориентированному программированию (event-driven). Терминология, возможности и реализации могут отличаться: события (events), сообщения (messages), сигналы/слоты (signals/slots) и callbacks. В целом суть, что с приходом события запускается ответная реакция.
Сама система обмена сообщениями в статье послужила демонстрацией вольной, но допустимой интерпретации ссылок/указателей, упрощающей код. Получившаяся система тривиальна и умеет только регистрировать обработчик на определённый код сообщения и посылать сообщения с таким кодом.
Допустим что обработчики нетривиальные, а сообщений немного. И что мы сами генерируем сообщения и они не приходят нам по сети, например. В таком случае хочется иметь что-то более удобное с явными объявлениями переменных в сообщении. Например, нечто подобное:
StringMessage* str_message = ...;
send(my_message);
...
void handle_message(const Message* message) {
assert(message);
const StringMessage* str_message = dynamic_cast<const StringMessage*>(message);
assert(str_message);
std::cout << str_message->message ...
}
Но хочется убрать проверочный код, не имеющий отношения к логике работы, под капот. Заменим поэтому указатель на ссылку, показав что в обработчик точно приходит объект, а не NULL nullptr. И пусть обработчик сразу принимает требуемый им тип сообщения.
void handle_message(const StringMessage& message) {
...
}
Как осуществить задуманное и поддержать другие возможные классы сообщений?
Читать полностью »
Пример использования DataSnap Callback: запрос данных от пользователя во время вызова серверного метода
2013-11-19 в 7:24, admin, рубрики: callback, Delphi, Программирование, метки: callback, DelphiЧто это и для чего надо:
Работа с Datasnap заключается в запросе от сервера данных и вызове серверных методов, например:
— Запросить список товаров с сервера (dataset )
— Создать новый документ
— Добавить в него позиции
— Закрыть документ
Иногда при добавлении позиции необходимо сделать дополнительный выбор, например выбрать партию товара или разрез.
Это можно сделать через возврат кода ошибки (что-то вроде Prepare/Execute), чтобы клиент запросил пользователя, а затем попробовал снова выполнить операцию.
Или же дать серверу возможность запросить клиента непосредственно во время операции все необходимые ему данные.
Дополнительные функции Aastra Mobile Client
2013-11-08 в 8:18, admin, рубрики: aastra, AMC, android, asterisk, callback, instant messaging, iOS, ip-телефония, Mitel, mx-one, nat, pbx, виртуализация, телефония, метки: aastra, AMC, android, asterisk, callback, instant messaging, iOS, Mitel, mx-one, nat, pbx, SIP клиентВ этой статья я продолжу начатую мной ранее тему – Aastra Mobile Client. Теперь мы рассмотрим дополнительный функционал, который позволяет реализовать решение от AMC.
HTTPS Callback
Callback — телефонная услуга, позволяющая клиенту заказать соединение с нужным абонентом таким образом, чтобы звонок был входящим для них обоих. Некоторые компании предлагают своим абонентам услугу, позволяющую совершать международные звонки с помощью метода callback с обычного мобильного телефона. Поскольку на большинстве мобильных операторов входящие звонки бесплатные, абонент ничего не платит своему оператору и разговаривает по тарифам IP-телефонии. Это особенно удобно, когда вы находитесь в роуминге, и входящий вызов стоит дешевле, чем исходящий.
В контексте AMC, услуга обратного вызова реализуется посредством метода – HTTPS callback. Т.е. абонент со своего мобильного клиента AMC инициирует https-запрос в сторону AMC-контроллера. В данном запросе будет содержаться: номер абонента (это может быть любой номер от внутрикорпоративного или стационарного, до международного), который хочет вызвать клиент AMC и мобильный номер собственно самого клиента AMC (который, к слову сказать уже содержится в AMC-контроллере).
Далее, AMC-контроллер вызывает абонента-Б (того, которому мы хотим позвонить) и абонента-А, т.е. пользователя AMC, перезванивая ему на его мобильный номер. Вызов абонента-Б начинается только после ответа AMC абонента. Схематично это выглядит так:
Стоит обратить внимание, на тот факт, что услуга callback доступна абонентам AMC, только в случае недостаточной полосы пропускания 3G. О чем сигнализирует значок на статус панели (only data connection).
Читать полностью »
Лямбда-функции и реализация удобного механизма Callback-ов на C++
2013-09-04 в 9:11, admin, рубрики: c++, c++0x, c++11, callback, callbacks, С++, метки: c++0x, c++11, callback, callbacks, С++ В этой статье на примере реализации механизма обратного вызова будет рассмотрена возможности применения лямбда функций в удобной и быстрой форме.
Читать полностью »
Нетривиальная задача с callback + DID в Asterisk
2013-04-15 в 16:20, admin, рубрики: asterisk, callback, DID, ip-телефония, метки: asterisk, callback, DID Здравствуйте, уважаемые читатели и любители астериска!
Хочу поделиться интересной задачей и вариантом её решения. Итак, вот условия задачи.
Имеем:
— модифицированный дистрибутив Elastix 2.3
— asterisk 1.8.13.1
— FreePBX 2.8.1
— 24 номера подключением по sip и 30 каналов
— ~40 различных ООО в составе холдинга
Текущая задача:
— сделать callback сервис для каждого номера DID (и соответственно от каждого ООО)
Казалось бы, «это же freePBX — там всё делается мышкой». Это не совсем так.
Читать полностью »
Asterisk: обратный вызов с использованием AMI
2012-12-06 в 11:21, admin, рубрики: asterisk, callback, Блог компании centos-admin.ru, метки: asterisk, callback Asterisk Manager Interface (AMI) – это программный интерфейс который позволяет внешним программам как управлять, так и контролировать систему Asterisk. AMI слушает соединения на TCP порту, по-умолчанию это 5038. Клиентская программа может соединяться с AMI, передавать команды в Asterisk, получать ответ о статусе выполнения команд.
В данном посте мы рассмотрим использование AMI на примере решения определенной задачи: настроить Asterisk на генерацию звонков по заданному url, в котором должны устанавливаться параметры звонка.
Настройка Asterisk AMI
Первое что необходимо сделать, это включить AMI и завести пользователя с помощью которого клиентская программа будет аутентифицироваться:
/etc/asterisk/manager.conf
[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
/etc/asterisk/manager.conf
[c2call]
secret=FrUyHn6FSaX
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0
read=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
write=system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
Для применения изменений выполним reload:
asterisk -rx "module reload manager"
Теперь нам потребуется создать внутренний номер который, собственно, и будем соединять с вызываемым абонентом:
/etc/asterisk/sip.conf
[3200]
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.0.0
secret=3200
dtmfmode=rfc2833
canreinvite=no
context=OUT_IN1
host=dynamic
type=friend
nat=yes
port=5060
qualify=yes
callcounter=yes
faxdetect=no
После создания внутреннего номера, потребуется перечитать конфигурацию Asterisk:
asterisk -rx "sip reload"
На этом настройка Asterisk завершена.
Асинхронные функции в Javascript и ключевое слово this
2012-04-05 в 10:30, admin, рубрики: callback, javascript, this, Веб-разработка, ооп, метки: callback, javascript, this, оопПри использовании асинхронных функций в классах часто возникает проблема, когда в теле функции невозможно обратиться к объекту класса, вызывающему функцию. Это хорошо видно на примере с аяксом (с использованием jQuery):
function Loader()
{
this.load = function()
{
$.ajax({
url: '/test.php',
success: function(data, textStatus, jqXHR) {
// здесь уже никак нельзя обратиться к объекту класса
console.log(this); // this содержит внутренний объект jQuery,
// вызывающий функцию success
}
});
}
}
(new Loader()).load();