video calling (center)
        Posted  
        
            by rrejc
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by rrejc
        
        
        
        Published on 2010-03-13T20:56:25Z
        Indexed on 
            2010/03/13
            21:25 UTC
        
        
        Read the original article
        Hit count: 446
        
We are starting to develop a new application and I'm searching for information/tips/guides on application architecture.
Application should:
- read the data from an external (USB) device
 - send the data to the remote server (through internet)
 - receive the data from the remote server
 - perform a video call with to the calling (support) center
 - receive a video call call from the calling (support) center
 support touch screens
In addition: some of the data should also be visible through the web page.
So I was thinking about: On the server side:
- use the database (probably MS SQL)
 - use ORM (nHibernate) to map the data from the DB to the domain objects
 - create a layer with business logic in C#
 - create a web (WCF) services (for client application)
 - create an asp.net mvc application (for item 7.) to enable data view through the browser
 
On the client side I would use WPF 4 application which will communicate with external device and the wcf services on the server.
So far so good. Now the problem begins. I have no idea how to create a video call (outgoing or incoming) part of the application. I believe that there is no problem to communicate with microphone, speaker, camera with WPF/C#. But how to communicate with the call center? What protocol and encoding should be used?
I think that I will need to create some kind of server which will:
- have a list of operators in the calling center and track which operator is occupied and which operator is free
 - have a list of connected end users
 - receive incoming calls from end users and delegate call to free operator
 - delegate calls from calling center to the end user
 
Any info, link, anything on where to start would be much appreciated.
Many thanks!
© Stack Overflow or respective owner