Dual Function on a single Call Button
From Zenitel Wiki
This application makes it possible to distinguish between short press or long press of a call button or DAK.
If call button or DAK is released within 3 seconds it will do one call. If pressed and kept pressed for more than 3 seconds it will do a different call.
In this way one call button or DAK can be used to activate two different calls or functions.
Note: The DAK or call button used, should not be programmed in the DAK window at all. The destination for the call is programmed in the events used.
Input or DAK pressed
Use an available UDP group as owner for the events. UDP 2 is used in this example.
Add an event with UDP 2 as owner in System > Events. Same event will then be used by all devices with UDP 2 set.
Select event type 30, with subtype 1 for Turbine call button and master station DAK 1, subtype 11 for TKIE tamper proof station or Turbine input 1.
Set "when change to" ON and actions:
$ST L%1.dir W30 L9991 WUDD %1.phy 1
This starts a timer of 3 seconds (W30) related to number 9991, and writes value 1 to UDD index = physical number of station.
Input or DAK released before timeout
Insert an event 30, with same owner and subtype, when change to OFF. This event will be triggered if button is released before timeout. Actions:
IF %udd(%1.phy) WUDD %1.phy 0 $ST L%1.dir $CALL L%1.dir L102 ENDIF
Explanation: Reset UDD and stop timer if UDD is set, and call station 102.
$CALL can only be used for station-to-station calls, but other commands can be used. A ringing group call using $SM can look like this:
$SM L%1.dir L6701 U100 NM18 GV U13
It is also possible to simulate that a specific DAK is activated. The advantage is that every station can have its "own" programming done in the DAK window, instead of using a common destination. Note that a unused DAK is recommended to use. Example using DAK 10: $DIAL_DAK L%1.dir U10
So options are:
- Direct call: $CALL....
- Ringing group: $SM...
- Simulate DAK press: $Dial_DAK...
Note: $DD is not recommended to use for this function, because repeated button presses during ringing or conversation might cause malfunction.
Input or DAK kept pressed
Event 21 is triggered if button is not released within timeout. This is used to set up the second call function.
Actions in the example below are:
$SM L%1.dir L6701 U100 NM18 GV U13 WUDD %1.phy 0
Explanation: Starts ringing group 1 (6701) and sets UDD = 0.