Direct Dialing Administration Guide

Overview

Symbee Connect Voicemail, Direct Dialing and Extensions are optional features you can use with your Symbee Connect enabled Amazon Connect instance and implement the following functionality:

  • Direct Dialing: Configure a different specific phone number (DID) associated with each Symbee Connect user requiring direct inward dialing. A utility Lambda is then provided to ease creating generic Amazon Connect Contact Flows for DID users, allowing:

    • User lookup for a given Phone Number – supports having a single Inbound Contact Flow you can use to front all your DID numbers, and resolve the Amazon Connect User to direct-queue to, by performing a lookup using the Inbound Phone number dialed by the caller, returning the Amazon Connect User Login ID. Often used in association with deploying Agent based Voicemail

    • Phone Number lookup for a given User – supports having a single Outbound Contact Flow you can user for all your direct dial users, allowing you to dynamically lookup which Phone Number to use and present as the CLI for an Amazon Connect User Login ID when an outbound call is made by a direct dial user


Enabling Amazon Connect CTR Kinesis Stream and Live Media Streaming

If using the Symbee Connect Voicemail features (as opposed to only using the Direct Dialing features without Voicemail) then both the CTR Kinesis Stream and Live Media Streaming need to be enabled on your Amazon Connect Instance. If you are not using Voicemail, click here.

Enabling the CTR (Contact Trace Record) Kinesis Stream configures Amazon Connect to emit a CTR event at the conclusion of each contact, which is required for the Symbee Connect Voicemail integration. Turning on Live Media Streaming on your Amazon Connect instance enables the Start Media Streaming and Stop Media Streaming contact flow nodes, which are also required by Symbee Connect Voicemail.

Enabling Amazon Connect CTR Kinesis Stream

  1. Login to your AWS Management Console, and navigate to Amazon Connect from the Service menu
  2. Select the Amazon Connect instance you are configuring with Symbee Connect Voicemail.
  3. From the resulting Amazon Connect Instance overview screen, select Data Streaming in the left navigation bar, and make sure Enable data Streaming is checked.
  4. On the same screen, under Contact Trace Records (CTR), ensure that the Kinesis Stream option is selected, and a Kinesis Stream is selected in the dropdown that is specific to CTR records for your Instance:

    • If Kinesis Firehose had previously been selected, you will need to transition over to Kinesis Stream. In this case, you can still Firehose the CTR data to a location if needed. After creating the Kinesis Stream in this step, go into the Kinesis Service in your AWS Account, and attach the Firehose you were previously sending CTR events directly to, to the new Kinesis Stream you create here – the CTR data will then be pushed to your already configured location after being sent through the Kinesis Stream.
    • If Kinesis Stream had not previously been set and you don’t currently have a Kinesis Stream to send your CTR data to:
      • Click the Create a new Kinesis Stream link under the stream selector field. You will be taken to the Amazon Kinesis console in a separate tab
      • Under Data Streams, click the Create data stream button (top right)
      • Set an appropriate name for your new Stream e.g. <Amazon-Connect-instance-name>-ctr
      • Set Capacity mode to On-demand
      • Click the Create data stream button on the bottom right to save.
      • After your stream is created, click on the newly created screen, and copy the ARN of the stream – you will need this ARN in the following steps.
      • Return to your Amazon Connect tab, and select the newly created CTR Kinesis Stream
  5. Save the Amazon Connect Instance configuration updates.

Enabling Amazon Connect Live Media Streaming

  1. From the same Amazon Connect Instance overview screen (see above), select Data Storage in the left navigation bar, and under Live Media Streaming, click Edit, and check the Enable live media streaming checkbox.

  2. In the now-expanded Live media streaming, complete the form as follows:

    • Set the Prefix to something appropriate, for example voicemails
    • Set Encryption as needed
    • Set the Data retention period to be at least 1 hour.
  3. And click Save.

Download and Run Voicemail and Direct Dialing CloudFormation

These steps guide you through downloading and running the CloudFormation that supports Voicemail and Direct Dialing, in your AWS Account. It will create a Lambda Function and associated S3 bucket for saving voicemail media (if using Voicemail), and an additional Lambda Function available for use in your Amazon Connect Contact Flows.

