Actions

MPC Data Protocol

From Zenitel Wiki

Revision as of 10:27, 20 February 2009 by Aksel (talk)

MPC (TouchLine) Data Protocol

The AlphaCom supports a subset of the MPC data protocol used with the classic Stentofon TouchLine exchanges. As it allows control of the AlphaCom exchange by mapping MPC commands to AlphaCom commands one-to-one it can be thought of as a variant of the simple link layer, but only for single-exchange (not AlphaNet) applications.

The output is broadcast of exchange events like dialled digits, station busy/free, connection and transfers. Note that it’s possible to send additional data strings from the AlphaCom’s Event Handler on this port also.

The AlphaCom supports a subset of the MPC Data Protocol for backward compatibility. This allowed some TouchLine generation equipment like PNCI, MLH and CRM to be used with the AlphaCom.

Availability

AlphaCom has supported a serial data port which outputs TouchLine formatted output messages since AMC 03.00. From software AMC 07.60, a limited subset of TouchLine input commands are supported also.

Disclaimer

The TouchLine input commands have been implemented by translating them to existing AlphaCom data protocol commands. This means that the commands may not behave 100% identical compared to a TouchLine exchange in all possible situations. You should think of it as a simple ASCII link layer protocol to AlphaCom functionality.

Tips for use

Many AlphaCom features require additional parameters, which can not be supplied when using TouchLine message format. A possible workaround is to use the Event Handling, where you can set up action commands with many parameters.

  • Create a directory number bbbb with feature 85, "Event trigger"
  • In the Event Handler, add an "Event Trigger Feature" event on station aaaa.

This occurs when bbbb is dialed on station aaaa.

  • Configure the desired action commands for the event. The action can be as complex as you like.

Now you can use the “H aaaa bbbb” TouchLine command to execute the configured action.

Data Port

The physical data port where the TouchLine compatible data appears is programmable using AlphaPro. (The default port is Port 1). The data port is an EISA RS232C compatible interface. The format for data transmission is programmable. The default format is: ­

  • 9600 baud
  • 7 bits ASCII characters
  • even parity
  • 1 stop bit

Protocol Output Format

The protocol format is equal to the format used by the TouchLine Exchange, each data message consists of a variable number of data records consisting of 4 hexadecimal digits (ASCII) each. In addition there are control characters in between:

<NUL> <head> <SP>  <SP>  ( <SP> .....)  <CR  LF> 
<NUL> 	ASCII NUL character 
<head>	number of records - head inclusive (2 hex digits), message code (2 hex digits)
<SP>	ASCII space 
	Four hexadecimal digits 
<CR  LF> 	ASCII Carriage Return, Line Feed.

Message filtering

There is a data filtering system in AlphaCom to prevent that all reportable events in a high traffic situation are reported when it is not necessary. As default all stations in the system belongs to the report group called "MONITOR_ST_GROUP".

Not all the supported events are among the subset of events comprising the "MONITOR_ST_GROUP". Through special programming of the AlphaCom, events may be added or taken out of the reporting group (not supported by AlphaPro, use TST).

Additional output messages

From AMC 07.60 it’s possible to generate messages on the MPC output port from the Event Handler. Use the action $MPC 2 “xxxx xxxx xxxx ” Observe the extra SPACE at the end which is required by some subsystems. The format’s leading NUL and trailing CR/LF are added automatically by the exchange. This functionality can be used for several purposes:

  • Generate additional (missing standard) messages
  • Send MPC data to another exchange in AlphaNet

TouchLine Output Messages

Message format Description
0200 aaaa Station becomes Busy

aaaa = Directory number for busy station.

0201 aaaa Station becomes Free

aaaa = Directory number for free station.

0502 aaaa bbbb cccc dddd Call to a busy subscriber

aaaa = Directory number for a-­station <br\> bbbb = Directory number for b-station <br\> cccc = dddd = 0000

0503 aaaa bbbb cccc dddd Call to a Private subscriber

aaaa = Directory number for a­-station <br\> bbbb = Directory number for private b­station <br\> cccc = dddd = 0000

0504 aaaa bbbb cccc dddd Call to an Open subscriber

aaaa = Directory number for a-­station <br\> bbbb = Directory number for open b­station <br\> cccc = dddd = 0000

0206 aaaa Subscriber disconnected

aaaa = Directory number for disconnecting station

0507 aaaa bbbb 0000 000 Function dialled ­ outside connection.

aaaa = Directory number for a­-station<br\> bbbb = Directory number for feature

0210 aaaa Identification message to intelligent station.

aaaa = Directory number of identified intelligent station.

0213 aaaa Reset message

aaaa = Directory number of station to reset. <br\> aaaa = FFFF: reset message to all stations.

0214 aaaa hhmm ddmm yyyy Set time and date

hhmm ddmm yyyy = Hour, minute day, month year

