Category Archives: IT Guide

For IT to prepare, install and maintain Dynamics Telephony

Gamma Horizon Hosted Phone System

Dynamics Telephony is verified as compatible with Gamma Horizon Hosted Phone System.

logo_gamma_horizon

Dynamics Telephony interfaces to Gamma Horizon using their TAPI interface. You need to contact your Gamma Horizon provider to send you the TAPI Driver for your system. You can preview the installation guide HERE

Notes

  • You will need to log onto the PC as Administrator to do the install
  • You will need the Horizon Client username and password for each PC. You may get these in your email with the install link.
  • If you use network port blocking, other than Windows Firewall, you may have to open 127.0.0.1 over port 21050
  • You can skip “Step 1 – Options” in the install guide above and go to Step 2 – Username and password.

You can test the install using the Windows Dialer application that is on every PC. More details in the install guide referenced above.

Asterisk Queues

Dynamics Telephony brings Dynamics CRM and Asterisk Queues together, providing features such as:
– Login / logout
– Set your availability status – auto-join your queues
– Join / leave an Asterisk Queue from within Dynamics Telephony
– See real-time statistics for a queue in dynamics Telephony
– See number of calls waiting per queue
– Supports multiple Asterisk Queues

agent_asterisk_queues

Real-time statistics

The following can be shown to the agent, per queue:
<<Queue>> The queue number as configured in Asterisk
<<Name>> Name for the queue based on matching in setting file
<<Available>> Number of agents in the queue but not on a call
<<Callers>> Number of callers in the queue waiting for an agent
<<HoldTime>> Average hold (queueing) time for callers
<<LongestHoldTime>> Age of the oldest call in the queue still waiting for an agent
<<TalkTime>> Average talk time for this queue
<<LoggedIn>> Number of agents part of this queue

Use the <<placeholders>> shown when configuring the display. For example, in the display above, the configured string is: <<Name>>|  AGTs:<<LoggedIn>> CWT(s) <<Callers>>(<<LongestHoldTime>>)

How it works

Our integration of Dynamics CRM and Asterisk Queues uses a single connection to your Asterisk Server. This connection ensures minimal load on your asterisk while providing a reliable and auto-reconnecting link for the Dynamics Telephony clients.

This is an optional module for Dynamics Telephony. A Windows server is required for this proxied connection – VMs are supported. The real-time statistics are updated ever 10 seconds – configurable.

DT Clients can be running on local network, or remote through a firewall. Remote Desktop, Terminal Services and Citrix are also supported.

Display actual start with time

The default phonecall entity view on your Dynamics 365 CRM may be showing Actual Start and Actual End with only date, not with time. Here is how to get time to be displayed too.

1. CRM > Settings > Customizations

2. Click “Customize the system”

3.  Expand “Entities” and then “Phonecall” and click on “Fields”

4. In the Fields, double-click on Actual End

5. Near the bottom of the field settings from, you will see “Format” – change this to “Date and Time”

6. “Save & Close”

7. Repeat steps 4-6 for “Actual Start”

8. Publish All Customizations

phonecall_actualEnd_time

IT planing for CRM impact

Dynamics Telephony policy is to have as little impact on your CRM as possible. Here are the impacts you need to consider.

As part of or submission to the Microsoft AppSource Store, install and basic tests were carried out by Microsoft Engineers.

Admin Level User will be required during the install phase. This is to allow for the installation of the entities described later. This user needs to be allowed install a solution in your CRM.

Authentication. Dynamics Telephony supports all authentication methods supported by CRM online or on-premises. When users use Dynamics Telephony, they simply logon to CRM as normal.

HTTPS and HTTP are both supported. The certificate for HTTPS needs to be trusted by Internet Explorer.

Install procedure is described HERE

Entities Installed by Dynamics Telephony are listed HERE. The entities are all standalone with no dependency in your standard entities on the Dynamics Telephony entities. They are installed as a solution that you can request to inspect. They can be uninstalled with no impact on your CRM.

