auto_config_schema.xml
The auto_config_schema.xml file describes the "schema" of a auto-config datasource.
You need to edit the schema file according to your auto-config datasource (Registry, INI- or XML-File).

The schema file is stored in "%PROGRAM_DIR%\auto_config\" - so you may need admin rights to edit it.

The CTI Client "Setup Generator" has a simple editor for the schema file. See CTI Client menu: [File > Create Setup > Dialog "Auto-Configuration"].
 

Examples for auto_config_schema.xml

 
Example 1:  Auto-config parameters are stored in a central XML file for all users.
Drive "N:" is a public network drive.
 
Example 1a: If usernames are invalid XML section names (name contains spaces or other special characters).
N:\cti_client\auto_config_data.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Users>
  <User
   Name="Axel Müller"
   TAPI_LineName="PBX Line 200"
  />
  <User
   Name="Sanda Jensen"
   TAPI_LineName="PBX Line 201"
  />
 </Users>

 <Computers>
  <Computer
   Name="PC1"
   TAPI_LineName="PBX Line 203"
  />
  <Computer
   Name="PC2"
   TAPI_LineName="PBX Line 204"
  />
 </Computers>
</auto_config>

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="N:\cti_client\auto_config_data.xml"
   SubPath="\auto_config\Users\User?Name=%USERNAME%\"
  />
 </Sources>

 <Schema
   TAPI_LineName="%Src1%\TAPI_LineName"
  />

</auto_config>

Comments (valid for all examples):

 <Schema
  TAPI_LineName="%Src1%\TAPI_LineName"
 />
TAPI_LineName: This is the fix parameter name used inside of application.

TAPI_LineName: This is the parameter name inside your auto-config-datasource. Here you can choose an other name if you want. For example: UserTAPIDevice

If you want to run auto-config by computername, you can use the placeholder %COMPUTERNAME% in auto_config_schema.xml. Example:
SubPath="\auto_config\Computers\Computer?Name=%COMPUTERNAME%\"
 
Example 1b: If usernames are valid XML section names (name contains no spaces or other special characters).
 
N:\cti_client\auto_config_data.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Users>
  <amiller
   TAPI_LineName="PBX Line 200"
  />
  <sjensen
   TAPI_LineName="PBX Line 201"
  />
 </Users>
</auto_config>

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="N:\cti_client\auto_config_data.xml"
   SubPath="\auto_config\Users\%USERNAME%\"
  />
 </Sources>

 <Schema
   TAPI_LineName="%Src1%\TAPI_LineName"
  />

</auto_config>
 
Example 1c: integrated Asterisk Line
N:\cti_client\auto_config_data.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Users>
  <User
   Name="Axel Müller"
   AsteriskLine_Channel="SIP/203"
   AsteriskLine_DisplayUsername="Axel Müller"
  />
 </Users>
</auto_config>

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="N:\cti_client\auto_config_data.xml"
   SubPath="\auto_config\Users\User?Name=%USERNAME%\"
  />
 </Sources>

<Schema
 AsteriskLine_Channel="%Src1%\AsteriskLine_Channel"
 AsteriskLine_DisplayUsername="%Src1%\AsteriskLine_DisplayUsername"
/>
</auto_config>
 
Example 1d: integrated Snom, Aastra or Yealink Lines
N:\cti_client\auto_config_data.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Users>
  <User
   Name="Axel Müller"
   Phone_IP="192.168.0.3"
   Phone_Username="test"
   Phone_Pwd="test"
   ActionURLs_Port="8080"
  />
 </Users>
</auto_config>

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="N:\cti_client\auto_config_data.xml"
   SubPath="\auto_config\Users\User?Name=%USERNAME%\"
  />
 </Sources>

<Schema
 Phone_IP="%Src1%\Phone_IP"
 Phone_Username="%Src1%\Phone_Username"
 Phone_Pwd="%Src1%\Phone_Pwd"
 ActionURLs_Port="%Src1%\ActionURLs_Port"
/>
</auto_config>
 
 
 
Example 2: Auto-config parameters are stored in a INI file in the user's home drive "H:".
H:\cti_client\auto_config_data.ini:
[auto_config]
TAPI_LineName= PBX Line 200

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="H:\cti_client\auto_config_data.ini"
   SubPath="\auto_config\"
  />
 </Sources>

 <Schema
  TAPI_LineName="%Src1%\TAPI_LineName"
 />

</auto_config>



Example 3:  Auto-config parameters are stored in a XML file in the user's home drive "H:".
H:\cti_client\auto_config_data.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <data
  TAPI_LineName="PBX Line 200"
 />
</auto_config>

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="H:\cti_client\auto_config_data.xml"
   SubPath="\auto_config\data\"
  />
 </Sources>

 <Schema
  TAPI_LineName="%Src1%\TAPI_LineName"
 />

</auto_config>
 
Example 4: Auto-config parameters are stored in Registry.
Registry:

 

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>
 <Sources>
  <Src1
   Path="HKEY_CURRENT_USER\Software\CTI Client\auto_config\"
  />
 </Sources>

 <Schema
  TAPI_LineName="%Src1%\TAPI_LineName"
 />

</auto_config>



Example 5:  Bind first TAPI-Line from TAPI-Driver.

auto_config_schema.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<auto_config>

<Schema
TAPI_LineName="TAPI\%TapiDriver_ProviderName%\%FirstLine%"
/>

</auto_config>

Situation:
  • Therel are a large number of PCs in your network.
  • On every PC the same TAPI-Driver is installed.
  • But every PC has its own TAPI-Line (different TAPI-Line-Names).
  • In the CTI Client Master the local TAPI-Line is assiged to the PhoneDialog.
    So the CTI Client knows the  TAPI-Driver's ProviderName.

Auto-Config:
  • The CTI Clients will search the TAPI-Driver by the known "ProviderName" and bind the first TAPI-Line from it.

Hints:

  • In this case you would not need an Auto-Config-Data source like in the other examples.
  • Simply copy the content of the Example 5 into the "auto_config_schema.xml" file.
  • The CTI Client will resolve the placeholders %TapiDriver_ProviderName% and %FirstLine% by itself.