Welcome to MSDN Blogs Sign in | Join | Help

Chris Mayo's Blog - Unified Communications Development

Writing software with the Unified Communications Platform - Office Communications Server 2007, Office Communicator 2007, Exchange 2007 and the UC SDKs
Programming for Unified Communications with Microsoft® Office Communications Server 2007 R2 is Available Now!

The book is now available.  When writing this book, we wanted to create a single reference for getting started with UC development quickly as well as providing the insight, guidance and tips and tricks necessary to help your projects succeed.  I’m really happy with the result.

 

I was amazed how much I learned across the different APIs while searching for the pivotal nuggets of information to include in the book.  I hope you enjoy reading it as much as I enjoyed writing it!

 

Thanks,

Chris

Posted Friday, June 05, 2009 1:09 PM by cmayo | 0 Comments

Programming for Unified Communications Excerpts now on MS Press Blog

If you’d like a taste of the book, check out some excerpts here.

The book has not been released yet, but it available for preorder just about everywhere geeky/techy books are sold, like here.

 

Thanks,

Chris

Posted Monday, June 01, 2009 12:30 PM by cmayo | 3 Comments

We’d like your feedback…

If you attended my session on the Office Communicator Automation API, I’m going to be posting the community project for this API on CodePlex soon.  The rest of the community project team and I are reviewing/discussing some last minute details…

 

In the mean time, we’d like to get your feedback on what it’s like to be a developer using the Unified Communication platform SDKs.  We’ve put together a short survey with Frost and Sullivan to make it as easy as possible for you to give us feedback. 

 

For example, what UC applications have you developed?  What communication features or scenarios are most important to you? What other communications tools besides Microsoft’s Unified Communications products (like Office Communications Server, Office Communicator and Exchange) are you using?  What could we do could do to better help the UC developer community?

 

If you are a developer of Unified Communications applications such as OCS and Communicator, we’d appreciate you taking 10 minutes and to fill out this survey:

http://www.globaltestmarket.com/survey/s.phtml?sn=134581&lang=E&secid=9f8cbb

When you click the link you will be directed to a secured site hosted by Frost and Sullivan to fill out the survey.  The site requires cookies to be enabled.  Your individual responses will be kept confidential and anonymous.

 

We’ll use the results of this survey to shape our plans around developing resources to help you build enterprise software using the Microsoft Unified Communications platform.

 

Thanks,

Chris

Posted Wednesday, May 27, 2009 6:42 PM by cmayo | 1 Comments

MSDN Webcast: Office Communications Server 2007 R2 Architecture and Deployment for Developers (Level 300)

Thanks to everyone that made it to the live webcast on the architecture and deployment of UC solutions.  Thank also has to go to Jon Rauschenberger from Clarity Consulting for being the “guest webcaster”.  If you couldn’t make it, you can watch a recording here.  Feel free to post any questions as comments on this post.

Thanks,

Chris

Posted Friday, May 08, 2009 7:21 AM by cmayo | 0 Comments

MSDN Webcast: Building Services That Manage Communications with Office Communications Server 2007 R2 (Part 2 of 2) (Level 300)

Thanks to everyone that made it to part 2 of the live webcast on the UCMA 2.0 Core SDK.  If you couldn’t make it, you can watch a recording here.  Feel free to post any questions as comments on this post.

Thanks,

Chris

Posted Thursday, May 07, 2009 8:43 AM by cmayo | 0 Comments

Programming for Unified Communications at the Printer

MS Press blogged about the book going to the printer here.  Here is what the final cover looks like:

9780735626232f_2[1]

I’m really excited about the level of interest in this book.  I get emails daily asking when it will hit “shelves” (physical or virtual).  Here is the official answer:

“Soon”.

Seriously, I don’t know more than that.  It is available for pre-order if you follow the link above.

 

Thanks,

Chris

Posted Monday, May 04, 2009 2:41 PM by cmayo | 1 Comments

MSDN Webcast: Building Services That Manage Communications with Office Communications Server 2007 R2 (Part 1 of 2) (Level 300)

