Sei sulla pagina 1di 16

TAPI Driver Feature Help

TAPI supported features.


The Hipath 1100 and 1200 TAPI driver supports some of the TAPI capabilities. This document will explain how to use it. For more detailed information please consult TAPI development help, MSDN and PBX manuals.

Opening Lines (Line Open)


In order to interact or monitor an extension, a group, or a trunk it is necessary to open it first. This just can be done if the device is added in TSP (Telephony Service Provider) configurations. To do that it is necessary to configure it as the follow: Procedure: In Windows Control Panel select item Phone and Modem Options (Telephony),

and then the sub-folder Advanced (Telephony Drivers), then select Add...,

and finally select Siemens 1k Hipath V2.1 and 6.0 TAPI Driver from Telephony drivers list and press Add....

The dialog box Configurations will automatically appear. In sub-folder Lines the ports to be monitored/controlled through TAPI Driver must be entered. Press OK to register the ports.

As it is being showed in the last picture all devices that the user want to use by TAPI needs to be included, there are three different groups of PBX devices that are supported: Extension This are divided in two groups: S0 bus that only supports monitoring, comprehending the S0 bus extensions of the PBX Regular extension (analogue phone or system phones) that supports all the available functions of this TSP. Groups The only kind of group supported is the UCD group (e.g. 790, 791), so only entered number comprehending among the UCD group range will be able to be open. Trunks Just trunk lines (e.g. 801, 802) can be open, bundle/ trunk groups are not available. And besides the monitoring just the line drop is supported for this kind of device.

Using more TAPI Applications and Remotely


In order to use a TAPI Application in a remote PC connected in the same LAN of the PC where the CommServer is installed it is necessary to change the TSP configuration, setting in the remote PC the field Server: with the computer name where the CommServer is installed. It also is possible to connect more PCs and Applications at same time since each one uses a different line (extension, group or trunk).

Monitoring the Opened Lines


Monitor a line using TAPI permits that the user be able of know the states of the call and also the caller (who calls) and the called (who was called). Main possible states: Idle extension without any active call. Hold the call is in hold. Connected the call has been established and the connection is made. Information is able to flow over the call between the originating address and the destination address. Ringback - the station to be called has been reached, and the destination's switch is generating a ring tone back to the originator Offering The call is being offered to the station, signaling the arrival of a new call.

Proceeding dialing has completed and the call is proceeding through the switch or telephone network. Busy the line is busy. Conference the call is a member of a conference call and is logically in the connected state. Dial tone the line is with dial tone

Computer PBX TAPI connection


To connect the PBX and the TAPI application it is necessary to use the CommServer application. This is the same used to connect Manager, Software Update and the others PBX software. It needs to be properly configured to the kind of connection that is being used. TAPI have the particularity that under PBX optiPoint Connection it is possible to use eight computers simultaneously, but just if have eight optiPoint properly connect (see PBX manuals for further information about connections types). It is important to notice that a device can not be open in more than one CommServer at the same time.

Features Supported Make Call


It is possible to make a call to a determined number. TAPI command: lineMakeCall Necessary parameters: The number that it will want to be called.

Answer
It is possible to answer a call if it is being signalized in that extension. TAPI command: lineAnswer Necessary parameters: The call that will be answered.

Redirect
It is possible to redirect calls only to internal numbers. The redirection just can be made if the extension is in offering state. TAPI command: lineRedirect Necessary parameters: The extension that the call will be redirected.

Transfer
It is possible to transfer a call to another extension, but just if it have been connected. And with transfer function is also possible to make a conference change the transference mode. TAPI command: lineSetupTransfer, lineDial, lineCompleteTransfer Necessary parameters: The extension that the call will be redirected. The mode of transfer

Pickup
It is possible to pick up a call that rings in a specific extension or in a group where the line that activates the pick up is configured. TAPI command: linePickup Necessary parameters: The call that will be picked up.