Note: If this is the first Symbee Connect CloudFormation you have run, you will need to run the Integrations CloudFormation first. For step by step instructions and further information about CloudFormations click here.

Download CloudFormation

  1. Login to Symbee Connect Administration Portal.

  2. If you have more than one Environment configured within your Company in Symbee Connect, make sure you have the appropriate one selected. This can be found on the Navigation bar to the left of the Function menu.

  3. Click and download the Voicemail and Direct Dialing CloudFormation script.

  4. You will be prompted with a Save As dialog screen… Save the VoiceMailAndDirectDialCloudFormation.yaml file locally to your PC for use in the following steps.

  5. Log Into your AWS Management Console.

  6. Make sure you are in the correct AWS region for where you want to deploy (top right of the Navigation bar) – the same region as your Amazon Connect instance.

  7. Navigate to the CloudFormation console (under Management and Governance, on the Services menu).

    From the CloudFormations console, select Stacks in the left-hand navigation bar, and select Create Stack (with new resources (standard)).

    • Under the Prepare Template section, select Template is Ready.
    • Under Specify Template, select Upload a template file.
    • Under Upload a template file, click Choose File.
    • In the resulting file selector, find and upload the file you saved from Step 4 above.
    • Click Next at the bottom.
  8. In the Specify Stack Details screen, complete the fields as follows:

  9. Stack Name: Enter a name appropriately. We suggest using your Symbee Connect Environment (e.g. dev, prod, etc.) in the name for better organization, in case you have CloudFormations for multiple Symbee Connect Environments being deployed into the same AWS Account. For example:
    companyalias-environment-voicemailanddialing**

    • AWSLambdaBasicExecutionRoleARN and AWSLambdaKinesisExecutionRoleARN: use the provided default values
    • ConnectCTRKinesisStreamARN: Only required if using Voicemail. Provide the ARN of the Kinesis Stream your Amazon Connect Instance is configured to send CTR events to (refer to section 2.1 of this document)
    • LambdaDistroBucket: This is the Symbee Connect Lambda S3 bucket where the Voicemail and Direct Dialing Lambdas will be uploaded from. Select the bucket name from the drop-down that matches the AWS region you are running the CloudFormation in.
    • LambdaSourceFile: Select from the dropdown, there will be only 1 value to pick from.
    • LambdaSourceFileForDirectDialing: Select from the dropdown, there will be only 1 value to pick from.
    • SecretsManagerRegion: Enter the name of the AWS region where the initial Symbee Connect Integration CloudFormation was run in. For Example:
      us-east-1, us-west-2, eu-central-1, etc.
    • SenderAddressForGroupMessages: Only required if using Voicemail. Enter a valid Email Address whitelisted within your AWS SES Service, that will be used as the “From:” address for queue-based voicemail that is sent out via Emails
    • SesRegion: Only required if using Voicemail. Enter the name of the AWS Region to use SES in. For example, "us-east-1". (Simple Email Service (SES) isn't available in all regions, but for most installations this will be the same region you are running this CloudFormation in).


  10. Click Next.

  11. On the next Configure stack options screen, accept all the defaults, and click Next.

  12. On the next Review testing screen, scroll to the bottom Capabilities section, check the “I acknowledge that AWS CloudFormation might create IAM resources with custom names.” check box, and finally click Create Stack.

Configuring the Direct Dial Lambda for use in your Amazon Connect Contact Flows

The Voicemail and Direct Dialing CloudFormation run in the above steps installs a utility Lambda function into your AWS Account that can be used in Contact Flows to retrieve customizable Voicemail greetings, perform lookups of User Login ID’s for a given inbound dialed Phone Number or Extension, and conversely for outbound calls perform a lookup of the configured DID Phone Number for a given User Login ID (to correctly set the Calling Number or ANI for outbound calls from a Direct Dial user).

The steps below declare this utility Lambda function for use in your Contact Flows:

  1. Log Into your AWS Management Console.

  2. Make sure you are in the correct AWS region for your Amazon Connect instance (top right of the Navigation bar).

  3. From the Services menu, navigate to Amazon Connect, and select the appropriate Amazon Connect instance associated with the Symbee Connect Environment.

  4. From your Amazon Connect instance Summary page, use the left navigation bar and select Contact Flows configuration.

  5. Scroll down to the section headed AWS Lambda where you configure which Lambda functions are available to Contact Flows in your Connect instance.
  6. Select the VoicemailDDSetting Lambda and click the + Add Lambda Function to the right. This allows the utility lambda to be available for use in your Contact Flows.



Configuring and Using a Direct Dial Phone Number assigned to a User

If you have many users requiring personal Direct Dial Phone Numbers (DID’s) and have claimed those numbers in your Amazon Connect instance, the Contact Flows to support routing these calls quickly becomes unwieldy, with long branches or hard-coded phone numbers both for routing inbound calls to the users, and setting the Calling Number presented appropriately for outbound calls from each user.

Each user in Symbee Connect can be configured with their assigned Direct Dial Phone number in the User Profile. The Lambda Function installed in Section 3 and declared for use in Amazon Connect in section 4, then has two operations to support these flows:

  • GetUserLoginForDID (supporting Inbound flows)
  • GetDIDForUserLogin (supporting Outbound flows)

Setting a User’s Direct Dial Phone Number in Symbee Connect

  1. Log into your Symbee Connect Administration Portal.

  2. From the main Functions menu, Navigate to User Administration.

  3. From the Users Listing screen, select a user’s profile and Modify.

  4. Select the Voice Channel menu and then expand the Dialing section.

  5. Set the Direct Dial Number to the associated Amazon Connect phone number Claimed in your instance that you are using for direct inbound calls to this user. The value must be in full E.164 Phone Number format (i.e. starting with + <country-code>).



Inbound Contact Flows – Determine User Login ID from incoming Phone Number Dialed

  1. In your Amazon Connect instance you can now have a single inbound Contact Flow (named, for example: Handle Direct Inbound User Calls)

  2. Assign the above Contact Flow to all Claimed phone numbers associated with individual users

  3. In the flow, add an AWS Lambda Call to retrieve the User Login ID for the inbound Dialed Number:

    • Add an Invoke AWS Lambda Function block (from the Integrate Menu)

    • Within the block, for Select a function: select the new utility Lambda you just added.

    • Set the following two Function Parameters:

      • First Parameter

        • Destination Key: Operation
        • Select: Use Text
        • Value: GetUserLoginForDID

      • Second Parameter

        • Destination Key: DID
        • Select: Use Attribute
        • Type: System
        • Attribute: Dialed Number

    • If the Phone Number above is configured in a Symbee Connect User Profile, the above Lambda call will return two values – a Result value of SUCCESS, and UserLoginID containing the found user. Other Result values returned can be NOTFOUND and FAIL.

  4. Next in the flow, add a branch node to branch if a good user mapping was found:

    • Add a Check Contact Attributes block (from the Branch Menu).
    • For the Attribute to check, set Type to: External, and the Attribute name of Result.
    • Click Add another Condition, and set to Equals a value of SUCCESS.
  5. Next in the flow, add a node to store the mapped User Login ID of the found user for the call:

    • Add a Set Contact Attributes block (from the Set Menu)
    • For the Attribute to save, set: Use Attribute
    • Destination Key: TargetAgentId (this can be whatever you want, but using this name here also sets you up for Agent Voicemail flow usage later if you need to)
    • Type: External
    • Attribute: UserLoginID (the name of the output value from the Lambda call above)

Your *TargetAgentId contact attribute created in Step 5 above can then be used later in the flow to set the working queue for queuing directly to an agent, and to set up Agent based Voicemail.

Your Contact Flow nodes will look something like this:


Outbound Contact Flows – Determine associated Phone Number for User Login ID

  1. In your Amazon Connect instance you can now have a single Outbound Whisper Flow (named, for example: Setup Direct User Outbound Calls) for all your direct dial users.

  2. Assign the above Contact Flow as the Outbound Whisper Flow for the Default Outbound Queues used by all individual Direct Dialing users.

  3. In the flow, add an AWS Lambda Call to retrieve the assigned Phone Number (to set as the Outbound Caller ID) for the user initiating the outbound call:

    • Add an Invoke AWS Lambda Function block (from the Integrate Menu)
    • Within the block, for Select a function: select the new utility Lambda added.
    • Set the following 2 Function Parameters:

      • First Parameter

        • Destination Key: Operation
          • Select: Use Text
          • Value: GetDIDForUserLogin
      • Second Parameter

        • Destination Key: UserLogin
          • Select: Use Attribute
          • Type: Agent
          • Attribute: User name
  4. Next in the flow, add a branch node to branch if a good Phone Number mapping was found for the user:

    • Add a Check Contact Attributes block (from the Branch Menu)
    • For the Attribute to check, set Type to: External, and the Attribute name of Result
    • Click Add another Condition, and set to Equals a value of SUCCESS
  5. Finally, in your Call Phone Number block, you can use the returned DID value from the Lambda as the Outbound Caller Phone Number (see red in the example below)

    • Add a Call Phone Number block (from the Interact Menu)
    • Check the Caller ID Number to display checkbox
    • Select: Use Attribute
    • Type: External
    • Attribute: DID (the name of the output value from the Lambda call above)

Your Outbound Whisper Contact Flow nodes will look something like this:



Configuring Call Forwarding

Each user in Symbee Connect can be configured with their own Forward To number and Enable Forwarding in the User Profile. These settings are available to the agent through the Agent Desktop. The Lambda Function installed in Section 3 and declared for use in Amazon Connect in section 4, then has one operation to support these flows:

  • GetCallForwardingStatus (supports determining if forwarding is enabled and obtaining the number to forward to), this call returns two results

    • Enabled – a Boolean indicating whether call forwarding is currently enabled

      • $.External.Enabled
    • ForwardTo – a string representing a phone number to forward to

      • $.External.ForwardTo
    • Result – SUCCESS if the call succeeded

      • $.External.Result

Configuring Call Forwarding in Symbee Connect

  1. Login to Symbee Connect Administration Portal.

  2. Select User Administration from the Function menu.

  3. Select the user to configure forwarding for.

Note: Use the Search Filter field as shown below to filter long user lists

  1. On the Voice Channel settings tab, and select Dialing.

  2. Click the Forward Calls check box.

  3. Enter the number you want to forward calls to in the box next to Call Forward Number.

  4. Click the Save button.


Configuring Call Forwarding in Symbee Connect User Interface

  1. Login to the Symbee Connect User Interface (UI) as the User you have enabled call forwarding for.
  2. Click on Settings at the bottom left of the UI.
  3. Select Dialing, click Yes under Forward Calls to enable and then add the number you want to Forward to.


  4. Click Save.


Configuring the Missed Call Feature

Each user in Symbee Connect has a Call History in their desktop phone that shows recent calls taken and made. By default, for inbound calls, this only displays history about calls alerting / arriving at the desktop (which is usually enough).

However if you are also using other features such as Voicemail and Call Forwarding, there will be situations where calls are received in contact flows and diverted to alternative functionality prior to even alerting the user desktop (forwarded to an external call forwarding number if call forwarding is enabled, or diverted to voicemail if the user/agent is unavailable). If you want these scenarios to also be recorded and displayed in the users Call History in the desktop, a Lambda operation is available for use in the contact flows to record these events.

The Lambda Function installed in the previous step and declared for use in Amazon Connect can be configured to log these missed calls through the direct dial feature using the following operation on the direct dial flows:

  • SaveMissedCallTask, this call returns one results

    • ResultSUCCESS if the call succeeded, FAILURE if the call failed

      • $.External.Result


Configuring the contact flow to log missed calls

  1. In the flow, add an AWS Lambda Call:

    • Add an Invoke AWS Lambda Function block (from the Integrate Menu)
    • Within the block, for Select a function: select the new utility Lambda added above.
    • Set the following four Function Parameters:
      • First Parameter
        • Destination Key: Operation
          • Select: Use Text
          • Value: SaveMissedCallTask
      • Second Parameter
        • Destination Key: UserLogin
          • Select: Use Attribute ++
          • Type: Agent ++
          • Attribute: User name
      • Third Parameter
        • Destination Key: ani
          • Select: Use Attribute
          • Type: System
          • Attribute: Customer Number
      • Fourth Parameter
        • Destination Key: ContactId
          • Select: Use Attribute
          • Type: System
          • Attribute: Contact id

The above Lambda call will return – a Result value of SUCCESS if the request is successful and a Result value of FAILURE if the request could not be completed.

++ Alternatively, the UserLogin parameter can be specified with Use Text to supply the agent id manually.