Thanks to everyone that made it to the live webcast on the UCMA 2.0 Core SDK.  If you couldn’t make it, you can watch a recording here.  Feel free to post any questions as comments on this post.

 

Thanks,

Chris

Posted Monday, May 04, 2009 11:06 AM by cmayo | 1 Comments

MSDN Webcast: Windows Workflows That Talk and Instant Message with Office Communications Server 2007 R2

Thanks to everyone that made it to the live webcast on the UCMA 2.0 Workflow API.  If you couldn’t make it, you can watch a recording here.  Feel free to post any questions as comments on this post.

Thanks,

Chris

Posted Friday, May 01, 2009 10:01 AM by cmayo | 2 Comments

Exchange 2010 and The Exchange Web Services Managed API

Availability of the Exchange 2010 Beta was announced last week.  You can find a short video that details the Beta and the new 2010 features here.

The Exchange Web Services Managed API was also announced last week (details and useful links here).  I’ve been developing with this API since the early Alpha builds and there are number of reasons why this API has me giddy with excitement:

1. It’s Managed Code: This API was built from the ground up for common Exchange development scenarios.  If you’ve been doing Exchange Web Services API development via the proxy classes that Visual Studio generates, you’ve probably run into some scenarios that seemed like they could be easier or more intuitive.  The EWS Managed API provides you that ease of use and intuitive API design.  I’ll be posting more about this API in the coming weeks, but I’ll give you a hint of what I mean.  Autodiscover is now a single line of code (see below). 

2. It’s EWS: The EWS API is a set of managed classes that under the covers uses EWS to do the heavy lifting.  Already have an Exchange CAS server up and configured for EWS?  Great, your Exchange server is also configured for the EWS Managed API.

3. Works with Exchange 2007 and Exchange 2010: When you get started with the API, you’ll notice that when you create the ExchangeService class that you specify the version of Exchange, as seen below:

CreatingEWSMAServiceBinding

Yes, you can start developing with the EWS Managed API today using Exchange 2007 knowing your code will work against Exchange 2010.  Man, I love me some future-proofing.

 

So, check out the links above for more details and try the EWS MA against some of the other APIs you’re using today for Exchange 2007 development.  You’ll be pleasantly surprised…

 

Thanks,

Chris

Posted Tuesday, April 21, 2009 1:02 PM by cmayo | 2 Comments

Partnering with Microsoft Unified Communications Engineering

Office Communications Server 2007 R2 was built with standards-based interoperability in mind in order to allow partners to create devices and solutions for our Unified Communications stack.

Since the release of OCS 2007 R2, I’ve been getting a lot of questions about technical specifications, partner programs and resources for building devices, infrastructure solutions and federated solutions.

You can find all of those resources linked here at the Partnering with Microsoft Unified Communications Engineering page.

 

Thanks,

Chris

Posted Monday, April 20, 2009 10:58 AM by cmayo | 1 Comments

Building a Virtualized UC Development Environment: Part 5 – Logging In

This is Part 5 of a series of blog posts on setting up a virtualized development environment based on the Office Communications Server 2007 R2 VHDs.

Part 1

Part 2

Part 3

Part 4

Now that we’ve done all the heavy lifting getting the TS virtual machine configured and up and running, getting started with development is just a matter of logging in and writing some code.  Let’s get started.

1. Start all the virtual machines in the order specified in the Office Communications Server 2007 R2 VHDs setup document.

2. Click Start, All Programs, Accessories and Remote Desktop Connection.

  • Rather than using the Connect command to log into the TS virtual machine, we’ll be logging into Remote Desktop Connection sessions for each user in order to provide a each user their own desktop environment.

3. Enter 192.168.0.40 (the IP address of the TS virtual machine) into the Computer text box.

F05xx01

4. Click the Options button to display more options.

F05xx02

5. Click the Experience tab and under Choose your connection speed to optimize performance select the LAN setting.

  • I’m assuming you’re running from the host machine or another machine on the same LAN/subnet as the virtual machines.  If not, select the appropriate setting.

