Introduction
Presence connectors are used to connect the jtel system to other communications systems, for example PBX Systems or Collaboration Systems such as Microsoft Teams, to provide various functions to the jtel system.
The functions provided include:
- Retrieval of presence from the PBX or Teams, to provide a display of presence in the jtel system in various views such as Agnet Home, Supervisor, MiniClinet...
- Aggregation of presence status from all attached systems, to provide an aggregated status for users and agents, so that they will be set to unavailable or busy when they are on the phone, for example.
- Notifications of call transfer and call pickup, which are used by the jtel system to set the correct agent to busy or free.
- Call answer functionality, so users can click on the answer button in the jtel client or mini client, and the connector will then send the command to the phone or device to pick up the call.
Our system support the following presence connectors:
Cisco
Cisco JTAPI is a Java-based telephony applications programming interface that serves as a basic call control API.
Provides application portability and independence from any particular telephony gear or any particular Operating System.
Portal Configuration
The new presence connector is created as sysadmin in the jtel Web Portal.
Give the connector a good name, and select CiscoCUCM Jtapi (Version) as the connector type.
The Configuration of the connector uses XML. The following example XML is used in the table below, to explain the settings.
<?xml version="1.0" encoding="UTF-8"?> <config> <implementation> <jar> <base>jtel-system-presence-connectors-cisco</base> <version>1.0</version> </jar> <class>de.jtel.system.presence.connectors.cisco.v10.CiscoJTAPIImplementation</class> </implementation> <parameters> <providerName>IP_ADDRESS</providerName> <user>JTAPI_USER</user> <password><![CDATA[JTAPI_USER_PASSWORD]]></password> </parameters> <addressTranslators> <translator> <match>^1(..)$</match> <replace>498946149501$1</replace> </translator> <translator> <match>^2(..)$</match> <replace>498946149502$1</replace> </translator> </addressTranslators> <addressExcluders> <excluder> <match>^9(..)$</match> </excluder> </addressExcluders> <behavior> <syncAcdUsers>0</syncAcdUsers> <syncPbxUsers>1</syncPbxUsers> </behavior> </config>
Settings
Setting | Value | Comments |
---|---|---|
implementation jar base | jtel-system-presence-connectors-cisco.v10 OR jtel-system-presence-connectors-cisco.v12 | Currently, Cisco v10 or v12 is supported. Configure the appropriate Cisco version. |
implementation jar version | 1.0 | This version pertains to the jtel version of the connector implementation. Currently version 1.0 is required (for all Cisco versions). |
parameters providerName | IP_ADDRESS | Use the IP Address or DNS Name of the CUCM Server. |
parameters user | JTAPI_USER | Use the name of the configured user with JTAPI access in the CUCM Server. |
parameters password | JTAPI_USER_PASSWORD | Use the password of the configured user with JTAPI access in the CUCM Server. Note: if special characters (not allowed in XML) are included in the password, these must be escaped inside a CDATA section as shown in the example configuration above. |
addressTranslators | XML Translator Definition | If the numbers reported by the CUCM server via JTAPI are not fully qualified E.164, they can be translated. This assumes the portal has been configured fully to E.164, and may not be necessary in all installations. The address translator mechanism provides a way to normalise the numbers before they are used to update presence information in the jtel System. A translator consists of two parts: Match A regular expression, which matches the number as reported by the CUCM. For example, the following regex: ^1(..)$ Matches all 3 digit telephone numbers beginning with a 1. A grouping is used to isolate the last two digits of the number into group 1, referred to in the replacement as $1 Replace The replacement to be made. For example: 498946149501$1 This would cause the two digit matched group from the regex to be appended to the string 498946149501. Example Input: 123 Output: 49894614950123 Recommendations Any number of translators can be used. They are all applied in sequence, so a little thought might be required to get the desired effect. It is recommended always to work with groupings and a specific length. Also, to prevent erroneous matches, the ^ (begin of string) and $ (end of string) regex operators should be used. |
addressExcluders | XML Excluder Definition | Excluders are used to match number patterns which shall not be monitored. For example, if trunks are passed to the jtel system, it does not make sense to monitor these entities. An excluder consists of one part: Match A regular expression, which matches the number as reported by the CUCM. For example, the following regex: ^9(..)$ Matches all 3 digit telephone numbers beginning with a 9, and will not setup monitor points to these numbers. |
behaviour syncAcdUsers | 0 | Causes all reported extensions to be created as an ACD user. Setting this to 1 is not recommended. Note: even if this is set to 0, the ACD users presence status will still be set according to the current Tel1 field in the user record, and TelActive (the active telephone number). |
behavious syncPbxUsers | 1 | Causes all reported extensions to be created as PBX Users. Setting this to 1 is recommended. |
Innovaphone
Connecting the Innovaphone PBX to the jtel System is described here: http://wiki.innovaphone.com/index.php?title=Howto:Jtel_ACD_-_jtel_GmbH_-_3rd_Party_Product
Portal Configuration
The new presence connector is created as sysadmin in the jtel Web Portal.
Give the connector a good name, and select Innovaphone PBX SOAP API (Version) as the connector type.
The Configuration of the connector uses XML. The following example XML is used in the table below, to explain the settings.
<?xml version="1.0" encoding="UTF-8"?> <config> <implementation> <jar> <base>tel-system-presence-connectors-innovaphone</base> <version>1.0</version> </jar> <class>de.jtel.system.presence.connectors.innovaphone.v11.InnovaphonePBX</class> </implementation> <parameters> <endpoint>https://<pbx-ip>/PBX0/user.soap</endpoint> <user></user> <password></password> </parameters> <behavior> <syncAcdUsers>0</syncAcdUsers> <syncPbxUsers>1</syncPbxUsers> </behavior> </config>
Settings
Setting | Value | Comments |
---|---|---|
implementation jar base | jtel-system-presence-connectors-innovaphone | Currently, Innovaphone v11 is supported. Configure the appropriate Innovaphone version. |
implementation jar version | 1.0 | This version pertains to the jtel version of the connector implementation. Currently version 1.0 is required (for all Innovaphone versions). |
parameters endpoint | IP_ADDRESS | Set <IP_ADDRESS_PBX> to the IP address of the PBX. |
parameters user | pbxUserName | Set <PBX_SOAP_USER_NAME_PBX> to the SOAP user name configured in the PBX. |
parameters password | pbxUserPassword | Set <PBX_SOAP_USER_PASSWORD> to the SOAP password configured in the PBX. |
behaviour syncAcdUsers | 0 | Causes all reported extensions to be created as an ACD user. Setting this to 1 is not recommended. Note: even if this is set to 0, the ACD users presence status will still be set according to the current Tel1 field in the user record, and TelActive (the active telephone number). |
behavious syncPbxUsers | 1 | Causes all reported extensions to be created as PBX Users. Setting this to 1 is recommended. |
Nfon
The NFON Connector supports the following functions:
- Monitoring of the configured extensions in the respective PBX
- Not registered
- Idle
- Occupied
- Ringing
Portal Configuration
The new presence connector is created as sysadmin in the jtel Web Portal.
Give the connector a good name, and select Nfon ExtensionsEvents API (Version) as the connector type.
The connector settings are specified as XML.
Example:
<?xml version="1.0" encoding="UTF-8"?> <config> <implementation> <jar> <base>jtel-system-presence-connectors-nfon</base> <version>1.0</version> </jar> <class>de.jtel.system.presence.connectors.nfon.v1.NFONExtensionsEvents</class> </implementation> <parameters> <endpoint>https://nmonitoring-api.nfon.com/queues/extensions/events</endpoint> <endpoint_names>https://nmonitoring-api.nfon.com/queues/extensions/</endpoint_names> <user>KXXXX</user> <password>AAAAABBBBBCCCCCDDDDDEEEEEFFFFFGGGGG</password> </parameters> <behavior> <syncAcdUsers>0</syncAcdUsers> <syncPbxUsers>1</syncPbxUsers> </behavior> </config>
Settings
Only the settings in the areas parameters and behaviour may be adjusted:
Setting | Meaning | Standard Value |
---|---|---|
endpoint | The REST endpoint for the API for monitoring events. | https://nmonitoring-api.nfon.com/queues/extensions/events Note: no final / |
endpoint_names | The REST endpoint for the API to retrieve the extension names. | https://nmonitoring-api.nfon.com/queues/extensions/ Note: Final / |
user | The username for the API. | Provided by NFON. |
password | Password for the API. | Provided by NFON. |
syncAcdUsers | Whether the users from the PBX are automatically created as users in the ACD Note: this feature is currently not supported. | 0 |
syncPbxUsers | Whether the users from the PBX are automatically created as PBX users in the ACD | 1 |
Microsoft Teams
MS Teams Connector allow the retrieval of presence from MS Teams, to provide a display of presence in the jtel system in various views such as:
- Agent Home
- Supervisor
- MiniClient
- Main Page
Portal Configuration
The new presence connector is created as sysadmin in the jtel Web Portal.
Give the connector a good name, and select TEAMS Presence Rest API (Version) as the connector type.
The connector settings are specified as XML.
Example:
<?xml version="1.0" encoding="UTF-8"?> <config> <implementation> <jar> <base>jtel-system-presence-connectors-teams</base> <version>1.0</version> </jar> <class>de.jtel.system.presence.connectors.teams.v1.TEAMSPresenceRestApi</class> </implementation> <parameters> <tenant_id></tenant_id> <client_id></client_id> <client_secret></client_secret> <scope></scope> <user></user> <password></password> <execution_period></execution_period> </parameters> <behavior> <syncAcdUsers>0</syncAcdUsers> <syncPbxUsers>1</syncPbxUsers> </behavior> </config>
Settings
Only the settings in the areas parameters and behaviour may be adjusted:
Setting | Value | Comments |
---|---|---|
implementation jar base | jtel-system-presence-connectors-teams | Currently, teams v1.0 is supported. Configure the appropriate Teams version. |
implementation jar version | 1.0 | This version pertains to the jtel version of the connector implementation. Currently version 1.0 is required (for all Teams versions). |
parameters tenant_id | tenant_id | The Directory (tenant) ID from Azure Active Directory - registered App |
parameters client_id | client_id | The Application ID from Azure Active Directory - registered App |
parameters client_secret | client_secret | The Client secret created in Azure Active Directory - registered App |
parameters scope | https://graph.microsoft.com/.default | A space-separated list of the Microsoft Graph permissions that you want the user to consent to. This may also include OpenID scopes. |
parameters user | teams_user | Set the email for the Teams Administrator. |
parameters password | teams_password | Set the password for the Teams Administrator. |
parameters execution_period | 5 | This define the periode of updating the status of MS Teams users. |
behaviour syncAcdUsers | 0 | Causes all reported extensions to be created as an ACD user. Setting this to 1 is not recommended. Note: even if this is set to 0, the ACD users presence status will still be set according to the current Tel1 field in the user record, and TelActive (the active telephone number). |
behavious syncPbxUsers | 1 | Causes all reported extensions to be created as PBX Users. Setting this to 1 is recommended. |