Downloading a recording from the live meeting service requires two steps.  This first is an API call that fetches a url for a specific recording.  For example the following XML snippet ...

<PlaceWareConfCenter authUser="caller id" authPassword="caller password">
  <GetURLRequest>
    <StringQuery fieldName="name" operator="=" value="meetingName"/>
    <OptionList>
      <StringOption name="recViewerCompany" value="Company"/>
      <StringOption name="recViewerName" value="jondoe"/>
      <StringOption name="recViewerEmail" value="jondoe@company.com"/>
      <EnumerationOption name="resourceType" value="WindowsMediaMovieRecordingDownload">
        <String>ESS</String>
        <String>PWP</String>
        <String>WindowsMediaMovieRecording</String>
        <String>WindowsMediaMovieRecordingDownload</String>
        <String>BasicRecording</String>
      </EnumerationOption>
    </OptionList>
  </GetURLRequest>
</PlaceWareConfCenter>

will return a reply with a url to a media file of the recording. 

<GetURLReply
   url = “string”>
</GetURLReply>

The returned URL can then be plugged into Microsoft Windows Media Player. The following code snippet shows how:

Importing WMPLib; // the dll is %windir%\system32\wmpl.dll
WMPLib.WindowsMediaPlayer player = null;

public void ViewResource(string url)
{
      player = new WMPLib.WindowsMediaPlayer();
      player.openPlayer(url);
}

A client application can also let a user save the recording to a local drive for viewing at a later time. This requires that the client application make an explicit (HTTPS GET) request to the conference center to retrieve the stream containing the recording.

The following is C# implementation of the HTTPS GET request for downloading a resource stream from a conference center.

public Stream GetResource(string url)
{
    
    // Get resource using HTTP GET with the url of a resource;
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
    myReq.Method = "GET";
    
    Stream respStream = null;

    HttpWebResponse myResp = null;
    myResp = (HttpWebResponse)myReq.GetResponse();

    if (myResp.ContentType == "application/octet-stream")
    {
        respStream = myResp.GetResponseStream();
    }

    return respStream;
}

The stream can then be saved to a file. The following is one example in C#.

public void DownloadResource(string url, string filePath)
{
    Stream res = GetResource(url);
    if (res == null)
        return;

    FileStream fileStream = new FileStream(filePath, 
                                           FileMode.OpenOrCreate);
    int length = 1024;
    Byte[] buffer = new Byte[length];
    int bytesRead = res.Read(buffer, 0, length);
    while (bytesRead > 0)
    {
        fileStream.Write(buffer, 0, bytesRead);
        bytesRead = res.Read(buffer, 0, length);
    }
    fileStream.Close();
    res.Close();
}