Это во многом зависит от используемой УАТС - я работаю с серверами Avaya и CallMedia.Обе эти компании предоставили небольшой клиент для настольных ПК и DLL, на которые можно ссылаться из кода.
Самая большая проблема - информирование веб-страницы, как только приложение в системном трее получает событие.Запуск браузера может быть медленным и не очень удобен для обработки вызовов.Лучше держать браузер открытым и получать события.
Компания, в которой я работал, использовала довольно устаревшую технологию, поэтому у них было:
АТС - (XML) - АТСTray Client - (COM) - Наше собственное настольное приложение - (COM) - ActiveXControl, встроенный в страницу - (Javascript) - Структура веб-сайта, которая обрабатывает событие соответствующим образом
Как выЯ вижу, это было довольно долго и запутанно. Более элегантный подход - встроить приложение Silverlight / подобное на страницу, которая получает события от клиента в системном трее (через веб-сервис или подобное?)
ВыТакже необходимо решить вопрос а) открыть несколько страниц - все ли получают события?и б) замена УАТС на более позднюю дату не должна требовать полной перезаписи.
Когда я покинул эту компанию, мы внедрили механизм, когда наше приложение получало сообщения от УАТС напрямую через XML.Silverlight контролирует любые / все веб-страницы, зарегистрированные в нашем настольном приложении через 2-Way WCF.Затем наше настольное приложение отправило соответствующие события на соответствующую страницу.
Некоторые другие вопросы, которые следует учитывать: собираетесь ли вы работать со смешанным каналом?т.е. может ли обработка электронной почты блокировать событие входящего вызова?Если это так, то вам нужны какие-то двухсторонние сообщения, чтобы сказать «Отклонение вызова ...».Вы также должны быть осторожны с тем, в каком состоянии находится телефонный набор операторов. Если вы перейдете в состояние «доступно» до того, как закончите сохранять данные, вы можете просмотреть их перед записью всего.Кроме того, по моему опыту, агенты действительно рады нажимать кнопки на наборе телефонных разговоров, а не в вашем приложении - поэтому вам нужно обрабатывать неожиданные изменения статуса.
Также рассмотрите возможность переадресации вызовов - большинство современных АТС допускают переадресацию вызововпроисходить таким образом, что идентификатор связан с вызовом - поэтому, если это внутренний перевод, на экране получателей могут отображаться все примечания к вызовам / и т. д.
Я могу предоставить дополнительную информацию, если вы сможете уточнить, чтоPBX / и т.д..вы используете и какие события вам нужно обработать
События, которые я бы порекомендовал вам обрабатывать как минимум: звонок, ответ на вызов, сброс вызова, перевод вызова
, и вы должны иметь возможностьподнять: Принять вызов, Разместить вызов, Отменить вызов, Переводить вызов (Горячий и Холодный переводы, опционально с данными, если они внутренние)
Конечно, это может быть излишним для вашего решения:)
Редактировать: Я забыл добавить, что наше решение также обрабатывало регистрацию агентов включения / выключения telset, когда они входили в веб-приложение - это давало действительно хороший пользовательский опыт, но требовало обработки всех переменных входа / выхода из системы.а также ведение справочной таблицы user-> extension #