Actions

Milestone XProtect - Expert and Corporate

From Zenitel Wiki

Revision as of 14:03, 18 February 2015 by Asle (talk) (TCP/IP Communication setup)

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 Expert and Corporate 2013 R2 (6.1a) versions.
Integration with the Professional and Enterprise versions of XProtect is described in a separate article.

AlphaCom and Milestone integration

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 Expert or Corporate, ver. 2013 R2 (6.1a)


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
Example: Server and the Smart Client are running on the same PC (i.e. same IP address)



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

  1. To add a new camera expand the Servers folder in the Management Client's Site Navigation pane and select the Recording Server node.
  2. In the Overview pane, right-click the required recording server and select Add Hardware...
  3. A wizard offers you several ways of detecting and adding cameras. Follow the instructions and consult the Milestone documentation if required (press F1 for online help).
Adding a new camera to the Milestone system


Adding the DirectShow driver for video in idle

When the master station is in idle, and there is no video to show, the Smart Client must be connected to a virtual camera with no video. A "DirectShow driver" can be installed to the Recording Server, and will provide 8 video channels. Each of the channels can be set to a DirectShow device, which can be a local/USB web camera, an AVI- video file or empty (not configured). Install the DirectShow driver with: "0.0.0.1" as IP-address and "DirectShow" as password.

Installing the "DirectShow" driver:

  1. Expand the Servers folder in the Management Client's Site Navigation pane and select the Recording Server node.
  2. In the Overview pane, right-click the required recording server and select Add Hardware...
  3. Select Manual, then Add
  4. Enter "DirectShow" as User Name and "DirectShow" as password, then Next
  5. Scroll down in the device driver list to "Other", where you should check the "DirectShow Driver", then Next
  6. Enter the IP-address "0.0.0.1", port 80 and "DirectShow Driver".
  7. Acknowledge the device channel settings

After device has been added, you can specify what to show for each camera channel in ‘Settings’ in the Properties pane..

Adding a DirectShow driver


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:

  1. Expand the Servers folder in the Management Client's Site Navigation pane and select the Recording Server node.
  2. In the Overview pane, right-click the required recording server and select Add Hardware...
  3. Select Manual, then Add
  4. Enter "admin" as User Name and "1234" as password (this is the default username and password)
  5. Scroll down in the device driver list to "Universal Driver", where you should check the "Universal Driver"
Selecting "Universal Driver" for the CP-CAM


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:

  1. Expand the Servers folder in the Management Client's Site Navigation pane and select the Recording Server node
  2. In the Overview pane, select the camera
  3. In the "Settings" tab, set:
    1. Connection URI: http://<camera IP address>/mjpg/video.mjpg
    2. Delivery mode: Multipart stream
    3. Retrieval mode: Streaming
    4. Streaming mode: HTTP
Video settings for the CP-CAM


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 in the Management Client

To add an Matrix recipient through the Management Client, do the following:

  1. In the Management Client's Site Navigation pane, expand the Client node, then select Matrix.
  2. In the Management Client's Overview pane, right-click Matrix Configurations and select Add Matrix... This opens the Add Matrix dialog.
  3. In the Name field, enter a descriptive name for the Matrix recipient.
  4. In the Description field, enter a description of the Matrix recipient.
  5. In the Address field enter the IP address or the host name of the required Matrix recipient
  6. In the Port field enter the port number used by the Matrix recipient installation. Default is 12345.
  7. In the Password field enter the Matrix recipient's password, e.g. 12345.
  8. In the Type field select the type of Matrix recipient you are adding—a Matrix Monitor or an XProtect Smart Client.
  9. Click OK to save the settings.
Adding a Matrix recipient


Setting the Smart Client to work as a matrix recipient

To make the Smart Client work as a matrix recepient, do the following steps:

  1. Start the Smart Client application and select the tab Setup
  2. In the Views pane, right click on the Private view and add New Group.
  3. Once the new group is created, right click and add New View and select the dimensions wanted. E.g. 4:3, 1x1.
  4. In the System Overview pane, drag and drop the Matrix item to the main window.
  5. 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.
Smart Client setup as Matrix recipient. Drag and drop the Matrix item to the main window, and set communication parameters in Connection Settings


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:

  1. In the Management Client's Site Navigation pane, expand the Rules and Events node, then select Generic Events.
  2. In the Management Client's Overview pane, right-click Generic Events and select Add New... This opens the Add New dialog.
  3. In the Name field, enter a descriptive name for the event, e.g. Cam107.
  4. In the Expression field, enter the actual string in quotes ("..."), as received from AlphaCom. E.g. "Cam107".
  5. In the Expression type select "Search"
  6. In the Data source field select "Compatible"
  7. In the Priority set to "1"


Adding generic event "Cam107" for station 107



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.

Allow reception of generic events from AlphaCom with IP address 10.5.101.30


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:

  1. In the Management Client's Site Navigation pane, expand the Rules and Events node, then select Rules.
  2. In the Management Client's Overview pane, right-click Rules and select Add Rule... This opens the Add Rule dialog.
  3. In the Step 1 - Type of Rule:
    1. In the Name field, enter a descriptive name, e.g. "Cam107".
    2. In the Select the type of rule you want to create field choose "Perform an action on <event>"
    3. 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
    4. Select Next
  4. Skip Step 2 - Conditions by clicking Next
  5. In the Step 3 - Actions:
    1. Enable Set Matrix to view <devices>
    2. In the Edit rule description field click on Matrix and select the wanted Matrix recipient
    3. In the Edit rule description field click on devices and select the wanted camera
    4. Select Next
  6. Skip Step 4 - Stop criteria by clicking Finnish

You should now have a rule looking something like this:

Rule: When generic event Cam107 is received from external, show the video from camera 10.5.101.35 in the Matrix "Control Room"


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.

Rule: When generic event CamOff is received from external, show the video from virtual camera 0.0.0.1 in the Matrix "Control Room". This camera has no video feed, and the Smart Client will go in black


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.
Test software for the generic events


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:

EDO port setup. Milestone server IP address is 10.5.101.151, using port 1234


  • 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 7: Start > Control Panel > Windows Firewall > Advanced settings > Inbound rules > New Rule > Port > Select port type TCP. Specific local ports: 1234 > Enable Allow the connection. Name: Milestone.
  • 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"

Related links and articles