The phone rings. We sit
In silence. The round robin
Bids us to answer.
Many years ago, one of the authors was a sportswriter for the Tri-City Herald, a regional newspaper located in Kennewick, WA ("Home of desert sun and water fun!"). No doubt you're thinking, "Wow, a sportswriter: that must have been a glamorous job." And it was, it really was a glamorous job. Well, other than the fact that there wasn't anything the least bit glamorous about it.
Note. Although, in all fairness, what job wouldn't look lame compared to what he does nowadays, which is write haikus about the Microsoft Lync Server 2010 implementation of Windows PowerShell?
Back in those days, the Tri-City Herald placed a great emphasis on local sports and, in particular, on high school sports. (Actually, it still does.) That meant that, as a sportswriter, you spent most of your time sitting around an otherwise-deserted building late at night, waiting for local coaches to call in the results of their tennis match or track meet. That was OK, except that – back in those days – the Tri-City Herald was an evening paper, and the circulation desk closed very early. As a result, by the time people realized that their paper hadn't been delivered, the circulation folks had already gone home for the night.
And even that would have been OK except for the fact that, when the circulation desk was closed, all their phone calls were routed to the sports department. That meant that the sportswriters had to answer the phone and deal with a bunch of irate customers. As a result, if the phone rang between 6:00 PM and 8:00 PM on a weekday, all the sportswriters on duty would just stare at one another: no one wanted to answer the phone, because it pretty much had to be an irate subscriber. In turn, that meant that the job of being a sportswriter quickly evolved into a never-ending series of bets and games of skill, not in an attempt to win money, but in an attempt to never have to answer the phone: "OK, loser has to answer the next 5 phone calls."
So maybe it was pretty glamorous after all.
Now, if the publishers of the Tri-City Herald had been smart (which they must not have been, seeing as they hired a haiku writer to cover local sports), they would have built a time machine, journeyed into the future, bought a copy of Microsoft Lync Server 2010, brought it back, installed it, and then used that as their phone system. (Why didn't they think of that? Who knows?) The value of using Lync Server, of course, is that they could have then used the Response Group application to handle incoming calls. That means that they could have designated the sportswriters as a Response Group agent group, set up a queue, and had all the after-hours calls automatically routed to the sportswriters. More importantly, they could have used the New-CsRgsAgentGroup and the Set-CsRgsAgentGroup cmdlets to configure how those calls were routing to the sportswriters. After all, Lync Server offers the following routing options for calls directed toward a Response Group queue:
· LongestIdle – Calls are routed to the agent who has been idle (that is, not involved in a Microsoft Lync 2010 activity) for the longest period of time.
· RoundRobin – Calls are routed to the next agent on the list. (See? RoundRobin? "The round robin bids us to answer." Get it?)
· Serial – Calls are always routed to the first agent on the list, and are only routed to other agents if this person is not available or does not answer within the allotted time.
· Parallel – Calls are routed to all agents at the same time, except for agents whose presence status indicates that they are in a call or otherwise unavailable.
· Attendant – Calls are routed to all agents at the same time, even if the agent’s presence status indicates that he or she is in a call or otherwise unavailable. The only exception occurs when an agent has set his or her presence to Do Not Disturb.
Of course, had the Tri-City Herald done this the sportswriters would have had no reason to engage in gambling or games of chance, which would have left them with nothing to do except work. And what's the point in that?
To see how easy this would have been (other than that time travel thing), here's a sample command that creates a new agent group and sets the RoutingMethod to RoundRobin:
New-CsRgsAgentGroup -Parent service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Sportswriters" –RoutingMethod "RoundRobin"
And here's another command that grabs an existing agent group and sets its RoutingMethod to RoundRobin:
$x = Get-CsRgsAgentGroup -Identity service:ApplicationServer:atl-cs-001.litwareinc.com -Name "Sportswriters"
$x.RoutingMethod = "RoundRobin"
Set-CsRgsAgentGroup -Instance $x
And yes, now that you mention it, that really is how you modify Response Group objects in Lync Server: you need to create an object reference to the item you want to change (that's what we do in line 1); use standard dot notation to change the relevant property values or values (line 2); and then use a Set-CsRgs cmdlet to write those changes back to the object. As a general rule, that's not how you modify objects in Lync Server PowerShell; instead, you typically use the appropriate Set cmdlet:
Set-CsArchivingPolicy -Identity global -ArchiveInternal $True
But with the Response Group application, things are different. That's something we'll cover in more detail in a future article.
Oh, and in case you're wondering (and in case you're not), the term "round robin" officially describes something akin to a petition: a document, authored and/or signed by multiple people, and sent to a single address. Somehow, though, the term has been applied to the computing world, where it "… describes a method of choosing a resource for a task from a list of available ones, usually for the purposes of load balancing." That's pretty much the way it's used with the Response Group application, although we sort of like the idea of having an actual round robin that would fly around, land on people's shoulders, and start pecking at them until they answered the phone. We'll look into that for the next release of Lync Server.