021B aaaa Lamp test

aaaa = Directory number of station asked to test lamps. <br\> aaaa = FFFF: Lamp test on all stations.

0226 vvvv AlphaCom software version number

vvvv = version number like 0710

0427 aaaa bbcc 0000 Audio Program changed

aaaa = Directory number of station where program is changed.<br\> bb = Previous prog_no. (00=off) <br\> cc= New prog_no. (00=off)

0435 aaaa bbbb cccc Group Hunt

aaaa = Directory number of a-­station. <br\> bbbb = Directory number of the hunt­group. <br\> cccc = Directory number of the allocated station.

053F aaaa bbbb cccc ddef Mail to PNCI

aaaa = dirno for station with mail. <br\> bbbb = dirno for PNCI <br\> cccc = station reset number <br\> dd = number of mail (hardcoded in AlphaCom/7) <br\> e = priority (hardcoded in AlphaCom/3) <br\> f = first telephone number (hardcoded in AlphaCom/7)

02An aaaa Digit <n> pressed during connection

aaaa = Directory number of the astation.

02Cn aaaa Direct Access Key pressed (Handset­off + Digit, D20)

aaaa = Directory number of the station. <br\> n = n= dak_key ­ 64

02Dn aaaa Digit <n> pressed (handset is on)

aaaa = Directory number of the station.

02En aaaa Direct Access Key pressed (M + Digit, D10)

aaaa = Directory number of the station. <br\> n = n= dak_key ­ 32

020C aaaa Handset off

aaaa = Directory number of the station.

020D aaaa M-­key released when handset is on (and handset on when off)

aaaa = Directory number of the station.

020E aaaa M­-key pressed

aaaa = Directory number of the station.

020F aaaa C-­key pressed

aaaa = Directory number of the station.



TouchLine Input Messages

The protocol input format is equal to the format used by the TouchLine Exchange.

  • All characters used in the messages are ASCII characters.
  • The input messages consist of a command character followed by one or more parameters. The termination of the message is a <carriage return> character.
  • The parameters are 4 digits consisting of hexadecimal characters in ASCII representation.
  • Input messages may or may not include spaces between the different records of the protocol.

Spaces are shown below for clarity only.

Message format Description
H aaaa bbbb Station aaaa dials digits bbbb in sequence.

Handled as $DIAL_DIGITS L101 L123 in AlphaCom.
Notes:

  • The aaaa station is NOT forced idle before dialing takes place.
  • The H command is NOT able to connect to directory numbers which are hidden by shorter numbers (e.g. it can not reach 4011 hidden by 401).
  • If you send 4 digits to a 3-digit exchange, i.e. dial a station number followed by a digit during connection, we do NOT guarantee that the last digit is handled correctly as it’s received during conversation setup, not conversation itself.
I aaaa bbbb Sets up a conversation between aaaa and bbbb with low priority

Handled as $CONN L101 L102 in AlphaCom

J aaaa bbbb Sets up a conversation between aaaa and bbbb with high priority

Handled as $CONN L101 L102 2 2 2 in AlphaCom

Q aaaa aaaa presses C­-key

Cancels the call where aaaa is involved.
This means that Q-commands in idle will cancel audio program

> aaaa aaaa presses M-key
< aaaa aaaa releases M-key
- aaaa aaaa goes Off-hook (handset off)
_ aaaa aaaa goes On-hook (replaces handset)
X xxxx xxxx … Retransmit data

Sends out anything between X and <CR> up to a certain limit included spaces. Each 4th character are followed by a space character.
Character limit for AMC 07.10 is 61 characters.

? AMC software version is sent out.

(often used as data line check)

  • Illegal commands or commands not supported are discarded without notice or error messages.
  • Parameters that are interpreted as subscriber numbers are tested for validity. Messages with invalid subscriber numbers are discarded without notice. In AlphaCom only digits 0-9 are used in subscriber and feature numbers. Hexadecimal digits A-F are not handled.
  • Leading F`s are legal (and necessary when numbers are less than 4 digits), but discarded.
  • Example: H F101 FF84<CR> will start a group call.


MPC data in AlphaNet

If using MPC in a multi node system with single point connection of MPC connection, other nodes must forward needed MPC data from the event handler. Example of generating MPC busy/free messages from node 2 to node 1:

Event in node 2
Owner: UPD 8
Event: 4 Station in use
When Change To: ON/OFF
String:
IF %op(%1.phy,<,605)
   @1 $MPC 2 "%chg(0200,0201) %1.dir(4,F)"
ENDIF

Example of generating MPC connect message from node 2 to node 1:

Event in node 2
Owner: UPD 8
Event: 7 Conversation Incoming
When Change To: ON
String:
@1 $MPC 2 "0504 %2.dir(4,F) %1.dir(4,F) 0000 0000"