views:

49

answers:

2

We are starting to develop a new application and I'm searching for information/tips/guides on application architecture.

Application should:

  1. read the data from an external (USB) device
  2. send the data to the remote server (through internet)
  3. receive the data from the remote server
  4. perform a video call with to the calling (support) center
  5. receive a video call call from the calling (support) center
  6. support touch screens

  7. 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!

A: 

I suggest using an existing service (Skype, Google Chat, ...) and control if from your WPF application(s) for the operator and client.

kenny
+1  A: 

It sounds like you are in the support business, not in the making of video conferencing software business. Maybe look at licensing 3rd party SDK's to fill in the video conferencing component of the application. It should end up being a lot faster to get your application live than reinventing the wheel. I googled quickly for "Video conferencing SDK". Several popped up immediately. I haven't ever used any so I am not about to start recommending any but I would think that is a good place to start.

Steve Sheldon