Conference
It is possible to make a conference between three partners. Monitoring just one of the extensions of the conference, it will not be possible to remove the other partners, just the proper extension. TAPI command: lineSetupConference, lineDial, lineAddToConference Necessary parameters: The extension that the call will be redirected.

Park
Parking is possible in a specific park position (LINEPARKMODE_DIRECTED) or in indirect way (LINEPARKMODE_NONDIRECTED), receiving the position where the call has been parked. TAPI command: linePark Necessary parameters: The call that will be parked and if needed the position ( positions to park are: 0,1,2,3,4,5,6,7,8,9).

Unpark
It is possible to unpark parked calls. TAPI command: lineUnpark Necessary parameters: The call that will be parked and the position valid positions to park are: 0,1,2,3,4,5,6,7,8,9).

Drop
It is possible to drop call when the line is open as extension or trunk. It is also possible to drop a call that is in the queue of an extension, that is the case of operator or the call waiting in camp on. Cases which drop are not possible: Calls in hold state. Analogue trunk with an incoming call. ` TAPI command: lineDrop Necessary parameters: The call that will be dropped

Hold
It is possible to change a call from connect to hold state. TAPI command: lineHold Necessary parameters: The call that will be changed to hold state.

Unhold
It is possible to change a call from hold to connect. TAPI command: lineHold Necessary parameters: The call that will be changed to hold state.

Forward
This TSP version supports two modes of line forward: Unconditional all caller numbers (internal and external): o LINEFORWARDMODE_UNCOND: Forward all calls unconditionally, irrespective of their origin. Use this value when unconditional forwarding for internal and external calls cannot be controlled separately.

Selective call forwarding (conditional) depends on the caller number/type.

o o o

LINEFORWARDMODE_UNCONDINTERNAL: unconditionally. LINEFORWARDMODE_UNCONDEXTERNAL: unconditionally.

Forward Forward

all all

internal external

calls calls

LINEFORWARDMODE_UNCONDSPECIFIC: Unconditionally forward all calls originated at a specified address. It is also possible to forward the call based on the prefix number, in this case a special character ; (3Bh) (indicates the number is incomplete) needs to be put at the end of the number.

It is also possible to set the time period in which the forward is active. It is possible through additional information on DestAddress string. The additional parameters (time period) of the string that compound the DestAddress of the Forward List are separated by ! (21h). The string can contain this information: Period: Initial time and final time, format: !HiHiMiMiHfHfMfMf. The period is optional and; Week days (optional). [1]: Sunday; [2]: Monday; [3]: Tuesday, [4]: Thursday, [5] Wednesday [6]: Friday, [7]: Saturday. If none is informed, the rule will be applicable to all days. It is possible to choose more than one day. For example, Sunday and Monday (12) or Monday and Tuesday and Friday (236).

This is an example of a forward rule string: destination address = 03416568!08001800!3. And caller address = 3455684. When a call comes from the number 3455684 it will be forward to the destination address if the current time is between 08:00 and 18:00 every Tuesdays. The maximum number of digits that could be inputted in destination address (before the !) and in the caller is 20. In the caller, the wildcard ; can be used. When a list is sent the previous Forward configuration is lost. The PBX will check the forwarding conditions in the following sequence: 1) LINEFORWARDMODE_UNCONDSPECIFIC; 2) LINEFORWARDMODE_UNCONDEXTERNAL; 3) LINEFORWARDMODE_UNCONDINTERNAL; 4) LINEFORWARDMODE_UNCOND (without a time period additional parameter - normal CFU).

Agent Monitoring
The TAPI permit to monitor the agent states of UCD groups on a specific address. When the state of an agent changes, the message LINE_DEVSPECIFIC (contact the development department in order to know how reading the message) is sent to the application. An agent can be in one of these states: LINEAGENTSTATE_LOGGEDOFF: The agent has logged out. LINEAGENTSTATE_READY: The agent is available (logged on and with available code activated *402) and in idle state (ready to receive UCD calls). LINEAGENTSTATE_BUSYINCOMING: The agent is receiving an incoming, but it is not an UCD call. LINEAGENTSTATE_BUSYOTHER: The agent is receiving an outgoing and it is not a UCD call. LINEAGENTSTATE_BUSYACD: The agent receiving an incoming and it is an UCD call.

LINEAGENTSTATE_WORKINGAFTERCALL): The agent is in working on time or the agent is with work on activated by code *403 + reason (optional). The reason can be a number from 1 to 9. Zero is not specific reason. LINEAGENTSTATE_UNAVAIL): The agent is logged on but unavailable. The agent activated the unavailable code #402 + reason (optional). The reason can be a number from 1 to 9. Zero is not specific reason. When the agent logged on, he begins in unavailable state. LINEDISCONNECTMODE_UNAVAIL: One party from a call disconnected. LINECALLSTATE_IDLE: Call goes to idle (disconnected by monitored line). LINECALLSTATE_OFFERING: Call goes to group. LINECALLSTATE_ACCEPTED: Call goes to queue. LINECALLSTATE_RINGBACK: Call goes to agent (extension). LINECALLSTATE_CONNECTED: Call is answered by an agent (extension).

Some states of a call of an UCD group have a different interpretation:

Message wait (extension monitoring)


The message LINEDEV_STATE_CHANGE is sent to the application to notify the changes in the state. In the PBX there are the internal message and external message. For internal messages, the messages are posted for the UCD group pilot. When there is a message, the led blinks slowly, if the WMI is enabled, or if EVM is set for that extension. For external messages, in the phone display is written a message informing that there are messages posted, if the WMI is enabled. In TAPI, there are two available states: LINEDEVSTATE_MSGWAITON: There are messages. LINEDEVSTATE_MSGWAITOFF: There are not messages.

Services activation
The services are accessed by the API function lineDevSpecific. This command is used to implement specific functions to the PBX. In this case are some of the switch services that are commonly accessed by the phone that can be set by a TAPI application This feature is asynchronously and the message LINE_REPLY is sent to report the results of function calls completed. To set program functions, the parameter lpParams must be a string containing: Type + Configuration code + Value, separated by the character | (7Ch). The field Type indicates the operation to be proceeded by the line device specific function. For example: to activate the WMI indication in the extension 11, the lpParams should be: 03|*68|11|. For agent Type = 03 = service activation. The available services by TAPI are in the table above.

Services Urgent call (Camp-on) Call back no answer Wait Message indicator (WMI interface): On Off

Configuration Code *58 *58

*68 + Extension #68 + Extension Remark: if the extension is omitted, the WMI is activated in the own opened line

Agent functions: Log off Log on Unavailable Available Work off Work on #401 *401+ UG #402 *402 #403 *403 Remark: UCD group need to be properly configured to the extension. Phonebook: Individual System Individual: *7 + *0 *4 System: *7 + 000 249

System Configuration
The system configuration is accessed by the API function lineDevSpecific. The parameter lpParams is a pointer to a memory block. The type of lpParams is ASCII string format. Each program configuration has its own format and it is necessary to inform the programming code, this code is the same used in the extension programming. A configuration only will be set or read if the correct password from the switch is informed. When reading configuration from the PBX, additionally the API function lineGetLineDevStatus need to be used in order to read the information supplied by the PBX: LONG WINAPI lineGetLineDevStatus ( HLINE hLine, LPLINEDEVSTATUS lpLineDevStatus

The lpLineDevStatusdwDevSpecificOffset indicates the first position in the memory where the values returned from the PBX are stored. The lpLineDevStatusdwDevSpecificSize indicates the values length. It is not possible to configure using TSP if Manager or extension programming is in use. The field type indicates the operation to be proceeded by the line device specific function: Type = 01 = write configuration. Type = 02 = read configuration. External access class of service/category (111) There are 3 lists for Daytime and 3 lists for Night. The list 1 support up to 4 numbers, the list 2 support up to 10 numbers and the list 3 support up to 35 numbers. Each number support up to 10 digits. The first list position is 0. The format to set a list is: Type + Password + Programming code (111) + Trunk group + Day COS (07) + Night COS (07) + [Extension + Extension ] + #. Each parameter has the character | (7Ch) at the end. For example, to set trunk group 801 the permission list 2 during the day and restriction list 1 during the night for extension 11 and 12, the string should be: 01|00000|111|801|5|1|11|12|#|. The COS can be:
0 1 2 3 4 5 6 7 without cat. restr. List 1 restr. List 2 restr. List 3 perm. List 1 perm. List 2 perm. List 3 total perm.

The format to read the list is: Type + Password + Programming code (111) + Trunk group (0, 801) + Extension. For example, to read the COS for trunk group 801, and extension 12, the string should be: 02|00000|111|801|12|. The value returned should be: 5|1|. Call charge limit (044) The format to set the call charge limit is: Type + Password + Programming code (044) + Extension + Value (#-No, *-Yes). Each parameter has the character | at the end. For example, to set the charge limit of extension 12 to yes, the string lpParams should be: 01|00000|044|12|*|. The format to read is: Type + Password + Programming code (044) + Extension. For example: to read, the string should be: 02|00000|044|12|. The value returned should be: *|. Call charging day for reset (monthly, 00:00) (045) The format to set the call charging day for reset is: Type + Password + Programming code (045) + Day (from 01 to 31). Each parameter has the character | at the end. If * is passed, it will disable this configurations. For example, to reset every day 10, the string should be: 01|00000|045|10|. To disable, the string should be: 01|00000|045|*|. The format to read is: Type + Password + Programming code (045). For example: to read, the string should be: 02|00000|045|. The value returned should be: 10|.

Charge account for extensions (197) The format to set is: Type + Password + Programming code (197) + Extension + Impulse (9 digits) + Floating Point Position (04). Each parameter has the character | at the end. For example, the string should be: 01|00000|197|12|000000001|0|. The format to read is: Type + Password + Programming code (197) + Extension. For example: to read the credits of extension 12, the string should be: 02|00000|197|12|. The value returned should be: 000000001|0|. ACS The ACS includes three steps of configurations: first: the time strips, second: the complete period with the associated time strips, third: the association of the dial rule with the complete period and then the complementary rule configurations (name, dialed trunk group, dialed number, converted trunk group, converted number, overflow trunk group, overflow number). If the user chooses to use LCR (via Manager), the ACS will not be possible to configure. Time strip configuration It is necessary to configure the time strips to compound the complete period (see next configuration) to be used by the rule. The PBX support up to 21 time strip. 00 to 20. To set the time strip, it is necessary to inform: Type + System Password + Programming code (A00) + Time strip index + Initial time (hhmm) + Final time (hhmm). Each parameter has the character | at the end. Example: to set a time intervals between 8am and 12am in the position 01, the lpParam should be: 01|00000|A00|01|0800|1200|. To delete a time strip, is necessary to inform: Type + System Password + Programming code (A00) + Time strip index + *. Each parameter has the character | at the end. Example, to delete the value in position 01: 01|00000|A00|01|*| To read the time strip, it is necessary to inform: Type + System Password + Programming code (A00) + Time strip index. Each parameter has the character | at the end. For example, to read the time strip in the position 01, the string should be: 02|0000|A00|01|. The value returned should be: 0800|1200|. If there is no time strip set in this position, the returned value will be: *|. Complete Period configuration The PBX support up to 21 Complete Periods. 00 to 20. To set the complete period, it is necessary to inform: Type + System Password + Programming code (A01) + Complete Period index + (time strips, up to 6x)[00-20 + Week day (1-Workday, 2Saturday and 3-Sunday/Holidays) ] + #(close the time strips entry). Each parameter has the character | at the end. Example: to set 3 time strips in the complete period 09, the lpParam should be: 01|00000|A01|09| 02|1|03|1|09|2|#|. To delete a complete period, it is necessary to inform: Type + System Password + Programming code (A01) + Complete Period index + *. Each parameter has the character | at the end. Example: to delete the complete period 09: 01|00000|A01|09| *|. To read the complete period, it is necessary to inform: Type + System Password + Programming code (A01) + Position. Each parameter has the character | at the end. Example of reading string: 02|00000|A01|09|. The value returned should be: 02|1|03|1|09|2|#|. If the complete period is empty (no time strips associated to it), the returned value will be: |. Complete Period name configuration

This configuration associates the complete period name in ASCII characters, up to 10 characters. To associate a name to a complete period, it is necessary to inform: Type + System Password + Programming code (A10) + Complete period index (00 to 20) + Name (ex: ABCD). Each parameter has the character | at the end. Example: to associate the name ABC to the complete period 02, the lpParam should be: 01|00000|A10|02|ABC|. To read a specific rule name, it is necessary to inform: Type + System Password + Programming code (A10) + Complete period index. Example of string for reading: 02|00000|A10|02|. The value returned should be: ABC|. Rule complete period configuration This association indicates in which time period the rule is valid. To associate a complete period to a rule, it is necessary to inform: Type + System Password + Programming code (A02) + Rule index (000 to 120) + Complete period index (from 00 to 20). Each parameter has the character | at the end. Example: to associate 01|00000|A02|002|03|. the rule 002 to the period 03, the lpParam should be:

To read a rule, it is necessary to inform: Type + System Password + Programming code (A02) + Rule index. Example of string for reading: 02|00000|A02|002|. The returned value should be: 03|. Rule name configuration This configuration associates the rule name in ASCII characters, up to 10 characters. To create a new rule, this parameter should be the first parameter configured. To associate a name to a rule, it is necessary to inform: Type + System Password + Programming code (A03) + Rule index (000 to 120) + Name (ex: ABCD) - it can be an empty field, using the terminator |. Each parameter has the character | at the end. Example: to associate the name ABC to the rule 002, the lpParam should be: 01|00000|A03|002|ABC|. To read a specific rule name, it is necessary to inform: Type + System Password + Programming code (A03) + Rule index. Example of string for reading: 02|00000|A03|002|. The value returned should be: ABC|. Rule dialled trunk group configuration This configuration associates the user dialled trunk group that matches the rule. This field accepts up to 5 digits. To associate a dialled trunk group to a rule, it is necessary to inform: Type + System Password + Programming code (A04) + Rule index (000 to 120) + trunk group (ex: 0) - it can be an empty field, using the character |, it means the rule matches with all trunk groups. Each parameter has the character | at the end. Example: to associate the dialled trunk group 0 to the rule 002, the lpParam should be: 01|00000|A04|002|0|. To read a specific rule dialled trunk group, it is necessary to inform: Type + System Password + Programming code (A04) + Rule index. Example of string for reading: 02|00000|A04|002|. The value returned should be: 0|. Rule dialled number configuration

This configuration associates the user dialled number that matches the rule. This field accepts up to 8 digits and accepts the wild character x or X in order to matches with any digit in its position. For example: the dialled number 49x in a given rule matches with any number among 490 and 499. The * or # are recognized as dialled digits. To associate a dialled number to a rule, it is necessary to inform: Type + System Password + Programming code (A05) + Rule index (000 to 120) + number (ex: 123) - it can be an empty field, using the terminator |. Each parameter has the character | at the end. Example: to associate the dialled number 123 to the rule 002, the lpParam should be: 01|00000|A05|002|123|. To delete an ACS Rule, the dialled number must be sent empty. Example: to delete the rule 002, the lpParam should be: 01|00000|A05|002||. To read a specific rule dialled number, it is necessary to inform: Type + System Password + Programming code (A05) + Rule index. Example of string for reading: 02|00000|A05|002|. The value returned should be: 123|. Rule converted trunk group configuration This configuration associates the converted trunk group of the rule. This field accepts up to 5 digits. To associate a converted trunk group to a rule, it is necessary to inform: Type + System Password + Programming code (A06) + Rule index (000 to 120) + trunk group (ex: 801) - it can be an empty field, using the terminator |, it means the rule will use the dialled trunk group to proceed the dialling. Each parameter has the character | at the end. Example: to associate the converted trunk group 801 to the rule 002, the lpParam should be: 01|00000|A06|002|801|. To read a specific rule converted trunk group, it is necessary to inform: Type + System Password + Programming code (A06) + Rule index. Example of string for reading: 02|00000|A06|002|. The value returned should be: 801|. Rule converted number configuration This configuration associates the converted number of the rule. This field accepts up to 16 digits. It is possible to use a pause character among the number: P# waits for call answer and dials in tone mode the subsequent digits; # waits for CALLPROC/ALERT (only digital trunks) and dials in tone mode the subsequent digits; P pause of 2 s between digits, only for analogue trunks. Example: 456P#123, dials 456 in trunk and waits until the call be answered, after this dials in tone mode the number 123. To associate a dialled number to a rule, it is necessary to inform: Type + System Password + Programming code (A07) + Rule index (000 to 120) + number (123 It can be an empty field, using the terminator |.). Each parameter has the character | at the end. Example: to associate the dialled number 123 to the rule 002, the lpParam should be: 01|00000|A07|002|123|. To read a specific rule converted number, it is necessary to inform: Type + System Password + Programming code (A07) + Rule index. Example of string for reading: 02|00000|A07|002|. The value returned should be: 123|. Rule overflow trunk group configuration This configuration associates the overflow trunk group of the rule. This field accepts up to 5 digits. The overflow trunk group is used if there are not free trunks in the converted trunk group.

To associate an overflow trunk group to a rule, it is necessary to inform: Type + System Password + Programming code (A08) + Rule index (000 to 120) + trunk group (ex: 802) - it can be an empty field, using the terminator |, it means the rule will not use a overflow trunk group to proceed the dialling. Each parameter has the character | at the end. Example: to associate the converted trunk group 802 to the rule 002, the lpParam should be: 01|00000|A08|002|802|. To read a specific rule converted trunk group, it is necessary to inform: Type + System Password + Programming code (A08) + Rule index. Example of string for reading: 02|00000|A08|002|. The value returned should be: 802|. Rule overflow number configuration This configuration associates the overflow number of the rule if the overflow trunk group is used. This field accepts up to 16 digits. It is possible to use a pause character among the number: P# waits for call answer and dials in tone mode the subsequent digits; # waits for CALLPROC/ALERT (only digital trunks) and dials in tone mode the subsequent digits; P pause of 2 s between digits, only for analogue trunks. Example: 456P#123, dials 456 in trunk and waits until the call be answered, after this dials in tone mode the number 123. To associate a dialled number to a rule, it is necessary to inform: Type + System Password + Programming code (A09) + Rule index (000 to 120) + number (123 It can be an empty field, using the terminator |.). Each parameter has the character | at the end. Example: to associate the dialled number 45 to the rule 002, the lpParam should be: 01|00000|A09|002|45|. To read a specific rule converted number, it is necessary to inform: Type + System Password + Programming code (A09) + Rule index. Example of string for reading: 02|00000|A09|002|. The value returned should be: 45|.

Phone Functions
Phone functions have relation to the specific telephone device. To use the phone functions, firstly it is necessary to open the phone devices. The Hipath 1100 and 1200 family has some of them: State of the hook switch This informs to the TAPI application the state of the hook switch: HANDSET, SPEAKER or HEADSET in the states on hook or off hook TAPI command: phoneGetHookSwitch. Necessary parameters: The phone to acquire the hook state. Get Display This command is used to obtain the text that is being showed in the telephone display at that moment. Just phones with display can execute this operation. TAPI command: phoneGetDisplay Necessary parameters: The phone to acquire the display text. Set Display This command is used to change the text which is being showed in the telephone display. TAPI command: phoneSetDisplay

Necessary parameters: The phone to set the display text and the text to be set.

Potrebbero piacerti anche