MPC Converter (Node-RED)
From Zenitel Wiki
Introduction
The MPC (MPC Data Protocol) is a proprietary, ASCII‑based control and event protocol. It is used to monitor system events - such as calls, dialing activity, and station status - and to send control commands to the intercom server. MPC does not carry any audio or voice traffic. The protocol was native to the TouchLine intercom generation and was implemented in the AlphaCom generation solely to maintain backward compatibility.
This article describes how Node-RED is used to convert data from Zenitel Connect Pro into MPC Data Protocol format.
Please note that this converter does not provide full MPC protocol compatibility. It supports only the specific commands and messages described in this article.
| The MPC Data Protocol is intended exclusively for legacy compatibility and should not be used for new integrations. |
Configuration
This application is based on a premade Node-RED flow.
Preparations
- Install Node-RED
- Download the flow "MPC Converter" from the Downloads section
- Import the flow in to your Node-RED application
Node configuration
Establish communication between Node-RED and Zenitel Connect Pro by double-clicking one of the Zenitel nodes (a node with a Zenitel logo
), and modify the wamp-client with the correct IP Address, Zenitel Link username and password.
The status "connected" should now show below all the Zenitel nodes.
| MPC Converter flow |
The MPC Converter is configured to use TCP port 3001. The port number can be changed in the "TCP Listen 3001" node.
Messages
Output messages
- A data message starts with an ASCII NUL character
- A data message is terminated with <CR LF> (ASCII Carriage Return, Line Feed).
- The MPC protocol supports maximum 4 digit in the directory number. Leading F's are used as filler on shorter numbers.
| Message format | Description |
|---|---|
| 0200 aaaa | Station becomes Busy aaaa = Directory number of the busy station. |
| 0201 aaaa | Station becomes Free aaaa = Directory number of the free station. |
| 0502 aaaa bbbb cccc dddd | Call to a station in Busy state aaaa = Directory number of the calling station bbbb = Directory number of the called, busy station cccc = dddd = 0000 |
| 0503 aaaa bbbb cccc dddd | Call to a station in Private (Auto-answer disabled) state aaaa = Directory number of the calling station bbbb = Directory number of the called, private station cccc = dddd = 0000 |
| 0504 aaaa bbbb cccc dddd | Call to a station in Open (Auto-answer) state aaaa = Directory number of the calling station bbbb = Directory number of the called, open station cccc = dddd = 0000 |
| 0206 aaaa | Station disconnected aaaa = Directory number of the disconnecting station |
| 0507 aaaa bbbb cccc dddd | Call to a feature aaaa = Directory number of the calling station bbbb = Directory number of the feature cccc = dddd = 0000 |
| 0226 vvvv | Zenitel Connect Pro software version number Response to the data command "?" vvvv = version number, e.g. 0109 |
Input messages
- The input messages consist of a command character followed by one or more parameters. The termination of the message is a <carriage return> character.
- Maximum 4 digit numbers are supported. Leading F's must be used as filler on shorter numbers. The protocol is case-sensitive.
- Input messages may or may not include spaces between the different records of the protocol. Spaces are shown below for clarity only.
- Illegal commands or commands not supported are discarded without notice or error messages.
| Message format | Description |
|---|---|
| H aaaa bbbb | Station aaaa dials the digits bbbb in sequence. The aaaa station is NOT forced to idle before dialing takes place. Example: H F124 F247 - Station 124 dials digits 2, 4 and 7 in sequence. |
| I aaaa bbbb | Sets up a call between aaaa and bbbb with low priority (70) Example: I F124 4234 - Station 124 calls station or feature 4234 |
| J aaaa bbbb | Sets up a call between aaaa and bbbb with high priority (40) Example: I F124 F840 - Station 124 calls broadcast feature 840 |
| Q aaaa | Cancels the call where station aaaa is involved |
| > aaaa | Station aaaa presses M-key |
| < aaaa | Station aaaa releases M-key |
| ? | ZCP returns the software version (0226 response). Often used as data line check. |
- The H, > and < commands only work for native Zenitel devices. They do not work for ITSV-x, ITS-1 or for 3rd party SIP devices.
Test and confirm operation
The TCP Port 3001 must be added in the Firewall of the ZCP, and enabled on the Eth interface used for the communication.
The operation can be verified by using the software PuTTY.
Start PuTTY, and enter the IP Address of the ZCP, port number 3001, and Connection Type = Raw.
| PuTTY configuration |
In the terminal window type ? <enter>. The ZCP should respond with 0226 vvvv, where vvvv is the software version of the ZCP.
| Verifying the communication |