F05xx03

6. Click the Local Resources tab and under Remote computer sound select Bring to this computer.

  • This allows you to hear audio in the remote session (phones ringing, etc.).

F05xx04

7. Click the Display tab and under Remote desktop size select Full screen.

F05xx05

8. Click the Connect button.

9. On the Windows Security dialog, click Use another account and enter the fabrikam\jd and pass@word1 credentials.

F05xx06

10. You should see a Remote Desktop Connection session for the Jim Daly account.

F05xx07

11. Open another Remote session using these same steps and the fabrikam\kf credentials from *inside* the Jim Daly account session.

  • Use a Remote desktop size that is smaller than the first session. 
  • Opening the second session inside the first allows you to quickly switch between your development account and test account when testing changes in presence, code to start conference calls, etc.

12. In each session, open Office Communicator 2007 R2 and Outlook 2007 to make sure you’re connected to Office Communications Server 2007 R2 and Exchange 2007.  Send IM and email between the accounts to make sure everything is configured correctly.

  • If you’re having issues, please check the trouble-shooting section of the VM setup document.

F05xx08

 

Congratulations!  You now have a virtualized development environment for the UC platform SDKs!  At this point, you can open Visual Studio 2008 and start going through the UC platform SDK documentation and samples.

 

Please respond with comments if you run into any issues.

 

Have a great weekend!

 

Thanks,

Chris

Posted Friday, April 17, 2009 5:14 PM by cmayo | 4 Comments

Building a Virtualized UC Development Environment: Part 4 – Installing Applications and SDKs

This is Part 4 of a series of blog posts on setting up a virtualized development environment based on the Office Communications Server 2007 R2 VHDs

Part 1

Part 2

Part 3

 

Now that we have the Terminal Services role installed on the TS virtual machine, it’s time to install the applications and SDKs necessary for developing for Office Communications Server 2007 R2, Exchange 2007 and the UC Platform SDKs. 

The easiest way to install applications on to a Hyper-V virtual machine is to use DVD media or ISO images on the host machine.  If you need to create ISO images of the trials below, ImgBurn is a great utility. 

1. Start all the virtual machines in the order specified in the Office Communications Server 2007 R2 VHDs setup document.

2. In Hyper-V Manager, right-click on the TS machine, select Connect and use the administrator/pass@word1 credentials to login.

3. To mount a DVD or ISO image in the TS virtual machine select Media, DVD Drive and Insert Disk… and browse to the location of the DVD or ISO image.

F04xx01

4. Install the products and SDKs below in the following order:

F04xx02

Now that the TS virtual machine has all the products and SDKs necessary for UC development, you’re ready to connect to the Terminal Services environment for the first time.  I’ll post the login process in my next post.

Please respond with comments if you run into any issues.

 

Thanks,

Chris

Posted Thursday, April 16, 2009 1:26 PM by cmayo | 2 Comments

Building a Virtualized UC Development Environment: Part 3 – Adding the Terminal Services Role

This is Part 3 of a series of blog posts on setting up a virtualized development environment based on the Office Communications Server 2007 R2 VHDs

Part 1

Part 2

 

Now that we have the TS virtual machine on the Fabrikam domain, we need to install the Terminal Services role.  Is the coffee still hot?  Great, grab a cup and let’s get started.

1. Start all the virtual machines in the order specified in the Office Communications Server 2007 R2 VHDs setup document.

2. In Hyper-V Manager, right-click on the TS machine, select Connect and use the administrator/pass@word1 credentials to login.

3. Click Start, Administrative Tools and Server Manager.

F02xx19

4. Under the Server Manager (TS) area, scroll down until you see the Roles Summary area. Click the Add Roles link.

F02xx20

5. On the Before You Begin dialog, click Next.

F03xx03

6. In the Select Server Roles dialog, select Terminal Services and click Next.

F03xx04 

7. On the Terminal Services dialog, click Next.

F03xx05

8. On the Select Role Services dialog, select Terminal Service and TS Licensing in Role Services and click Next.

