Difference between revisions of "Visitor Intercom - Remote call setup and Listen-In"
From Zenitel Wiki
(→Conversation timer, and Voice Message alert) |
(→Restore "Microphone mute" after Talkback) |
||
(25 intermediate revisions by 3 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: | ||
[[File:Visitor IC DAK48.png|left|thumb|350px|DAK-48 panel layout]] | [[File:Visitor IC DAK48.png|left|thumb|350px|DAK-48 panel layout]] | ||
+ | <br /> | ||
− | |||
− | |||
− | |||
− | + | <ul style="list-style-position: inside;"> | |
− | + | <li>'''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.</li> | |
− | + | <li>'''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.</li> | |
+ | <li>'''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.</li> | ||
+ | </ul> | ||
<br style="clear:both;" /> | <br style="clear:both;" /> | ||
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 | ||
− | + | }} | |
− | |||
=== 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 | ||
− | + | }} | |
− | |||
=== 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 | ||
− | + | }} | |
− | |||
=== Restore "Microphone mute" after Talkback === | === 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. | 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. | ||
− | [[File: | + | [[File:Restore MicMute.PNG|left|thumb|700px|Restore "Mic OFF" after Talkback]] |
<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 | ||
+ | }} | ||
− | + | === Conversation timeout and Voice Message alert === | |
− | |||
− | == Conversation | ||
A timer can be started when the call is established between a pair. At timeout the call will be terminated. | 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. | One can also play a voice message to notify the parties that the call is soon to be ended. | ||
− | In the below example, there are three timers: | + | In the below configuration example, there are three timers: |
− | # Timer 1: After 15 minutes a voice message is played to the two parties, e.g. "The call will end in 5 minutes" | + | # 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" |
− | # Timer 2: After 19 minutes a voice message is played to the two parties, e.g. "The call will end in 1 minute" | + | # 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" |
− | # Timer 3: After 20 minutes is terminated | + | # Timer 3: After 20 minutes (1200.0 sec) is terminated |
− | The $GM command is used to send the voice message. | + | The voice messages must be [[Voice_Alarm_Messages#Uploading_Voice_Alarm_Messages_through_AlphaWeb|uploaded to the ICX-AlphaCom as wav-files]]. The [[$GM|$GM command]] is used to send the voice message. |
'''Configuration:'''<br> | '''Configuration:'''<br> | ||
− | + | 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 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 4602 include station 4102 (Station A, Pair 2) and 4202 (Station B, Pair 3). | ||
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 | |
ENDIF | ENDIF | ||
$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 | ||
− | '''$ST L%1.dir | + | '''$ST L%1.dir W9000 L1%2.dir(2)''' |
− | '''$ST L%1.dir | + | '''$ST L%1.dir W11400 L2%2.dir(2)''' |
− | '''$ST L%1.dir | + | '''$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 259: | Line 264: | ||
* 105 = Play message '''1''' to group 46'''05''' | * 105 = Play message '''1''' to group 46'''05''' | ||
* 204 = Play message '''2''' to group 46'''04''' | * 204 = Play message '''2''' to group 46'''04''' | ||
− | * 302 = | + | * 302 = '''3''': terminate, call in pair '''02''' |
Timeout event: | Timeout event: | ||
Line 266: | Line 271: | ||
<br style="clear:both;" /> | <br style="clear:both;" /> | ||
− | IF %op(%2.dir,>=,101) | + | {{Code2| |
− | IF %op(%2.dir,<=, | + | IF %op(%2.dir,><nowiki>=</nowiki>,101) |
− | $GM L46%2.dir(2) N!%op(%2.dir,/, | + | IF %op(%2.dir,<<nowiki>=</nowiki>,120) |
+ | $GM L46%2.dir(2) N!1 | ||
+ | ENDIF | ||
+ | ENDIF | ||
+ | IF %op(%2.dir,><nowiki>=</nowiki>,201) | ||
+ | IF %op(%2.dir,<<nowiki>=</nowiki>,220) | ||
+ | $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 | ||
ENDIF | ENDIF | ||
ENDIF | ENDIF | ||
+ | }} | ||
== The use of UDD variables == | == The use of UDD variables == | ||
Line 285: | Line 298: | ||
<br> | <br> | ||
− | [[Category:Applications]] | + | |
+ | [[Category: ICX-AlphaCom Applications]] | ||
[[Category:Control Room Applications]] | [[Category:Control Room Applications]] |
Latest revision as of 11:53, 10 February 2023
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.
Contents
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:
- 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.
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 A in each pair must be included in UDP group 1. Note that "Station B" must not be in the UDP group.
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.
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:
Below shows what numbers to assign to the first 24 DAK keys on the panel:
Event Handler configuration
Call Setup event
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
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
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
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
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.
Action commands:
IF %udd(5000) pause $DIP L%1.dir "auo 8" ENDIF
Initialization of UDD variables at ICX System startup
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:
- 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"
- 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"
- 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:
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:
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).