Entities written by dynamics Telephony:
– Dynamics Telephony entity records.
Phonecall due to click-to-dial or incoming calls.
Note due to click-to-dial or incoming calls.
– (optional) create contact for unknown caller.
These records are written using the logged-on user. See relationships below:

entities for click to dial

DT Entities installed in CRM

The following entities are installed in your CRM by Dynamics Telephony for its own use. They are stand-alone entities that can be uninstalled without affecting your own data.

  1. DialerCall – every call made or received
  2. DialerCallEvent – every telephony event (dial, answer, etc.)
  3. DialerCallResult – every reported Outcome
  4. DialerCallOutcome – Outcome buttons configuration
  5. DialerDNIS – configure inbound lines
  6. DialerUser – realtime user status for RTD
  7. DialerKV – Global and per user settings
  8. dtThisWeek, month, day, year dashboards – Dashboards to display statistics
  9. dtRTD – web resource to display agent realtime status

How to disable click-to-dial phonecall popout

When you do a click-to-dial in Dynamics CRM, a new phonecall activity is automatically opened in CRM for you. Dynamics Telephony also adds a phonecall activity, so you can end up with 2 for the one call. Follow this procedure to suppress the phonecall popout that CRM creates.

WARNING: THIS IS AN UNSUPPORTED CUSTOMIZATION, but it can be easily removed.

1. Create a JavaScript Webresource in CRM and paste in the following code into the Text Editor as shown in the screenshot belowsuppress_c2d_popout_webresource

function suppress_C2D_Popout() {
  parent.Mscrm.ReadFormUtilities.openPhoneClient = function(phoneNumber) {
    if (!IsNull(phoneNumber)) {
      parent.Mscrm.Shortcuts.openPhoneWindow(phoneNumber, window.PHONE_NUMBER_DEFAULT_COUNTRY_CODE,"True");
    }
  };
}

 

2. Add the webresource to the Form you want to be affected by this change. E.g. just the Contact form. Link the JavaScript function suppress_C2D_Popout, to the Form.OnLoad function. See screensnap below.

suppress_c2d_popout_form_properties

3CX Settings

You can use SIP (phonecalls are via PC headset) or TAPI (phonecalls are via deskphone) on 3CX with Dynamics Telephony inbound and outbound dialer on Microsoft Dynamics 365.

For TAPI, follow these steps

1. Get the 3CX plugins from here
https://www.3cx.com/blog/releases/crm-plugins/

2. Run the setup and pick TAPI from the list of components to install

3. Restart the PC

4. Start Dynamics Telephony and launch Settings from the menu
– Pick TAPI from the Telephony Provider list
– In Provider Account set TAPI Version to 2.1

You should now be controlling your desktop phone

Troubleshooting:
– Try running Dialer from Start Menu > Run
– Select menu “Connect Using” and make sure 3CX driver in list
– If you have more than one address controlled by TAPI, you will need to specify it in:
Dynamics Telephony Cog > Settings > Provider Account > DN

Pop and Auto-Dial CRM Opportunities

Dynamics Telephony is perfect if you use CRM Opportunities, where it can pop Opportunities (if there are any open for the caller) or pop the callers Contact record. Furthermore, the phonecall activities are logged against the Opportunities as appropriate.

Even better, you can use the Dynamics Telephony Queues Dialer feature to auto-feed Opportunities to users for processing, including calling the customer. Opportunities can be added to the Dynamics Telephony Dialer Queue just like any other entity.

How to get Dynamics Telephony to pop an Opportunity based on the callers phone number

In Dynamics 365, Opportunities have no phone numbers by default. So you need to add one for Dynamics Telephony to search for. It does not need to be put on the opportunity form itself. Add a custom field to the Opportunity entity. Set it as a “Single Line of Text” (format: phone) field that is calculated based on the related contact phone number. You can add multiple phone-number fields if you like. See here for how to add the field.