F03xx06

9. On the Uninstall and Reinstall Applications for Compatibility dialog, click Next.

F03xx07

10. On the Specify Authentication Method for Terminal Server dialog, select Require Network Level Authentication and click Next.

F03xx08

11. On the Specify Licensing Mode dialog, select Configure later and click Next.

F03xx09

12. In the Select User Groups Allow Access to This Terminal Server dialog, enter TS_Devs in the Enter the object names to select dialog and click OK.

F03xx10

13. Click Next.

F03xx11

14. On the Configure Discovery Scope for TS Licensing, select the Domain option and click Next.

F03xx11

15. On the Confirm Installation Selections, read through the selections to confirm them and click the Install button.

F03xx12

16. When the Terminal Services role has been installed, click the Yes button when prompted to restart.

F03xx13

F03xx14

17. When the TS virtual machine restarts, log in using the administrator/pass@word1 credentials. The Installation results dialog will be displayed. Click the Close button.

F03xx15

18. Open Server Manager, select Features on the left side of the screen and click the Add features link.

F03xx16

19. On the Select Features dialog, select Desktop Experience and click Next.

  • This optional step provides the Vista desktop experience in your Terminal Services sessions.

F03xx17

20. On the Confirm Installation Selections dialog, click Install.

F03xx18

F03xx19

21. On the Installation Results dialog, click Close and click Yes when prompted to restart the TS virtual machine.

F03xx20

22. When the TS virtual machine restarts, log in as the Administrator account and wait for the installation to complete.  Click Close.

F03xx21

23. Click Start, Administrative Tools, Services. In the Services list box, select the Themes service, right click and select Properties. In the Properties dialog, set Startup type to Automation.  Click OK.

  • This optional step provides the display of Vista themes in your Remote Desktop sessions.

F03xx22

24. Right-click on the Themes service and select Start.

F03xx23

25. Select the Windows Audio service, right-click and select Properties. Set Startup type to Automatic. Click Start. Click OK. Close Services.

  • The Windows Audio service allows Remote Desktop users to hear audio in their sessions.

F03xx24

26. Click Start, Administrative Tools, Terminal Services, Terminal Services Configuration.

F03xx25

27. Under Connections, select RDP-Tcp, right-click and select Properties. Select the Client Settings tab and uncheck Audio to allow Remote Desktop Connection sessions to hear audio in sessions (phone ringing, etc.). Click OK. Close Terminal Services Configuration.

F03xx26

 

The TS virtual machine is ready to act in the Terminal Services role for accounts in the TS_Devs group.  Next we’ll install the applications and SDKs necessary when developing for Office Communications Server 2007 R2 and Exchange 2007.  I’ll post those next steps in my next post.

Please respond with comments if you run into any issues.

 

Thanks,

Chris

Posted Wednesday, April 15, 2009 8:02 AM by cmayo | 5 Comments

Building a Virtualized UC Development Environment: Part 2 – Joining the Fabrikam Domain

This is Part 2 of a series of blog posts on setting up a virtualized development environment based on the Office Communications Server 2007 R2 VHDs

You can find Part 1 here.

 

Now that we have the TS virtual machine built, we need to join it to the Fabrikam domain and get it ready to act in the Terminal Services role.  Grab another cup of coffee and we’ll get started…

 

1. If the Hyper-V Manager is not already running, start it by selecting Start, All Programs, Administrative Tools and Hyper-V Manager.

  • Click Continue on the User Account Control dialog.

2. If the DC virtual machine is not already running, start it by selecting it in the Virtual Machines list, right-click and select Start.

  • Wait for the DC virtual machine to completely start.  You’ll see the desktop when the machine has completely started.

3. If the TS virtual machine is not already running, start it by selecting it in the Virtual Machines list, right-click and select Start.

  • Wait for the TS virtual machine to completely start.  You’ll see the login screen when the machine has completely started.

4. In Hyper-V Manager, right-click on the TS machine, select Connect and use the administrator/pass@word1 credentials to login.

