Ensure you are using the latest version of Quorum Stream. You can download the latest version from here.
/products/quorum/quorum-stream.aspx
If you have installed an older version of Quorum Stream please ensure that the Quorum Stream service has been stopped prior to uninstalling Quorum Stream. You can do this using the start menu Start>Quorum Stream>Stop Service. Then uninstall in the usual way.
After you have installed the latest Quorum Stream, start the service. You can do this using the start menu Start>Quorum Stream>Start Service. It is good practice to check that the service has started by checking the Windows Services and Event View administrative tools as described in the Quorum Stream user guide.
NB: It is important that when developing, and when adding or updating your Quorum Stream web-references that the Quorum Stream service is running.
In your Visual Studio projects:
Quorum Stream has a self describing web-services interface accessible at: http://127.0.0.1:25776/RapidGateway/. If you are using Visual Studio 2008, then please note that you should use Web References for Web-Services 2.0 rather than Service References. In solution explorer, choose Add Service Reference. In the Add Service Reference dialog click Advanced. In the Service Reference Settings click Add Web Reference.

In the Add Web Reference, enter the http address (http://127.0.0.1:25776/RapidGateway/) for the web-service and click Go. NB: on some installations the end slash is removed.

If the Stream service is executing and no firewalls prevent access to the service, the web reference dialog will show as follows:

Choose a name for the Web reference. This will become the namespace for the Quorum Stream web-service in your project, then Click Add Reference. Here the arbitrary name GatewayWS has been chosen.
Visual Studio will now create proxy classes to access the Quorum Stream web service. These will be added to the namespace set in the previous step. Make sure you add a using statement to any code file that references the Stream server, e.g using QuorumStreamWebDemo.GatewayWS

Create an instance of the RapidGatewayServer class to represent the Stream server and then, later, assign the URL of the Server e.g. http://127.0.0.1:25776/RapidGateway by setting the URL property of the RapidGatewayServer object.
private RapidGatewayServer m_server = new RapidGatewayServer();
:
:
m_server.Url = http://localhost:25776/RapidGateway;
When performing asynchronous actions using the RapidGatewayServer class you should subscribe to events in the class that relate to the completion of the required action.
For example to list all the trancoding sessions on a Quorum Stream server asynchronously the ListSessionsAsync method is called, e.g.
m_server.ListSessionsAsync();
Then, to complete other actions you might have associated with obtaining the list, you add a method e.g. OnListSessionsCompleted with a signature and method body similar to the following:
void OnListSessionsCompleted( object sender, ListSessionsCompletedEventArgs e )
{
if ( InvokeRequired )
{
BeginInvoke(
new ListSessionsCompletedEventHandler(
OnListSessionsCompleted ), new object[] { sender, e }
);
}
else
{
// Do rest of work
}
}
The OnListSessionsCompleted method declared above is called after the list of sessions are available from the Quorum Stream server. Note that since the thread that calls the method might not be on the same thread that created the RapidGatewayServer object, you must test whether thread invocation is required and perform the invocation using the appropriate delegate defined for the method being invoked. This is atypical of implementing callbacks in C#.
Note: you must also have previously subscribed to the ListSessionsCompleted event, as shown below.
m_server.ListSessionsCompleted +=
new ListSessionsCompletedEventHandler(OnListSessionsCompleted);
Implementation Hints
Prior to making a call to the Stream server always check that the server is active by calling the GetGatewayInfo RapidGatewayServer method within a try...catch block.
Handling errors in callbacks - typically event handlers have an e parameter which contains an Error property. If null, then it can be assumed that no error occurred and any data included in the e parameter is valid. If e.Error is not null then e will contain a reference to an Exception class.
E.g.
protected override void OnLoad( EventArgs e )
{
base.OnLoad( e );
try
{
// Check Quorum stream is reachable
m_server.GetGatewayInfo();
// Obtain current session list
m_server.ListSessionsAsync();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Please download and open the Visual Studio 2008 C# project (available in the Resources on the right) that implements a simple Windows Forms GUI application which connects to a Quorum Stream server running on the SAME PC that is running the application and:

The application requires a knowledge of the correct source "target string" to allow you to make a connect to a particular device.
For Panasonic BLC-1 with IP address 10.0.71.11 this is:
/brucefield/10.0.71.11/video/source/mjpeg/nphMotionJpeg?Resolution=640x480
For Axis MJPEG with IP address 195.243.185.195 this is:
/oakbank/195.243.185.195/video/source/0
After creating a session you can view it using Quorum Play (download from our web-site at /products/quorum/quorum-play.aspx).
To view, first right-click a session and choose Copy connection string.

Next, start Quorum Play. Choose File>Open Stream from the Quorum Play menu, and right click on the Open combo-box and paste in the connection string. Click OK. Quorum Play will now show the stream that has been generated by Quorum Stream with the transcode parameters selected at session creation time.

Alternatively Apple QuickTime can be used. Start QuickTime then from the menu choose File>Open URL. Paste in the connection string.
