Открывать веб-страницу при получении входящего вызова

У нас есть веб-приложение, и люди спрашивали нас, можем ли мы открывать всплывающие окна при поступлении входящего вызова на их АТС.

Я думаю, что самым простым способом сделать это было бы иметь небольшое приложение, которое сидело бы в системном трее и ждало вызова с использованием TAPI или TSAPI. Когда поступает вызов, он открывает веб-страницу с настроенным URL-адресом, передавая идентификатор вызывающего абонента в качестве параметра.

Где-то есть такое приложение?

P.S. Кто-нибудь знает, что случилось с простым протоколом компьютерной телефонии< /а>


person rjmunro    schedule 13.08.2010    source источник


Ответы (2)


Многое зависит от используемой АТС - я работал с серверами Avaya и CallMedia. Обе эти компании предоставили небольшой настольный клиент и DLL, на которую можно ссылаться из кода.

Самая большая проблема заключается в информировании веб-страницы о том, что приложение на панели задач получает событие. Запуск браузера может быть медленным и не очень удобен для обработки вызовов. Лучше держать браузер открытым и получать события.

Компания, в которой я работал, использовала довольно устаревшие технологии, поэтому у них было:

АТС --(XML)-- Клиент панели задач АТС --(COM)-- Наше собственное настольное приложение --(COM)-- ActiveXControl, встроенный в страницу --(Javascript)-- Платформа веб-сайта, обрабатывающая событие по мере необходимости

Как вы можете видеть, это было довольно долго и запутанно. Более элегантным подходом было бы встроить на страницу приложение silverlight/подобное, которое получает события от клиента системного трея (через веб-службу или что-то подобное?)

Вам также необходимо решить вопрос: а) открыто несколько страниц - все ли получают события? и б) замена УАТС в более поздние сроки не требует полной перезаписи.

Когда я уходил из этой компании, мы реализовывали механизм, при котором наше приложение получало сообщения от АТС напрямую через XML. Silverlight контролирует любые/все веб-страницы, зарегистрированные в нашем настольном приложении, через 2-Way WCF. Затем наше настольное приложение отправило соответствующие события на соответствующую страницу.

Некоторые другие вещи, которые следует учитывать: Собираетесь ли вы обрабатывать смешанные каналы? т.е. может ли обработка электронной почты блокировать событие входящего вызова? Если это так, вам нужна какая-то двусторонняя связь, чтобы сказать «Отклонение вызова ...». Вы также должны быть осторожны с тем, в каком состоянии находится телефонный аппарат агента. Если вы перейдете в «доступное» состояние до того, как закончите сохранение данных, вы потенциально можете просмотреть все, прежде чем записывать все. Кроме того, по моему опыту, агенты действительно рады нажимать кнопки на телефоне, а не в вашем приложении, поэтому вам нужно обрабатывать неожиданные изменения статуса.

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

Я могу предоставить больше информации, если вы можете уточнить, что такое PBX/etc. вы используете и какие события вам нужно обрабатывать

События, которые я бы рекомендовал вам обработать как минимум: звонок вызова, ответ на вызов, сброс вызова, перевод вызова

и вы должны иметь возможность поднять: принять вызов, разместить вызов, сбросить вызов, перевести вызов (горячие и холодные переводы, опционально с данными, если они внутренние)

Конечно, это может быть излишним для вашего решения :)

Редактировать: я забыл добавить, что наше решение также обрабатывало регистрацию включения и выключения агентов на телефонном наборе при входе в веб-приложение. переменные, а также ведение таблицы поиска user->extension #

person Basic    schedule 13.08.2010
comment
Спасибо за этот ответ. Проблема в том, что мы хотим поддерживать системы АТС наших клиентов, какими бы они ни были. Возможно, лучший способ сделать это — спросить, какие телефонные системы предоставляют приложение, которое может открывать веб-страницу при получении вызова? - person rjmunro; 13.08.2010
comment
Насколько мне известно, для этого не существует согласованного способа кросс-АТС. Многие системы не передают сообщения TAPI/TSAPI на клиентский ПК (некоторые даже не передают их на клиентский telset, используя собственный внутренний механизм). Таким образом, нет общих событий для перехвата. Вам также необходимо спросить, что произойдет, если клиент использует Skype/Software VOIP. Если вы найдете ответ, мне было бы интересно узнать, как вы это сделали, но я думаю, что вы столкнетесь с очень запутанным решением, если сможете заставить его работать. - person Basic; 13.08.2010
comment
Конечно, вы МОЖЕТЕ написать общее приложение в системном трее, которое может обрабатывать несколько АТС и добавлять поддержку для каждой АТС enw модульным образом — тогда вы получите стандартизированный набор событий в своем приложении, и вы можете начать с малого и расширять его по мере необходимости. . Другая проблема с вашим подходом заключается в обработке событий, которые не соответствуют общему интерфейсу. Таким образом, некоторые АТС будут отправлять вызов доставлен, другие - предлагать вызов и т. Д. Некоторые включают идентификатор вызывающего абонента, некоторые также имеют IVR / время в очереди. вложенная информация. Вы, вероятно, могли бы вытащить нужные данные, но опять же это может быть беспорядочно - person Basic; 13.08.2010
comment
Я просто удивлен, что универсального приложения в системном трее или множества разных приложений для разных АТС еще не существует. NCID, по-видимому, является основой для такой системы, но, по-видимому, нацелен на домашних пользователей, у которых есть старый модем, который они могут использовать в качестве адаптера идентификатора вызывающего абонента > последовательного адаптера. Также требуется Linux-сервер. - person rjmunro; 13.08.2010
comment
Я не могу сказать наверняка, что его не существует, просто я не сталкивался с ним - я много лет пишу программное обеспечение для колл-центров и тому подобное, но, как вы, вероятно, можете сказать из моего ответа, мы используем довольно сложная интеграция. Я думаю, что проблема в основном сводится к тому, что связь между АТС и клиентским ПК нестандартна. У каждого поставщика есть свои особенности — и мы также полагаемся на перехват событий, отправляемых на TelSet с ПК (или подобного устройства). Так что нам нужно либо перехватывать и интерпретировать нестандартные сообщения, либо полагаться на уведомления. Желаю тебе удачи :) - person Basic; 13.08.2010

NCID (идентификатор сетевого вызывающего абонента) — это проект Sourceforge, который кажется мне тем, что мне нужно, но он зависит от Linux-сервера и, похоже, поддерживает Caller ID только с модема, подключенного к последовательному порту, или путем перехвата SIP-пакетов, проходящих через Ethernet-интерфейс сервера. Он не поддерживает никакие PBX-системы с TAPI или подобными, поскольку работает только на Linux.

Клиентское приложение, которое подключается к серверу NCIDpop, делает именно то, что я хочу — оно может взять строку URL-адреса, чтобы перейти и найти номер, и открыть веб-страницу, когда вы щелкнете по ней.

Это не совсем ответ для меня, но может быть полезен другим, находящим этот вопрос.

person rjmunro    schedule 13.08.2010
comment
Интересно — если вы рассматриваете возможность использования маршрута с выделенным сервером, вы можете получить некоторую выгоду от Asterisk — я сам не использовал его, но считаю, что он легко настраивается — возможно, вы могли бы разместить его между АТС и агентами? Это может дать вам необходимый уровень абстракции. - person Basic; 13.08.2010