Интеграция компьютерной телефонии Софтфон Архитектурный вопрос - PullRequest
2 голосов
/ 16 июня 2011

Я работаю над проектом, в котором я разрабатываю псевдо-решение Unified Communications среднего уровня (Presence & Call Control) с использованием Genesys в качестве бэкэнда, который является поставщиком решений CTI (www.genesyslab.com).Фронт-эндом решения может быть веб-приложение (предпочитаю не использовать ActiveX, хотя моя компания - магазин Microsoft)

Genesys использует коммуникацию на основе сокетов, а связь асинхронная.Например, я отправляю запрос на телефонный звонок в Genesys, и Genesys отвечает событием, указывающим, что телефонный звонок набирается и устанавливается.

На основании моего ограниченного опыта в проектировании n-уровняДо сих пор предполагаю, что это служба Windows, которая обрабатывает коммуникацию через сокеты с Genesys и поддерживает состояние всей активности вызовов в среде.Далее я вижу, как служба WCF связывается со службой Windows, чтобы предоставить подробную информацию о состоянии вызова веб-клиентам (с использованием базовой или ws-привязки).Это позволило бы мне отказаться от использования ActiveX, но потребовало бы опроса, так что, скорее всего, у меня было бы несколько экземпляров WCF с балансировкой нагрузки для распределения нагрузки.

Я на правильном пути?Может ли WCF взаимодействовать со службой Windows, а также предоставлять услуги клиентам?Любые другие предложения архитектурного подхода будут с благодарностью!

С наилучшими пожеланиями, Джейсон

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Вы, безусловно, могли бы реализовать службу «шлюз» WCF, которая представляет реализацию протокола CTI в качестве веб-службы SOAP, дружественной к WCF.Если протокол CTI зависит от соединений с отслеживанием состояния, это может быть сложно реализовать в качестве веб-службы SOAP без сохранения состояния.Однако, в зависимости от вашего выбора технологии на стороне клиента, это может не потребоваться.

Элемент управления ActiveX имеет те же разрешения, что и вошедший в систему пользователь.Таким образом, он может создавать соединения сокетов TCP / IP или UDP с CTI, избегая необходимости WCF в целом.

Если вы используете Silverlight (который я настоятельно рекомендую поверх ActiveX), то вам понадобится приложение Silverlightиметь повышенное доверие для создания соединений сокетов на произвольных портах.Обычно приложение Silverlight может создавать сокетные соединения только на портах 4502-4534 , но приложение Silverlight с повышенным доверием может использовать любой порт.

Как правило, Silverlight имеет лучшую «репутацию», чем ActiveXНо на самом деле и ActiveX, и Silverlight потребуют от ваших клиентов достаточного доверия для установки чего-либо.

0 голосов
/ 16 июня 2011

В дополнение к службам WCF «среднего уровня» вы должны сделать так, чтобы служба Windows также размещала службу WCF. Это был бы самый простой способ для служб WCF общаться со службой Windows. Эта служба WCF будет вызываться только через службы среднего уровня для взаимодействия с интеграцией телефонии.

Для обеспечения устойчивости вы могли бы на самом деле сделать конечную точку кластером или конечной точкой службы маршрутизации, что позволило бы относительно легко представить отказоустойчивость службы Windows

Кроме того, я бы вообще избегал WsHttpBinding, так как он добавляет много накладных расходов для поддержки функциональности, которая обычно не требуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...