Home Documentation Download License Contact

Voice Test Adapter

In this chapter we see how voice adapters are integrated in M4 Back Office.
NOTE: At this moment no working voice adapter is delivered. Only a test adapter is included to demonstrate the integration in M4 Back Office. Ask us for a custom voice adapter for your telephone system. You can also contract a third party to create one.
Read Voice Adapter for further information.

Phone Simulation

The test adapter works with a phone simulation to demonstrate the integration of phone adapters and to give you an idea, how a voice adapter may look like. As the phone simulation does not make any calls, a remote phone also needs to be simulated.
Select "Open Remote" on the phone simulation, at the left bottom of M4 Back Office. Fill in any number and make a call. Pick up the call on the remote phone.

Phone Simulation

Each call will create a record in the table m4voicecalls. The records are written when the call is hung up.
All records contain the following data:

  • Date
  • User
  • Bound (1 = Inbound, 2 = Outbound, 3 = Dialer)
  • Call ID
  • Calling Number
  • Called Number
  • Delivery Date
  • Establish Date
  • Clear Date

Data Referred Voice Calls

Voice calls can be referred to data e.g. to clients or other data containing phone numbers.
If a data reference to a voice call has been established, the following additional data is written to the voice call record:

  • Data M4ID (M4ID of the referred data)
  • Data AccessKey (AccessKey of the access model node of the referred data)
These references can be established in two ways:

1. Voice Calls From Phone Fields

The most obvious connection between data and a voice call exists, if you start the call from a data field, containing a phone number. If you use Tree Employ Component dialogs, the connection between the record of the data field and the call is established automatically. You only need to check the IsPhoneField property in the access model.

IsPhoneField property in access model

If IsPhoneField is checked, a dial button is displayed beside the phone number field.

IsPhoneField dial button

2. Incoming Calls And Calls Dialed From Voice Adapter

For incoming calls or calls dialed from the voice adapter itself, there is a another way to establish a reference to a data record. For the calling or the called number is searched in data fields, flagged in the AccessModel as IsPhoneSearchNumber.

IsPhoneSearchNumber field

If the number is found, the containing record is opened. If more than one record is found, the default search result list is displayed.

A common problem doing a phone number search, is the fact, that phone numbers usually contain non numeric characters like spaces, dashes or brackets. Also the "+" symbol, representing the international call prefix is widely used. Replacing all non numeric characters would take too long to do it on search time. Of course you can try to keep your phone number data free of non numeric characters. Alternatively, you can use a second data field, carrying the number, that would be used in a call. This field can be hidden and automatically maintained.

To add this field you have to:

  • Create a new data field (in this example it is called "PhoneNumeric").
  • Uncheck in AccessModel the IsPhoneSearchNumber for the original field.
  • Check in AccessModel the IsPhoneSearchNumber for the "PhoneNumeric" field.
  • Revoke "Read" and "Export" permission of for the new field, so it is not displayed or exported.
    Write permission must be granted to enable the update of the field.
  • Add a validation to the original field, that will copy the numeric value to the "PhoneNumeric" field.

IsPhoneSearchNumber field

The validation used is the defined "Copy Modified Value To Another Field" validation. Select the original phone number field, create a validation template and open it. Check OnlyNumericValues in the template. If needed you can add to ReplaceValues a value pair to replace a international call prefix symbol. In the example the "+"/"00" value pair is defined.