Milestone XProtect - Professional and Enterprise
From Zenitel Wiki
The integration of STENTOFON AlphaCom with Milestone XProtect software enables video stream routing under control of commands issued by AlphaCom. The interface uses the standard matrix functionality which is part of Milestone XProtect VMS. This article describes how to integrate the AlphaCom XE with the Milestone XProtect Professional and Enterprise 2013 (8.5e) version.
Integration with the Expert and Corporate versions of XProtect are described in a separate article.
Contents
Features
The integration allows cameras to be connected to monitors on call and call request events, including changes to the viewed camera when the guard scrolls through the call request queue on the intercom station.
When a master station receives Call Request from a substation, and when a call is made to the substation, action strings are sent from the AlphaCom XE to the Milestone system using the AlphaCom's EDO port. Using the Event Handler, a few simple events allows control of cameras located in association with a substation. When scrolling the call queue, commands related to the selected station is transmitted, allowing the video on the monitor to follow the queue navigation on the master station.
If any new call requests are received while in conversation, this will not influence on the active image. When the conversation is cancelled, and there are still calls in the queue, the image assosiated to the first station in queue will be displayed.
Software
AlphaCom software requirement:
Milestone software:
- Milestone XProtect Professional and Enterprise 2013 (8.5e) version.
Default TCP port usage
- TCP port 1234: Between AlphaCom and the Milestone XProtect Server
- TCP port 80: Between the Server and the Smart Client
- TCP port 12345: Used for transferring Matrix-triggered images from the Server to the Smart Client view
Milestone XProtect configuration
It is assumed that a Milestone XProtect system is already installed and up and running.
Adding new cameras
Adding cameras in general
- Start the Milestone Management Application software
- Expand the Advanced Configuration folder, and right click Hardware Devices, and select Add New Hardware Device.
- A wizard offers you several ways of detecting and adding cameras. Follow the instructions and consult the Milestone documentation if required.
Adding the camera of the IP Video Station ?????????????
If the IP Video Station (item 1401110100) is a part of the installation you might want to add the integrated CP-CAM camera to Milestone. Follow these steps:
- Expand the Servers folder in the Management Client's Site Navigation pane and select the Recording Server node.
- In the Overview pane, right-click the required recording server and select Add Hardware...
- Select Manual
- Enter "admin" as User Name and "1234" as password
- Scroll down in the device driver list to "Universal Driver", where you should check the "Universal Driver"
- 6. Enter the IP-address of the camera, port 80 and "Universal Driver"
- 7. Press Next multiple times to complete the wizard
After the camera has been added, you need to change the video properties:
- Expand the Servers folder in the Management Client's Site Navigation pane and select the Recording Server node
- In the Overview pane, select the camera
- In the "Settings" tab, set:
- Connection URI: http://<camera IP address>/mjpg/video.mjpg
- Delivery mode: Multipart stream
- Retrieval mode: Streaming
- Streaming mode: HTTP
The Matrix function
With Matrix — an integrated solution for distributed viewing of video — you can send video from any camera on a network operating your system to Matrix recipients. A Matrix recipient is basically a computer capable of displaying Matrix-triggered video. There are two kinds of Matrix recipients: computers running a dedicated Matrix Monitor application and computers running the XProtect Smart Client.
Adding a Matrix recipient
To add an Matrix recipient, do the following:
- In the Management Client's Site Navigation pane, expand the Client node, then select Matrix.
- In the Management Client's Overview pane, right-click Matrix Configurations and select Add Matrix... This opens the Add Matrix dialog.
- In the Name field, enter a descriptive name for the Matrix recipient.
- In the Description field, enter a description of the Matrix recipient.
- In the Address field enter the IP address or the host name of the required Matrix recipient
- In the Port field enter the port number used by the Matrix recipient installation. Default is 12345.
- In the Password field enter the Matrix recipient's password, e.g. 12345.
- In the Type field select the type of Matrix recipient you are adding—a Matrix Monitor or an XProtect Smart Client.
- Click OK to save the settings.
Setting the Smart Client to work as a matrix recipient
To make the Smart Client work as a matrix recepient, do the following steps:
- Start the Smart Client application and select the tab Setup
- In the Views pane, right click on the Private view and add New Group.
- Once the new group is created, right click and add New View and select the dimensions wanted. E.g. 4:3, 1x1.
- In the System Overview pane, drag and drop the Matrix item to the main window.
- While the main window is in focus, scroll down and click the button Connection Settings in the Properties pane, and enter port number 12345 and the same password as you entered in the Matrix setup in the Management Client.
Generic Events
Adding Generic Events
Generic events allow you to trigger actions in the Milestone XProtect event server by sending simple strings from the AlphaCom XE via the IP network to the Milestone event server. In AlphaCom the Event Handler is used to generate strings transmitted via the EDO port. In this article the string is on the format "CamXXX", where XXX is the directory number of the station associated with the camera. Using the directory number as a part of the string is convenient, as it simplifies the event handler programming in AlphaCom. But the syntax of the string is freely programmable.
Examples:
EDO string | Camera | Event name | Station dir.no |
---|---|---|---|
Cam107 | Entrance | Cam107 | 107 |
Cam108 | Backdoor | Cam108 | 108 |
Cam109 | Corridor | Cam109 | 109 |
CamOff | All | CamOff | All stations |
The "CamOff" event is used to disconnect cameras from the Smart Client when there is no conversations and the call queue is empty.
To add Generic Events from the Management Client, do the following:
- In the Management Client's Site Navigation pane, expand the Rules and Events node, then select Generic Events.
- In the Management Client's Overview pane, right-click Generic Events and select Add New... This opens the Add New dialog.
- In the Name field, enter a descriptive name for the event, e.g. Cam107.
- In the Expression field, enter the actual string in quotes ("..."), as received from AlphaCom. E.g. "Cam107".
- In the Expression type select "Search"
- In the Data source field select "Compatible"
- In the Priority set to "1"
Important note! Generic events have no authentication. This makes them easier to trigger but, to avoid jeopardizing security, only events from local host are accepted. You can however allow other client IP addresses from Tools > Options menu > Generic Events tab. The AlphaCom IP address must be entered as a legal IP address.
Creating rules
We need to create a rule, saying that when the Milestone event server receives a generic event from the AlphaCom, the video from a certain camera should pop up in a certain Smart Client. To define actions on events we use the event rule engine.
From the Management Client, do the following:
- In the Management Client's Site Navigation pane, expand the Rules and Events node, then select Rules.
- In the Management Client's Overview pane, right-click Rules and select Add Rule... This opens the Add Rule dialog.
- In the Step 1 - Type of Rule:
- In the Name field, enter a descriptive name, e.g. "Cam107".
- In the Select the type of rule you want to create field choose "Perform an action on <event>"
- In the Edit rule description field click on event, and scroll down to External Event, then select Generic Event, then select the relevant event, e.g. Cam107
- Select Next
- Skip Step 2 - Conditions by clicking Next
- In the Step 3 - Actions:
- Enable Set Matrix to view <devices>
- In the Edit rule description field click on Matrix and select the wanted Matrix recipient
- In the Edit rule description field click on devices and select the wanted camera
- Select Next
- Skip Step 4 - Stop criteria by clicking Finnish
You should now have a rule looking something like this:
Continue to create a rule for every camera in the system.
You also need to create one common rule to remove the video image when a call is ended. This is done by switching the matrix to the "DirectShow virtual video", which has no video feed, when the string for disconnection of video (e.g. "CamOff") is received.
Testing Generic Events
One can test that the generic events are operational with a small program called Generic Event tester. This makes to possible to verify the Milestone configuration, totally independent of the AlphaCom.
- Host: Enter "localhost" if the GenericEventTester is running on the same computer as the Milestone server. If the GenericEventTester is running on a remote computer, enter the IP address of the Milestone server.
- Port: The port number used by the Milestone event server for Generic Events. Default is 1234.
- Event: The generic event string, e.g. Cam107 or CamOff, as defined in the "Expression" field of the Generic Event.
- Press Send Tcp to send the event string to Milestone. The actions as defined by the Rules should now be executed.
Note that if you run the GenericEventsTester on a remote computer, you have give access from the Milestone Management Client for that computers IP address in Tools > Options menu > Generic Events tab.
AlphaCom configuration
Configure the Master station for Call Queueing
A number of different station types can be used for call queuing. The station should use the 763x codes for queue navigation. These directory numbers should be assigned to DAK keys. The station should be prepared for call queue operation, how to do this depends on the station type used:
TCP/IP Communication setup
In AlphaPro, Exchange & System -> Serial Ports, the EDO 1 port must be configured to communiate with the computer running the Milestone XProtect server:
- Port type: TCP/IP Client
- IP address: The IP address of the Milestone XProtect event server
- Port: 1234
- Enable Connect at AlphaCom write, disconnect after each write
The Milestone XProtect Server is by default using TCP port 1234 for generic events. If required this port number can be modified from Milestone XProtect Mangement Client, Tools -> Options -> Generic Events tab -> Port.
Note! You might have to open TCP port 1234 in the Windows firewall of the computer running the Milestone server.
(Windows XP: Start > Control Panel > Windows Firewall > Exceptions tab > Add Port: Select port type TCP. Name: Milestone. Port number: 1234)
Event Handler configuration
UDP Groups:
- Include all substations with cameras in UDP group 2.
Event Handler configuration:
The Event Handler is used to transmit commands through the EDO port to the Milestone IP Video system.
In AlphaPro, go to Exchange and System -> Events, press Insert and create the following events:
Event 1 - An UDD is used to store the busy/free status of the master station. 0 = free, 1 = in conversation. The index of the UDD is equal to the physical number of the master station. The UDD is checked when call requests are received or deleted. If the station is in use, cameras should not be turned on (i.e. no commands should be transmitted).
Event Owner: | The Master Station |
Event type: | 08 - Conversation Outgoing |
When change to: | ON or OFF |
When related to: | All |
Action: | WUDD %1.phy %chg(1,0) |
Event 2 - When a conversation is made from the master station to a substation w. camera, transmit command "CamXXX" to the IP Video system, where XXX = the directory number of the substation.
Event Owner: | The Master Station |
Event type: | 08 - Conversation Outgoing |
Subevent: | 0 |
When change to: | ON |
When related to: | Stations w. UDP, Id: 2 |
Action: | EDO 1 "Cam%2.dir" |
Event 3 - When the conversation between the master and any station cancels, switch off the camera ("CamOff"), and activate the MAILQ_NAVIG command. The MAILQ_NAVIG command will step to the first in the queue, and re-trigger the '23 - New Current Mail' event.
Event Owner: | The Master Station |
Event type: | 08 - Conversation Outgoing |
Subevent: | 0 |
When change to: | OFF |
When related to: | All |
Action: | EDO 1 "CamOff" |
$MAILQ_NAVIG L%1.dir 2 |
Event 4 - When receiving a Call Request or scrolling the queue, and the master station is not busy, activate the camera assosiated with the selected substation.
Event Owner: | The Master Station |
Event type: | 23 - New Current Mail |
Subevent: | 0 |
When change to: | ON |
When related to: | Stations w. UDP, Id: 2 |
Action: | IF %udd(%1.phy) |
STOP | |
ENDIF | |
EDO 1 "Cam%2.dir" |
Event 5 - The Priority Mail Present - OFF event is triggered when the queue of the master station is empty. The queue can become empty because the delete code 7630 has been dialled, in that case the cameras should be turned off. Or the queue can become empty because of call back to the last substation in queue, in that case we want the camera to remain on until the conversation is cancelled. We start a 0.5 second timer, and check if the master station is in conversation when the timer times out:
Event Owner: | The Master Station |
Event type: | 06 - Priority Mail Present |
When change to: | OFF |
Action: | $ST L%1.dir w5 L9999 |
Event 6 - Half a second after the queue was empty, check if the station is in conversation, if not switch off the camera:
Event Owner: | The Master Station |
Event type: | 21 - Event Timeout |
Subevent: | 0 |
When change to: | ON |
When related to: | Directory number: 9999 |
Action: | IF %udd(%1.phy) |
STOP | |
ENDIF | |
EDO 1 "CamOff" |