5. Select Start, Control Panel, Network and Sharing Center and select Manage Network Connections under Tasks.

F02xx01

6. Select Local Area Connection 21, right-click and select Properties.

  • Local Area Connection 21 is the default network connection for these VMs.
  • We’ll hard code the IP address to match the other virtual machines and to make it easy to connect from the host machine.

F02xx02

7. Select Internet Protocol Version 4 (TCP/IPv4) and click Properties.

8. Select Use the following IP address and enter the following:

  • IP address: 192.168.0.40.
  • Subnet mask: 255.255.255.0
  • Default gateway: Leave blank.

9. Select Use the following DNS server address and enter the following:

  • Preferred DNS server: 192.168.0.18.
  • Alternative DNS server: Leave blank.

F02xx03

10. Click OK. Click Close.

11. Click Start, Command Prompt and enter ping 192.168.0.18. You should get a timely response.

  • The ping confirms the TS machine is on the same subnet as the DC virtual machine, making joining the Fabrikam domain possible.

F02xx04

12. Close the Command Prompt.

13. Click Start, right-click on Computer and select Properties.

F02xx05

14. Under Computer name, domain, and workgroup settings click the Change settings link.

F02xx06

15. Enter TS in the Computer description text box and click the Change button.

16. In the Computer Name/Domain Changes dialog, enter TS in the Computer name text box.

17. Select the Domain option and enter Fabrikam.com in the Domain text box. Click OK.

F02xx07

18. When prompted for credentials, enter the administrator/pass@word1 credentials.  Click OK.

F02xx08

19. You will see a dialog welcoming you to the Fabrikam.com domain. Click OK.

F02xx09

20. When prompted to restart, click Restart Now.

F02xx10

21. When the TS virtual machine restarts, log in using the administrator\pass@word1 credentials.

 

Before we add the Terminal Services role, we’ll create a new AD group for the accounts that will be allowed to connect to the TS virtual machine.

 

1. In Hyper-V Manager, right-click on the DC virtual machine and select Connect.

F02xx11

2. Select Start, Active Directory Users and Groups.

F02xx12

3. Select Fabrikam.com, OUs and right-click on Groups and select New Group. Enter TS_Devs for the Group name and click OK.

F02xx13

4. To add the users that will connect to the TS virtual machine, select the TS_Devs group, right-click and select Properties.

F02xx14

5. In the TS_Devs Propterties dialog, click the Members tab and click the Add button.

F02xx15

6. In the Enter the object names to add text box, enter “jd; kf" (without the quotes) and click Check Names.

  • I’ll use these accounts as examples throughout the rest of this process.  Add your own accounts to the Fabrikam domain and this group to provide access to the TS virtual machine to your team members.

F02xx16

7. Click OK after the users are confirmed.

F02xx17

F02xx18

 

At this point, it’s a good idea to change the password of the accounts in the Fabrikam domain to strong passwords.  I’ll still refer to the pass@word1 password in this process as a placeholder for the strong password you assign to each account.

 

The TS virtual machine is now on the domain and ready to become the Terminal Services machine for your development.  We’ll take care of that in the next post. 

 

Please respond with comments if you run into any issues.

 

Thanks,

Chris

Posted Monday, April 13, 2009 12:47 PM by cmayo | 3 Comments

Building a Virtualized UC Development Environment: Part 1 – Building the TS Virtual Machine

“I see dead people.” – Cole Sear, The Sixth Sense

“I see progress bars…” – Me, over the last couple of weeks.

 

Part 1

Part 2

Part 3

Part 4

Part 5

 

In my previous post, I mentioned that it’s possible to use Windows Server 2008 Terminal Services and Remote Desktop Connection to provide a virtualized development environment for OCS 2007 R2, Exchange 2007  and the UC R2 platform SDKs.  Over the next few posts, I’ll walk you through how to set up that environment based on the Office Communications Server 2007 R2 VHDs

This environment has a couple of pros and cons:

