Mototrbo and AlphaCom interfacing
From Zenitel Wiki
This article describes how the AlphaCom can be integrated to the digital radio system MOTOTRBO from Motorola. Most suitable radio model is DM3600 (display model), but for basic functionality also DM3400 can be used. The IP-ARIO unit is used as interface between AlphaCom and the MOTOTRBO radio.
Contents
- 1 Functionality
- 2 Connection
- 3 Configuration
- 3.1 Assumptions
- 3.2 IP-ARIO configuration
- 3.3 EDIO Port
- 3.4 Simplex Conference
- 3.5 Event Handler
- 3.5.1 Event 1: PTT operation on Group Call
- 3.5.2 Event 2: Selective dialing
- 3.5.3 Event 3: PTT operation on Private Call
- 3.5.4 Event 4: Force simplex mode
- 3.5.5 Event 5: Force simplex mode
- 3.5.6 Event 6: Display Radio ID in Simplex Conference
- 3.5.7 Event 7: Current Intercom Talker
- 3.5.8 Event 8: Display Intercom Talker in Simplex Conference
- 3.5.9 Event 9: Receive and process call status from the radio
- 3.5.10 Event 10: Sending text message to a radio user
- 4 How to determine the Radio IP Address
Functionality
Basic functionality
Basic functionality allows voice communication between a group of radio users (Talk Group) and a group of intercom stations. In the AlphaCom the Simplex Conference feature is used.
- Operation: The intercom user dials the simplex conference number (e.g. 8201) to listen to the radio traffic, and presses the M-key to talk to the radio group and to other intercom users listening to the conference channel. There will be no Caller ID in the intercom stations.
Enhanced functionality
Increased functionality is achieved when using data communication between the AlphaCom and the MOTOTRBO radio. The following functionality has been tested and is described in this article:
- Voice communication between a group of radio users and a group of intercom stations (Basic functionality).
- Operation: Dial conference channel (e.g. 8201) to listen to the radio group. Press M-key to talk.
- Display of intercom station shows Caller ID (current talker)
- Semi-duplex (Press To Talk) private call to selective radio user.
- Operation: Dial Prefix + Radio ID. (E.g. 5 + 1005). Press M-key to talk. The call will automatically cancel after a certain time of inactivity from either side (radio setting).
- Incoming private call from a radio user to predefined intercom station. Call to selective intercom station is not supported.
- Operation: From a radio user, select "Manual dial", and dial the radio ID of the radio used as interface (e.g. 1003). A call will be generated from the radio interface to a predefined intercom station (e.g. Station 102). Press M-key to talk. The call will automatically cancel after a certain time of inactivity from either side (radio setting).
- Send text message to a predefined radio user
- Operation: An intercom user can for example dial a code (e.g. Event Trigger 9533) to generate a predefined text message. A text message can be generated by any event in the AlphaCom.
Note: The same IPARIO/radio interface cannot be used for listening to a radio group and for private call at the same time. When listening to radio group, the IPARIO is busy (Default Speaker in a simplex conference), and cannot be addressed for private call. If both radio group and private calls are required, it is recommended to use two radio interfaces, one for each purpose.
Connection
The connection between the MOTOTRBO radio and the IPARIO is as follows:
Basic functionality
For basic functionality, analog audio in, audio out and PTT signal is used:
- RX audio to Radio IN (Motorola 770 mV nom.)
- TX audio to Radio OUT (Motorola 80 mV nom.)
- PTT to RCO output (active low)
- Audio is asymmetric, DC-block capacitor is required in TX audio line to radio.
- Ignition input of the radio needs to be connected to +12V to power-up the radio automatically.
Enhanced functionality
For enhanced functionality, data communication between AlphaCom and the MOTOTRBO radio is required. The MOTOTRBO Extended Control and Management Protocol (XCMP) allows the AlphaCom to control and manage the MOTOTRBO radio. An XCMP converter model DMR621 from Motorola is required. The converter is connected to the RS232 serial port on the IP-ARIO and to the accessory port of MOTOTRBO radio (USB).
Configuration
Assumptions
Below is a list of parameters used in the configuration examples.
For basic functionality:
- IPARIO is using directory number 5
- RCO 22 is used for keying of the radio transmitter
- Simplex Conference 1 (8201) is used for radio listen/talk
For enhanced functionality:
- UDD 500: The number of digits in the Radio ID
- UDD 501: The number of digits currently dialed when doing selective call to MOTOTRBO radio
- UDD 502: The complete collected number during dialing
- UDD 503: The directory number of the station currently in conversation (Private Call) with the IP-ARIO
- UDD 504: The Radio ID or Intercom ID of the current talker
- TCP/IP port 4005 is used for communication between AlphaCom and IP-ARIO
- Private calls from radio users to the AlphaCom are routed to Station 102
You can choose to use other parameters, but then you must carefully study each step and adjust the configuration accordingly.
IP-ARIO configuration
Configure the IP ARIO to register to the AlphaCom using directory number 5, see describtion in the IPARIO article. Note that an IPARIO license is required in the AMC-IP.
- In Users & Stations -> General tab, set Station Type = PNCI. This is to allow transparent dialing while connected to the IP-ARIO, without the digits being intepreted by the AlphaCom.
- In the Station Type tab, enable "Request for Audio License".
EDIO Port
For enhanced functionality, configure the EDIO 1 port of AlphaCom to use the RS232 serial port of the IP-ARIO:
- In Exchange & System -> Serial Ports, select EDIO 1, and set the following parameters:
- Port Type: IPARIO
- Bit rate = 9600, Parity = None, Data bits = 8, Stop bits = 1.
- Station = Physical number of the IPARIO
- Port = 4005. This is the TCP/IP port used between AlphaCom and the IPARIO. Note: This port must be defined and opened in the Filters settings in AlphaWeb.
- Keep Alive = Enabled
- Stop character = 10
Simplex Conference
Configure the IP-ARIO to be Default Speaker in Simplex Conference 1:
Event Handler
- Basic Functionality: Event 1 is the only event required
- Enhanced Functionality: Event 1-10 is required
LOG statements are included for debug purposes only. Might be useful to watch the System Log in case things doesn't work as expected.
In Exchange & System -> Events, Insert the required events:
Event 1: PTT operation on Group Call
Operate the RCO 22 (PTT) when M-key is pressed in Simplex Conference:
Event Owner: IP-ARIO Event Type: 1 - Audio Sub Event: 64 (Program Conference) When Change To: ON or OFF Action: RCO 22
Event 2: Selective dialing
This event is used for selective dialing to MOTOTRBO radios. The event collects the digits dialed while connected to the IP-ARIO (dirno 5). It checks that the digit pressed is between 0 and 9, and collects 4 digits, assuming that the Radio ID is a 4-digit number. (The line "WUDD 500 4" can be modified if the Radio ID consists of less or more digits). When four digits are collected, it will send an "AT+CCR" command on the EDO port, setting up a private call to the selected radio ID. The PTT (RCO 22) is pulsed to establish the call, and the digit counter (UDD 501) and the collected number (UDD 502) is cleared.
Event Owner: Stations w. UDP. ID: 8 Event Type: 25 Event Trigger w/User Parameter Sub Event: 255 When Change To: ON or OFF When Related To: Directory Number. Id: 5 Action: IF %op(%sev,>=,0) IF %op(%sev,<=,9) IF %chg(1,0) WUDD 500 4 WUDD 501 %op(%udd(501),+,1) WUDD 502 %op(%op(%udd(502),*,10),+,%sev) IF %op(%udd(501),=,%udd(500)) $DSPL L%1.dir U18 0312 'Call: %udd(502) M=PTT' EDO 1 "AT+CCR=1,4,1,%udd(502)\r" LOG "=> AT+CCR=1,4,1,%udd(502)" RCO 22 ON 5 WUDD 501 0 WUDD 502 0 ENDIF ENDIF ENDIF ENDIF
Event 3: PTT operation on Private Call
Operate the RCO 22 (PTT) when M-key is pressed while in point-to-point communication with the IP-ARIO. The event checks that the station pressing the M-button is connected to the IP-ARIO. If this is the case, the RCO 22 is operated.
Event Owner: Stations w. UDP. ID: 8 Event Type: 31 - M-key Sub Event: 0 When Change To: ON or OFF When Related To: All Action: IF %op(%1.dir,=,%udd(503)) RCO 22 ENDIF
Event 4: Force simplex mode
When the IP-ARIO receives a call, the calling station's directory number is stored in UDD 503. This information is used in the previous "Event 3" for PTT operation. When the conversation starts, the digit counter (UDD 501) and the collected number (UDD 502) are cleared, and the call is forced in simplex mode from the IPARIO towards the caller to ensure that the caller will hear the audio from the radio.
Event Owner: IP-ARIO Event Type: 7 - Conversation Incoming When Change To: ON or OFF When Related To: All Action: WUDD 503 %chg(%2.dir,0) IF %chg(1,0) WUDD 501 0 WUDD 502 0 $SIMP L%1.dir U0 U1 ENDIF
Event 5: Force simplex mode
When a call is initiated from the radio to an intercom station, the called station's directory number is stored in UDD 503. This information is used in the previous "Event 3" for PTT operation. The call is forced in simplex mode from the IPARIO towards the caller to ensure that the caller will hear the audio from the radio. The intercom station will receive the Radio ID (i.e. the ID of the MOTOTRBO radio currently talking) in the display, as stored in UDD 504.
Event Owner: IP-ARIO Event Type: 8 - Conversation Outgoing When Change To: ON or OFF When Related To: All Action: WUDD 503 %chg(%2.dir,0) $SIMP L%1.dir U1 U1 $DSPL L%2.dir U18 0312 'Radio: %udd(504)'
Event 6: Display Radio ID in Simplex Conference
This event is used to update the "Caller ID" in the display of all stations listening to Simplex Conference 1 (8201) when a radio user is talking. When a radio is using the PTT button, this is reported to the AlphaCom via the EDI port. The EDI script executes the $VOX command when the PTT is pressed or released, which will trigger this event and upgrade the display accordingly. The actual Radio ID is stored in UDD 504.
Event Owner: Stations w. UDP. ID: 8 Event Type: 16 - Simplex Conference Audio Sub Event: 0 When Change To: ON or OFF When Related To: Directory Number. Id: 8201 Action: IF %chg(1,0) $DSPL L%1.dir U18 0312 'Radio: %udd(504)' stop ENDIF $DSPL L%1.dir U18 0312 ' '
Event 7: Current Intercom Talker
This event is triggered when a intercom station presses the M-key while in Simplex Conference. It is used to update the "Caller ID" (Current talker) variable (UDD 504), and execute the $VOX command. The $VOX command will trigger the next event (Event 8), which does the actual upgrade of the display of all conference members.
Event Owner: Stations w. UDP. ID: 8 Event Type: 08 - Conversation Outgoing Sub Event: 0 When Change To: ON or OFF When Related To: Directory Number. Id: 8201 Action: WUDD 504 %1.dir $VOX 1%chg(1,0) L8201
Event 8: Display Intercom Talker in Simplex Conference
This event is used to update the "Caller ID" in the display of all stations listening to Simplex Conference 1 (8201) when a intercom user is talking. The event is triggered by the $VOX command in the previous event, and will upgrade the display accordingly. The actual Intercom number is stored in UDD 504.
Event Owner: Stations w. UDP. ID: 8 Event Type: 16 - Simplex Conference Audio Sub Event: 1 When Change To: ON or OFF When Related To: Directory Number. Id: 8201 Action: IF %chg(1,0) $DSPL L%1.dir U18 0312 'Intercom: %udd(504)' stop ENDIF $DSPL L%1.dir U18 0312 ' '
Event 9: Receive and process call status from the radio
This event is triggered when any text string is received from the radio. The event is looking for the string "+XCMP-CALLCTRLBRDCST", which reports status on voice communication. The message contains three parameters, Address, Type and State. The following values are used by this event:
- Address: The Radio ID. The value is stored in variable TMP 2.
- Type: 4 = Private Call. 6 = Group Call. The value is stored in variable TMP 3.
- State: 1 = New incoming call. 2 = Call in progress. 3 = End of call. 7 = Call ceased. The value is stored in variable TMP 4.
Description:
- If a Private Call is received (State = 1 and Type = 4) on the radio which is used as interface, a call is initiated from the IPARIO (5) to station 102.
- If a Private Call is in Progress (State = 2 and Type = 4), the display of the intercom station connected to the IPARIO is updated with the Radio ID.
- If a Group Call is in Progress (State = 2 and Type = 6), the $VOX command will trigger Event 6, which will update the display of all intercom stations listening to the Simplex Conference with the Radio ID.
- If a Private Call is Ended (State = 3 and Type = 4), the call between the IPARIO and the intercom is cancelled.
- If a Group Call is Ended (State = 3 and Type = 6), the $VOX command will trigger Event 6, which will clear the display of all intercom stations listening to the Simplex Conference.
- Call is Ceased (State = 7) is currently not in use.
Event Owner: EDI Text Config Event Type: 28 - EDI Text Sub Event: 1 Action: LOG "<= EDI: %edi" TMP 0 "%sscan(%edi,+)" IF %scmp(%scutf(%TMP(0), ,0),+XCMP-CALLCTRLBRDCST) TMP 1 "%scutc(%TMP(0),21,0)" TMP 2 "%scutc(%scutf(%TMP(1),\,,0),9,0)" TMP 3 "%scutc(%scutf(%TMP(1),\,,1),10,0)" TMP 4 "%scutc(%scutf(%TMP(1),\,,2),11,0)" WUDD 504 %tmp(2) LOG "=> EDI: Call from: %TMP(2)" LOG "=> EDI: Call Type: %TMP(3)" LOG "=> EDI: Call State: %TMP(4)" IF %op(%TMP(4),=,1) LOG "=> EDI: New Incoming call" IF %op(%TMP(3),=,4) $CALL L5 L102 W64 ENDIF ENDIF IF %op(%TMP(4),=,2) LOG "=> EDI: Call in progress" IF %op(%TMP(3),=,4) $DSPL L%udd(503) U18 0312 'Radio: %TMP(2)' ENDIF IF %op(%TMP(3),=,6) $VOX U01 L8201 ENDIF ENDIF IF %op(%TMP(4),=,3) LOG "=> EDI: End of Call" IF %op(%TMP(3),=,4) $C L5 ENDIF IF %op(%TMP(3),=,6) $VOX U00 L8201 ENDIF ENDIF IF %op(%TMP(4),=,7) LOG "=> EDI: Call ceased: %TMP(2)" ENDIF ENDIF
Event 10: Sending text message to a radio user
Send text message to a radio: It is possible by using the "AT+TMSC" command to send a text message to a selective radio. This event will send the text message "PLEASE REPORT TO CCR" to the radio with Radio IP address 12.0.3.236 when event trigger 9533 is dialed. The text message can of course be triggered by any other event. The Radio IP address is calculated from the CAI network and the Radio Device ID, see How to determine the Radio IP Address.
Event Owner: Stations w. UDP. ID: 8 Event Type: 15 Event Trigger Sub Event: 255 When Change To: ON When Related To: Directory Number. Id: 9533 Action: EDO 1 "AT+TMSC=12.0.3.236, PLEASE REPORT TO CCR\r"
How to determine the Radio IP Address
Some AT commands, such as the "AT+TMSC" used for sending of text message, is using the Radio IP Address to address the radio, and not the Radio Device ID. The IP Address is determined from the CAI (Common Air Interface) network and the Radio Device ID. The CAI network is configured in the radio, and has by default value 12. The CAI network forms the first position of the IP address.
The radio device ID (possible values 1 - 16776415) is placed at the last position, as long as it is ≤ 255. The second and third positions of the IP address are then zero. If the radio device ID is greater than 255, the middle positions are filled in as follows:
- Representation of the radio ID as a hexadecimal number.
- Filling the first positions with leading zeros until 6 digits are achieved.
- The first two digits – converted to a decimal number – form the second position of the IP address.
- The third and fourth digits – converted to a decimal number – form the third position of the IP address.
- The fifth and sixth digits – converted
Examples:
CAI network: 10, radio device ID: 99 IP address:10.0.0.99
Hex Dec CAI network: 10, radio device ID: 300 ---> 00 01 2C ---> 00 01 44 IP address:10.0.1.44
Hex Dec CAI network: 12, radio device ID: 1004 ---> 00 03 ED ---> 00 03 236 IP address:12.0.3.236