Inter-trunk routing is one of the new features of Lync 2013. It’s discussed in greater detail by Alan Maddison in his excellent February 2013 Technet Magazine article. Lync 2013 greatly extends the limited Lync 2010 feature set in this area. It is possible to fake a limited set of inter-trunk routing scenarios in Lync 2010. It is possible to use this limited inter-trunk routing to provide a simulated Number Referral Service / Ceased Number Intercept / Caller Re-Direct.
The 2 scenarios we can fake inter-trunk routing are:
- Single number to single number
- Contiguous range of numbers to single number
In the example below I’m going to simulate caller re-direct with an announcement. A caller would hear an announcement, “The number you dialed 916 555 1212 has changed the new number is…please hold while your call is transferred.”; the caller would then be transferred to the new number. I’m assuming that you already have appropriate gateways configured as your probably already directing calls outbound to the destination service, and calls must already be arriving inbound to Lync or this would be a pointless exercise.
Like in my previous post, Lync & Intercept Messages, I’m going to use the Announcement Service to handle this routing. I’ll begin with the announcement.
New-CsAnnouncement -Identity ApplicationServer:server01.example.com -Name "5551212_redirect" -TextToSpeechPrompt "The number you dialed 9,,1,,6,,5,,5,,5,,1,,2,,1,,2,, has been changed; the new number is 4,,1,,5,,5,,5,,5,,2,,0,,0,,0; please make a note of it. Please hold while your call is being transfered." -language en-US -TargetUri sip:+firstname.lastname@example.org;user=phone
I found the speed at which the text-to-speech engine read the numbers was a bit fast, inserting ‘,,’ between each number made the numbers more intelligible.
We then need to capture the inbound / old number, we’ll do this with an unassigned number entry.
New-CsUnassignedNumber 5551212_redirect -NumberRangeStart "+19165551212" -NumberRangeEnd "+19165551212" -AnnouncementService ApplicationServer:Server01.example.com -AnnouncementName "5551212_redirect"
If you were to call the number at this point, you’d hear the announcement (hopefully) but the transfer would fail (probably), because Global / Site voice policies do not apply to the Announcement Service and we’ve not applied a user voice policy to the Announcement Service. I’m going to assume here that you’ve created a User Voice Policy (AnnoucementServicePolicy) corresponding Route with associated Gateway and PSTN Usage. (Depending on your specific trunk configuration / provider you may need to select the ‘Supress caller ID’ checkbox and supply an ‘Alternate caller ID’ on the Route if your trunk / provider will not accept the CID Lync passes from the caller.)
Grant-CsVoicePolicy -Identity "Annoucement Service" -PolicyName AnnoucementServicePolicy
Now when you call the old number, you should hear the configured announcement and be transferred to the new number. TextToSpeechPrompt, is an optional parameter of New-CsAnnouncement. If you don’t want the announcement don’t include the option.
I’ve never deployed more that 15 – 30 of these, in my testing there have been no adverse consequences. I’d bet there’s an upper limit to the number of announcements Lync can handle efficiently. Your mileage may vary.