Listening in

The ability to hear an agent’s ongoing conversation with a customer - i.e. listening in - is an important tool for contact center managers. Traditionally, some PBXs have offered these features. SmartRec also allows you to listen in, but in a simpler and more reliable way than using the branch exchange functionality.

Important

SmartRec offers listening in. Other types of call intrusion can be supported by your PBX.

The supervisor can listen in to ongoing calls using a telephone or computer.

Using the phone

The telephone must support RTP streaming (e.g. Mitel Series 67xx and 68xx) to which SmartRec will send the audio stream.

SmartRec provides an HTTP API for starting and stopping streaming to the phone. Calling this API is possible, for example, from ReactClient via a clickable data grid row (see the Using a computer procedure).

Listening in can be started using an HTTP request in the format of http://<host>:<port>/Listening?Listening=<listening>&listener=<listener>, where

  • <listening> is the name or IP address of the host where the SmartRec RecordService service is running.

  • <listener> is the host port where the SmartRec RecordService is running. The default port is 50300.

  • The <operation> parameter is the number of the extension to be listened into. SmartRec must know how to convert an extension number to a MAC address. For some phones this can be obtained from the signaling; otherwise, it must be stated in the SmartRec administration.

  • The <operation> parameter is the extension number to which you want to route the voice stream. SmartRec must know how to convert an extension number to an IP address. It does not have to be the IP address of the recorded phone - a different IP can be set in the SmartRec administration in the Directory section or for each extension.

Listening in can be terminated with an HTTP request in the format of http://<host>:<port>/EndListening?&Listener=<listener>, where all parameters have the same meaning as for the start request .

Both HTTP requests return 200 OK if no error occurred. The result of the operation is in the body as text/plain:

  • ListenerNotFound - The IP address for the given extension number was not found.

  • NoActiveCall - No ongoing call was found on the number being listened into.

  • Error with an error description - An error occurred while processing the request.

  • OK - The request was successful and listening in was started (terminated).

Using a computer

Important

Listening in does not work in outdated Internet Explorer browsers.

Preparation

  1. If you are updating an existing FrontStage installation, you must place two new JavaScript files from the build on the web server in the <reactclient>/Scripts folder (for example,``c:atlantiswebsReactClient``).

    • listen-stream-player.js

    • audioqueue-processor.js

  2. You must insert listen-stream-player.js on each page of the portal (it will call audioqueue-processor.js). To do this, create an entry in the administration in the Portal ‣ Editors ‣ Editor tabs section as follows:

    • Select Portlet in the Editor selection box.

    • Type ExternalListenStream in the Component text box .

    • Select GeneralScript in the Zone selection field.

    • Type ../Scripts/listen-stream-player.js in the Script URL text box.

Usage and listening

You will hear the extension listen-in on the computer after calling a special JavaScript code with the extension parameter. The most common way is to create a data grid with extensions that contains a clickable column that performs this JavaScript for the selected extension.

  1. For example, you have a data query with a list of extensions, where the PbxName column will be the extension name:

    SELECT Number as PbxName FROM Workplace WHERE Deleted = 0 AND State <> 'OutOfOrder'
    
  2. Create a clickable column from PbxName:

    • Set Model to ActionLink.

    • Set URL column name to javascript:SingleListenStream('ws://<host>:<port>/listening/, '{0}'), where you should

      • Use the name or IP address of the host where SmartRec RecordService is running instead of <host>.

      • Use the host port where SmartRec RecordService is running instead of <port>.

      • Add the extension name (the PbxName value for the given line) after {0}.

  3. For it to work, the user must have the ListenProxy right at the level of at least AllowRead.

Controlling listening in

You can listen in to just one extension at a time.

By running the above JavaScript code for another extension, the current listening in will end and the listening in to another branch will begin.

For information and control of listening in, use the Call listening portlet, which you should add to a convenient place in the supervisor’s portal.

Listening-in status

Portlet options and appearance

Listening-in in progress

View the name of the extension that is currently being listened into, pause or resume listening

../_images/add-call-listening-portlet3.png ../_images/add-call-listening-portlet4.png

Listening-in ended

Display the reason for termination for 30 seconds (the call was ended by both parties, the call was interrupted due to an error, etc.)

../_images/add-call-listening-portlet5.png

Listening-in not in progress

The portlet is empty

../_images/add-call-listening-portlet6.png