This document describes how to use TelServer.
The purpose of TelServer is to provide call control capabilities to computer applications. The client application only has to request specific telephony services. The client/server dialog between the server and the application may be :
Both TelServices and SIP/CSTA gateways may be active at the same time.
The following diagram shows the overview.
TelServer link with the PBX can be based on CSTA (relying on CSTA Asn1APIs which are fully compliant with ECMA), or JTAPI, or specific PBX protocols (such as Asterisk Manager API). The Remote Call Control gateway feature is based on CSTA phase III XML over SIP link and relies on CSTAp3XML Asn1API fully compliant with ECMA 323. The SipAPI is compliant with RFC 3261.
The synopsis of TelServer application is:
TelServer [options] [configuration_file]
where:
TelServer : is the command that invokes the TelServer application. A simple batch file is provided in order you can launch TelServer where you want to work with it. The Installation guide explains how to use it.
options : are command-line options defined below.
configuration_file : is the relative or absolute path of the configuration file. It can be omitted and the configuration file is then searched as follows : (1) searching TelServer.properties in the directory 'work' of TelServer directory or (2) searching TelServer.properties in the current directory (where the server has been launched from).
Options are explained here. If parameters are required they are indicated after the option mnemonic. If a specified parameter is optional it is enclosed by [] otherwise it is mandatory.
| -help |
| This option displays the usage syntax. |
| -version |
| Prints the version of TelServer and embedded APIs from uniGone. It also prints the version of the JVM. |
| -license |
| Checks the license and prints the license information. |
| -config |
| Prints current configuration (found in the currently used TelServer.properties file). The properties are checked before printing. This option should be used after editing TelServer.properties configuration file. |
| -epwd <clear password> |
| It encrypts a clear text password and prints encrypted password to the standard output. |
| -convc2p <computer number> |
| It converts a computer number to a PBX number according to the numbering rules defined. |
| -convp2c <PBX number> |
| It converts a PBX number to a computer number according to the numbering rules defined. |
| -server |
|
This option is for launching the server. This option is associated with the configuration file explained in Configuration chapter. |
| -update <path to TelServer home> |
|
This option is for updating TelServer configuration with another installed TelServer configuration. This option is associated with the configuration file explained in Configuration chapter. For example, to update TelServer vx.z.b from an installed vx.y.a on a Linux OS, use the command "TelServer.sh -update /opt/uniGone/TelServer/vx.y.a" |
| -db |
|
This option is for launching the embedded database server. The embedded database server is automatically launched if it is requested by configuration. This option is associated with the configuration file explained in Configuration chapter. |
| -dbtool |
|
This option is for launching a command line tool to manages the embedded database. This option is associated with the configuration file explained in Configuration chapter. |
The configuration file is written as a Java property file containing several blocks of settings (keys and values).
The following information is given in the Java documentation of SUN for the Properties class.
The file is assumed to be using the ISO 8859-1 character encoding.
Every property occupies one line of the file. Each line is terminated by a line terminator (\n or \r or \r\n).
Lines from the file are processed until end of file is reached. A line that contains only whitespace or whose first non-whitespace character is an ASCII # or ! is ignored (thus, # or ! indicate comment lines). Every line other than a blank line or a comment line describes one property to be added to the properties list (except that if a line ends with \, then the following line, if it exists, is treated as a continuation line, as described below). The key consists of all the characters in the line starting with the first non-whitespace character and up to, but not including, the first ASCII =, :, or whitespace character. All of the key termination characters may be included in the key by preceding them with a \. Any whitespace after the key is skipped; if the first non-whitespace character after the key is = or :, then it is ignored and any whitespace characters after it are also skipped. All remaining characters on the line become part of the associated element string. Within the element string, the ASCII escape sequences \t, \n, \r, \\, \", \', \ (a backslash and a space), and \uxxxx are recognized and converted to single characters. Moreover, if the last character on the line is \, then the next line is treated as a continuation of the current line; the \ and line terminator are simply discarded, and any leading whitespace characters on the continuation line are also discarded and are not part of the element string.
An update of configuration may be requested while the server is running. Only some settings are allowed to be modified while the server is running. They are marked "MAY BE UPDATED" in the description. Settings that are not marked as "MAY BE UPDATED" may be changed during the execution but they will be efficient after a restart.
The configuration may be edited and updated through the management page by the Administrator, using the 'Edit configuration' and 'Update configuration' operations.
Within the configuration, the variable ${TelServer_HOME} can be used everywhere a path is required. This variable specifies the main directory of the installed version of TelServer. It is computed as the parent directory of the "lib/TelServer.jar" file. For example, if TelServer x.y.z is installed in c:\Program Files, ${TelServer_HOME} is equal to c:\Program Files\uniGone\TelServer\vx.y.z.
This block concerns global settings for TelServer.
The settings are gathered in distinct categories.
| telserver.logging.properties.filename |
|
MAY BE UPDATED. This setting defines the name of the file where TelServer finds the logging configuration. By default, the logging is configured to issue 'debug' information (the logging threshold is set to 'debug') which enables to get useful information at the early stage of deployment. Afterwards, the logging threshold may be configured by the management. It can also be totally configured in the logging properties file. To get more information on the logging properties, you shall refer to Log4J. The logging configuration file defines three types of logs :
If an update of configuration is requested, the logging configuration will be updated too. The file is searched in the current directory or if not found in the same directory as the configuration file. Default value is "logging.properties". Example: telserver.logging.properties.filename=logging.properties |
The following settings are used to specify email configuration for emails sent to the Administrator when an ERROR or WARNING occurs. Emails are sent if telserver.administrator.email.address and telserver.administrator.email.smtp.host are defined.
| telserver.administrator.email.address |
|
MAY BE UPDATED. It is the TelServer Administrator email address. Default value is none. Example: telserver.administrator.email.address=peter.admin@thecompany.com |
| telserver.administrator.email.smtp.host |
|
MAY BE UPDATED. It is the smtp host address of the Administrator email server. Default value is none. Example: telserver.administrator.email.smtp.host=smtp.thecompany.com |
| telserver.administrator.email.smtp.port |
|
MAY BE UPDATED. It is the port used by the Administrator email smtp server. Default value is 25. Example: telserver.administrator.email.smtp.port=25 |
| telserver.administrator.email.from |
|
MAY BE UPDATED. It is the "from" field in the emails sent to the Administrator. It must be an email address that doesn't need to be an existing email address but it must be a "well-formed" one. Default value is "TelServer@unigone.com". Example: telserver.administrator.email.from=TelServer@unigone.com |
| telserver.administrator.email.tolist |
|
MAY BE UPDATED. It defines the list of addressees of the emails sent to the Administrator by TelServer. The Administrator email address (telserver.administrator.email.address) is automatically added to this list. It is a comma separated list. Default value is none so that only the Administrator email address is included here. Example: telserver.administrator.email.tolist=admin.assistant@thecompany.com |
| telserver.administrator.email.cclist |
|
MAY BE UPDATED. It defines the list of carbon-copy addressees of the emails sent to the Administrator by TelServer. It is a comma separated list. Default is none. Example: telserver.administrator.email.cclist=interestedby.TelServer@thecompany.com |
| telserver.administrator.userid |
|
This setting defines the userid of the administrator. It may be used to connect to TelServer remote management. Default is none. Example: telserver.administrator.userid=admin |
| telserver.administrator.password |
|
This setting sets the password used in conjonction with the userid defined above. This password must be previously encrypted by the -epwd command in order it is not written in clear text in this file. Default is none. Example for the "admin" password: telserver.administrator.password=6WzEy |
These settings are used for the remote management. Since remote management is performed through a http link, port, username and password must be defined. Further explanations about the management page are given in the Management chapter.
| telserver.remote_management.enabled |
|
This setting defines whether remote management is enabled. Disabling remote management implies that a configuration change can be applied only after a server complete restart. Default is true. Example: telserver.remote_management.enabled=true |
| telserver.remote_management.port |
|
This setting defines the local (TelServer machine) TCP port for remote management access. A http server is then running waiting for connections on this port. Access to this server is basically controlled by a username/password. Default port is 8083. If you use that port, ensure it is not used already by another application. Example: telserver.remote_management.port=8083 |
| telserver.remote_management.username |
|
DEPRECATED: User telserver.administrator.userid in place. |
| telserver.remote_management.password |
|
DEPRECATED: User telserver.administrator.password in place. |
| telserver.remote_management.language |
|
This setting sets the preferred language for the remote management page. The language can be "en" (english) or "fr" (french). If no language is specified, TelServer will seek for the local language. If the language is "fr" then the page will be in french otherwise the language will be english. Example: telserver.remote_management.language=fr |
These settings are defined for the TelServices gateway.
| telserver.TelServicesGateway.enabled |
|
This setting enables the TelServices gateway. Supported values are "true" and "false". Default value is "true". Example: telserver.TelServicesGateway.enabled=true |
| telserver.TelServicesGateway.port |
|
This setting defines the local (TelServer machine) TCP port of TelServer for the TelServices gateway. The client has to connect to TelServer hosting machine IP address and this port to benefit of TelServices services. Optionnally one can precise the backlog (i.e. the maximum connections the server will accept) and the bind address of the TCP port (i.e. the server will listen only to the specified port on this IP address). The bind address can be used on a multi-homed host for a server that will only accept connect requests to one of its addresses. Default port is 8082. If you use that port, ensure it is not used already by another application. Examples: For specifying a listening port for all IP addresses of the machine with a default backlog : telserver.TelServicesGateway.port=8082 For specifying a listening port for all IP addresses of the machine with a backlog : telserver.TelServicesGateway.port=8082,50 For specifying a listening port for all IP addresses of the machine with a backlog and a bind address : telserver.TelServicesGateway.port=8082,50,192.168.0.2 |
| telserver.TelServicesGateway.port.protocol |
|
This setting defines the protocol to be used on the TCP port. It can be TCP, SSL or TLS (ignoring case). To define a secure gateway, please refer to the chapter "Secure gateway configuration". Default protocol is TCP. Example: telserver.TelServicesGateway.port.protocol=TCP |
| telserver.TelServicesGateway.port.keystore.path |
|
This setting defines the keystore path when port protocol is SSL or TLS. Default path is ${TelServer_HOME}/work/TelServer.jks. Example: telserver.TelServicesGateway.port.keystore.path=${TelServer_HOME}/work/TelServer.jks |
| telserver.TelServicesGateway.port.keystore.password |
|
This setting defines the password of the keystore. Default is 'unigone'. Example: telserver.TelServicesGateway.port.keystore.password=unigone |
| telserver.TelServicesGateway.port.keystore.key.password |
|
This setting defines the password of the certificate key in the keystore. Default is 'telserver'. Example: telserver.TelServicesGateway.port.keystore.key.password=telserver |
| telserver.TelServicesGateway.htdocs.path |
|
This setting defines the path of the directory where HTML documents delivered by TelServer are standing. The HTML documents are used by the TelServices javascript library or when accessing TelServer from a web browser. Default value is in '${TelServer_HOME}/work/html'. Example: telserver.TelServicesGateway.htdocs.path=/opt/telserver/company/html |
| telserver.TelServicesGateway.htdocs.direct_access.enabled |
|
This setting defines whether a direct connection to the gateway from a web browser is enabled. If direct connection is disabled, bridge files that are necessary for making TelServices javascript clients work will still be delivered by TelServer but others will be rejected by a 404 error. Default value is true. Example: telserver.TelServicesGateway.htdocs.direct_access.enabled=true |
| telserver.TelServices.endOfPDU.sequence |
|
This setting defines the sequence of characters that would be written at the end of the XML TelServices encoding, when using the TelServices protocol directly over TCP and UDP. The end of PDU is a sequence of characters that is added to results to TelServices requests over TCP as well as to events send over UDP. The endOfPDU, if added at the end of a TelServices request encoding sent by the client, is ignored. NOTE: this does not apply if HTTP is used. Default value is that no end of PDU is written. Example: telserver.TelServices.endOfPDU.sequence=\r\n |
| telserver.TelServicesGateway.workers.pool.limit (this setting was formerly telserver.workers.pool.limit) |
|
This setting defines the number of threads that are launched by advance waiting for TelServices clients connections. The threads are launched by advance to avoid the overhead of thread creation when a client connects. This doesn't prevent other connections but additional connections will create additional threads. Default value is 20. Minimum value is 5. Example: telserver.workers.pool.limit=20 |
| telserver.TelServicesGateway.workers.so.timeout (this setting was formerly telserver.workers.so.timeout) |
|
This setting defines the TCP SO timeout. It is the time that a worker thread should block while reading from a client connection, before it times out and closes a connection. Without this timeout, a worker thread could be tied up indefinitely waiting for a client to issue a request. The value is in milliseconds. Default is 5000 for 5 seconds. Minimum value is 1000 ms. Example: telserver.workers.so.timeout=5000 |
These settings are defined for the SIP/CSTA gateway.
| telserver.SIPCSTAGateway.enabled |
|
This setting enables the SIP/CSTA gateway. Supported values are "true" and "false". Default value is "true". Example: telserver.SIPCSTAGateway.enabled=true |
| telserver.SIPCSTAGateway.port |
|
This setting defines the local (TelServer machine) TCP port of TelServer for the SIP/CSTA gateway. The SIP UA has to connect to TelServer hosting machine IP address and this port to benefit of the SIP/CSTA gateway services. Optionnally one can precise the backlog (i.e. the maximum connections the server will accept to queue) and the bind address of the TCP port (i.e. the server will listen only to the specified port on this IP address). The bind address can be used on a multi-homed host for a server that will only accept connect requests to one of its addresses. Default port is 5161. If you use that port, ensure it is not used already by another application. Examples: For specifying a listening port for all IP addresses of the machine with a default backlog : telserver.SIPCSTAGateway.port=5161 For specifying a listening port for all IP addresses of the machine with a backlog : telserver.SIPCSTAGateway.port=5161,50 For specifying a listening port for all IP addresses of the machine with a backlog and a bind address : telserver.SIPCSTAGateway.port=5161,50,192.168.0.2 |
| telserver.SIPCSTAGateway.port.protocol |
|
This setting defines the protocol to be used on the TCP port. It can be TCP, SSL or TLS (ignoring case). To define a secure gateway, please refer to the chapter "Secure gateway configuration". Default protocol is TCP. Example: telserver.SIPCSTAGateway.port.protocol=TCP |
| telserver.SIPCSTAGateway.port.keystore.path |
|
This setting defines the keystore path when port protocol is SSL or TLS. Default path is ${TelServer_HOME}/work/TelServer.jks. Example: telserver.SIPCSTAGateway.port.keystore.path=${TelServer_HOME}/work/TelServer.jks |
| telserver.SIPCSTAGateway.port.keystore.password |
|
This setting defines the password of the keystore. Default is 'unigone'. Example: telserver.SIPCSTAGateway.port.keystore.password=unigone |
| telserver.SIPCSTAGateway.port.keystore.key.password |
|
This setting defines the password of the certificate key in the keystore. Default is 'telserver'. Example: telserver.SIPCSTAGateway.port.keystore.key.password=telserver |
These settings are defined for the CSTAp2 gateway.
| telserver.CSTAp2Gateway.enabled |
|
This setting enables the CSTAp2 gateway. Supported values are "true" and "false". Default value is "false". Example: telserver.CSTAp2Gateway.enabled=true |
| telserver.CSTAp2Gateway.port |
|
This setting defines the local (TelServer machine) TCP port of TelServer for the CSTAp2 gateway. The client has to connect to TelServer hosting machine IP address and this port to benefit of the CSTAp2 gateway services. Optionnally one can precise the backlog (i.e. the maximum connections the server will accept to queue) and the bind address of the TCP port (i.e. the server will listen only to the specified port on this IP address). The bind address can be used on a multi-homed host for a server that will only accept connect requests to one of its addresses. Default port is 2555. If you use that port, ensure it is not used already by another application. Examples: For specifying a listening port for all IP addresses of the machine with a default backlog : telserver.CSTAp2Gateway.port=2555 For specifying a listening port for all IP addresses of the machine with a backlog : telserver.CSTAp2Gateway.port=2555,50 For specifying a listening port for all IP addresses of the machine with a backlog and a bind address : telserver.CSTAp2Gateway.port=2555,50,192.168.0.2 |
| telserver.CSTAp2Gateway.port.protocol |
|
This setting defines the protocol to be used on the TCP port. It can be TCP, SSL or TLS (ignoring case). To define a secure gateway, please refer to the chapter "Secure gateway configuration". Default protocol is TCP. Example: telserver.CSTAp2Gateway.port.protocol=TCP |
| telserver.CSTAp2Gateway.port.keystore.path |
|
This setting defines the keystore path when port protocol is SSL or TLS. Default path is ${TelServer_HOME}/work/TelServer.jks. Example: telserver.CSTAp2Gateway.port.keystore.path=${TelServer_HOME}/work/TelServer.jks |
| telserver.CSTAp2Gateway.port.keystore.password |
|
This setting defines the password of the keystore. Default is 'unigone'. Example: telserver.CSTAp2Gateway.port.keystore.password=unigone |
| telserver.CSTAp2Gateway.port.keystore.key.password |
|
This setting defines the password of the certificate key in the keystore. Default is 'telserver'. Example: telserver.CSTAp2Gateway.port.keystore.key.password=telserver |
| telserver.CSTAp2Gateway.multiplexer.enabled |
|
This setting defines whether the CSTAp2 gateway handles the client TCP connection as a mutliplex of devices, i.e. multiplexing all messages for all devices within the same TCP connection. This is the normal way to handle a CSTA connection (ROSE envelope and events cross reference identifiers allow the client to separate the data stream). However, acting in non multiplexer mode allows first party application easily : the application monitors a device only and receives results and events concerning that device only. Supported values are "true" and "false". Default value is "true". Example: telserver.CSTAp2Gateway.multiplexer.enabled=true |
These settings are controlling the database optionally used by TelServer. The database is used to register call records (providing an history of calls) and agent records (providing an history of agent state changes). The database may be TelServer embedded database (HSQLDB) or any application database. If the database is configured as 'embedded', the database server is automatically started when TelServer is started.
| telserver.data.path |
|
This setting is used for starting TelServer embedded database (HSQLDB) if it is used. It defines the path where the database server will store data. Default value is ${TelServer_HOME}/../data/telserver meaning that database files will be stored in the directory containing TelServer versions in a sub-directory named 'data' with database file names starting by telserver. Assuming that the installation structure is the default structure with ${TelServer_HOME} ending by "/vx.y.z" where vx.y.z is TelServer's version, the database is thus by default shared by all versions of TelServer. Example: telserver.data.path=${TelServer_HOME}/../data/telserver |
| telserver.data.JVM.args |
|
This setting is used for passing parameters to the Java command launching the HSQLDB process. It is the same usage as for a standard Java command and must be adapted to the main JVM (which is used to launch TelServer) usage. Default value is none. For example, with a SUN JVM, one can use -Xmx256M for a 256MB maximum memory allocation pool size. Example: telserver.data.JVM.args=-Xmx256M |
| telserver.data.properties |
|
This setting is used for starting TelServer embedded database (HSQLDB) if it is used. It defines the properties of the database as specified by HSQLDB as a ';' separated key=value pairs list. Default value is hsqldb.cache_file_scale=8 for allowing data file up to 8GB. Example: telserver.data.properties=hsqldb.cache_file_scale=8 |
| telserver.data.jdbc.port |
|
This setting is used for starting TelServer embedded database (HSQLDB) if it is used. It defines the port the database will use for JDBC connections. Default value is 9001. Example: telserver.data.jdbc.port=9001 |
| telserver.data.history.enabled |
|
MAY BE UPDATED. This setting defines whether the history database is enabled or not. Default value is true. Example: telserver.data.history.enabled=true |
| telserver.data.history.embedded |
|
MAY BE UPDATED. This setting defines whether the history database is the embedded database. Default value is true. Example: telserver.data.history.embedded=true |
| telserver.data.history.jdbc.driver.classname |
|
MAY BE UPDATED. This setting defines the driver class name to use to connect to the SGDB. It may be TelServer embedded database (HSQLDB). It may also be any application database. Generally a JDBC driver is provided for each SGDB vendor. The class must be found in the classpath of TelServer. Default value is org.hsqldb.jdbcDriver. Example: this setting defines the driver class name for HSQLDB database that can be installed by TelServer commands. telserver.data.history.jdbc.driver.classname=org.hsqldb.jdbcDriver |
| telserver.data.history.jdbc.connection.url |
|
MAY BE UPDATED. This setting defines the URL to connect to the database. It must be in the form jdbc:subprotocol:subname where subprotocol:subname is the name of the pilot to be used. Default value is jdbc:hsqldb:hsql://localhost/telserver. Example: this setting defines the URL for TelServer embedded database. telserver.data.history.jdbc.connection.url=jdbc:hsqldb:hsql://localhost/telserver |
| telserver.data.history.jdbc.connection.username |
|
MAY BE UPDATED. This setting defines the username to be used to connect the SGDB. If the database is the application database, this user should have the rights to insert data into the specified tables as well as read data from them. For TelServer embedded database it is 'telserver'. Example: telserver.data.history.jdbc.connection.username=telserver |
| telserver.data.history.jdbc.connection.password |
|
MAY BE UPDATED. This setting defines the password for the previously defined username. For TelServer embedded database it is 'telserver'. Example: telserver.data.history.jdbc.connection.password=telserver |
| telserver.data.history.jdbc.sql_insert |
|
MAY BE UPDATED. This setting defines the SQL structure of the history table containing the call and optionnally the agent records. It is defined through the INSERT command. The command must use the SQL syntax with column names. This setting is simply used to extract the table name, the columns names and control the data types. The INTO keyword is required. The following variables can be used (optional ones can be absent from the table). The main data type is given in parenthesis (constraints can be applied).
Example: this setting defines the table structure with TelServer embedded database (it is a single line or it may be split with the '\' character). telserver.data.history.jdbc.sql_insert=INSERT
INTO history (userid, usernumber, creationdate, creationtime, otherpartynumber,
otherpartyname, otherpartycompany, |
| telserver.data.history.jdbc.sql_create |
|
MAY BE UPDATED. This setting defines the SQL that will be used to create the history table. It should be written in accordance with the defined SQL INSERT command. The default is for the default TelServer embedded database. Example: this setting defines the embedded database table creation (it is a single line or it may be split with the '\' character). It also contains indexes creations. telserver.data.history.jdbc.sql_create=CREATE
CACHED TABLE history (id BIGINT IDENTITY, userid VARCHAR(36), usernumber
VARCHAR(10), creationdate VARCHAR(10), creationtime VARCHAR(8), |
| telserver.data.history.jdbc.sql_alter |
|
MAY BE UPDATED. This setting defines the SQL that will be used to alter the history table if it is already existing. It should be written in accordance with the defined SQL INSERT command. The default is for the default TelServer embedded database. Example: this defines the ALTER command to add some columns. telserver.data.history.jdbc.sql_alter=ALTER TABLE history ADD oldcallreference VARCHAR(128);ALTER TABLE history ADD firstcallednumber VARCHAR(25);ALTER TABLE history ADD lastredirectionnumber VARCHAR(25); |
| telserver.data.history.date.format |
|
MAY BE UPDATED. This setting defines the record date format. Default is "yyyy-MM-dd". Example: telserver.data.history.date.format=yyyyMMdd |
| telserver.data.history.time.format |
|
MAY BE UPDATED. This setting defines the record time format. Default is "HH:mm:ss". Example: telserver.data.history.time.format=HHmmss |
| telserver.data.history.jdbc.sql_purge.hour |
|
MAY BE UPDATED. This setting defines the hour of the day (in the format 00:00:00) at which the SQL purge command will be issued each day. Default is "00:00:00". Example: telserver.data.history.jdbc.sql_purge.hour=00:00:00 |
| telserver.data.history.jdbc.sql_purge |
|
MAY BE UPDATED. This setting defines the SQL command issued at each . Default is DELETE FROM history WHERE DAY(creationdate) < DAY(CURDATE()) - 180; to delete all records older than 180 days. Example: telserver.data.history.jdbc.sql_purge=DELETE FROM history WHERE DAY(creationdate) < DAY(CURDATE()) - 180; |
| telserver.data.history.hide_private_calls_in_management.enabled |
|
MAY BE UPDATED. This setting defines whether the private calls are hidden when the history is viewed through the management pages. Default value is true. Example: telserver.data.history.hide_private_calls_in_management.enabled=true |
| telserver.data.user_directory.enabled |
|
MAY BE UPDATED. This setting defines whether the user_directory database is enabled or not. The user_directory database is used to store a private directory for a user. The private directory is filled by UpdateUserDirectory requests. Default value is true. Example: telserver.data.user_directory.enabled=true |
| telserver.data.user_directory.embedded |
|
MAY BE UPDATED. This setting defines whether the user_directory database is the embedded database. Default value is true. Example: telserver.data.history.embedded=true |
| telserver.data.user_directory.jdbc.driver.classname |
|
MAY BE UPDATED. This setting defines the driver class name to use to connect to the SGDB. It may be TelServer embedded database (HSQLDB). It may also be any application database. Generally a JDBC driver is provided for each SGDB vendor. The class must be found in the classpath of TelServer. Default value is org.hsqldb.jdbcDriver. Example: this setting defines the driver class name for HSQLDB database that can be installed by TelServer commands. telserver.data.user_directory.jdbc.driver.classname=org.hsqldb.jdbcDriver |
| telserver.data.user_directory.jdbc.connection.url |
|
MAY BE UPDATED. This setting defines the URL to connect to the database. It must be in the form jdbc:subprotocol:subname where subprotocol:subname is the name of the pilot to be used. Default value is jdbc:hsqldb:hsql://localhost/telserver. Example: this setting defines the URL for TelServer embedded database. telserver.data.user_directory.jdbc.connection.url=jdbc:hsqldb:hsql://localhost/telserver |
| telserver.data.user_directory.jdbc.connection.username |
|
MAY BE UPDATED. This setting defines the username to be used to connect the SGDB. If the database is the application database, this user should have the rights to insert data into the specified tables as well as read data from them. For TelServer embedded database it is 'telserver'. Example: telserver.data.user_directory.jdbc.connection.username=telserver |
| telserver.data.user_directory.jdbc.connection.password |
|
MAY BE UPDATED. This setting defines the password for the previously defined username. For TelServer embedded database it is 'telserver'. Example: telserver.data.user_directory.jdbc.connection.password=telserver |
| telserver.data.user_directory.jdbc.sql_insert |
|
MAY BE UPDATED. This setting defines the SQL structure of the user_directory table containing the directory records. It is defined through the INSERT command. The command must use the SQL syntax with column names. This setting is simply used to extract the table name, the columns names and control the data types. The INTO keyword is required. The following variables can be used (optional ones can be absent from the table). The main data type is given in parenthesis (constraints can be applied).
Example: this setting defines the table structure with TelServer embedded database (it is a single line or it may be split with the '\' character). telserver.data.history.jdbc.sql_insert=INSERT INTO user_directory (userid, directoryname, otherpartynumber, otherpartyname, otherpartycompany, otherpartynumbertype) VALUES('%userid%','%directoryname%','%otherpartynumber%','%otherpartyname%','%otherpartycompany%',%otherpartynumbertype%); Note: a template JDBC directory cache is created in relation to the 'user_directory' database settings. Conversion patterns may be modified. telserver.directory.user_directory.jdbc.phoneNumber.conversionPatterns.1= |
| telserver.data.user_directory.jdbc.sql_create |
|
MAY BE UPDATED. This setting defines the SQL that will be used to create the user_directory table. It should be written in accordance with the defined SQL INSERT command. The default is for the default TelServer embedded database. Example: this setting defines the embedded database table creation (it is a single line or it may be split with the '\' character). It also contains index creations. telserver.data.history.jdbc.sql_create=CREATE CACHED TABLE user_directory (id BIGINT IDENTITY, userid VARCHAR(36), directoryname VARCHAR(20), otherpartynumber VARCHAR(25), otherpartyname VARCHAR_IGNORECASE(100), otherpartycompany VARCHAR_IGNORECASE(80), otherpartynumbertype TINYINT);CREATE INDEX user_directory_userid_idx ON user_directory (userid); |
These settings define the way services are treated by the gateways. A session is open as soon as a monitoring request must be sent to the PBX. A session can be opened for normal telephone devices (whatever its type).
Note that all services may not be available for all type of gateways.
| telserver.sessions.user_authentication_by_administrator.enabled |
|
MAY BE UPDATED. Used by TelServices gateway. This setting defines whether the administrator remote management username can be used as a userid to be authenticated when opening a session. Supported values are "true" and "false". Default value is "true". Example: telserver.sessions.user_authentication_by_administrator.enabled=true |
| telserver.sessions.user_authentication.administrator.userid |
|
This setting defines the userid that can be used to authenticate a user when opening a session. Default is none so that no username/password is required to open a session. Example: telserver.user_authentication.administrator.userid=admin |
| telserver.sessions.user_authentication.administrator.password |
|
This setting sets the password used in conjonction with the userid defined above for authenticating users when opening a session. This password must be previously encrypted by the -epwd command in order it is not written in clear text in this file. Default is none. Example for the "admin" password: telserver.user_authentication.administrator.password=6WzEy |
| telserver.sessions.answerCall_on_QualifyCall.enabled |
|
MAY BE UPDATED. Used by TelServices gateway. This setting defines whether the TelServices QualifyCall request should lead to an automatic AnswerCall if the request selects this option (the option is part of the TelServices QualifyCall request). If the setting is true and if the request has indicated the option, the server will launch an AnswerCall command on the PBX if the current call is not already in the CONNECTED state. Supported values are "true" and "false". Default value is "true". Example: telserver.sessions.answerCall_on_QualifyCall.enabled=true |
| telserver.sessions.automatic_clear_local_connection.timeout |
|
MAY BE UPDATED. It defines the timeout after which the local connection is automatically cleared if the other party has dropped. The value is in milliseconds. The default value is '-1' for no automatic clearing. Example: telserver.sessions.automatic_clear_local_connection.timeout=0 |
| telserver.sessions.permitted_agent_states_if_agent_state_by_pbx.enabled |
|
MAY BE UPDATED. It specifies whether the TelServices protocol should report the permitted agent states according to TelServer's model, when the agent state is provided by the PBX. In particular, if true, this allows the TSWidget tool to propose only the permitted agent state options to the user. The default value is true. Example: telserver.sessions.permitted_agent_states_if_agent_state_by_pbx.enabled=true |
| telserver.sessions.correlator_data_as_calling_device.enabled |
|
MAY BE UPDATED. It defines whether the correlator data can be treated as the calling device when it is provided through the link in specific CSTA events such as Delivered or Established. This is useful to know the calling device as soon as possible before the actual transfer takes place. In particular, this is useful on Alcatel PBXs for devices that belong to an ACD. It is recommended to set the setting to 'true' in this situation. The default value is false. Example: telserver.sessions.correlator_data_as_calling_device.enabled=false |
| telserver.sessions.http.inactive_agent_session_close.enabled |
|
MAY BE UPDATED. It defines whether an inactive HTTP agent session should be closed. If not closed, the agent is moved 'loggedOff'. The period of inactivity depends on the timeout of the long polling period (twice that timeout is used - by default 120 seconds). The default value is false. Example: telserver.sessions.http.inactive_agent_session_close.enabled=false |
| telserver.sessions.http.background_polling.enabled |
|
MAY BE UPDATED. It defines whether the HTTP long polling mechanism is performed in background or not.
The default value is true. Example: telserver.sessions.http.background_polling.enabled=false |
| telserver.sessions.first_other_party_on_consulted_device.enabled |
|
MAY BE UPDATED. It defines whether the first other party number should be provided on the consulted device. This allows the consulted device to be aware of the calling (or called) customer when consulted by a fellow agent. The default value is false. Example: telserver.sessions.first_other_party_on_consulted_device.enabled=false |
| telserver.sessions.call_contexts_synchronization.period |
|
MAY BE UPDATED. It defines the period of sessions call contexts synchronization with the PBX. The synchronization is efficient if the pbxlink.pbx.csta.snapshotDevice.enabled setting is set to true. The defined period is in milliseconds. The default value is none. It must be greater than 5000. Example: telserver.sessions.call_contexts_synchronization.period=60000 |
| telserver.sessions.queryHistory.result.limit |
|
MAY BE UPDATED. It defines the limit of history record requested to the database. The default value is 100. Example: telserver.sessions.queryHistory.result.limit=100 |
| telserver.sessions.user_directory.enabled |
|
MAY BE UPDATED. It defines if the user_directory feature is enabled for users. The default value is false. Example: telserver.sessions.user_directory.enabled=false |
| telserver.sessions.user_directory.directories.list |
|
MAY BE UPDATED. It defines the list of directories that will be used as user directories. It is a list of comma separated values.The list is in addition to the user_directory directory which is automatically defined if the user_directory database is enabled. It allows the definition of user directories defined externally. The default value is none. Example: telserver.sessions.user_directory.directories.list= |
Routing points are used to provide enhanced calls routing. They can handle both inbound and outbound calls.
In the following, the best skilled agent is the one who has been assigned to this customer or who has got the skill to handle the call from or to a customer. The algorithm for best skilled agent selection is:
In inbound routing, the goal is to deliver the call to the most appropriate agent. This begins with the check that the calling number is not blacklisted. If not, this continues with the search of the best skilled agent. If there is no best skilled agent available, the routing point applies a distribution logic to establish the best route.
An inbound routing point is mainly defined by:
The logic applied to route a call is first to get the best skilled agent through the route lookup method. It the calling number is from a customer whose category is blacklisted, the call is routed to the failure route. Then, the assigned agent is searched; if the search returns no agent, the skills required by the customer are searched within the agents of the service.
When queued, calls are waiting for an agent to become 'ready' to be handled, or after a timeout will be routed to the failure route. Calls from customers whose category is VIP are treated in priority when queued: the first arrived call from a VIP customer is routed before all other calls that were already in queue.
The failure route is managed like this:
During the non working hours, the call is treated as:
In outbound routing, the goal is to handle outbound campaigns, i.e. placing an outbound call from the most appropriate agent to handle it. Calls to place are defined within a table of calls (defined within a call directory) which associates a call with an optional best skilled agent. If no best skilled agent is available, the server applies a distribution logic to launch the call.
Outbound routing is controlled by a supervisor application which defines the calls to launch, the agents and the configuration of the campaign. When TelServer receives the request to start a campaign routing point (through the TelServices protocol) it automatically creates the outbound routing point from the template definition (defined by advance within TelServer configuration). This routing point will control the campaign till its end. Whenever it desires, the supervisor application can request the state of the routing point, an update of configuration (including an update of the used directories) or stop the routing point.
An outbound routing point is mainly defined by:
The goal is to complete a campaign, i.e. to qualify each calls. Qualifying a call is establishing the disposition when all retries have been completed. The logic applied is to get the next call through the call directory. The best skilled agent may have been specified.
When a call is qualified, the disposition is actually written in the call directory. This allows the supervisor application to establish the result of the campaign call by call.
The supervisor application uses TelServices protocol supervisor services to manage the campaign. The services are:
The supervisor can also query the states of the routing point or get statistics using:
The various states an outbound routing point can have are:
A call is qualified, when its state is 'connected' (1), 'cleared' (2) or 'failed' (3). Those states (numeric values) will be written in the call directory.
The following settings define the configuration of the routing points. Each routing points is identified by its name %routingPoint% which is arbitrarily defined by the administrator.
| telserver.routing.point.%routingPoint%.service |
|
MAY BE UPDATED. This setting defines the service of the routing point. It should be correlated to the service of agents handling calls for that routing point. The service is mandatory and several routing points are defined, all routing points should get a distinct service. The setting may contain or be equal to the variable "%name%". This implies that the service name will be set at the creation of the routing point. It is used for outbound campaigns when the name of the campaign is used to build the service name. Default value is none. Example: telserver.routing.point.myRoutingPoint.service=commercial |
| telserver.routing.point.%routingPoint%.number |
|
MAY BE UPDATED. This setting defines the main number of the routing point. If defined, this number must exist within the PBX. Generally, this number is a virtual number within the PBX where the call should stay a minimum time before being routed by the PBX (without an immediate forward). During this time TelServer routing logic is applied. The number may not be defined. Such is the case for routing points serving oubound campaigns in 'preview-auto' mode (the call is launched directly from the agent). Default value is none. Example: telserver.routing.point.myRoutingPoint.number=500 |
| telserver.routing.point.%routingPoint%.service.timeout |
|
MAY BE UPDATED. For an outbound routing point only, this setting defines the time after which the service is closed by TelServer. Normally, an outbound service is closed by the application, this timeout is a safety timeout for being sure the service is closed. The value is given in hours. The value is none. Example: telserver.routing.point.myRoutingPoint.service.timeout=12 |
| telserver.routing.point.%routingPoint%.working.hours |
|
MAY BE UPDATED. This setting defines the comma separated list of intervals of hours in the day (0 to 24) when the routing point is working (opened). Intervals are defined as a start hour and an end hour separated by a '/'. Outside working hours during the working days the calls are routed to the telserver.routing.point.routingPoint.non_working_hours_routes.list route. Default value is none. Example: this defines two intervals in the day, from 8H30 to 12 and from 14H15 to 18. telserver.routing.point.myRoutingPoint.working.hours=8:30/12,14:15/18 |
| telserver.routing.point.%routingPoint%.non_working.days_of_week |
|
MAY BE UPDATED. This setting defines the non working days of the week as a list of comma separated numbers (1 for Sunday, 2 for Monday,... and 7 for Saturday). Default value is none. Example: telserver.routing.point.myRoutingPoint.non_working.days_of_week=1,7 |
| telserver.routing.point.%routingPoint%.non_working.days |
|
MAY BE UPDATED. This setting defines the comma separated list of non working days of the year. Each day is an optional year (yyyy) followed by a '-', a month (1 to 12) followed by a '-' and a day (1 to 31). The pattern is [yyyy-]MM-dd. It can be an interval as a start day and an end day separated by a '/'. Limits are included. Default value is none. Example: Every 25th of December and from the 26th December 2010 included to the 2nd January 2011 included are not worked. telserver.routing.point.myRoutingPoint.non_working.days=12-25,2010-12-26/2011-01-02 |
| telserver.routing.point.%routingPoint%.no_answer.timeout |
|
MAY BE UPDATED. For an inbound routing point, this setting defines the time a call is enabled to stay on the routing point (i.e. queued or alerting an agent) without being answered by an agent. After that time, the call is diverted to the failure route. For an outbound routing point, this setting defines the time an outbound call is enabled to alert the destination before answer. The value is given in seconds. Default value is:
Example: telserver.routing.point.myRoutingPoint.no_answer.timeout=30 |
| telserver.routing.point.%routingPoint%.agent.no_answer.timeout |
|
MAY BE UPDATED. For an inbound routing point, this setting defines the time a call handled by this routing point is enabled to stay on an agent without being answered. After that time, the call is diverted to the next agent ready for treating calls for that routing point. If no available agent is found the call is diverted to the failure route. The value is given in seconds. Default value is:
Example: telserver.routing.point.myRoutingPoint.agent.no_answer.timeout=15 |
| telserver.routing.point.%routingPoint%.failed_call_retry.timeout |
|
MAY BE UPDATED. For an outbound routing point, this setting defines the time between two call retries if the last attempt was unsuccessful. It is in seconds. Default value is none. Example: telserver.routing.point.myRoutingPoint.failed_call_retry.timeout=30 |
| telserver.routing.point.%routingPoint%.failed_call_retry.limit |
|
MAY BE UPDATED. For an outbound routing point, this setting defines the count of retries after the initial call before an outbound campaign call is qualified. Default value is none. A value of 3 means that the call may be attempted 4 times. Example: telserver.routing.point.myRoutingPoint.failed_call_retry.limit=3 |
| telserver.routing.point.%routingPoint%.agent.working_after_call.timeout |
|
MAY BE UPDATED. This setting defines the timeout for the "working after call" state of an agent. The time starts once a call has been cleared by the agent and during that time the agent will not receive any call from the routing point. After that time, the agent is moved ready again and can receive further calls. A value of "-1" means an infinite timeout which means that the agent must exit this mode by himself. A value of "0" means that the agent becomes immediately "ready" after the call ends up. The value is given in seconds. Default value is:
Example: telserver.routing.point.myRoutingPoint.agent.working_after_call.timeout=5 |
| telserver.routing.point.%routingPoint%.queue.limit |
|
MAY BE UPDATED. This setting defines the limit of the queue. It is defined as a percentage of the busy or working after call agents. When a call arrives on the routing point, if no agent is available, the call is queued if the number of calls currently in queue is less than the number of busy or working after call agents. If the call cannot be queued because the limit of queued calls is reached, the call is routed to the failure route. Default value is 100 authorizing to queue as many calls as there are busy or working after call agents. Example: telserver.routing.point.myRoutingPoint.queue.limit=100 |
| telserver.routing.point.%routingPoint%.agent.logged_on_on_OpenSession.enabled |
|
MAY BE UPDATED. It defines whether the agent is automatically logged on as soon as the agent opens the session. The default value is true. Example: telserver.routing.point.myRoutingPoint.agent.logged_on_on_OpenSession.enabled=true |
| telserver.routing.point.%routingPoint%.agent.ready_on_logged_on.enabled |
|
MAY BE UPDATED. It defines whether the agent state is moved to 'ready' as soon as the agent logs on. The default value is true. Example: telserver.routing.point.myRoutingPoint.agent.ready_on_logged_on.enabled=true |
| telserver.routing.point.%routingPoint%.pbxlink.method |
|
MAY BE UPDATED. This setting defines the method that is used by TelServer to order the PBX to route the call to the provided route. This depends on how the PBX accepts routing orders : it can either let TelServer divert the call or actively request a route from TelServer. Values can be "DivertCall", "RouteRequest" for inbound routing points or "MakeCall" for outbound routing points. Default value is "DivertCall". Example: telserver.routing.point.myRoutingPoint.pbxlink.method=DivertCall |
| telserver.routing.point.%routingPoint%.routeLookup.method |
|
MAY BE UPDATED. This setting defines how TelServer will search the agent number (the route). The search can be:
Default value is "local". Example: telserver.routing.point.myRoutingPoint.routeLookup.method=local |
| telserver.routing.point.%routingPoint%.routeLookup.method.local.directories.list |
|
MAY BE UPDATED. If the route lookup method has been defined as being "local", this setting defines the list of directories (comma separated) where this routing point searches information. This setting is mandatory. It should contain a customer directory or an agent directory (both in the general case) for an inbound routing point or a call directory and an agent directory for an outbound directory. Example: telserver.routing.point.myRoutingPoint.routeLookup.method.local.directories.list=myDirJdbc |
| telserver.routing.point.%routingPoint%.routeLookup.method.http.setting |
|
MAY BE UPDATED. If the route lookup method is "http", these settings define the configuration of the HTTP client making the request. telserver.routing.point.%routingPoint%.routeLookup.method.http.maxConnectionsPerHost=5 telserver.routing.point.%routingPoint%.routeLookup.method.http.connection.timeout=3000 telserver.routing.point.%routingPoint%.routeLookup.method.http.timeout=3000If a proxy is to be used to reach the HTTP server, these settings are to be defined : telserver.routing.point.%routingPoint%.routeLookup.method.http.proxy.host= telserver.routing.point.%routingPoint%.routeLookup.method.http.proxy.port= telserver.routing.point.%routingPoint%.routeLookup.method.http.proxy.authentication.username= telserver.routing.point.%routingPoint%.routeLookup.method.http.proxy.authentication.password=If authentication is to be used, these settings must be used : telserver.routing.point.%routingPoint%.routeLookup.method.http.authentication.username= telserver.routing.point.%routingPoint%.routeLookup.method.http.authentication.password= telserver.routing.point.%routingPoint%.routeLookup.method.http.authentication.realm=The last setting defines the HTTP URL containing the query of the destination in which the calling number will be added by TelServer. The response may be a list of numbers separated by a blank. Default value is none. Example: in the following example, a php file gives the destination given a "calling" parameter in the query. Note that there must not be any blank after the '=' sign. telserver.routing.point.%routingPoint%.routeLookup.method.http.request=http://routing_server/getDestination.php?calling= |
| telserver.routing.point.%routingPoint%.default_routes.distribution |
|
MAY BE UPDATED. This setting defines the default route distribution logic to apply if TelServer cannot provide the best skilled agent route or if this route is not applicable. The logic can be "pbx", "none", "cyclic", "sequential"or "most-idle". For an inbound routing point only, if the distribution is "none", it means that the call is automatically diverted to the default_routes list numbers while TelServer handles the agent state. If the distribution is "pbx", the PBX handles fully the distribution including the agent state. Otherwise, TelServer handles the distribution:
For an inbound routing point only, if there is a distribution defined and if no agents are ready, the call is queued on the routing point. Default value is "most-idle". Example: telserver.routing.point.myRoutingPoint.default_routes.distribution=most-idle |
| telserver.routing.point.%routingPoint%.default_routes.distribution.agents.list |
|
MAY BE UPDATED. This setting defines the list of agents handling calls for this routing point. This is normally defined through the directories but if an order should be applied, this setting defines the appropriate order. It is efficient only if the distribution is 'cyclic' or 'sequential'. This list takes precedence over the list defined by the directories if any. It is a comma separated list of agent numbers. Default value is none. Example: telserver.routing.point.myRoutingPoint.default_routes.distribution.agents.list=801,842,824,802 |
| telserver.routing.point.%routingPoint%.default_routes.queue_slot.list |
|
MAY BE UPDATED. This setting defines the route to apply if the queue can be controlled by TelServer through specific devices on the PBX (generally virtual devices). When needed, the first available queue slot will be used. The call is diverted to it and when an agent becomes ready the call will be transferred to it from that queue slot. The list can be a single number or a comma separated list of numbers. Default value is none. Example: telserver.routing.point.myRoutingPoint.default_routes.queue_slot.list=597,598 |
| telserver.routing.point.%routingPoint%.default_routes.queue_slot.device |
|
MAY BE UPDATED. This setting specifies the type of device of the queue slots. Queue slots can be 'alerting' when the call is left alerting on the device and then diverted to an agent or the failure route, or 'answering' when the call should be answered on the device and then transferred to an agent or the failure route. Default value is 'alerting'. Example: telserver.routing.point.myRoutingPoint.default_routes.queue_slot.device=alerting |
| telserver.routing.point.%routingPoint%.default_routes.queue_slot.device.answering.telephonyTone |
|
MAY BE UPDATED. This setting specifies the type of telephony tone should be applied on an 'answering' queue slot. This allows some PBX to play a message. Default value is none. Example: telserver.routing.point.myRoutingPoint.default_routes.queue_slot.device.answering.telephonyTone=9 |
| telserver.routing.point.%routingPoint%.default_routes.queue_slot.device.answering.telephonyTone.duration |
|
MAY BE UPDATED. This setting specifies the telephony tone duration on an 'answering' queue slot. The duration is given as is to the PBX, thus the unit is PBX specific. Default value is none. Example: telserver.routing.point.myRoutingPoint.default_routes.queue_slot.device.answering.telephonyTone.duration=100 |
| telserver.routing.point.%routingPoint%.default_routes.list |
|
MAY BE UPDATED. This setting defines the route to apply if no distribution is defined or if the queueing is impossible (it is not possible to leave the call on the routing point and no queue slot devices can be defined on the PBX). The call is then diverted on one of these numbers and there is no more control over it (in particular the call cannot be transferred to a ready agent if any). The list can be a single number or a comma separated list of numbers. Default value is none. Example: telserver.routing.point.myRoutingPoint.default_routes.list=500 |
| telserver.routing.point.%routingPoint%.failure_routes.slot.list |
|
MAY BE UPDATED. This setting defines the last route to apply if the default route is not applicable. If the PBX provides devices that can be controlled by TelServer (generally virtual devices), this setting allows to define the list of them. When needed, the first available slot will be used. The call is diverted to it and a message can be played on. The list can be a single number or a comma separated list of numbers. Default value is none. Example: telserver.routing.point.myRoutingPoint.failure_routes.slot.list=797,798 |
| telserver.routing.point.%routingPoint%.failure_routes.slot.device |
|
MAY BE UPDATED. This setting specifies the type of device of the failure slots. Failure slots can be 'alerting' when the call is left alerting on the device, or 'answering' when the call should be answered on the device and asked to play a message. Default value is 'alerting'. Example: telserver.routing.point.myRoutingPoint.failure_routes.slot.device=alerting |
| telserver.routing.point.%routingPoint%.failure_routes.slot.device.answering.telephonyTone |
|
MAY BE UPDATED. This setting specifies the type of telephony tone should be applied on an 'answering' failure slot. This allows some PBX to play a message. Default value is none. Example: telserver.routing.point.myRoutingPoint.failure_routes.slot.device.answering.telephonyTone=12 |
| telserver.routing.point.%routingPoint%.failure_routes.slot.device.answering.telephonyTone.duration |
|
MAY BE UPDATED. This setting specifies the telephony tone duration on an 'answering' failure slot. The duration is given as is to the PBX, thus the unit is PBX specific. Default value is none. Example: telserver.routing.point.myRoutingPoint.failure_routes.slot.device.answering.telephonyTone.duration=100 |
| telserver.routing.point.%routingPoint%.failure_routes.list |
|
MAY BE UPDATED. This setting defines the last route to apply if the default route is not applicable and if the PBX does not provide any controllable devices to play a message. The failure routes can be a single number or a comma separated list of numbers. If the failure route is rejected, the call should be handled by the PBX. Default value is none. Example: telserver.routing.point.myRoutingPoint.failure_routes.list=501 |
| telserver.routing.point.%routingPoint%.non_working_hours_routes.slot.list |
|
MAY BE UPDATED. This setting defines the route to apply when in non working hours. If the PBX provides devices that can be controlled by TelServer (generally virtual devices), this setting allows to define the list of them. When needed, the first available slot will be used. The call is diverted to it and a message can be played on. The list can be a single number or a comma separated list of numbers. Default value is none. Example: telserver.routing.point.myRoutingPoint.non_working_hours_routes.slot.list=795,796 |
| telserver.routing.point.%routingPoint%.non_working_hours_routes.slot.device |
|
MAY BE UPDATED. This setting specifies the type of device of the non working hours slots. None working hours slots can be 'alerting' when the call is left alerting on the device, or 'answering' when the call should be answered on the device and asked to play a message. Default value is 'alerting'. Example: telserver.routing.point.myRoutingPoint.non_working_hours_routes.slot.device=alerting |
| telserver.routing.point.%routingPoint%.non_working_hours_routes.slot.device.answering.telephonyTone |
|
MAY BE UPDATED. This setting specifies the type of telephony tone should be applied on an 'answering' non working hours slot. This allows some PBX to play a message. Default value is none. Example: telserver.routing.point.myRoutingPoint.non_working_hours_routes.slot.device.answering.telephonyTone=15 |
| telserver.routing.point.%routingPoint%.non_working_hours_routes.slot.device.answering.telephonyTone.duration |
|
MAY BE UPDATED. This setting specifies the telephony tone duration on an 'answering' non working hours slot. The duration is given as is to the PBX, thus the unit is PBX specific. Default value is none. Example: telserver.routing.point.myRoutingPoint.non_working_hours_routes.slot.device.answering.telephonyTone.duration=100 |
| telserver.routing.point.%routingPoint%.non_working_hours_routes.list |
|
MAY BE UPDATED. This setting defines the route to apply when in non working hours and if the PBX does not provide any controllable devices to play a message. The non working hours routes can be a single number or a comma separated list of numbers. If the non working hours route is rejected, the call should be handled by the PBX. Default value is none. Example: telserver.routing.point.myRoutingPoint.non_working_hours_routes.list=501 |
| telserver.routing.point.%routingPoint%.last_call_cache.enabled |
|
MAY BE UPDATED. This setting defines whether a cache can be used to route the call to the last agent that has been in communication with the same other party when this other party has no assigned agent. If an assigned agent is defined, the cache is not used and the calls will be routed to the assigned agent. Default value is "false". Example: telserver.routing.point.myRoutingPoint.last_call_cache.enabled=true |
| telserver.routing.point.%routingPoint%.last_call_cache.limit |
|
MAY BE UPDATED. This setting defines the limit size of the last call cache. Default value is 20. Example: telserver.routing.point.myRoutingPoint.last_call_cache.limit=20 |
| telserver.routing.point.%routingPoint%.last_call_cache.pattern |
|
MAY BE UPDATED. This setting defines the pattern of the numbers that will be cached. Default value is none meaning that all calls on agents with an open session are cached. NOTE: To cache only external calls a pattern must be defined. Example: telserver.routing.point.myRoutingPoint.last_call_cache.pattern=[0-9]{4,} |
| telserver.routing.point.%routingPoint%.statistics.reset.hour |
|
MAY BE UPDATED. This setting defines hours of the day when the statistics of the the routing point are reset. Resetting the statistics allows to get a view of a certain duration from the management or in backup files. Several hours can be defined separated by commas ','. It is in hour of the day in the 24-hour clock using pattern "hh:mm:ss" with optional 0 leading fields. Default is at 08H. Example: telserver.routing.point.myRoutingPoint.statistics.reset.hour=8 |
| telserver.routing.point.%routingPoint%.statistics.backup.hour |
|
MAY BE UPDATED. This setting defines hours of the day when the statistics of the the routing point saved to backup files. On non worked days, backup files are not saved. Several hours can be defined separated by commas ','. It is in hour of the day in the 24-hour clock using pattern "hh:mm:ss" with optional 0 leading fields. Default is none. Example: telserver.routing.point.myRoutingPoint.statistics.backup.hour=8 |
| telserver.routing.point.%routingPoint%.statistics.backup.path |
|
MAY BE UPDATED. This setting defines the directory path where the statistics of the the routing point are saved. The file is a csv file the name of which is "statistics-%service%-YYYY-MM-DD-HH-MM-SS.csv" where %service% is the name of the telserver.routing.point.%routingPoint%.service. Default is ${TelServer_HOME}/work/statistics. Example: telserver.routing.point.myRoutingPoint.statistics.backup.path=${TelServer_HOME}/work/statistics |
| telserver.routing.point.%routingPoint%.statistics.backup.emailing.enabled |
|
MAY BE UPDATED. This setting defines whether the statistics backup files are sent to the supervisor (telserver.routing.point.%routingPoint%.supervisor.email.tolist). Default is false. Example: telserver.routing.point.myRoutingPoint.statistics.backup.emailing.enabled=true |
| telserver.routing.point.%routingPoint%.statistics.incoming_call_immediate_abandon.timeout |
|
MAY BE UPDATED. This setting defines a timeout for ignoring within statistics the calls that are abandoned too fast. It is accurate in inbound routing only. Such calls will be counted as 'incoming calls' and 'immediately abandoned calls' but will be ignored in the other statistics. It is in milliseconds. Default is none. Example: telserver.routing.point.myRoutingPoint.statistics.incoming_call_immediately_abandon.timeout=3000 |
| telserver.routing.point.%routingPoint%.supervisor.email.address |
|
MAY BE UPDATED. It is the routing point supervisor's email address. It is used for sending statistics. Default value is none. Example: telserver.routing.point.myRoutingPoint.supervisor.email.address=peter.admin@thecompany.com |
| telserver.routing.point.%routingPoint%.supervisor.email.smtp.host |
|
MAY BE UPDATED. It is the smtp host address of the routing point supervisor email server. Default value is none. Example: telserver.routing.point.myRoutingPoint.supervisor.email.smtp.host=smtp.thecompany.com |
| telserver.routing.point.%routingPoint%.supervisor.email.smtp.port |
|
MAY BE UPDATED. It is the port used by the routing point supervisor email smtp server. Default value is 25. Example: telserver.routing.point.myRoutingPoint.supervisor.email.smtp.port=25 |
| telserver.routing.point.%routingPoint%.supervisor.email.from |
|
MAY BE UPDATED. It is the "from" field in the emails sent to the routing point supervisor. It must be an email address that doesn't need to be an existing email address but it must be a "well-formed" one. Default value is "TelServer@unigone.com". Example: telserver.routing.point.myRoutingPoint.supervisor.email.from=TelServer@unigone.com |
| telserver.routing.point.%routingPoint%.supervisor.email.tolist |
|
MAY BE UPDATED. It defines the list of addressees of the emails sent to the routing point supervisor by TelServer. The routing point supervisor email address (telserver.routing.point.%routingPoint%.supervisor.email.address) is automatically added to this list. It is a comma separated list. Default value is none so that only the routing point supervisor email address is included here. Example: telserver.routing.point.myRoutingPoint.supervisor.email.tolist=admin.assistant@thecompany.com |
| telserver.routing.point.%routingPoint%.supervisor.email.cclist |
|
MAY BE UPDATED. It defines the list of carbon-copy addressees of the emails sent to the routing point supervisor by TelServer. It is a comma separated list. Default is none. Example: telserver.routing.point.myRoutingPoint.supervisor.email.cclist=interestedby.TelServer@thecompany.com |
The following settings define the numbering rules to be applied so that numbers provided by the computer can be understood by the PBX and vice-versa. The settings make use of regular expressions. These settings are used to map numbers dialed at the computer into PBX 'normal' numbers and to map numbers provided by the PBX into 'normal' numbers for the computer. Indeed, numbers in the computer world are complete numbers (e.g. +33160126458) while the PBX doesn't automatically handle those numbers (it rather deals with 00160126458). Yet, those rules may also be defined for the TelServices gateway allowing the client to pass numbers without caring if they are analyzable by the PBX.
The 'convc2p' and 'convp2c' options of the command line apply conversion from a computer to a PBX number and a conversion from a PBX number to a computer number respectively. They can be used to test the numbering rules patterns off-line.
| telserver.pbx.numberingRules.specialNumbers.pattern |
|
MAY BE UPDATED. This setting defines special numbers that are to be treated as is, either from the PBX or from the computer. Note that it is not mandatory to define such numbers if they do not match other rules because they will be treated as is in the same manner. Default value is none. Example: this setting defines 112, 115 and 9 numbers as special numbers. telserver.pbx.numberingRules.specialNumbers.pattern=^112$, ^115$, ^9$ |
| telserver.pbx.numberingRules.computer2pbx.conversionPattern |
|
MAY BE UPDATED. This setting defines the rules to be applied to numbers when they are given by the computer before provided to the PBX. The setting is given as a regular expression for matching the number from the computer and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is that no patterns are defined. If the number does not match any pattern then it is provided as is to the PBX without any transformation (except removing non authorized characters such as the scheme if present 'tel:', the phone context ';phone-context=<descriptor>' and non dialable characters; dialable characters are +*#0123456789ABCD). Examples (french dial plan): some examples are given that may be used all together : # 1 - internal numbers with 4 digits starting optionally by '+' and followed with 6, 7 or 8 are to be passed to the PBX as is (after removing the '+' if any) telserver.pbx.numberingRules.computer2pbx.conversionPattern.1=^\+?([678][0-9]{3})$ > $1
# 2 - numbers optionally starting with + and then 3316012 and with 4 digits starting with 6, 7 or 8 are to be converted in the associated internal number telserver.pbx.numberingRules.computer2pbx.conversionPattern.2=^\\+?3316012([678][0-9]{3})$ > $1
# 3 - numbers optionally starting with + and then 33 then 9 digits are to be treated as national numbers (removing 33 and adding 00, assuming the first 0 is the outgoing prefix and the second 0 is the operator prefix) telserver.pbx.numberingRules.computer2pbx.conversionPattern.3=^\\+?33([0-9]{9})$ > 00$1
# 4 - numbers optionally starting with + and then not 33 (not 3 followed by any digit or 3 followed by any digit which is not a 3) plus more than 5 digits are converted to international numbers telserver.pbx.numberingRules.computer2pbx.conversionPattern.4=^\\+?(([^3][0-9])|(3[^3]))([0-9]{5,})$ > 000$1$4
|
| telserver.pbx.numberingRules.pbx2computer.conversionPattern |
|
MAY BE UPDATED. This setting defines the rules to be applied to numbers when they are given by the PBX before provided to the computer (meaning the client of TelServer). The settings is given as a regular expression for matching the number from the PBX and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is that no patterns are defined. If the number does not match any pattern then it is provided as is to the computer without any transformation. Examples (french dial plan): some examples are given that may be used all together : # 1 - internal numbers are converted to complete numbers adding national code and main number telserver.pbx.numberingRules.pbx2computer.conversionPattern.1=^([678][0-9]{3})$ > +3316012$1
# 1 - internal numbers may be simply converted adding a '+'
# 2 - national numbers are converted to complete numbers adding the + code and the national prefix removing the local access code (after the external prefix) telserver.pbx.numberingRules.pbx2computer.conversionPattern.2=^0[0-9]([0-9]{9})$ > +33$1
# 3 - international numbers are converted to complete numbers adding the + code and removing the international prefix telserver.pbx.numberingRules.pbx2computer.conversionPattern.3=^000([0-9]+)$ > +$1 |
TelServer can gather information from various sources to build an internal directory cache. This cache is used by the server to provide the name information from a number (allowing displaying the caller's name) and vice-versa a number information from a name (allowing calling by a name) and to route incoming calls to agents.
The sources from which TelServer extracts the information are, for example, the company LDAP directories or the company customers databases. It can also simply extracts information from a Microsoft Excel file. TelServer can define an indefinite number of sources.
A source is defined by a block of settings that needs to be given a name. Each setting is built on the following scheme : telserver.directory.%directory%.%sourceType%.%setting%, where %directory% is the name of the direectory,%sourceType% is either ldap, jdbc (for a database connection) or spreadsheet (for an Excel file or a csv file for example), and %setting% is the name of the setting.
At each start (or at further synchronization time), the server connects to the directory source and gets information that it stores locally.
The purposes of directories are: mapping numbers to names, mapping numbers to best skilled agents, mapping agent numbers to services, mapping calls to services or mapping calls to assigned agents and skills. Thus we can differentiate four kinds of directories:
A "number" directory contains numbers and associated names. It registers information organized as follows:
A "customer" directory is a "number" directory containing optionally names and containing optionally assigned agents and skills. It registers information organized as follows:
An "agent" directory is a "number" directory containing optionally names and containing services. This service information is used by the routing point defined with the same service name. This directory registers information organized as follows:
A "call" directory is a special directory that contain the list of calls to launch for an outbound campaign. This directory is used by the routing point defined for the outbound routing. This directory registers information organized as follows:
Note that the conversion patterns are to be defined to make each phone number match as issued by the PBX after application of the telserver.pbx.numberingRules.pbx2computer.conversionPattern (if any).
The settings for each source type of directory source are defined below:
| telserver.directory.searchNameResult.limit |
|
MAY BE UPDATED. This setting defines the maximum count of results a search by name request actually returns. Default value is 1000. Example: telserver.directory.searchNameResult.limit=1000 |
The following settings apply for a LDAP directory. For example, a Microsoft Active Directory (AD) is LDAP compliant. The examples given below can apply to a MS AD.
| telserver.directory.%directory%.ldap.provider.url |
|
MAY BE UPDATED. This setting defines the URL of the LDAP directory. It expects the url and the port (by default the port is 389). Default value is none. Example: this setting defines an Active Directory at address 192.168.0.10 on port 389. telserver.directory.myDirLDAP.ldap.provider.url=ldap://192.168.0.10:389 |
| telserver.directory.%directory%.ldap.authentication.method |
|
MAY BE UPDATED. This setting defines the type of authentication for the LDAP directory. It can be "none", "simple" or "strong". The most often used method is "simple" with a username and password. Generally, a username 'TelServer' can be defined within the LDAP directory and given a password; that user would then be used for authentication to the LDAP service. Default value is "simple". Example: telserver.directory.myDirLDAP.ldap.authentication.method=simple |
| telserver.directory.%directory%.ldap.authentication.username |
|
MAY BE UPDATED. This setting defines the username to be used according to the authentication method defined above. It should specify the identity of the principal for authenticating the caller to the LDAP service. The format of the principal depends on the authentication scheme. Example: this setting assumes a specific username 'TelServer' exists within the LDAP directory users in the 'mycompany.local' domain. telserver.directory.myDirLDAP.ldap.authentication.username=TelServer@mycompany.local |
| telserver.directory.%directory%.ldap.authentication.password |
|
MAY BE UPDATED. This setting defines the password for the previously defined username. The value of the property depends on the authentication scheme. For example, it could be a hashed password, clear-text password, key, certificate, and so on... Example: this setting assumes a clear text password that is defined within the LDAP directory. telserver.directory.myDirLDAP.ldap.authentication.password=secret |
| telserver.directory.%directory%.ldap.cache.size.limit |
|
MAY BE UPDATED. This setting defines maximum size of the cache. Default is 100000 entries. Example: telserver.directory.myDirLDAP.ldap.cache.size.limit=100000 |
| telserver.directory.%directory%.ldap.search_controls.inline_search.enabled |
|
MAY BE UPDATED. This setting defines if the directory search can be performed inline, that is by connecting to the LDAP directory at each request. Default is false. Example: telserver.directory.myDirLDAP.ldap.inline_search.enabled=false |
| telserver.directory.%directory%.ldap.search_controls.inline_search.cache.enabled |
|
MAY BE UPDATED. If the directory searches inline, this setting defines if the directory inline search result is stored in the cache. Default is true. Example: telserver.directory.myDirLDAP.ldap.inline_search.cache.enabled=true |
| telserver.directory.%directory%.ldap.search_controls.inline_search.cache.refresh.period |
|
MAY BE UPDATED. If the directory searches inline and caches results, this setting defines the period of the cache refreshment. At each period the cache it cleared. Default is 30 days. The unit is one day. Example: telserver.directory.myDirLDAP.ldap.inline_search.cache.refresh.period=30 |
| telserver.directory.%directory%.ldap.target_contexts |
|
MAY BE UPDATED. This setting defines the LDAP names of the contexts to search. The names must respect the LDAP naming conventions. The contexts can be given as a list separated by ";". Note : The LDAP naming convention orders components from right to left, delimited by the comma character (","). Thus the LDAP name cn=Rosanna Lee, o=Sun, c=US names an LDAP entry cn=Rosanna Lee, relative to the entry o=Sun, which in turn, is relative to c=us. The LDAP has the further rule that each component of the name must be a name/value pair with the name and value separated by an equals character ("="). Example: this setting assumes that information is to be found in two contexts ExternalUsers and Users within the mycompany.local domain. telserver.directory.myDirLDAP.ldap.target_contexts=CN=ExternalUsers,DC=mycompany,DC=local; CN=Users,DC=mycompany,DC=local |
| telserver.directory.%directory%.ldap.search_controls.name.attributes |
|
MAY BE UPDATED. This setting defines the LDAP attributes representing a name as defined within the context such as 'displayname' or 'cn' or 'sn'. Several can be provided ',' separated. Default is "displayname,cn,sn". Example: this setting defines the name attributes. telserver.directory.myDirLDAP.ldap.search_controls.name.attributes=displayname,cn |
| telserver.directory.%directory%.ldap.name.conversionPatterns |
|
MAY BE UPDATED. This setting defines the conversion patterns to apply for each name. The setting is given as a regular expression for matching the name from the directory source and a replacement string used to replace the matching name (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is none. Example: the following setting defines a pattern that removes the title at start of a name (Mr., Mrs...). telserver.directory.myDirLDAP.ldap.name.conversionPatterns=^(Mr|Mrs|Mme|Mlle|M\\.)\\.?\\s+(.*)$ > $2 |
| telserver.directory.%directory%.ldap.search_controls.company.attribute |
|
MAY BE UPDATED. This setting defines the LDAP attribute representing the company name as defined within the context. Default is none. Example: this setting defines the company attribute as 'company'. telserver.directory.myDirLDAP.ldap.search_controls.company.attribute=company |
| telserver.directory.%directory%.ldap.search_controls.extraData.attribute |
|
MAY BE UPDATED. This setting defines the LDAP attribute representing the extra data name as defined within the context. The extra data may be used as a special code for example; the content will be provided in the call events for each call where the user is involved. Default is none. Example: telserver.directory.myDirLDAP.ldap.search_controls.extraData.attribute= |
| telserver.directory.%directory%.ldap.search_controls.telephoneNumber.attributes |
|
MAY BE UPDATED. This setting defines the LDAP attributes representing main telephone numbers (generally the work phone numbers) as defined within the context. Several can be provided ',' separated. Default is "telephonenumber". Example: this setting defines the telephone number attribute as 'telephonenumber'. telserver.directory.myDirLDAP.ldap.search_controls.telephoneNumber.attributes=telephonenumber |
| telserver.directory.%directory%.ldap.search_controls.homePhoneNumber.attributes |
|
MAY BE UPDATED. This setting defines the LDAP attributes representing home phone numbers as defined within the context. Several can be provided ',' separated. Default is "homePhone". Example: this setting defines the home number attribute as 'homePhone'. telserver.directory.myDirLDAP.ldap.search_controls.homePhoneNumber.attributes=homePhone |
| telserver.directory.%directory%.ldap.search_controls.mobilePhoneNumber.attributes |
|
MAY BE UPDATED. This setting defines the LDAP attributes representing mobile phone numbers as defined within the context. Several can be provided ',' separated. Default is "mobile". Example: this setting defines the mobile number attribute as 'mobile'. telserver.directory.myDirLDAP.ldap.search_controls.mobilePhoneNumber.attributes=mobile |
| telserver.directory.%directory%.ldap.search_controls.ipPhoneNumber.attributes |
|
MAY BE UPDATED. This setting defines the LDAP attributes representing IP phone numbers as defined within the context. Several can be provided ',' separated. Default is "ipPhone". Example: this setting defines the mobile number attribute as 'ipPhone'. telserver.directory.myDirLDAP.ldap.search_controls.ipPhoneNumber.attributes=ipPhone |
| telserver.directory.%directory%.ldap.search_controls.phoneNumber.filter |
|
MAY BE UPDATED. This setting defines the LDAP filter to apply for a search in order to get the phone number / naming information. The LDAP syntax must be respected. All attributes defined above (for name, phone number and company) will be requested to the LDAP directory with this filter. From the results, the server will extract each attribute and store information locally. Default is "telephonenumber=*". Example: this setting defines the filter as "search for objects that contain a telephonenumber attribute or a homePhone attribute or a mobile attribute". telserver.directory.myDirLDAP.ldap.search_controls.phoneNumber.filter=(|(telephonenumber=*)(homePhone=*)(mobile=*)) |
| telserver.directory.%directory%.ldap.phoneNumber.conversionPatterns |
|
MAY BE UPDATED. This setting defines the conversion patterns to apply for each number. The setting is given as a regular expression for matching the number from the directory source and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. If the replacement string is empty this means that the number will be simply ignored. Note that if conversion patterns are defined, all whitespaces in the numbers are automatically removed before the application of the matching pattern and after the application (whether replacement occurs or not) all characters not in 0123456789 are removed.
The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is none. Example: the following setting defines a pattern that converts any number starting by a '0' followed by 9 digits into a normalized number adding '+33' at start, and a pattern that converts any number starting by '00' and followed by any number of digits into a normalized number adding '+' at start. The third rule allows to modify numbers like +39 (0) 12345678 into +39123456789 removing the brackets and digits inside. telserver.directory.myDirLDAP.ldap.phoneNumber.conversionPatterns.1=^0([0-9]{9})$
> +33$1 |
| telserver.directory.%directory%.ldap.synchronization.hour |
|
MAY BE UPDATED. This setting defines hours of the day when the local cache is resynchronized with the actual directory source. Several can be defined separated by commas ','. It is in hour of the day in the 24-hour clock using pattern "hh:mm:ss" with optional 0 leading fields. Default is none. Example: telserver.directory.myDirLDAP.ldap.synchronization.hour=0 |
| telserver.directory.%directory%.ldap.search_controls.timeout |
|
MAY BE UPDATED. This setting defines the timeout of a LDAP search request. It is in milliseconds. Default is 2000. Example: telserver.directory.myDirLDAP.ldap.search_controls.timeout=2000 |
The following settings apply to a JDBC database. JDBC (for Java DataBase Connectivity) is a programming interface that lets Java applications access a database via the SQL language. JDBC is the Java counterpart of Microsoft's ODBC. Provided the JDBC driver is available for the database (or ODBC since the JDBC-ODBC driver can be used) , all the database can be accessed this way by TelServer.
| telserver.directory.%directory%.jdbc.driver.classname |
|
MAY BE UPDATED. This setting defines the driver class name to use to connect to the SGDB. Generally a JDBC driver is provided for each SGDB vendor. The class must be found in the classpath of TelServer. Default value is none. Example: this setting defines the driver class name for an ODBC-JDBC driver. It thus allows to access a ODBC compliant SGDB such Microsoft Access for example. This driver is in the classpath by default if using a Sun JVM. telserver.directory.myDirJdbc.jdbc.driver.classname=sun.jdbc.odbc.JdbcOdbcDriver |
| telserver.directory.%directory%.jdbc.connection.url |
|
MAY BE UPDATED. This setting defines the URL to connect to the database. It must be in the form jdbc:subprotocol:subname where subprotocol:subname is the name of the pilot to be used. Default value is none. Example: this setting defines an URL for a Microsoft Access database stored within a file Contacts.accdb (Access 2007). The pilot used is the odbc pilot and the extra information is provided to the pilot. telserver.directory.myDirJdbc.jdbc.connection.url=jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\\sgdb\\Contacts.accdb |
| telserver.directory.%directory%.jdbc.connection.username |
|
MAY BE UPDATED. This setting defines the username to be used to connect the SGDB. Example: this setting defines no username to connect to the sgdb. telserver.directory.myDirJdbc.jdbc.connection.username= |
| telserver.directory.%directory%.jdbc.connection.password |
|
MAY BE UPDATED. This setting defines the password for the previously defined username. Example: this setting defines no password to connect to the SGDB. telserver.directory.myDirJdbc.jdbc.connection.password= |
| telserver.directory.%directory%.jdbc.cache.size.limit |
|
MAY BE UPDATED. This setting defines maximum size of the cache. Default is 100000 entries. Example: telserver.directory.myDirJdbc.jdbc.cache.size.limit=100000 |
| telserver.directory.%directory%.jdbc.search_controls.inline_search.enabled |
|
MAY BE UPDATED. This setting defines if the directory search can be performed inline, that is by connecting to the JDBC directory at each request. Default is false. Example: telserver.directory.myDirJdbc.jdbc.inline_search.enabled=false |
| telserver.directory.%directory%.jdbc.search_controls.inline_search.cache.enabled |
|
MAY BE UPDATED. If the directory searches inline, this setting defines if the directory inline search is stored in the cache. Default is true. Example: telserver.directory.myDirJdbc.jdbc.inline_search.cache.enabled=true |
| telserver.directory.%directory%.jdbc.search_controls.inline_search.cache.refresh.period |
|
MAY BE UPDATED. If the directory searches inline and caches results, this setting defines the period of the cache refreshment. At each period the cache it cleared. Default is 30 days. The unit is one day. Example: telserver.directory.myDirJdbc.jdbc.inline_search.cache.refresh.period=30 |
| telserver.directory.%directory%.jdbc.connection.persistence.enabled |
|
MAY BE UPDATED. This setting defines if the JDBC connection will persist or is created at each query/update. Default value is true. Example: telserver.directory.myDirJdbc.jdbc.connection.persistence.enabled=true |
| telserver.directory.%directory%.jdbc.sql_queries |
|
MAY BE UPDATED. This setting defines the SQL queries to request either customer or calls information from the SGDB. The syntax must respect the SQL conventions. The queries can be given as a list separated by ";". For a "call" directory, there should be a single query and it can contain the variable "%name%" that will be replaced by the campaign name (provided by the startRoutingPoint request from the supervisor application). Example for a customer directory: this setting assumes that information is to be found in the "contacts" table. telserver.directory.myDirJdbc.jdbc.sql_queries=SELECT * FROM contacts Example for a call directory: this setting assumes that information is to be found in the "campaigns" table. telserver.directory.myDirJdbc.jdbc.sql_queries=SELECT * FROM campaigns WHERE campaign='%name%' Example for an agent directory involved in an outbound campaign: this setting assumes that information is to be found in the "campaignagents" table. telserver.directory.myDirJdbc.jdbc.sql_queries=SELECT * FROM campaignagents WHERE campaign='%name%' |
| telserver.directory.%directory%.jdbc.sql_update_call |
|
MAY BE UPDATED. For a "call" directory only, this setting defines the SQL update to update the calls table disposition field after a call is qualified in the SGDB table. The syntax must respect the SQL conventions. Example: this setting assumes that information is to be found in the campaigns table. telserver.directory.myDirJdbc.jdbc.sql_update_call=UPDATE campaigns SET disposition=%disposition% where key='%callKey%' |
| telserver.directory.%directory%.jdbc.sql_update_init |
|
MAY BE UPDATED. For a "call" directory only, this setting defines the SQL update to initialize the calls table disposition field in the SGDB table. The syntax must respect the SQL conventions. Example: this setting assumes that information is to be found in the campaigns table. telserver.directory.myDirJdbc.jdbc.sql_update_init=UPDATE campaigns SET disposition=NULL where validity=1 and updated=1 and campaign='%name%' |
| telserver.directory.%directory%.jdbc.value.separator |
|
MAY BE UPDATED. This setting defines the separator used to separate several values within a single column value. This may be used for column like assignedAgent or skill for example. Default is none. telserver.directory.myDirJbdc.jdbc.value.separator=; |
| telserver.directory.%directory%.jdbc.name.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the names (starting from '1' as in SQL) within the result set obtained from the SQL query. If several SQL queries have been defined, then the name columns can be defined for each of them separated by "&&" (one at most per SQL query). The '+' character can be used to concatenate names extracted from several columns (to concatenate the first name and the name for example); the names are concatenated after insertion of a space character between them. Default is none. Example: this setting defines the name is to be built by concatenating the column 3 and 4 within the results set obtained by the SQL query. telserver.directory.myDirJbdc.jdbc.name.columns=3+4 |
| telserver.directory.%directory%.jdbc.name.conversionPatterns |
|
MAY BE UPDATED. This setting defines the conversion patterns to apply for each name. The setting is given as a regular expression for matching the name from the directory source and a replacement string used to replace the matching name (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. The settings is applied after the optional concatenation of several columns. Default is none. Example: the following setting defines a pattern that removes the title at start of a name (Mr., Mrs...). telserver.directory.myDirJdbc.jdbc.name.conversionPatterns=^(Mr|Mrs|Mme|Mlle|M\\.)\\.?\\s+(.*)$ > $2 |
| telserver.directory.%directory%.jdbc.company.columns |
|
MAY BE UPDATED. This setting defines the column index where to find the company name (starting from '1' as in SQL) within the result set obtained from the SQL query. If several SQL queries have been defined, then the company can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.company.columns=2 |
| telserver.directory.%directory%.jdbc.rawPhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the raw telephone numbers (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the telephone number columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. Raw phone number settings should be used if the table contains one column for the phone number and one column specifying the type of the phone number. If not, and if the table structure contains number specific columns, the telephoneNumber, homePhoneNumber, mobilePhoneNumber or ipPhoneNumber settings must be used. Default is none. Example: telserver.directory.myDirJdbc.jdbc.rawPhoneNumber.columns=7 |
| telserver.directory.%directory%.jdbc.rawPhoneNumber_type.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the raw telephone number type (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the telephone number columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. The raw phone number type value should be consistent with telserver.directory.%directory%.jdbc.rawPhoneNumber.types. Default is none. Example: telserver.directory.myDirJdbc.jdbc.rawPhoneNumber_type.columns=8 |
| telserver.directory.%directory%.jdbc.rawPhoneNumber.types |
|
MAY BE UPDATED. This setting defines the types as integers of the raw phone number in the order work, home, mobile and ip. Default is 0,1,2,3. This means that a value of 0 is for a work phone number, 1 for a home phone number, 2 for a mobile one and 3 for an ip one. Example: telserver.directory.myDirJdbc.jdbc.rawPhoneNumber.types=0,1,2,3 |
| telserver.directory.%directory%.jdbc.telephoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the telephone numbers or work phone numbers (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the telephone number columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.telephoneNumber.columns=7 |
| telserver.directory.%directory%.jdbc.homePhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the home phone numbers (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the home phone number columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.homePhoneNumber.columns=8 |
| telserver.directory.%directory%.jdbc.mobilePhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the mobile phone numbers (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the mobile phone number columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.mobilePhoneNumber.columns=9 |
| telserver.directory.%directory%.jdbc.ipPhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the IP phone numbers (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the IP phone number columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.ipPhoneNumber.columns= |
| telserver.directory.%directory%.jdbc.phoneNumber.conversionPatterns |
|
MAY BE UPDATED. This setting defines the conversion patterns to apply for each number. The setting is given as a regular expression for matching the number from the directory source and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. If the replacement string is empty this means that the number will be simply ignored. Note that if conversion patterns are defined, all whitespaces in the numbers are automatically removed before the application of the matching pattern and after the application (whether replacement occurs or not) all characters not in 0123456789 are removed. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is none. Example: the following setting defines a pattern that converts any number starting by a '0' followed by 9 digits into a normalized number adding '+33' at start, and a pattern that converts any number starting by '00' and followed by any number of digits into a normalized number adding '+' at start. The third rule allows to modify numbers like +39 (0) 12345678 into +39123456789 removing the brackets and digits inside. telserver.directory.myDirJdbc.jdbc.phoneNumber.conversionPatterns.1=^0([0-9]{9})$
> +33$1 |
| telserver.directory.%directory%.jdbc.extraData.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the extra data associated to a customer (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the assigned agent columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. The extra data may be used as a customer code for example; the content will be provided in the call events for each call where the customer is involved. Default is none. Example: telserver.directory.myDirJdbc.jdbc.extraData.columns= |
| telserver.directory.%directory%.jdbc.category.columns |
|
MAY BE UPDATED. For a "customer" directory, this setting defines the columns indexes where to find the category of the customer's calls (starting from '1' as in SQL) within the result set obtained from the SQL query. The category must be a number:
The value can be a separated value contain several actual values. Default is 0. Example: telserver.directory.myDirExcel.spreadsheet.category.columns= |
| telserver.directory.%directory%.jdbc.assignedAgent.columns |
|
MAY BE UPDATED. For a "customer" or a "call" directory, this setting defines the columns indexes where to find the assigned agents (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the assigned agent columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. The conversion patterns are not applied to these numbers. This setting should be defined for a directory containing customer information only and it is exclusive with the telserver.directory.%directory%.jdbc.service.columns setting. The value can be a separated value contain several actual values. Default is none. Example: telserver.directory.myDirJdbc.jdbc.assignedAgent.columns= |
| telserver.directory.%directory%.jdbc.assignedAgentRequired.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find if the assigned agents is required or not (starting from '1' as in SQL) within the result set obtained from the SQL query. A negative value can be used to indicate that no columns are defined. If the content of the column is "1", the value is 'true' otherwise it is 'false'. Default is none. Example: telserver.directory.myDirJdbc.jdbc.assignedAgentRequired.columns= |
| telserver.directory.%directory%.jdbc.service.columns |
|
MAY BE UPDATED. For an "agent" directory, this setting defines the columns indexes where to find the services dealt by the number (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the service columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. This setting should be defined for a directory containing agent information only and it is exclusive with the telserver.directory.%directory%.jdbc.assignedAgent.columns setting. Default is none. Example: telserver.directory.myDirJdbc.jdbc.service.columns= |
| telserver.directory.%directory%.jdbc.skill.columns |
|
MAY BE UPDATED. For an "agent" or a "customer" directory, this setting defines the columns indexes where to find the skills respectively got by the agent or required by the customer (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. If several SQL queries have been defined, then the skill columns can be defined for each of them separated by "&&" (one at most per SQL query). A negative value can be used to indicate that no columns are defined. The value can be a separated value contain several actual values. Default is none. Example: telserver.directory.myDirJdbc.jdbc.skill.columns= |
| telserver.directory.%directory%.jdbc.callKey.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find the key of the call to be launched (starting from '1' as in SQL) within the result set obtained from the SQL query; they are separated by ','. The key used mainly to perform an efficient SQL update defined by telserver.directory.%directory%.jdbc.sql_update_call. Default is none. Example: telserver.directory.myDirJdbc.jdbc.callKey.columns= |
| telserver.directory.%directory%.jdbc.appointmentDate.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find the appointment date (if any) when the call is to be launched (starting from '1' as in SQL) within the result set obtained from the SQL query. A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.appointmentDate.columns= |
| telserver.directory.%directory%.jdbc.appointmentDate.format |
|
MAY BE UPDATED. For a "call" directory, this setting defines the appointment date format. Default is "yyyy-MM-dd". Example: telserver.directory.myDirJdbc.jdbc.appointmentDate.format=yyyyMMdd |
| telserver.directory.%directory%.jdbc.appointmentTime.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find the appointment time (if any) when the call is to be launched (starting from '1' as in SQL) within the result set obtained from the SQL query. A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirJdbc.jdbc.appointmentTime.columns= |
| telserver.directory.%directory%.jdbc.appointmentTime.format |
|
MAY BE UPDATED. For a "call" directory, this setting defines the appointment time format. Default is "HH:mm:ss". Example: telserver.directory.myDirJdbc.jdbc.appointmentTime.format=HHmmss |
| telserver.directory.%directory%.jdbc.validity.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find if the call is valid (to be launched or not) or not (starting from '1' as in SQL) within the result set obtained from the SQL query. If the content of the column is "1", the value is 'true' otherwise it is 'false'. Default is none. Example: telserver.directory.myDirJdbc.jdbc.validity.columns= |
| telserver.directory.%directory%.jdbc.updated.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find if the call is to be considered or not after an update of the directory or not (starting from '1' as in SQL) within the result set obtained from the SQL query. If the content of the column is "1", the value is 'true' otherwise it is 'false'. Default is none. Example: telserver.directory.myDirJdbc.jdbc.validity.columns= |
| telserver.directory.%directory%.jdbc.synchronization.hour |
|
MAY BE UPDATED. This setting defines hours of the day when the local cache is resynchronized with the actual directory source. Several can be defined separated by commas ','. It is in hour of the day in the 24-hour clock using pattern "hh:mm:ss" with optional 0 leading fields. Default is none. Example: telserver.directory.myDirJdbc.jdbc.synchronization.hour=0 |
The following settings apply to a spreadsheet such as a Microsoft Excel file (Excel 2003 and upper), or a csv file.
| telserver.directory.%directory%.spreadsheet.path |
|
MAY BE UPDATED. This setting defines the path of the spreadsheet file. For a "call" directory, the calls of a campaign are to be fully contained in a dedicated file, thus the setting can contain the variable "%name%" that will be replaced by the campaign name (provided by the startRoutingPoint request from the supervisor application). Default value is none. Note that the ${TelServer_HOME} may be used. Example: this setting defines the path of a file name customers.xls (an Excel file) relatively to the location where TelServer has been launched. telserver.directory.myDirExcel.spreadsheet.path=../db/customers.xls Example: for a "call" directory, this setting defines the path of a file name %name%.xls (an Excel file) relatively to the location where TelServer has been launched. For a campaign named 'firstcampaign', the file will be 'firstcampaign.xls'. telserver.directory.myDirExcel.spreadsheet.path=../db/%name%.xls |
| telserver.directory.%directory%.spreadsheet.type |
|
MAY BE UPDATED. This setting defines the type of the spreadsheet file. It may be "EXCEL" or "CSV" (ignoring case). If it is not provided explicitely, the extension of the file is used. ".xls" or ".xslx" lead to an EXCEL type, ".csv" leads to a CSV type. Default value is none and the extension of the file path is used. Example: telserver.directory.myDirExcel.spreadsheet.type=EXCEL |
| telserver.directory.%directory%.ldap.cache.size.limit |
|
MAY BE UPDATED. This setting defines maximum size of the cache. Default is 100000 entries. Example: telserver.directory.myDirExcel.spreadsheet.cache.size.limit=100000 |
| telserver.directory.%directory%.spreadsheet.column.separator |
|
MAY BE UPDATED. This setting defines the column separator of the spreadsheet file. It is used only when the type is CSV. Default value is ";". Example: telserver.directory.myDirExcel.spreadsheet.column.separator=; |
| telserver.directory.%directory%.spreadsheet.commentRow.char |
|
MAY BE UPDATED. This setting defines the char a row must begin with to be ignored as a comment in the spreadsheet file. It is used only when the type is CSV. Default value is "#". Example: telserver.directory.myDirExcel.spreadsheet.commentRow.char=# |
| telserver.directory.%directory%.spreadsheet.value.separator |
|
MAY BE UPDATED. This setting defines the separator used to separate several values within a single column value. This may be used for column like assignedAgent or skill for example. Default is none. telserver.directory.myDirExcel.spreadsheet.value.separator=; |
| telserver.directory.%directory%.spreadsheet.sheetNames |
|
MAY BE UPDATED. This setting defines the sheet names within the Excel workbook. There can be several sheet names which can be given as a list separated by "&&". A sheet name can be a number starting from '0' (for the first sheet of the workbook). Example: this setting defines the first and the second sheet. telserver.directory.myDirExcel.spreadsheet.sheetNames=0&&1 |
| telserver.directory.%directory%.spreadsheet.startingRows |
|
MAY BE UPDATED. This setting defines the starting row index (starting from '0') within the associated sheet. If several sheets have been defined, then one starting row can be defined for each of them separated by "&&" (one at most per sheet). Default is 0. Example: telserver.directory.myDirExcel.spreadsheet.startingRows=1&&1 |
| telserver.directory.%directory%.spreadsheet.name.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the names (starting from '0') within the sheet. If several sheets have been defined, then the name columns can be defined for each of them separated by "&&" (one at most per sheet). The '+' character can be used to concatenate names extracted from several columns (to concatenate the first name and the name for example); the names are concatenated after insertion of a space character between them. Default is none. Example: this setting defines the name is to be built by concatenating the column 3 and 4 for the first sheet defined while using column 3 for the second sheet defined. telserver.directory.myDirExcel.spreadsheet.name.columns=3+4&&3 |
| telserver.directory.%directory%.spreadsheet.name.conversionPatterns |
|
MAY BE UPDATED. This setting defines the conversion patterns to apply for each name. The setting is given as a regular expression for matching the name from the directory source and a replacement string used to replace the matching name (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. The settings is applied after the optional concatenation of several columns. Default is none. Example: the following setting defines a pattern that removes the title at start of a name (Mr., Mrs...). telserver.directory.myDirExcel.spreadsheet.name.conversionPatterns=^(Mr|Mrs|Mme|Mlle|M\\.)\\.?\\s+(.*)$ > $2 |
| telserver.directory.%directory%.spreadsheet.company.columns |
|
MAY BE UPDATED. This setting defines the column index where to find the company name (starting from '0') within the sheet. If several sheets have been defined, then the company name can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.company.columns=2 |
| telserver.directory.%directory%.spreadsheet.rawPhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the raw telephone numbers (starting from '0') within the sheet. If several sheets have been defined, then the company name can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. Raw phone number settings should be used if the table contains one column for the phone number and one column specifying the type of the phone number. If not, and if the table structure contains number specific columns, the telephoneNumber, homePhoneNumber, mobilePhoneNumber or ipPhoneNumber settings must be used. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.rawPhoneNumber.columns=7 |
| telserver.directory.%directory%.spreadsheet.rawPhoneNumber_type.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the raw telephone number type (starting from '0') within the sheet. If several sheets have been defined, then the company name can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. A negative value can be used to indicate that no columns are defined. The raw phone number type value should be consistent with telserver.directory.%directory%.spreadsheet.rawPhoneNumber.types. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.rawPhoneNumber_type.columns=8 |
| telserver.directory.%directory%.spreadsheet.rawPhoneNumber.types |
|
MAY BE UPDATED. This setting defines the types as integers of the raw phone number in the order work, home, mobile and ip. Default is 0,1,2,3. This means that a value of 0 is for a work phone number, 1 for a home phone number, 2 for a mobile one and 3 for an ip one. Example: telserver.directory.myDirExcel.spreadsheet.rawPhoneNumber.types=0,1,2,3 |
| telserver.directory.%directory%.spreadsheet.telephoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the telephone numbers or work phone numbers (starting from '0') within the sheet; they are separated by ',' . If several sheets have been defined, then the telephone number columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.telephoneNumber.columns=2&&2 |
| telserver.directory.%directory%.spreadsheet.homePhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the home phone numbers (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the home phone number columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.homePhoneNumber.columns=4&&4 |
| telserver.directory.%directory%.spreadsheet.mobilePhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the mobile phone numbers (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the mobile phone number columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.mobilePhoneNumber.columns=9 |
| telserver.directory.%directory%.spreadsheet.ipPhoneNumber.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the IP phone numbers (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the IP phone number columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.ipPhoneNumber.columns= |
| telserver.directory.%directory%.spreadsheet.phoneNumber.conversionPatterns |
|
MAY BE UPDATED. This setting defines the conversion patterns to apply for each number. The setting is given as a regular expression for matching the number from the directory source and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. If the replacement string is empty this means that the number will be simply ignored. Note that if conversion patterns are defined, all whitespaces in the numbers are automatically removed before the application of the matching pattern and after the application (whether replacement occurs or not) all characters not in 0123456789 are removed. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is none. Example: the following setting defines a pattern that converts any number starting by a '0' followed by 9 digits into a normalized number adding '+33' at start, and a pattern that converts any number starting by '00' and followed by any number of digits into a normalized number adding '+' at start. The third rule allows to modify numbers like +39 (0) 12345678 into +39123456789 removing the brackets and digits inside. telserver.directory.myDirExcel.spreadsheet.phoneNumber.conversionPatterns.1=^0([0-9]{9})$
> +33$1 |
| telserver.directory.%directory%.spreadsheet.extraData.columns |
|
MAY BE UPDATED. This setting defines the columns indexes where to find the extra data associated to a customer (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the extraData columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. The conversion patterns are not applied to these numbers. The extra data may be used as a customer code for example; the content will be provided in the call events for each call where the customer is involved. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.extraData.columns= |
| telserver.directory.%directory%.spreadsheet.category.columns |
|
MAY BE UPDATED. For a "customer" directory, this setting defines the category of the customer's calls (starting from '0') within the sheet. The category must be a number:
The value can be a separated value contain several actual values. Default is 0. Example: telserver.directory.myDirExcel.spreadsheet.category.columns= |
| telserver.directory.%directory%.spreadsheet.assignedAgent.columns |
|
MAY BE UPDATED. For a "customer" directory, this setting defines the columns indexes where to find the assigned agents (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the assigned agent columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. The conversion patterns are not applied to these numbers. This setting should be defined for a directory containing customer information only and it is exclusive with the telserver.directory.%directory%.spreadsheet.service.columns setting. The value can be a separated value contain several actual values. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.assignedAgent.columns= |
| telserver.directory.%directory%.spreadsheet.assignedAgentRequired.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find if the assigned agents is required or not (starting from '0') within the sheet. A negative value can be used to indicate that no columns are defined. If the content of the column is "1", the value is 'true' otherwise it is 'false'. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.assignedAgentRequired.columns= |
| telserver.directory.%directory%.spreadsheet.service.columns |
|
MAY BE UPDATED. For an "agent" directory, this setting defines the columns indexes where to find the service dealt by the number (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the servicecolumns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. This setting should be defined for a directory containing agent information only and it is exclusive with the telserver.directory.%directory%.spreadsheet.assignedAgent.columns setting. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.service.columns= |
| telserver.directory.%directory%.spreadsheet.skill.columns |
|
MAY BE UPDATED. For an "agent" or a "customer" directory, this setting defines the columns indexes where to find the skills respectively got by the agent or required by the customer (starting from '0') within the sheet; they are separated by ','. If several sheets have been defined, then the skill columns can be defined for each of them separated by "&&" (one at most per sheet). A negative value can be used to indicate that no columns are defined. The value can be a separated value contain several actual values. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.skill.columns= |
| telserver.directory.%directory%.spreadsheet.callKey.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find the key of the call to be launched (starting from '0') within the sheet. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.callKey.columns= |
| telserver.directory.%directory%.spreadsheet.appointmentDate.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find the appointment date (if any) when the call is to be launched (starting from '0') within the sheet. A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.appointmentDate.columns= |
| telserver.directory.%directory%.spreadsheet.appointmentDate.format |
|
MAY BE UPDATED. For a "call" directory, this setting defines the appointment date format. Default is "yyyy-MM-dd". Example: telserver.directory.myDirExcel.spreadsheet.appointmentDate.format=yyyyMMdd |
| telserver.directory.%directory%.spreadsheet.appointmentTime.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find the appointment time (if any) when the call is to be launched (starting from '0') within the sheet. A negative value can be used to indicate that no columns are defined. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.appointmentTime.columns= |
| telserver.directory.%directory%.spreadsheet.appointmentTime.format |
|
MAY BE UPDATED. For a "call" directory, this setting defines the appointment time format. Default is "HH:mm:ss". Example: telserver.directory.myDirExcel.spreadsheet.appointmentTime.format=HHmmss |
| telserver.directory.%directory%.spreadsheet.validity.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find if the call is valid (to be launched or not) or not (starting from '0') within the sheet. If the content of the column is "1", the value is 'true' otherwise it is 'false'. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.validity.columns= |
| telserver.directory.%directory%.spreadsheet.updated.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes where to find if the call is to be considered or not after an update of the directory or not (starting from '0') within the sheet. If the content of the column is "1", the value is 'true' otherwise it is 'false'. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.validity.columns= |
| telserver.directory.%directory%.spreadsheet.disposition.columns |
|
MAY BE UPDATED. For a "call" directory, this setting defines the columns indexes of the disposition column (starting from '0') within the sheet. The disposition is updated after a call is qualified. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.disposition.columns= |
| telserver.directory.%directory%.spreadsheet.synchronization.hour |
|
MAY BE UPDATED. This setting defines hours of the day when the local cache is resynchronized with the actual directory source. Several can be defined separated by commas ','. It is in hour of the day in the 24-hour clock using pattern "hh:mm:ss" with optional 0 leading fields. Default is none. Example: telserver.directory.myDirExcel.spreadsheet.synchronization.hour=0 |
These settings define high level control upon the link with each PBX.
TelServer can support several links and then be connected to more than one PBX at a time.
If only one link must be established then the PBX selection settings are optional. PBX settings for the single PBX can be defined in "TelServer.properties" file.
If several PBX links must be established then the PBX selection settings are mandatory. PBX settings for each PBX must be defined in a separate file.
PBX selection settings define the location of each properties file
and the rules to select one PBX. The logic to assign a link
depends on the extension on behalf of which a request has to be
performed. Extensions patterns can be defined to assign that extension
to the appropriate PBX.
PBX selection settings starts with "telserver.pbxlink.%name%" where "%name%" is the name of one PBX. The name is up to the user (with no whitespaces). It will be printed in the log files as well as on the management page.
NOTE: if a single PBX link is to be established, these settings are not mandatory but they can be defined however for the single PBX and the PBX settings can be defined in a separate file also.
| telserver.pbxlink.%name%.properties |
|
This setting defines the file location of the file containing the PBX settings for the PBX named %name%. The file is searched in the current directory or if not found in the same directory as TelServer configuration file. Default value is none. Example: suppose two PBXs must be supported, one named NexSpan and another one name Alcatel : telserver.pbxlink.NexSpan.properties=nexspan.properties telserver.pbxlink.Alcatel.properties=alcatel.properties |
| telserver.pbxlink.%name%.extensionsPattern |
|
MAY BE UPDATED. This setting defines the patterns for assigning the PBX named %name% to an extension. When a request must be handled by TelServer, it knows the extension which is at the origin of that request. That number is checked through the various patterns to assign the PBX link so that the request is sent through that link. The extensions patterns is defined through regular expression. Several patterns can be defined adding ".%index%" to the setting where %index% is an index starting from 1 (for example telserver.pbxlink.NexSpan.extensionsPattern.1). NOTE 1: The expression can be applied to an extension but also to a TEL URI (aka Line URI) since with SIP/CSTA the MonitorStart contains the TEL URI (the case with SIP/CSTA gateway). The selection depends on the TEL URI configuration which can be by E164 number (tel: +33160127787) or by phone-context (tel:6811;phone-context=nexspanXL@mycompany.com). See the example below. NOTE 2 : working with several PBX assumes that one internal number on a PBX is unique for all PBX (the dialplan must be uniform). Default value is none meaning that all extensions will match. Example 1: in the case of the assignment is made by extension numbers (the case with TelServices gateway), suppose two PBXs must be supported, one NexSpan with all extensions starting with 6 and one Alcatel with all extensions starting with 7: telserver.pbxlink.NexSpan.extensionsPattern=6[0-9]{3} telserver.pbxlink.Alcatel.extensionsPattern=7[0-9]{3} Example 2: in the case of the assignment is made by extension TEL URI with E164 numbers, suppose two PBXs must be supported, one NexSpan with TEL URI such as tel:+331601273xx (where xx goes from 00 to 99 for example) and one Alcatel with TEL URI such as tel:+331601282xx : telserver.pbxlink.NexSpan.extensionsPattern=.*331601273[0-9]{2}$ telserver.pbxlink.Alcatel.extensionsPattern=.*331601282[0-9]{2}$ Example 3: in the case of the assignment is made by extension TEL URI with phone-context, suppose two PBXs must be supported, one NexSpan with all extensions TEL URI in the phone context 'phone-context=nexspanXL@mycompany.com' (for example TEL URI is tel:6xx;phone-context=nexspanXL@mycompany.com where xx is from 00 to 99) and one Alcatel with all extensions TEL URI in the phone context 'phone-context=alcatelOXO@mycompany.com': telserver.pbxlink.NexSpan.extensionsPattern=.*phone-context=nexpanXL.* telserver.pbxlink.Alcatel.extensionsPattern=.*phone-context=alcatelOXO.* |
| telserver.pbxlink.%name%.stand-by.pbxlink.name |
|
This setting allows definition of a stand-by link for the PBX link (known as the main link). This may be useful in situation where 2 CTI entry points or 2 network interfaces can be defined on the PBX network. If the IP path to the first CTI entry point fails, the other path may still be working and the PBX link defined as the 'stand-by' link may become the actual link. This way the CI connection to the PBX is still functional. This is not possible with every PBX. Default value is none. telserver.pbxlink.NexSpan1.stand-by.pbxlink.name=Nexspan2 |
| telserver.pbxlink.%name%.stand-by.switch_over_on_main_pbxlink_recovery.enabled |
|
This defines whether the main link is automatically switched active again when recovering from error (if possible). The stand-by link then becomes inactive. Default value is true. telserver.pbxlink.NexSpan1.stand-by.switch_over_on_main_pbxlink_recovery.enabled=true |
| telserver.pbxlink.%name%.stand-by.reset_call_contexts_on_switch_over.enabled |
|
This defines whether the call contexts are reset when switching from one stand-by or main link to the other. Default value is false. telserver.pbxlink.NexSpan1.stand-by.reset_call_contexts_on_switch_over.enabled=false |
| telserver.pbxlink.dynamic_properties.enabled |
|
This setting allows the dynamic definition PBX properties. When a client connects to the CSTAp2 gateway, it can define the PBX properties dynamically through the extension mechanism of CSTA phase II. Dynamic PBX properties explains how to set those properties. Default value is false. telserver.pbxlink.dynamic_properties.enabled=false |
The following chapters explain how to configure the PBX link.
The following table gives the list of supported PBXs and the CTI protocol used by TelServer. The link points to a paragraph where the minimal configuration for the PBX is explained.
|
PBX
|
PBX
type
|
Protocol
|
| Aastra MX-ONE / Aastra MD-Evolution | PBX_AASTRA_MX_ONE / PBX_AASTRA_MD_EVOLUTION | CSTA phase I |
| Aastra Nexspan / Aastra 5000 | PBX_AASTRA_NEXSPAN / PBX_AASTRA_5000 | CSTA phase II |
| Aastra OpenCom | PBX_AASTRA_OPENCOM | CSTA phase III |
| Alcatel-Lucent Omni PCX Entreprise (OXE/4400) | PBX_ALCATEL_OMNI_PCX_ENTREPRISE | CSTA phase II |
| Alcatel-Lucent Omni PCX Office (OXO) | PBX_ALCATEL_OMNI_PCX_OFFICE | CSTA phase I |
| Asterisk | PBX_ASTERISK | Asterisk Manager API |
| Avaya Communication Manager (AE Services) | PBX_AVAYA_AES | JTAPI |
| Cisco Call Manager | PBX_CISCO | JTAPI |
| Cisco Communications Manager Express | PBX_CISCO_CME | CSTA phase III XML over SIP (ECMA TR87) |
| Siemens Hipath | PBX_SIEMENS_HIPATH | CSTA phase II |
| Tadiran Coral IP | PBX_TADIRAN_CORAL | CSTA phase I |
The main settings to define in the configuration file are the type of the PBX (pbxlink.pbx.type) and the PBX IP address (pbxlink.pbx.address).
Other settings may be required but are generally set according to pbxlink.pbx.type. The following chapters explain the minimal configuration required for each supported PBX. Some PBX require configuration within the PBX itself. For example, CSTA enabled PBX usually require that a license for CSTA be installed. The way to do so is out of the scope of this document and the user shall refer to the PBX vendor.
| PBX_AASTRA_MX_ONE / PBX_AASTRA_MD_EVOLUTION | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_AASTRA_MX_ONE
It may require an Application Link server. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_AASTRA_NEXSPAN / PBX_AASTRA_5000 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CSTA licenses are requested on the PBX. Minimal configuration: pbxlink.pbx.type=PBX_AASTRA_NEXSPAN
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_AASTRA_OPENCOM | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_AASTRA_OPENCOM The protocol used is CSTA and the login is defined either using the PBX administrator login and password. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_ALCATEL_OMNI_PCX_ENTREPRISE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CSTA licenses are requested on the PBX. Minimal configuration: pbxlink.pbx.type=PBX_ALCATEL_OMNI_PCX_ENTREPRISE
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_ALCATEL_OMNI_PCX_OFFICE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
CSTA licenses are requested on the PBX. Minimal configuration: pbxlink.pbx.type=PBX_ALCATEL_OMNI_PCX_OFFICE
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_ASTERISK | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Asterisk version 1.6 or upper is required. Minimal configuration: pbxlink.pbx.type=PBX_ASTERISK The connection to Asterisk is made through the Asterisk Manager API protocol which requires to be enabled within Asterisk. manager.conf To enable the Manager API on Asterisk, you must edit your manager.conf configuration file (or the appropriate file depending on the Asterisk distribution used) and restart Asterisk. The manager.conf also contains constraints on the range of IP addresses that are allowed to connect and username and passwords for authentication. A sample might look like: [general] enabled=yes port=5038 [admin] This will enable the Manager API, allow access from any IP address using the username "admin" and the password "secret". All manager API commands registered by Asterisk modules have a privilege group associated to it. In order a manager API user can issue a command, it has to have read or write privilege to the appropriate group. The write option should also contain 'originate'. The userid and password should be reported in the TelServer.properties using: pbxlink.pbx.user.name=admin sip.conf The file sip.conf (or the appropriate file depending on the Asterisk distribution used) must be edited to add callevents=yes. [general] callevents=yes Contexts The contexts of the Asterisk dialplan used to initiate calls which are defined in extension.conf (or the appropriate file depending on the Asterisk distribution used) should be also defined in TelServer.properties: pbxlink.pbx.asterisk.contexts.list=default,from-internal Conferences To allow the ConferenceCall which conferences an active call and an held call, a list of specific meetme room numbers must be defined. Each meetme number in the list must allow the user to enter the conference without requesting a password. The numbers count should be equal to the number of simultaneous conferences desired. Upon ConferenceCall requests, TelServer will find a free meetme room within this list to redirect all concerned users to it. pbxlink.pbx.asterisk.conferences.list=200,201 Devices Since Asterisk Manager API does not offer the same level of control than with a CSTA or JTAPI PBX, some call control features are natively not enabled. TelServer may however enhance the call control support for SIP phones which provide a direct (HTML or XML...) interface. This may require some configuration on the device itself (to allow TelServer to pilot the device). The table exposes the supported SIP phones and the configuration required if any, as well as recommendations that should be followed to ensure the expected behavior works correctly:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_AVAYA_AES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_AVAYA_AES The protocol used to dialog with the AVAYA Communication Manager Application Enablement Services is JTAPI. The <jtapi>.jar file must be obtained previously. The jar file should be installed in TelServer installation 'lib' directory replacing the existing jtapi.jar (containing only the JTAPI interfaces), or at least the AVAYA jtapi.jar must be added in TelServer classpath defined in TelServer.bat or TelServer.sh file. The pbxlink.pbx.address setting must be defined with the IP address of the Application Enablement Services server. TelServer.properties should contain the JTAPI provider defined by pbxlink.pbx.jtapi.peer=com.avaya.jtapi.tsapi.TsapiPeer. If you don't know the path of the AVAYA JTAPI service, TelServer will get it through the IP address and port. If you know it, you can add the path of the JTAPI service like: pbxlink.pbx.jtapi.service=AVAYA#S8500PE#CSTA#MY-AES. If you have provided the JTAPI service, you can also edit the TSAPI.PRO file in the lib/ext directory of TelServer. It should be edited according to the Avaya specifications. This may be useful for providing alternate services to the preferred service (the one given by pbxlink.pbx.jtapi.service) using for example: Alternates(AVAYA#S8500PE#CSTA#MY-AES)=AVAYA#S8500PE#CSTA#MY-AES2. Additionally, the user name (pbxlink.pbx.user.name) and password (pbxlink.pbx.user.password) must also be defined, corresponding to the user created in the AES Administration. That user defined within the AES must be enabled for call control. It is recommended to avoid the ';' character in the user name and password because the PBX JTAPI provider string uses ';' as separator. The choice of receiving global or local to the node call ID is configured through pbxlink.pbx.csta.use_pbx_global_callid.enabled. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_CISCO | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_CISCO The protocol used to dialog with the CISCO PBX is JTAPI. The jtapi.jar file can be obtained from the CallManager using http(s)://ip_address_communication_manager/plugins/jtapi.jar. The jar file should be installed in TelServer installation 'lib' directory replacing the existing jtapi.jar (containing only the JTAPI interfaces), or at least the CISCO jtapi.jar must be added in TelServer classpath defined in TelServer.bat or TelServer.sh file. TelServer.properties should contain the JTAPI provider defined by pbxlink.pbx.jtapi.peer=com.cisco.jtapi.CiscoJtapiPeerImpl. The pbxlink.pbx.address setting must be defined with the IP address of the CallManager server. Additionally, the user name (pbxlink.pbx.user.name) and password (pbxlink.pbx.user.password) must also be defined, corresponding to the user created in the Cisco CallManager Administration. That user defined within the Cisco must be able to control all devices that need to be controlled by TelServer. Thus, when creating the user for TelServer within Cisco Administration, in the 'Devices Information block', you should:
It is recommended to avoid the ';' character in the user name and password because the PBX JTAPI provider string uses ';' as separator. The choice of receiving global or local to the node call ID is configured through pbxlink.pbx.csta.use_pbx_global_callid.enabled.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_CISCO_CME | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_CISCO_CME
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_SIEMENS_HIPATH | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_SIEMENS_HIPATH The protocol used is CSTA and the login is defined either using the PBX administrator login and password, either with a special login sequence which can be defined using an empty system password setting (pbxlink.pbx.system.password=).
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PBX_TADIRAN_CORAL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Minimal configuration: pbxlink.pbx.type=PBX_TADIRAN_CORAL
|
The following explains each setting that can used to tune the PBX link configuration.
| pbxlink.pbx.type |
|
This setting defines the type of the PBX. It should at least be defined with pbxlink.pbx.address so that TelServer can connect to the PBX. The type can be (use the exact strings):
Default values of other PBX settings depend on this setting. However those settings may be refined manually. Example: pbxlink.pbx.type=PBX_AASTRA_MATRA_NEXSPAN |
| pbxlink.pbx.address |
|
This setting defines the IP address of the PBX. It should at least be defined with pbxlink.pbx.type so that TelServer can connect to the PBX. Example: pbxlink.pbx.address=192.168.0.7 |
| pbxlink.pbx.port |
|
It is the CSTA port on the PBX. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.port=3211 |
| pbxlink.local_bind_address |
|
This setting tells TelServer to listen to the specific IP address when opening the PBX connection. Default is none, meaning TelServer will listen to all interfaces. Example: pbxlink.local_bind_address=192.168.1.5 |
| pbxlink.local_bind_port |
|
This setting tells TelServer to listen to the specific port when opening the PBX connection. This setting is efficient if pbxlink.local_bind_address is defined. Default is none. Example: pbxlink.local_bind_port=3212 |
| pbxlink.pbx.system.password |
|
Some PBX may require an authentication. This setting defines the system password while one can use the pbxlink.pbx.user.name and pbxlink.pbx.user.password authentication. Note that user.name/password authentication will take precedence over the system.password if both information is provided. Default value is none. Example: pbxlink.pbx.system.password=admin |
| pbxlink.pbx.user.name |
|
The setting defines the user name for authentication. Default value is none. Example: pbxlink.pbx.user.name=admin |
| pbxlink.pbx.user.password |
|
This setting defines the user password if the user.name has also been defined for authentication. Default value is none. Example: pbxlink.pbx.user.password=admin |
| pbxlink.messages.fifo.size |
|
This setting defines the size of the FIFO used to receive messages from the PBX. Messages are stored in the fifo waiting for treatment by the application. Default value is 100. Example: pbxlink.messages.fifo.size=100 |
| pbxlink.pbx.pduDelimiter |
|
It defines PDU delimiter that is used to delimit TCP/IP packets containing CSTA PDUs. The values can be (use the exact string) :
Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.pduDelimiter=TWO_BYTES_LENGTH_DELIMITER |
| pbxlink.pbx.audit.enabled |
|
It defines whether audit is to be performed by TelServer. An audit of the link is useful to check the PBX is still listening to TelServer. Since problems may occur either on the TCP link (physical deconnection for example), either from the PBX side (failure for example), TelServer must be aware of them to undertake appropriate measures. If the audit is enabled, when TelServer will detect a link inactivity for a certain time defined by pbxlink.pbx.audit.timeout, TelServer will send a CSTA SystemStatus request to the PBX, the PBX must then answer by a result indicating it is in the appropriate state. If there is no result after pbxlink.pbx.audit.failedAuditMaxRetry, then the link shall be declared out of service. TelServer may then try to re-establish the link after telserver.pbxlink.automatic_restart_after_failure.timeout. If ever the failure persists, the Administrator should be enclined to undertake a "manual" action. Supported values are "true" and "false". Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.audit.enabled=true |
| pbxlink.pbx.audit.timeout |
|
It defines the timeout of inactivity that makes TelServer triggers the audit. It is in seconds. Default value is 60 seconds. Example: pbxlink.pbx.audit.timeout=60 |
| pbxlink.pbx.audit.period |
|
It defines the period of audit request sending. It is in seconds. Default value is 30 seconds. Example: pbxlink.pbx.audit.period=30 |
| pbxlink.pbx.audit.failedAuditMaxRetry |
|
It defines the audit maximum retry count, after audit has been retried this number of time and always with no acknowledgement from the PBX, then the CSTA link is declared out of service. Default value is 2. Example: pbxlink.pbx.audit.failedAuditMaxRetry=2 |
| pbxlink.pbx.serviceMessageAckTimeout |
|
It defines the timeout in milliseconds the server waits for an ack to a service message (a service message is all those messages that are to be sent outside the CSTA scope such as a special sequence for establishing the session for example). When the timeout occurs the server considers the link as being out of service. Default value is 5000. The minimum value is 500. Example: pbxlink.pbx.serviceMessageAckTimeout=5000 |
| pbxlink.pbx.numberingRules.pbx2computer.conversionPattern |
|
MAY BE UPDATED. This setting defines the rules to be applied to numbers provided to the PBX if they must be specifically formatted. The rules should provide a dialing number. The setting is given as a regular expression for matching the number from the computer and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is that no patterns are defined. Example: assuming a PBX provides numbers formatted like <xxx;term1> where xxx is the number and term1 is a terminal identifier, the following rules extracts only the number. pbxlink.pbx.numberingRules.pbx2computer.conversionPattern.3=^<([0-9]+);.*$ > $1
|
| pbxlink.pbx.numberingRules.computer2pbx.conversionPattern |
|
MAY BE UPDATED. This setting defines the rules to be applied to numbers to be provided to the PBX. The settings is given as a regular expression for matching the number from the PBX and a replacement string used to replace the matching number (capturing groups are allowed using $n for the capturing group n). The separator ">" (or ">>") is used to separate the matching regular expression and the replacement string. The setting can be a list of such patterns given with an index number, the rules are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default is that no patterns are defined. Example: assuming a PBX that accepts only Tel URL such as "tel:xxxx". pbxlink.pbx.numberingRules.computer2pbx.conversionPattern.1=^([0-9]+)$ > tel:$1
|
| pbxlink.pbx.display_names.enabled |
|
It defines whether the display names provided by the PBX (if they are provided) are to be used. If they are used, the search through the directory is not performed. Supported values are "true" and "false". Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.display_names.enabled=false |
| pbxlink.pbx.diverting_slot.list |
|
It defines a list, comma separated, of devices numbers that can be used to achieve call diversion on some destinations when the PBX reject doing so. For example, diversion to an external number is not always possible by call control on the PBX. Defining such numbers allows TelServer to divert the call to the first available device, answer the call on it and then transfer the call to the requested destination. The destination is given by a pattern pbxlink.pbx.diverting_slot.use_on_divert.pattern. Default value is none. Example: pbxlink.pbx.diverting_slot.list=588,589 |
| pbxlink.pbx.diverting_slot.use_on_divert.pattern |
|
This setting defines the destinations when a diversion should use a diverting slot. The setting is given as a regular expression for matching the destination number. The setting can be a list of such patterns given with an index number, the patterns are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default value is none. Example: pbxlink.pbx.diverting_slot.use_on_divert.pattern=^[0-9]{5,}$ |
| pbxlink.pbx.csta.version |
|
It defines the version of CSTA to be used. It can be (use the exact string) :
Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.version=CSTA_PHASE_II |
| pbxlink.pbx.csta.acse.enabled |
|
It defines whether ACSE should be used to establish the CSTA link to the PBX. Supported values are "true" and "false". Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.acse.enabled=false |
| pbxlink.pbx.csta.acse.application_context_name |
|
It defines the application-context-name component (defined as Application-context-name ::= OBJECT IDENTIFIER) in the ACSE AARQ-apdu. Although it is normalized by CSTA, PBX manufacturers sometimes change this value. The setting is given as an OBJECT IDENTIFIER written as a string where each arc is separated by dots. Default value is "1.3.12.0.180.1". Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.acse.application_context_name=1.3.12.0.180.1 |
| pbxlink.pbx.csta.acse.called_AP_title |
|
It defines the called_AP_title component (defined as AP-title-form2 ::= OBJECT IDENTIFIER) in the ACSE AARQ-apdu. The setting is given as an OBJECT IDENTIFIER written as a string where each arc is separated by dots. Default value is none. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.acse.called_AP_title=1.3.12.0.180.1 |
| pbxlink.pbx.csta.ecma-354.enabled |
|
It defines whether ECMA 354 specifying the application session estalishment should be used to establish the CSTA link to the PBX. This can be used if pbxlink.pbx.csta.version is CSTA_PHASE_III_XML. Supported values are "true" and "false". Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.ecma-354.enabled=false |
| pbxlink.pbx.csta.supportedServices.default / pbxlink.pbx.csta.supportedEvents.default |
|
These settings define the services and events the PBX is supposed to handle. These settings may be useful for the SIP/CSTA gateway in case the PBX is not able to provide the service or an identical one, or to override the service given by the PBX. Normally, the service is mapped to an ACSE request/result but if the ACSE is not enabled or unable to provide the service (this is the case if the cstaVersion is CSTA_PHASE_I because there is no standard means to get the information defined in the ECMA standard). These settings allow to define default values that will be used to give the response to the CSTAp3XML GetCSTAFeatures service. In addition, the pbxlink.pbx.csta.supportedServices.default setting can be used for the TelServices gateway (as well as for the SIP/CSTA gateway) to enable or not specific services for the end user. The default values are given in the examples below. Examples: To define the default supported services : pbxlink.pbx.csta.supportedServices.default=\ <supportedServices>\ <systemStatServList><requestSystemStatus/></systemStatServList>\ <monitoringServList><monitorStart/><monitorStop/></monitoringServList>\ <callControlServList><alternateCall/><answerCall/><clearConnection/><conferenceCall/><consultationCall/>\ <deflectCall/><holdCall/><makeCall/><reconnectCall/><retrieveCall/><singleStepConference/><singleStepTransfer/>\ <transferCall/>\ </callControlServList>\ <logicalServList><getDoNotDisturb/><getForwarding/><setDoNotDisturb/><setForwarding/></logicalServList>\ </supportedServices> To define the default supported events : pbxlink.pbx.csta.supportedEvents.default=\ <supportedEvents>\ <callControlEvtsList><conferenced/><connectionCleared/><delivered/><diverted/>\ <established/><failed/><held/><originated/><queued/><retrieved/><transferred/>\ </callControlEvtsList>\ <callAssociatedEvtsList><serviceCompletionFailure/></callAssociatedEvtsList>\ <logicalEvtsList><doNotDisturb/><forwarding/></logicalEvtsList>\ </supportedEvents> |
| pbxlink.pbx.csta.snapshotDevice.enabled |
|
It defines whether a SnapshotDevice is allowed. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.snapshotDevice.enabled=true |
| pbxlink.pbx.csta.snapshotDevice_at_monitorStart.enabled |
|
It defines whether a SnapshotDevice is allowed after a MonitorStart. Some PBX policy is to report events after a MonitorStart only when the device has gone into the iddle state but not before (even if the MonitorStart is done). For example, if a device is in communication and a MonitorStart is requested, the PBX will not report the event signalling the end of that communication. In such a situation, a SnapshotDevice request may not be accurate because the existing communication will never be removed. This setting allows controlling the SnapshotDevice. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.snapshotDevice_at_monitorStart.enabled=true |
| pbxlink.pbx.csta.strict_call_model.enabled |
|
It defines whether the strict CSTA call model is used. In the strict call model, Transfer/Conference/Reconnect/Alternate are authorized with any active and held calls, and not only for calls that are bound within a consultation call context. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.strict_call_model.enabled=true |
| pbxlink.pbx.csta.two_calls_conference_model.enabled |
|
It defines whether the conference model differs from the regular CSTA conference model. The CSTA regular call model specifies that a conference is represented by a call and one connection to that call per involved device. This implies that a device has got a single connection to the conference. In the "two_calls_conference_model", the device controller of the conference stills holds two connections to the conference (with the same call identifier) and is then able to perform an AlternateCall or a ReconnectCall or a TransferCall. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.two_calls_conference_model.enabled=false |
| pbxlink.pbx.csta.force_consultation_on_new_call.enabled |
|
It defines whether a new call, while an existing call is running, should be considered as a consultation call. Normally, it is considered as new call appearance. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.force_consultation_on_new_call.enabled=false |
| pbxlink.pbx.csta.force_immediate_forward_result.enabled |
|
It defines whether the SetFeature/Forward Immediate On or Off is overriden by the server. True means that the request is intercepted and immediately answered back with a positive ReturnResult while the actual request is still sent to the PBX. The return (either ReturnResult or Error) from the PBX will then be ignored. This is useful for PBX that would provide error for activating/deactivating a forward that is already activated/deactived; a better behavior is simply to answer a positive result in such a case. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.force_immediate_forward_result.enabled=false |
| pbxlink.pbx.csta.force_immediate_forward_event.enabled |
|
It defines whether the Forwarding Immediate On or Off event is overriden by the server. True means that a SetFeature/Forward/Immediate request is intercepted and that on a positive result from the PBX, the adequate event is simulated as if the PBX has sent it. This is useful for PBX that do not provide immediate forwarding events. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.force_immediate_forward_event.enabled=false |
| pbxlink.pbx.csta.single_step_transfer_simulation.enabled |
|
It defines whether the SingleStepTransfer is simulated by a ConsultationCall followed by a TransferCall. This is helpful when the PBX supports only CSTA phase I. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.single_step_transfer_simulation.enabled=false |
| pbxlink.pbx.csta.single_step_transfer_simulation.transfer_on_Established.enabled |
|
It defines whether the SingleStepTransfer simulation implies a TransferCall only after the Established event indicating that the transferred to device has answered the call. Default value depends is false which means the as soon as the Delivered event is received the call is transferred. Example: pbxlink.pbx.csta.single_step_transfer_simulation.transfer_on_Established.enabled=false |
| pbxlink.pbx.csta.single_step_conference_simulation.enabled |
|
It defines whether the SingleStepConference is simulated by a ConsultationCall followed by a ConferenceCall. This is helpful when the PBX supports only CSTA phase I. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.single_step_conference_simulation.enabled=false |
| pbxlink.pbx.csta.single_step_conference_simulation.conference_on_Established.enabled |
|
It defines whether the SingleStepConference simulation implies a ConferenceCall only after the Established event indicating that the added device has answered the call. It is useful when the PBX does not accept to conference calls that are not 'connected'. Default value depends is false which means the as soon as the Delivered event is received the call is conferenced. Example: pbxlink.pbx.csta.single_step_conference_simulation.conference_on_Established.enabled=false |
| pbxlink.pbx.csta.monitorStart_at_agentLogin.enabled |
|
It defines whether the MonitorStart can be started only when the agent logs on. This is applicable only if the PBX reports a system service notifying that the agent logs on without being monitored previously. Alcatel PBX allow such behavior. If this setting is true, TelServer listens to specific information from the PBX stating that an agent logs on (and off). When the information is notified, TelServer sends the monitorStart to the PBX. When the agent logs off, the monitor is stopped. Default value depends on pbxlink.pbx.type setting. Example: pbxlink.pbx.csta.monitorStart_at_agentLogin.enabled=false |
| pbxlink.pbx.csta.generate_crossRefId_as_ascii.enabled |
|
It defines whether the CSTA crossRefID should be generated as being the bytes from the ascii number or considering the number is the hexadecimal value (adding the char 'F' at the end if needed). The second option (setting being false) is possible if the dialing number consists of numeric digits only while the first option can be used in all cases. Default value is true. Example: pbxlink.pbx.csta.generate_crossRefId_from_ascii.enabled=true |
| pbxlink.pbx.csta.use_pbx_global_callid.enabled |
|
It defines whether the CSTA call reference is set with the global call ID provided by the PBX link (if it does). This may be useful if the PBX link handles several PBX. Default value is false which means that the local call ID provided by the PBX is used. To allow the global call Id, it may require a specific configuration on the PBX. Example: pbxlink.pbx.csta.use_pbx_global_callid.enabled=false |
| pbxlink.pbx.sip.session_timer.period |
|
It defines the SIP session timer if pbxlink.pbx.csta.version is CSTA_PHASE_III_XML_OVER_SIP. It is in seconds. Default value if applicable is 1800. Example: pbxlink.pbx.sip.session_timer.period=1800 |
| pbxlink.pbx.sip.uri.host |
|
It defines the SIP URI of the host if pbxlink.pbx.csta.version is CSTA_PHASE_III_XML_OVER_SIP. Default value if applicable is the local address. Example: pbxlink.pbx.sip.uri.host=192.168.0.20 |
| pbxlink.pbx.asterisk.contexts.list |
|
It defines the Asterisk dialplan contexts used to initiate calls. The context of a controlled phone may be provided alternatively in the phone number passed to TelServer (for example a tel URI tel:11;ext=Context.11;context=Context can be used), in which case the given context is used first. Default value is none. Example: pbxlink.pbx.asterisk.contexts.list=default,from-internal |
| pbxlink.pbx.asterisk.conferences.list |
|
It defines the Asterisk conferences number that TelServer can use when the user requests a ConferenceCall for conferencing an held and an active call. Natively, Asterisk uses meetme rooms for conferencing. A ConferenceCall request will redirect held, active and local users to a free meetme room among those defined in the list. Each meetme number in the list must allow the user to enter the conference without requesting a password. It is optional. Default value is none. Example: pbxlink.pbx.asterisk.conferences.list=200,201,202 |
| pbxlink.pbx.asterisk.conference_setup.timeout |
|
It defines the maximum timeout to establish an Asterisk conference. It is the maximum time needed to get the first MeetMeJoin event after redirecting the active channel to the meetme room. Default value is 5000 milliseconds. Example: pbxlink.pbx.asterisk.conference_setup.timeout=5000 |
| pbxlink.pbx.asterisk.db.dnd.family |
|
It defines the Asterisk database family used for the Do Not Disturb. It is optional. Default value is none. It is DND for FreePbx for example. Example: pbxlink.pbx.asterisk.db.dnd.family=DND |
| pbxlink.pbx.asterisk.db.dnd.family.on_value |
|
It defines the value that indicates a DND "on" in the Asterisk database. Default value is "YES". It is "YES" for FreePbx for example. Example: pbxlink.pbx.asterisk.db.dnd.family.on_value=YES |
| pbxlink.pbx.asterisk.db.callForwardImmediate.family |
|
It defines the Asterisk database family used for the Call Forward Immediate (or Call Forward All). It is optional but if set, all callForward settings are mandatory. Default value is none. It is CF for FreePbx for example. Example: pbxlink.pbx.asterisk.db.callForwardImmediate.family=CF |
| pbxlink.pbx.asterisk.db.callForwardBusy.family |
|
It defines the Asterisk database family used for the Call Forward Busy. It is optional but if set, all callForward settings are mandatory. Default value is none. It is CFB for FreePbx for example. Example: pbxlink.pbx.asterisk.db.callForwardBusy.family=CFB |
| pbxlink.pbx.asterisk.db.callForwardNoAnswer.family |
|
It defines the Asterisk database family used for the Call Forward No Answer. It is optional but if set, all callForward settings are mandatory. Default value is none. It is CFU for FreePbx for example. Example: pbxlink.pbx.asterisk.db.callForwardNoAnswer.family=CFU |
| pbxlink.pbx.asterisk.SIPPhoneGateway.enabled |
|
It defines whether the SIP phone gateway is enabled. This gateway is useful for some SIP phones such as Snom phones which are able to provide 'call' information to TelServer. The information is used to allow specific features (such as HoldCall/AnswerCall...) that are not efficient otherwise. Default value is false. Example: pbxlink.pbx.asterisk.SIPPhoneGateway.enabled=false |
| pbxlink.pbx.asterisk.SIPPhoneGateway.port |
|
This setting defines the local TCP port for the SIPPhone gateway. Optionnally one can precise the the bind address of the TCP port (i.e. the server will listen only to the specified port on this IP address). The bind address can be used on a multi-homed host for a server that will only accept connect requests to one of its addresses. Default port is 8084. Examples: For specifying a listening port for all IP addresses of the machine : pbxlink.pbx.asterisk.SIPPhoneGateway.port=8084 For specifying a listening port for all IP addresses of the machine with a bind address : pbxlink.pbx.asterisk.SIPPhoneGateway.port=8084,192.168.0.2 |
| pbxlink.pbx.asterisk.SIPPhoneGateway.port.protocol |
|
This setting defines the protocol to be used on the TCP port. It can be TCP, SSL or TLS (ignoring case). To define a secure gateway, please refer to the chapter "Secure gateway configuration". Default protocol is TCP. Example: pbxlink.pbx.asterisk.SIPPhoneGateway.port.protocol=TCP |
| pbxlink.pbx.asterisk.SIPPhoneGateway.port.keystore.path |
|
This setting defines the keystore path when port protocol is SSL or TLS. Default path is ${TelServer_HOME}/work/TelServer.jks. Example: pbxlink.pbx.asterisk.SIPPhoneGateway.port.keystore.path=${TelServer_HOME}/work/TelServer.jks |
| pbxlink.pbx.asterisk.SIPPhoneGateway.port.keystore.password |
|
This setting defines the password of the keystore. Default is 'unigone'. Example: pbxlink.pbx.asterisk.SIPPhoneGateway.port.keystore.password=unigone |
| pbxlink.pbx.asterisk.SIPPhoneGateway.port.keystore.key.password |
|
This setting defines the password of the certificate key in the keystore. Default is 'telserver'. Example: pbxlink.pbx.asterisk.SIPPhoneGateway.port.keystore.key.password=telserver |
| pbxlink.pbx.asterisk.ignore_events_on_dialed_extension.pattern |
|
This setting defines the patterns of extensions defined in the dialplan for which no events should be reported. It is useful in a dual forking configuration in a MOCS environment because the dialplan has normaly configured a dual Dial one to the SIP trunk to the Mediation Server and one to the Asterisk SIP device. Entering the pattern of the SIP trunk in this setting prevents the Dial to the SIP trunk to report any event. The setting is given as a regular expression for matching the dialed extensions. The setting can be a list of such patterns given with an index number, the patterns are treated in the given order. Leading and trailing whitespaces are ignored. Be careful to escape the '\' character used to escape the regular expressions characters. Default value is none. Example: pbxlink.pbx.asterisk.ignore_events_on_dialed_extension.pattern.1= |
| pbxlink.pbx.jtapi.peer |
|
It defines the JTAPI peer as a Java class name. NOTE that the jar file containing the class should be in the classpath. The simpler is to replace the jtapi.jar file in the lib directory of the distribution. Default value is none. Example: pbxlink.pbx.jtapi.peer=com.cisco.jtapi.CiscoJtapiPeerImpl |
| pbxlink.pbx.jtapi.service |
|
It defines the JTAPI service that is provided to the peer to get an appropriate provider. It is optional and depends on the JTAPI implementation. Default value is none. Example: pbxlink.pbx.jtapi.service=AVAYA#S8500PE#CSTA#MY-AES |
| pbxlink.pbx.jtapi.request.timeout |
|
It defines the JTAPI request timeout. It is provided to the JTAPI implementation, assuming that it provides a means to define this timeout.If the implementation does not provide a means to set this value, this setting is ignored. Default value is 5 seconds. Example: pbxlink.pbx.jtapi.request.timeout=5 |
This uses JMX (for Java Management eXtension). JMX is a common standard way to manage Java applications. It installs a http server supervising TelServer in order it can be accessed through a web browser either locally or from a remote machine (provided the defined port is made visible).
The remote management settings define the port, username and password that may be used to connect to the http server controlling TelServer remote management.
In the following we suppose the IP address of the machine where TelServer runs is TelServermachineIP (note that it could be its network name if any), TelServer remote management port is 8083.
To remotely manage TelServer, the user has to :
This will lead to a standard HTML interface allowing access to TelServer remote management. The first page invites to enter the management server.
The management view has two functions: it presents some pieces of information and allows some operations (that are actions that the user can invoke and that will interact with TelServer).
The page in thus divided into two parts:
The 'reload' control includes a text field for entering a reload period and a manual "Reload" button. Originally, the reload period is set to zero indicating that the content is not refreshed. Clicking the reload button forces the page to reload, thereby updating all of the attribute values displayed. If you have entered a reload period, clicking the button begins automatic reloading with the given period. The reload period must be greater than 10 seconds.
The information part is a table containing all pieces of information exposed by the server. For each piece of information, this table lists its name and its current value (a short description is given for each one).
If the page is no more available it means that TelServer is no more running.
PBX link state:
This gives the current state of the PBX link. The different states may be:
TelServices gateway:
This gives the state of the TelServices gateway:
SIP/CSTA gateway:
This gives the state of the SIP/CSTA gateway:
CSTAp2 gateway:
This gives the state of the CSTAp2 gateway:
Sessions:
This gives the list of clients' phone numbers. The clients must have opened a session (either by TelServices or by SIP/CSTA). It also reports the snapshot of existing calls per sessions.The state of existing calls are indicated. The states are :
Routing points:
This gives the state of the routing points.
Directories cache:
This gives the state of the directories cache.
Database connection state:
This gives the state of the database connection.
Configuration:
This gives the full path to the configuration file.
Logging level:
This gives the level of logging defined by the configuration or set by the Administrator. It can be OFF, FATAL, ERROR, WARN, INFO, DEBUG or ALL.
Last start time:
This gives the time the server has been started at.
Used memory within JVM:
This gives the amount of memory used within the Java Virtual Machine and the amount of memory allocated to the JVM.
Version:
This gives the software version of TelServer.
License:
This gives information about the content of the license.
Warnings:
This gives indication about potential warnings if any.
The operations part contains all the operations that can be invoked to modifiy the server behavior, or to get advanced runtime information.
Each operation gives a link to its description.
Here are below the operations offered to remote invocation:
Startup PBX link:
If the PBX link is not "in service", the Administrator may try to startup the link again. If failure persists, a manual action should be undertaken (check physical link, check PBX status...).
View session:
This allows to display information about a session. The phone number parameter must be the phone number associated to the session. The information is : the IP address (and hostname if any), the transport protocol (HTTP or TCP) and some basic information.
Close session:
This operation allows to close a session.
View routing point:
This allows to display information about existing routing points. The phone number parameter can be the name or the phone number associated to the routing point. The information provides the configuration and basic statistics about the routing point.
Close routing point:
This allows to close existing routing points. Only outbound routing points (on which rely outbound campaigns) can be closed.
View session history:
This allows to display the history of a session. The history (if enabled) holds call records and agent state change records.
Synchronize directory cache:
This operation synchronizes the directory local cache with the actual directory. It is normally performed periodically by the server itself (if the configuration allows it).
Clear directory cache:
This operation clears the directory local cache forcing the server to create a new one.
View directory cache:
This operation displays the directory local cache.
View configuration:
This allows the Adminstrator to display the current configuration as computed by TelServer from the TelServer.properties file.
This allows the Adminstrator to edit the configuration files. Each file that is part of the configuration can be edited and modified through this operation. Once the user saves the modification of a configuration file, a copy of the current configuration file is done with the date appended to its name (this allows to revert back to a previous configuration if needed) and the modified content is written in the configuration file. To make the new configuration effective, one may invoke the 'Update configuration' operation.
This allows the Adminstrator to update the configuration (Configuration from TelServer.properties, logging.properties are thus updated within the server).
Update license:
This allows the Adminstrator to force TelServer to read the license file again and update its internal information consequently.
This allows the Adminstrator to change the logging level while the server is running. The logging level are to be set within OFF, FATAL, ERROR, WARN, INFO, DEBUG or ALL.
NOTE that this can also be achieved by modified the configuration file setting the threshold to a value that is not OFF. Doing so will override the previous setting of the logging level through the management.
View diagnostics:
This provides a view of internal diagnostics.
Start TelServer:
This allows the Adminstrator to start TelServer again after a "Stop TelServer" invocation has been done.
Stop TelServer:
This closes TelServer only without stopping the JVM (Java Virtual Machine) and offers the user the possibility to restart it again from the remote interface using "Start TelServer".
Stop TelServer and JVM:
This is the definitive way to stop TelServer since it closes not only TelServer but also the JVM in which it is running. All resources will thus be released by this invocation. Such an invocation will lead to a "non accessible" page since TelServer management http server no longer exists.
Errors/warnings that may occur during the server's life are logged in current log file unless configuration prevents it. It is recommended to let log file active during execution. Optionally errors/warnings may be sent to the Administrator (see Administration settings). This function is also recommended in order an appropriate action can be undertaken as fast as possible if required. The email sent for an error/warning contains "TelServer ERROR" or "TelServer Warning" in the subject and the message gives the most accurate description of what went wrong.
| CSTA link is unavailable; automatic restart is not attempted, link is stopped => a manual action should be undertaken! |
|
This error occurs if it has been detected that the link to the PBX audit has failed. Normally, it should try to restart it automatically after a while but this feature has not been set in configuration. In such a case, as soon as the link is "out of service", TelServer invites the Administrator to undertake a manual action. |
| Configuration has been updated at <date> |
|
This warning occurs when TelServer configuration has been updated through the remote management. |
Other problems are reported in the log files and may be reported to Support if they cannot be analyzed locally.
TelServer is intended to run "ad vitam eternam". This means the application and the hosting platform should never stop. At least, a possible failure should be detected as fast as possible and action should be undertaken immediately.
There is no "hot start" mechanism developped in this version of TelServer. An unexpected failure may be detected by a look at the management page. In case the page is unavailable, this means that TelServer has failed or the hosting machine has failed (or is not accessible).
Besides, in case a fatal problem detected by TelServer occurs, the Administrator may receive emails from TelServer (see telserver.administrator.email.address).
If the server is failing, the client requests won't receive any results. After the server restart, TelServices clients will receive a "no open session" error if they request a service that needs an open session, they will have to open a new session on the server. SIP/CSTA clients will receive a 481 (Call leg/transaction doesn't exist) error forcing them to close with a BYE and then re-open the session with an INVITE.
If a client application fails, it can start again opening a new session. TelServer will not throw an error if a session has been previously opened (the same way the PBX shouldn't send an error if a MonitorStart has been already sent on a device).