Actions

Difference between revisions of "Visitor Intercom - Remote call setup and Listen-In"

From Zenitel Wiki

(Operation)
(Conversation timeout and Voice Message alert)
 
(10 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
* Set up and tear down calls between two stations in a "pair"
 
* Set up and tear down calls between two stations in a "pair"
 
* Silently Listen-In on an active conversation. Talkback is possible.
 
* Silently Listen-In on an active conversation. Talkback is possible.
* Start/stop recording of active calls. This requires that a Zenitel Audio Recorder is installed.
+
* Start/stop recording of active calls. This requires that a Zenitel Audio Recorder is installed on a dedicated Windows computer.
  
 
As an option it is possible set a conversation timer, and play a voice message to the intercom pair when there is a short time left of the conversation.
 
As an option it is possible set a conversation timer, and play a voice message to the intercom pair when there is a short time left of the conversation.
  
 +
The stations must be '''Zenitel IP Devices'''. SIP devices are not supported in this application.
 
==Operation ==
 
==Operation ==
 
The application is based on using the IP Flush Master with a DAK-48 module. One DAK panel supports up to 16 pairs of intercoms. If more pairs are needed (max. 20 pairs), a second DAK-48 panel must be added. Function keys on the DAK48 panel will be as follows:
 
The application is based on using the IP Flush Master with a DAK-48 module. One DAK panel supports up to 16 pairs of intercoms. If more pairs are needed (max. 20 pairs), a second DAK-48 panel must be added. Function keys on the DAK48 panel will be as follows:
Line 38: Line 39:
  
 
The general directory number rules are as follows:
 
The general directory number rules are as follows:
*Intercom pair '''xx''':
+
*Intercom pair '''xx''' (xx = 01 - 20):
 
**Conference number: 83'''xx'''
 
**Conference number: 83'''xx'''
 
**Station A: 41'''xx'''
 
**Station A: 41'''xx'''
Line 57: Line 58:
 
The ''Control Room Station'' '''must''' have directory number '''4000'''.
 
The ''Control Room Station'' '''must''' have directory number '''4000'''.
  
The ''stations in the pairs'' '''must''' have directory numbers '''41xx''' (Station A) and '''42xx''' (Station B) according to the rules above.
+
The ''stations in the pairs'' '''must''' have directory numbers '''41xx''' (Station A) and '''42xx''' (Station B) according to the rules above (xx = 01 - 20).
 
[[File:Visitor IC StationDirNo.png|left|thumb|700px|Station directory numbers]]
 
[[File:Visitor IC StationDirNo.png|left|thumb|700px|Station directory numbers]]
 
<br style="clear:both;" />
 
<br style="clear:both;" />
Line 97: Line 98:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 +
{{Code2|
 
  IF %udd(%2.dir(2))
 
  IF %udd(%2.dir(2))
 
  $ODC L41%2.dir(2,0) L8300
 
  $ODC L41%2.dir(2,0) L8300
Line 104: Line 106:
 
  $ODC L41%2.dir(2,0) L83%2.dir(2,0)
 
  $ODC L41%2.dir(2,0) L83%2.dir(2,0)
 
  IND %1.phy %1.dak(E%2.dir) 2 1 ON
 
  IND %1.phy %1.dak(E%2.dir) 2 1 ON
 
+
}}
  
  
Line 110: Line 112:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 +
{{Code2|
 
  $ODC L42%1.dir(2,0) L%chg(%2.dir,8300)
 
  $ODC L42%1.dir(2,0) L%chg(%2.dir,8300)
 
  WUDD %1.dir(2) %chg(1,0)
 
  WUDD %1.dir(2) %chg(1,0)
Line 120: Line 123:
 
  ENDIF
 
  ENDIF
 
  ENDIF
 
  ENDIF
 
+
}}
<br>
 
  
 
=== Listen-In event ===
 
=== Listen-In event ===
Line 127: Line 129:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
  IF %op(%2.dir,=,%udd(5000))
+
{{Code2|
 +
  IF %op(%2.dir,<nowiki>=</nowiki>,%udd(5000))
 
  $DISCON_ST L%1.dir U0
 
  $DISCON_ST L%1.dir U0
 
  stop
 
  stop
Line 142: Line 145:
 
  pause
 
  pause
 
  $SNV Q4 W1 W6 W54
 
  $SNV Q4 W1 W6 W54
 
+
}}
  
 
[[File:Visitor_IC_Event_ODX_4000.png|left|thumb|700px|Update LED and UDD status when Control Room station activates "Listen-In" feature. Mute the microphone]]
 
[[File:Visitor_IC_Event_ODX_4000.png|left|thumb|700px|Update LED and UDD status when Control Room station activates "Listen-In" feature. Mute the microphone]]
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 +
{{Code2|
 
  IND %1.phy %1.dak(E44%2.dir(2,0)) 2 1
 
  IND %1.phy %1.dak(E44%2.dir(2,0)) 2 1
 
  WUDD 5000 %chg(44%2.dir(2,0),0)
 
  WUDD 5000 %chg(44%2.dir(2,0),0)
Line 152: Line 156:
 
  $DIP L%1.dir "auo 8"
 
  $DIP L%1.dir "auo 8"
 
  ENDIF
 
  ENDIF
 
+
}}
<br>
 
  
 
=== Audio Recording event ===
 
=== Audio Recording event ===
Line 159: Line 162:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 
+
{{Code2|
 
  IF %udd(1%2.dir(2,0))
 
  IF %udd(1%2.dir(2,0))
 
  $REC L83%2.dir(2,0) U0
 
  $REC L83%2.dir(2,0) U0
Line 175: Line 178:
 
  $DTS L%1.dir 'Rec. not avail.' U1
 
  $DTS L%1.dir 'Rec. not avail.' U1
 
  $DTS L%1.dir 'Call not active' U2
 
  $DTS L%1.dir 'Call not active' U2
 
+
}}
<br>
 
  
 
=== Restore "Microphone mute" after Talkback ===
 
=== Restore "Microphone mute" after Talkback ===
Line 184: Line 186:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 +
{{Code2|
 
  IF %udd(5000)
 
  IF %udd(5000)
 
  pause
 
  pause
 
  $DIP L%1.dir "auo 8"
 
  $DIP L%1.dir "auo 8"
 
  ENDIF
 
  ENDIF
 +
}}
  
 
=== Initialization of UDD variables at ICX System startup ===
 
=== Initialization of UDD variables at ICX System startup ===
Line 193: Line 197:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 +
{{Code2|
 
  WUDD 5000 0
 
  WUDD 5000 0
 
  tmp 0 "0"
 
  tmp 0 "0"
Line 198: Line 203:
 
  tmp 0 "%op(%tmp(0),+,1)"
 
  tmp 0 "%op(%tmp(0),+,1)"
 
  WUDD %tmp(0) 0
 
  WUDD %tmp(0) 0
  IF %op(%tmp(0),=,20)
+
  IF %op(%tmp(0),<nowiki>=</nowiki>,20)
 
  BREAK
 
  BREAK
 
  ENDIF
 
  ENDIF
Line 206: Line 211:
 
  tmp 1 "%op(%tmp(1),+,1)"
 
  tmp 1 "%op(%tmp(1),+,1)"
 
  WUDD %tmp(1) 0
 
  WUDD %tmp(1) 0
  IF %op(%tmp(1),=,120)
+
  IF %op(%tmp(1),<nowiki>=</nowiki>,120)
 
  BREAK
 
  BREAK
 
  ENDIF
 
  ENDIF
 
  ENDLOOP
 
  ENDLOOP
 
+
}}
<br>
 
  
 
=== Conversation timeout and Voice Message alert ===
 
=== Conversation timeout and Voice Message alert ===
Line 239: Line 243:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
 +
{{Code2|
 
  IF %udd(%2.dir(2))
 
  IF %udd(%2.dir(2))
 
  $ODC L41%2.dir(2,0) L8300
 
  $ODC L41%2.dir(2,0) L8300
Line 245: Line 250:
 
  '''$ST L%1.dir W0 L2%2.dir(2)'''
 
  '''$ST L%1.dir W0 L2%2.dir(2)'''
 
  '''$ST L%1.dir W0 L3%2.dir(2)'''
 
  '''$ST L%1.dir W0 L3%2.dir(2)'''
  stop
+
  STOP
 
  ENDIF
 
  ENDIF
 
  $ODC L41%2.dir(2,0) L83%2.dir(2,0)
 
  $ODC L41%2.dir(2,0) L83%2.dir(2,0)
Line 252: Line 257:
 
  '''$ST L%1.dir W11400 L2%2.dir(2)'''
 
  '''$ST L%1.dir W11400 L2%2.dir(2)'''
 
  '''$ST L%1.dir W12000 L3%2.dir(2)'''
 
  '''$ST L%1.dir W12000 L3%2.dir(2)'''
 
+
}}
  
 
The timers are using "labels" 101-120, 201-220 and 301-320 as identifiers. When the Timeout event (21) is triggered, these labels are used to decide which message to play to which group. Examples:
 
The timers are using "labels" 101-120, 201-220 and 301-320 as identifiers. When the Timeout event (21) is triggered, these labels are used to decide which message to play to which group. Examples:
Line 266: Line 271:
 
<br style="clear:both;" />
 
<br style="clear:both;" />
  
  IF %op(%2.dir,>=,101)
+
{{Code2|
  IF %op(%2.dir,<=,120)
+
  IF %op(%2.dir,><nowiki>=</nowiki>,101)
 +
  IF %op(%2.dir,<<nowiki>=</nowiki>,120)
 
  $GM L46%2.dir(2) N!1
 
  $GM L46%2.dir(2) N!1
 
  ENDIF
 
  ENDIF
 
  ENDIF
 
  ENDIF
  IF %op(%2.dir,>=,201)
+
  IF %op(%2.dir,><nowiki>=</nowiki>,201)
  IF %op(%2.dir,<=,220)
+
  IF %op(%2.dir,<<nowiki>=</nowiki>,220)
 
  $GM L46%2.dir(2) N!2
 
  $GM L46%2.dir(2) N!2
 
  ENDIF
 
  ENDIF
 
  ENDIF
 
  ENDIF
  IF %op(%2.dir,>=,301)
+
  IF %op(%2.dir,><nowiki>=</nowiki>,301)
  IF %op(%2.dir,<=,320)
+
  IF %op(%2.dir,<<nowiki>=</nowiki>,320)
 
  $DISCON_ST L41%2.dir(2) U3  
 
  $DISCON_ST L41%2.dir(2) U3  
 
  IND %1.phy %1.dak(E43%2.dir(2)) 2 1 OFF
 
  IND %1.phy %1.dak(E43%2.dir(2)) 2 1 OFF
 
  ENDIF
 
  ENDIF
 
  ENDIF
 
  ENDIF
 +
}}
  
 
== The use of UDD variables ==
 
== The use of UDD variables ==
Line 291: Line 298:
 
<br>
 
<br>
  
[[Category:Applications]]
+
 
 +
[[Category: ICX-AlphaCom Applications]]
 
[[Category:Control Room Applications]]
 
[[Category:Control Room Applications]]

Latest revision as of 16:20, 31 May 2022

Icx icon.png
Visitor intercom - principle

This article describes how the ICX-AlphaCom system can be configured to control call setup between pairs of stations, e.g. used for visitor intercoms i prison, interrogation rooms etc. Up to 20 pairs of intercoms are supported.

From the Control Room Station one can:

  • Set up and tear down calls between two stations in a "pair"
  • Silently Listen-In on an active conversation. Talkback is possible.
  • Start/stop recording of active calls. This requires that a Zenitel Audio Recorder is installed on a dedicated Windows computer.

As an option it is possible set a conversation timer, and play a voice message to the intercom pair when there is a short time left of the conversation.

The stations must be Zenitel IP Devices. SIP devices are not supported in this application.

Operation

The application is based on using the IP Flush Master with a DAK-48 module. One DAK panel supports up to 16 pairs of intercoms. If more pairs are needed (max. 20 pairs), a second DAK-48 panel must be added. Function keys on the DAK48 panel will be as follows:

DAK-48 panel layout



  • Call setup: Press the "Pair x" button. The two intercoms in the pair will be connected, and the green LED will be lit. Press the button again to terminate the connection. One can activate as many pairs as one wants.
  • Listen-In: Press the "Listen x" button to silently monitor the conversation in the selected pair. Press the same button again (or C-button) to stop Listen-In. Only one conversation can be monitored at a time. If pressing a new "Listen x" button, the current monitoring will be terminated, and the new selection will be activated. Active Listen-In is indicated by green LED. One can start the "Listen-In" before or after a call has been set up. Talkback into the conversation is possible by pressing the M-key.
  • Audio Recording: Press the "REC x" button to start audio recording of the conversation in the selected pair. Recording can be started only after the call has been set up. An active recording is indicated by red LED. Multiple conversations can be recorded at the same time.


Note icon Due to the nature of Voice over IP (VoIP), there will be some audio delay between Station A and B. Please note that:
  • If users of Station A and B can hear each other also through the air (e.g. over a glass wall or through a thin wall), they might experience an echo effect
  • If users of Station A and B can see each other (e.g. through a glass wall), they might experience that audio is not in synchronization with the lips of the talker (missing lip sync).


Number plan

The application is using the Duplex Conference feature of the ICX-AlphaCom. There are 20 conference channels, default numbers are 8301-8320.

General rules

Due to the Event Handler configuration used in this application, a strict number plan must be followed.

  • Each intercom pair is using one fixed duplex conference.
  • The "Call setup", "Listen-In" and "Record" are Event Triggers, feature 52.

The general directory number rules are as follows:

  • Intercom pair xx (xx = 01 - 20):
    • Conference number: 83xx
    • Station A: 41xx
    • Station B: 42xx
    • Call Setup: 43xx
    • Listen-In: 44xx
    • Record: 45xx
  • Example - Pair 4:
    • Conference number: 8304
    • Station A: 4104
    • Station B: 4204
    • Call Setup: 4304
    • Listen-In: 4404
    • Record: 4504

Station directory numbers

The Control Room Station must have directory number 4000.

The stations in the pairs must have directory numbers 41xx (Station A) and 42xx (Station B) according to the rules above (xx = 01 - 20).

Station directory numbers



Station A in each pair must be included in UDP group 1. Note that "Station B" must not be in the UDP group.

Station A in each pair must be in UDP group 1



Event Trigger directory numbers

Event Trigger numbers must be created in AlphaPro, Directory & Features menu as Event Trigger, feature 52.

Note that the ID field is used to separate the events. The ID field is linked to the Sub-Event field in the Event Handler.

  • Call Setup: 43xx. ID field = 1.
  • Listen-In: 44xx. ID field = 2.
  • Record: 45xx. ID field = 3.
Event Trigger directory numbers


DAK-48 panel configuration

If more that 20 DAK keys are used, one have to "borrow" DAK tables from free users.

Note that the Event Trigger numbers must be entered with the letter "E" in front:

The first six DAK keys of the DAK48 module. (The four blank DAK keys are D1-D4 on the main module)


Below shows what numbers to assign to the first 24 DAK keys on the panel:

The first 24 DAK keys


Event Handler configuration

Call Setup event

Event Triggered by 43xx codes


Action commands:

IF %udd(%2.dir(2))
$ODC L41%2.dir(2,0) L8300
IND %1.phy %1.dak(E%2.dir) 2 1 OFF
stop
ENDIF
$ODC L41%2.dir(2,0) L83%2.dir(2,0)
IND %1.phy %1.dak(E%2.dir) 2 1 ON



"Station B" will follow "Station A" in/out of conference


Action commands:

$ODC L42%1.dir(2,0) L%chg(%2.dir,8300)
WUDD %1.dir(2) %chg(1,0)
IF %chg(0,1)
IF %udd(1%2.dir(2,0))
$REC L%2.dir U0
WUDD 1%2.dir(2,0) 0
OWN 4000
IND %1.phy %1.dak(E45%2.dir(2,0)) 1 3 OFF
ENDIF
ENDIF


Listen-In event

Event Triggered by 44xx codes


Action commands:

IF %op(%2.dir,=,%udd(5000))
$DISCON_ST L%1.dir U0
stop
ENDIF
$SNV Q0 W1 W6 W54
$DISCON_ST L%1.dir U0
pause
pause
pause
pause
$ODC L%1.dir L83%2.dir(2,0) U1 U4
pause
pause
pause
$SNV Q4 W1 W6 W54


Update LED and UDD status when Control Room station activates "Listen-In" feature. Mute the microphone


Action commands:

IND %1.phy %1.dak(E44%2.dir(2,0)) 2 1
WUDD 5000 %chg(44%2.dir(2,0),0)
IF %chg(1,0)
$DIP L%1.dir "auo 8"
ENDIF


Audio Recording event

Event Triggered by 45xx codes


Action commands:

IF %udd(1%2.dir(2,0))
$REC L83%2.dir(2,0) U0
IND %1.phy %1.dak(E45%2.dir(2,0)) 1 3 OFF
WUDD 1%2.dir(2,0) 0
stop
ENDIF
IF %udd(%2.dir(2,0))
$REC L83%2.dir(2,0) U1
IND %1.phy %1.dak(E45%2.dir(2,0)) 1 3 ON
WUDD 1%2.dir(2,0) 1
stop
ENDIF
pause
$DTS L%1.dir 'Rec. not avail.' U1
$DTS L%1.dir 'Call not active' U2


Restore "Microphone mute" after Talkback

If the Control Room does Talkback" to an intercom pair by pressing the M-key while Listen-In is active, this event will reassure that the microphone is muted again when the M-key is released.

Restore "Mic OFF" after Talkback


Action commands:

IF %udd(5000)
pause
$DIP L%1.dir "auo 8"
ENDIF


Initialization of UDD variables at ICX System startup

At ICX startup all UDD flags are reset


Action commands:

WUDD 5000 0
tmp 0 "0"
LOOP
tmp 0 "%op(%tmp(0),+,1)"
WUDD %tmp(0) 0
IF %op(%tmp(0),=,20)
BREAK
ENDIF
ENDLOOP
tmp 1 "100"
LOOP
tmp 1 "%op(%tmp(1),+,1)"
WUDD %tmp(1) 0
IF %op(%tmp(1),=,120)
BREAK
ENDIF
ENDLOOP


Conversation timeout and Voice Message alert

A timer can be started when the call is established between a pair. At timeout the call will be terminated. One can also play a voice message to notify the parties that the call is soon to be ended.

In the below configuration example, there are three timers:

  1. Timer 1: After 15 minutes (900.0 sec) a voice message (Message 1, 8191) is played to the two parties, e.g. "The call will end in 5 minutes"
  2. Timer 2: After 19 minutes (1140.0 sec) a voice message (Message 2, 8192) is played to the two parties, e.g. "The call will end in 1 minute"
  3. Timer 3: After 20 minutes (1200.0 sec) is terminated


The voice messages must be uploaded to the ICX-AlphaCom as wav-files. The $GM command is used to send the voice message.


Configuration:
Each pair of intercoms must have a dedicated Group Call for the voice announcement. The Directory Number of the group call must be 46xx (4601-4620 if there are 20 pairs).

  • In group 4601 include station 4101 (Station A, Pair 1) and 4201 (Station B, Pair 1).
  • In group 4602 include station 4102 (Station A, Pair 2) and 4202 (Station B, Pair 3).
  • In group 4603 include station 4103 (Station A, Pair 3) and 4203 (Station B, Pair 3).
  • Etc..


Modify the Call Setup event by adding the lines in bold, they will start and stop the three timers:

Event Triggered by 43xx codes


Action commands:

IF %udd(%2.dir(2))
$ODC L41%2.dir(2,0) L8300
IND %1.phy %1.dak(E%2.dir) 2 1 OFF
$ST L%1.dir W0 L1%2.dir(2)
$ST L%1.dir W0 L2%2.dir(2)
$ST L%1.dir W0 L3%2.dir(2)
STOP
ENDIF
$ODC L41%2.dir(2,0) L83%2.dir(2,0)
IND %1.phy %1.dak(E%2.dir) 2 1 ON
$ST L%1.dir W9000 L1%2.dir(2)
$ST L%1.dir W11400 L2%2.dir(2)
$ST L%1.dir W12000 L3%2.dir(2)


The timers are using "labels" 101-120, 201-220 and 301-320 as identifiers. When the Timeout event (21) is triggered, these labels are used to decide which message to play to which group. Examples:

  • 101 = Play message 1 to group 4601
  • 105 = Play message 1 to group 4605
  • 204 = Play message 2 to group 4604
  • 302 = 3: terminate, call in pair 02

Timeout event:

Actions when timers times out


Action commands:

IF %op(%2.dir,>=,101)
IF %op(%2.dir,<=,120)
$GM L46%2.dir(2) N!1
ENDIF
ENDIF
IF %op(%2.dir,>=,201)
IF %op(%2.dir,<=,220)
$GM L46%2.dir(2) N!2
ENDIF
ENDIF
IF %op(%2.dir,>=,301)
IF %op(%2.dir,<=,320)
$DISCON_ST L41%2.dir(2) U3 
IND %1.phy %1.dak(E43%2.dir(2)) 2 1 OFF
ENDIF
ENDIF


The use of UDD variables

UDDs are used to store various status information:

  • UDD 1 - 20: Call status, one UDD per intercom pair: 0 = Call not active. 1 = Call is active.
  • UDD 101 - 120: Recordig status, one UDD per intercom pair: 0 = Recording not active. 1 = Recording active.
  • UDD 5000: 0 = Listen-In not active. When Listen-In is active the UDD stores which pair is monitored. (44xx, where xx is the pair).