TIP: Set a condition that the opportunity must be open (status=active) for the phone number to be populated. In this way, only open opportunities will match and pop.

In the custom entity dialerKVtable, add an entry for each custom field created above..
type: phone
Value: new_telephone1 – the name of custom field
scope: global
Parent: <blank>
Name: incomingLookup_opportunity
Key: 1 – the order of lookup in this entity

Also in dialerKVtable entity, add another two entries as follows for the primary text to display
Key: opportunity
Name: entityPrimaryNames
Parent: AppSettings
Scope: global
Type: string
Value: name – *

Key: name – *
Name: incomingLookup_opportunity
Parent: <blank>
Scope: global
Type: name
Value: name – *

NOTE: The above will display the Title of the opportunity. You might prefer to create another custom field on the Opportunity that combines customer name and Title. This will be useful for multi-match. It must be a string custom field. Replace “name” above with your custom field name (3 places marked *)

In Dynamics Telephony settings > Inbound set..
Lookup entities: opportunity

TIP: If you set above to “opportunity,contact” then Dynamics Telephony will pop the contact if there are no open opportunities. However, if there is one open opportunity you will get a multi-match to choose between the opportunity and the contact.

Dynamics Telephony for Service Cases

Dynamics Telephony is perfect for a Service environment, where it can pop Cases (if there are any open for the caller) or pop the callers Contact record. Furthermore, the phonecall activities are logged against the cases as appropriate.

Even better, you can use the Dynamics Telephony Queues feature to auto-feed cases to users for processing, including calling the customer.

How to get Dynamics Telephony to pop a case (incident) based on the callers phone number

  1. In Dynamics 365, Cases have no phone numbers by default. So you need to add one for Dynamics Telephony to search for. It doe not need to be put on the cases form itself.

    Add a custom field to the Case entity. Set it as a calculated field based on the related contact phone number

    TIP: Set a condition that the Case must be open (status=active) for the phone number to be populated. In this way, only open cases will match and pop.

  2. In the custom entity dialerKVtable, add an entry for each custom field created above..

    type: phone
    Value: cts_businessphone name of custom field
    scope: global
    Parent: <blank>
    Name: incomingLookup_incident
    Key: 1 the order of lookup in this entity

  3. Also in dialerKVtable entity, add another two entries as follows for the primary text to display

    Key: incident
    Name: entityPrimaryNames
    Parent: AppSettings
    Scope: global
    Type: string
    Value: title

    Key: title
    Name: incomingLookup_incident
    Parent: <blank>
    Scope: global
    Type: name
    Value: title

    NOTE: The above will display the Title of the case. You might prefer to create another custom field on the case that combines customer name and Title. This will be useful for multi-match. It must be a string custom field. Replace title above with your custom field name (3 places)

  4. In Dynamics Telephony settings > Inbound set..

    Lookup entities: incident

    TIP: If you set above to “incident,contact” then Dynamics Telephony will pop the contact if there are no open incidents. However, if there is one open incident you will get a multi-match to choose between the incident and the contact.

How to add phone number fields to Opportunity

To call a customer from an Opportunity Form means you have to open the associated Contact and make the call from there. This also means that the phonecall record created in CRM is associated with the Contact in general, rather than the specific Opportunity.

Follow this procedure to add Phone Number fields to your Opportunity form.

In summary, the process is to add a calculated, custom field (of format “Phone”) to the Opportunity form.

  1. Go to Settings > Customizations > Customize the system
  2. Go to Entities > Opportunity > Fields and click NEW
  3. Set the field properties per this snap
    cust_ph_nr_field
  4. Click EDIT to set the calculated field properties per this snapcalc_ph_nr_field
  5. Close and save everything and Publish All Customizations

Now you just have to add the above created field to your Opportunity Form. It will be a clickable phone number that you can use with Dynamics Telephony click-to-dial, or Skype/Lync click-to-dial

Publish all customizations again.