Many response group objects have action properties that accept
RgsCallAction object. The RgsCallAction is used to determine what the system
does when a call is received. Properties for RgsCallAction are as below:
<Enumerator >: Action to be taken.
- Terminate: will terminate the call (hang up).
TransferToQueue: call will be transferred to
TransferToQuestion: call will be transferred to
TransferToUri: call will be transferred to
TransferToVoiceMailUri: call will be transferred
to selected voice mail URI.
TransferToPSTN: call will be transferred to
selected PSTN (public switched telephone network).
The prompt (audio file or Text To Speech) to be played.
The question to transfer the call to.
Identity of the queue the call should be transferred to.
SIP address, voice mail URI or PSTN number the call should be transferred to.
At this point you might have noticed that I introduced a few
new Rgs related cmdlets: CsRgsPrompt, CsRgsQuestion and CsRgsQueue. I will not
go deep in this post about these objects but let me at least define for you
what the goal of this objects is:
Either an audio file played or a text that is read aloud by the TTS engine in
order to supply caller with additional information.
Provide the caller with choices (ex: press 1 for English, press 2 for French)
and take action based on the callers' answer.
Hold the caller on hold until an agent is eligible to receive the call.
To create a call action you can either use the Lync Server
Control Panel or the Lync Server Management Shell. However to add a prompt to a
call action you have to use the Lync Server Management Shell.
Figure 1: Configuring a call action via Lync Server
Let's create a call action via PowerShell:
Open the Shell or Import the Lync module to your
PS C:\> Import-Module Lync
If you want a prompt in you call action, create
PS C:\> $prompt = New-CsRgsPrompt -TextToSpeechPrompt
"Please hold the line, you are being transferred to our sales group".
Create your call action object and define an
action to your object
PS C:\> $ca = New-CsRgsCallAction -Action
Now depending on the action you selected above
enter a value in the correct property, not doing so will throw an exception
when trying to use this call action with another object.
PS C:\> $ca.Uri = "Ahmet@vdomain.com"
Attach the prompt to your object
PS C:\> $ca.Prompt = $prompt
Keep in mind that call actions can have only certain type of
action depending on the parent object consuming them, below is a summary of the
Workflow (NextTarget): TransferToQueue,
Workflow (BusinessHours, Holiday): Terminate,
Answer: TransferToQueue, TransferToQuestion
Queue: Terminate, TransferToQueue,
We now have a call action object in memory ready to be used
with either a RgsWorkflow, a RgsAnswer or a RgsQueue.