As I alluded to in an earlier post, NextUC is now integrating with Office 365 for Exchange and Unified Messaging. This is a new feature that just went live today though I have been using if for a couple of weeks and its been working great. I really believe in the concept of hosting Lync and what it can do to empower small to medium size companies. Its more cost effective than an on premise Lync installation and you don’t need a huge support staff to administer Lync and support it. Head on over for a free trial.
Archive for January, 2012
NextUC Now Integrating With Office 365 UM
Posted: January 27, 2012 in Exchange, Hosting, NextUC, UMTags: Speech Connection
Free Windows Phone Book
Posted: January 26, 2012 in Development, Windows Phone, WP7Tags: Development, WP7
“Windows Phone Toolkit in Depth“ 2nd edition.
22 chapters and full source code. I’ve browsed the book and its on my reading list for the near future.
Thanks to Boryana Miloshevska for making this available. The book is free but you can donate to encourage others to provide future free books.
Some Video from the 2011 Jacksonville Code Camp
Posted: January 25, 2012 in Code Camp, JaxDug, Me, OneTugTags: Speech Connection
My friend Russ Fustino did some video recording at the JaxDug 2011 Code Camp last August and just posted the second part of the video which has the GotSpeechGuy included. You can read more about it at Russell’s Blog.
That’s Joe Healy in the orange shirt and he is probably the greatest Microsoft Developer Evangelist that ever lived. Joe has really grown the Florida developer community and is the main reason we have 5 or 6 code camps every year as well as several SQL Saturdays. Thanks Joe.
The Orlando .NET Code Camp is scheduled for march 31st and I have submitted a session ( Administering Lync Server 2010 using PowerShell) for that. I’ve spoken at the Orlando event several times and they always put on a great event. If you are in or going to be anywhere near to Orlando at the end of March you should add it to your calendar. I’ll provide more details later.
Lync, NextUC and Office 365
Posted: January 24, 2012 in Hosting, Lync, Me, NectUCTags: Speech Connection
I’ve now got my NextUC account linked up with Office 365 for Exchange and UM. This is awesome and I really like the way my voice mail is presented in Outlook.
I’ve been using this for about 2 weeks now with no real problems. I’m finding that NextUC when integrated with Office 365 handles all of my collaboration needs. I worked on the backend for this integration which was a great learning experience for me as I got familiar with the Lync PowerShell cmdlets needed to configure the integration. The more I mess around with Lync PowerShell the more I appreciate the effort that Microsoft has put into it. I do almost as much development in PowerShell these days as I do in C# or java.
Since I now have the Lync Mobile Client on my Windows Phone I have IM and collaboration whereever I go. I love being able to stay in contact and join conferences when I am on the go. If you haven’t downloaded a client for your mobile device (I also have it on my Ipad) then what are you waiting for?
Anyway, this feature should be coming soon for all NextUC users
Remote PowerShell and Lync
Posted: January 5, 2012 in Lync, PowerShellTags: Lync, PowerShell, Speech Connection
Recently I had a problem with some of my PowerShell functions that call Enable-CsComputer in that things didn’t get enabled as we expected them to. I’m not sure if it was a timing issue or a replication problem but it showed up when a client tried to add a custom domain. My PowerShell script run on the Lync SQL Server so the network administrator decided that since he could manually fix the problem by running Enable-CsComputer on the Front End server that my scripts needed to do the same thing.
So I set about figuring out how to remotely execute something on the FE. As it turns out there are a few ways of doing this but I quickly ran into problems. First I tried using New-PSSession and Get-PSSession to open up a remote session on the FE but that ran into some credential issues – it would popup a login window. That approach wouldn’t work as you can’t have login windows when the function is called from a web service like I need to do. It also had a problems in that when you import the Lync module for the remote session not all of the Lync cmdlets are exposed. In fact it turned out to be a very small subset and Enable-CsComputer wasn’t one of the cmdlets.
I was told that that was to be expected as Enable-CsComputer isn’t supposed to be run remotely. It is a local command only. Ok, what does that mean to me? It meant that I somehow had to find a way to run it as a local command on the FE. So it was back to the drawing board. I ended up solving my problem using Invoke-Command though even that had a few hurdles that I had to get over. I still had the credentials issue but that was easily fixed (or so I thought) as shown in the code below. I’ll get back the the credentials stuff in a moment but first this is the code I ended up with.
# Remoting variables
$remoteUserName = “GotSpeechGuy\Administrator”
$remotePassword = “P@ssw0rd”
$remoteFE = “GotSpeechGuyFE01″
$pass = ConvertTo-SecureString $remotePassword -AsPlainText -Force
$cred = new-object System.Management.Automation.PSCredential($remoteUserName, $pass)
Invoke-Command -ComputerName $remoteFE -Authentication CredSSP -Credential $cred -ScriptBlock { C:\hosting\EnableComputer.ps1 }
All the EnableComputer.ps1 did was load the Lync module then call Enable-CsComputer. Loading the Lync module is easy done like this -
Import-Module ‘C:\Program Files\Common Files\Microsoft Lync Server 2010\Modules\Lync\Lync.psd1′
During testing I put a Get-CsSipDomain in the script and that worked fine returning a list of the Sip domains. I thought “Cool this is going to work”. But when I put the Enable-CsComputerin the script and tried to invoke it I got this error:
WARNING: Enable-CsComputer failed.
WARNING: Detailed results can be found at
“C:\Users\Administrator.UBERUSEE\AppData\Local\Temp\Enable-CsComputer-8d3bf7e0-9b09-4989-a656-334a9485543c.html”.
Command execution failed: An error occurred when add “RTCUniversalServerAdmins” to “RTC Local Administrators”. + CategoryInfo : InvalidOperation: (:) [Enable-CsComputer], DeploymentException + FullyQualifiedErrorId : ProcessingFailed,Microsoft.Rtc.Management.Deployment.ActivateMachineCmdlet
Checking the .html error page showed me this:
Error: Active Directory error “-2147016672″ occurred while searching for domain controllers in domain “GotSpeechGuy.com”: “An operations error occurred. “
More research showed that when running the cmdlets remotely you only get the local admin context on the remote computer. A lot of the Lync cmdlets access AD or another computer and when that happens you get the dreaded 2-hop authentication problem.
Luckily for me Invoke-Commandhas an –Authentication parameter which I set to CredSSP but that left a few more steps to complete the process as I still needed to enable CredSSP on the servers. That was pretty straight forward as all it took was to delegate the users credentials from the client to the server.
On the FE I ran these commands:
Enable-WsManCredSSP –Role Server
Enable-WsManCredSSP –Role Server
Enable-WsManCredSSP –DelegateComputer * -Role Client
Then on the SQL Server where the PowerShell scripts reside I ran this:
Enable-WsManCredSSP –Role Client –DelegateComputer *
After going through the steps to enable CredSSP everything started working as it should and we haven’t encountered the problems with Enable-CsComputersince.
I would like to publicly think the guys at Microsoft and my fellow Lync MVPs who helped me sort al this out. It was a long difficult process bringing all of the pieces together but with their help I got it working.
If you have any questions please feel free to ping me.
NextUC.com hosts Lync
Posted: January 4, 2012 in Hosting, Lync, NectUCTags: Lync, Speech Connection
If you are wondering what I do in my regular job then look no further than NextUC.
So what is NextUC?
NextUC is a hosted Lync environment for any size business. It is a great solution for companies that don’t have the necessary expertise or want to invest in the infrastructure necessary for an on site Lync installation. For years companies have used web hosting companies to host their web sites. Now you can do the same thing with Lync
NextUC is a cloud-based communications service providing enterprise-class voice, messaging, conferencing, online meetings and mobile integration from a single unified client.
NextUC features include:
- Voice over IP
- Secure instant Messaging
- Rich Presence
- Audio, web and Video Conferencing
- Unified Messaging
- Mobile Integration
- And more…
I use NextUC daily for all of my messaging and conferencing needs. For me its like eating your own dog food as I have been heavily involved in coding the backend provisioning and voicemail pieces of NextUC.
So if you are looking to get on the Lync bandwagon then head on over to NextUC and try it out.
I’ve registered GotSpeechGuy.com for this blog. My goal (New Year’s resolution) is to blog more often about the development things I am doing and the things that interest me. As a Microsoft Lync MVP I will try to place emphasis on Lync and Lync development but there are other things I am involved with that I’ll be blogging about too. For example, I am interested in developing for the Windows 7 Phone (best phone I’ve ever seen) so I’ll be blogging about that as well as some of the tools and APIs that I use for mobile development. My job has me regularly working with PowerShell and even doing some IVR development in Java so those will find their way to my blog also. In short, if it interests me and is developer related then I’ll blog it.
So check back often, leave comments and suggestions about what you would like me to blog about, and enjoy the ride.