Pros:

  • Your team can develop without the need to join the development environment domain.
  • Developers on your team don’t need to run multiple VMs on their local machine.
  • Each developer can log into multiple Remote Desktop sessions from the same machine to see the effects of placing calls between two contacts, changes in presence, call transfers, etc.

Cons:

  • Remote Desktop does not support the microphone on the host machine, so you can’t provide audio input to calls or speech recognition.  However:
    • Playing sound from your Remote Desktop session is supported, so you will hear audio. 
    • You can still place calls either through OC 2007 R2 or via code, so you can test call scenarios. 
    • For audio applications, you can do simple testing with DTMF tones. 
    • You’ll need a physical client machine for testing speech recognition.  See the setup document for details on adding physical clients to this environment. 

In this post, I’ll provide a step by step process for building the Terminal Services machine.  Grab a cup of coffee and let’s get started:

1. Set up the Office Communications Server 2007 R2 VHDs per the instructions included with those virtual machines.

2. Start Hyper-V Manager by selecting Start, All Programs, Administrative Tools and Hyper-V Manager.

  • Click Continue on the User Account Control dialog.

3. Start the DC virtual machine by selecting it in the Virtual Machines list, right-click and select Start.

  • Wait for the DC virtual machine to completely start.  You’ll see the desktop when the machine has completely started.

4. Select your host computer in the list of Hyper-V servers on the left of Hyper-V manager and select New, Virtual Machine.

F01xx01

5. On the Before You Begin dialog, select Next.

F01xx02

6. On the Specify Name and Location dialog, enter TS for the Name of the machine and C:\vm\server_vhds\ as the Location and click Next.

F01xx03

7. On the Assign Memory dialog enter 2048 MB for Memory and click Next.

  • Assuming you have a host machine with at least 8 GB of RAM.

F01xx04

8. On the Configure Networking dialog, select the network adapter you assigned to the other virtual machines during setup in the Connection drop down and click Next.

F01xx05

9. On the Connect Virtual Hard Disk dialog, select the Attach a virtual hard disk later option and click Next.

  • We’ll do this later using the same differencing disk as the rest of the virtual machines to save disk space and make setup easier.

F01xx06

10. On the Completing the New Virtual Machine Wizard dialog, click Finish.

F01xx07 

11. Select TS in the Virtual Machines list, right-click and select Settings.

F01xx08

12. Under Hardware, select IDE Controller 0, select Hard Drive and click Add.

F01xx09

13. Under Media click the New button.

F01xx10

14. In the Before You Begin dialog, click Next.

F01xx11

15. On the Chose Disk Type dialog, select Differencing and click Next.

F01xx12

16. On the Specify Name and Location dialog, enter "TS" in the Name text box and " C:\vm\server_vhds\TS\" for the Location and click Next.

F01xx13

17. On the Configure Disk dialog, enter "C:\vm\master_vhds\Win2k8EE_64.vhd" in the Location text box and click Next.

F01xx14

18. On the Completing the New Virtual Hard Disk Wizard dialog, click Finish.

F01xx15

19. On the Settings dialog, click OK to dismiss the dialog.

20. In Hyper-V Manager, select TS in the Virtual Machines list, right-click and select Start.

  • The machine will shut down and restart during the first boot. This is expected.

21. When the TS virtual machine has completely started (you see the login screen), right-click on the TS machine and select Connect.

22. When prompted for credentials, enter “fabrikam\administrator” for the account and “pass@word1” for the password.

23. When you connect to the TS you will see a script startup.cmd run in a command prompt with errors. This is expected. 

F01xx16

24. To prevent the startup.cmd script from running again, select Start, All Programs, Startup, right-click startup.cmd and select Delete.

F01xx17

 

Now that the TS machine built, you’ll need to join it to the Fabrikam domain, install the Terminal Services role and install the necessary applications.  I’ll post those next steps in my next post.

Please respond with comments if you run into any issues.

 

Special thanks to Jon Rauschenberger from Clarity Consulting for his help on this process.

 

Thanks,

Chris

Posted Friday, April 10, 2009 10:47 AM by cmayo | 7 Comments

More Posts Next page »
Page view tracker