Difference between revisions of "Multicast in AlphaCom"
From Zenitel Wiki
(→Configuration of Group Audio) |
|||
(63 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | AlphaCom use [[IP Multicast]] for transmitting Group Audio to IP stations. Group Audio features are Groupcall | + | {{AI}} |
+ | ICX-AlphaCom and AlphaCom XE use [[IP Multicast]] for transmitting Group Audio to IP stations. | ||
+ | |||
+ | Group Audio features are: | ||
+ | * Groupcall | ||
+ | * Audio Programs | ||
+ | * Simplex Conference | ||
+ | |||
+ | Group Audio is always transmitted on logical channels 1 and 2, see [[Audio Interface - IP devices]]. | ||
Multicasts are only sent from the AlphaCom to IP stations. IP stations never sends multicasts (with the exception of [[#Relayed multicast|Relayed multicast]]). IP stations will always send unicast data and audio to its owning AlphaCom. The AlphaCom will if needed forward the audio to other stations using multicast. | Multicasts are only sent from the AlphaCom to IP stations. IP stations never sends multicasts (with the exception of [[#Relayed multicast|Relayed multicast]]). IP stations will always send unicast data and audio to its owning AlphaCom. The AlphaCom will if needed forward the audio to other stations using multicast. | ||
− | IP Multicasting usually works right out of the box within a single | + | IP Multicasting usually works right out of the box within a single subnet. |
− | + | {{obs|If some IP stations are on a different subnets than the ICX/AlphaCom, attention must be paid to handle the multicast for Group Audio!}} | |
+ | =Software Versions= | ||
+ | Minimum software requirement for features described here: | ||
+ | * AMC 10.23 | ||
+ | * IP station 01.06 | ||
+ | * AlphaPro 10.40 | ||
− | =Multicast | + | =Multicast addresses= |
− | Each AlphaCom in a AlphaNet uses its own range of multicast addresses. The bottom line is that for each multicast group used by the AlphaCom system, there is only one possible source, which is a specific AlphaCom. | + | [[Image:Multicast.png|thumb|Multicast - One VoIP stream from AlphaCom is sent to a group of IP stations]] |
+ | Each AlphaCom in a AlphaNet uses its own range of multicast addresses. The bottom line is that for each multicast group used by the AlphaCom system, there is only one possible source, which is a specific AlphaCom. Listeners to the multicast group are only the IP stations owned by that AlphaCom. Therefore static forwarding rules for multicasts can be used in the IP routers. | ||
− | By default AlphaCom uses multicast addresses '''239.192.<node>.<chan>'''. | + | By default AlphaCom uses multicast addresses '''239.192.<node>.<chan>''' [http://tools.ietf.org/html/rfc2365#section-6.2]. |
<node> is the node number of the AlphaCom exchange. AlphaCom use <chan> = 0 for DIP messages, and <chan> between 1 and 32 for the group audio. | <node> is the node number of the AlphaCom exchange. AlphaCom use <chan> = 0 for DIP messages, and <chan> between 1 and 32 for the group audio. | ||
− | The range of multicast addresses used by | + | The range of multicast addresses used by an AlphaCom exchange can be changed by setting the multicast "Base Address". The base address must be a valid Multicast address, the last byte being zero. Unless the AlphaCom conflicts with an other multicasting application on the network, there is no reason to set the "Base Address". Note that when "Base Address" is used to force the upper 3 bytes of the address, the node number is not used to form the actual address. |
+ | |||
+ | Example: | ||
+ | If the multicast base address in AlphaCom node 7 is set to 238.0.1.135 from AlphaPro, the AlphaCom will use multicast address 238.0.1.136 to 23.0.1.167. The third number (“1”) will remain and will not be changed to the node number, and the channel number (1-32) will be added to the last number. | ||
=DIP and multicast= | =DIP and multicast= | ||
− | The stations | + | The stations learn the multicast address and UDP port for multicasted [[DIP|DIP messages]] in the [[DIP#con_-_Configure_station|con]] message. Default UDP port is 50001, which is the same number as the TCP port on the AlphaCom side for DIP over TCP. |
− | When a group audio feature is started towards IP stations, AlphaCom multicasts | + | When a group audio feature is started towards IP stations, AlphaCom multicasts an [[DIP#agc_-_Audio_Group_Connect|agc]] DIP message to all IP stations belonging to that exchange. The "agc" message lists all stations which should become member of the call in the form of a bitmap. The "agc" message also identifies the multicast IP address and UDP port for the RTP audio. |
− | Since multicast | + | Since multicast has to use the unreliable UDP transport, AlphaCom will repeat the "agc" messages. AlphaCom repeats the "agc" of a call first after 200 ms. Then the "agc" message is repeated every 5 seconds. The "age" disconnect message is sent only once. The stations will disconnect group audio reception on own accord if it does not receive a "agc" repeat for 11 seconds. |
"agc" messages sent as multiplied unicast messages are never repeated. This is because the message is sent over TCP, and the station is not a relay station. | "agc" messages sent as multiplied unicast messages are never repeated. This is because the message is sent over TCP, and the station is not a relay station. | ||
= Alternatives to multicast = | = Alternatives to multicast = | ||
− | If some of the IP stations are on a different LAN than the AlphaCom, and your IP routers | + | If some of the IP stations are on a different LAN than the AlphaCom, and your IP routers do not handle multicasts, AlphaCom provides some flexibility to work around the problem: |
== Multiplied unicast == | == Multiplied unicast == | ||
+ | [[Image:Multiplied Unicast.png|thumb|Multiplied unicast - One VoIP stream to each individual IP station]] | ||
AlphaCom can be configured send separate copy of every packet to each station as unicast. The "agc" /"age" DIP messages are sent over the TCP links. And a separate copy of every RTP audio packet is sent to every IP station which is member. | AlphaCom can be configured send separate copy of every packet to each station as unicast. The "agc" /"age" DIP messages are sent over the TCP links. And a separate copy of every RTP audio packet is sent to every IP station which is member. | ||
Line 40: | Line 58: | ||
== Relayed multicast == | == Relayed multicast == | ||
+ | [[Image:Relayed Muliticast.png|thumb|Relayed multicast - One IP station receives unicast VoIP stream and forward it as multicast]] | ||
"Relayed multicast" can be used to extend multicasted group audio to a different subnet, without relying on multicast aware IP routers. | "Relayed multicast" can be used to extend multicasted group audio to a different subnet, without relying on multicast aware IP routers. | ||
− | Up to 5 "Relay groups" of stations can be defined in AlphaPro. When some group audio is setup involves stations in a relay group, AlphaCom selects one of the stations in the relay group as a relay station. AlphaCom will send the | + | Up to 5 "Relay groups" of stations can be defined in AlphaPro. When some group audio is setup involves stations in a relay group, AlphaCom selects one of the stations in the relay group as a relay station. AlphaCom will send the DIP messages and the RTP audio as unicast to the relay station. The relay station is told to forward the DIP messages and RTP audio to the multicast address. |
+ | |||
+ | For this to work, multicasting must be working within each Relay Group. | ||
AlphaCom will always select a relay station which is part of the group audio. Hence the relay station will never be asked to forward more than two audio streams (one for each logical channel). Also, the relay station is also required have a working DIP-TCP connection, which assures that a working station is chosen as the relay station. | AlphaCom will always select a relay station which is part of the group audio. Hence the relay station will never be asked to forward more than two audio streams (one for each logical channel). Also, the relay station is also required have a working DIP-TCP connection, which assures that a working station is chosen as the relay station. | ||
− | = Configuration of Group Audio = | + | = Configuration of IP Station = |
− | + | When using multicast there must be a default gateway defined in the IP station. The IP address of the default gateway must belong to the same subnet as the IP station. The gateway IP address is received from the DHCP server when the station is using DHCP, but if the IP Station has Static IP address, one must set the gateway manually. | |
− | '' | + | |
+ | If there is no gateway in the network, it is recommended to define the AlphaCom IP address as the default gateway. | ||
+ | |||
+ | When using multicast on a network without default gateway defined, the IP station does not receive the audio. | ||
+ | |||
+ | = Configuration of Group Audio in AlphaPro = | ||
+ | AlphaPro 10.40 or later is required to configure "Group Audio". | ||
+ | |||
+ | AlphaCom allows flexible configuration of how Group Audio is transmitted to IP stations. These settings are found in AlphaPro under [[Exchange_%26_System_%28AlphaPro%29#VoIP|Exchange & System -> System -> VoIP]]. | ||
+ | |||
+ | |||
+ | == Default Rule for Group Audio == | ||
+ | The default rule is just a two-way choice: | ||
+ | *Multiplied unicast (0) | ||
+ | *Multicast (1) | ||
+ | This rule applies to all stations which do not match one of the rules below. | ||
+ | |||
+ | The corresponding NVRAM variable is ''.ex_profile.ip_config.mcast_enable''. | ||
+ | |||
+ | == Subnet Rules for Group Audio== | ||
+ | Up to 5 Subnet Rules can be defined to make exceptions from the Default Rule. | ||
+ | |||
+ | A Subnet Rule applies to IP stations with IP addresses within a given range. The IP address range for the rule is defined using the IP-address + subnet-mask scheme familiar from IP routing tables, see [http://en.wikipedia.org/wiki/Subnetwork http://en.wikipedia.org/wiki/Subnetwork] . | ||
+ | |||
+ | A dropdown list with three alternatives tell how each of the 5 subnets are handled: | ||
+ | * Relayed multicast (0) - the subnet forms a Relay Group | ||
+ | * Multiplied unicast (1) | ||
+ | * Multicast (2) | ||
+ | |||
+ | '''After changing the Subnet Rules, AlphaCom has to be reset!''' | ||
+ | |||
+ | (Because AMCd converts textual IP addresses to binary format at reset, in order to optimize performance at system startup.) | ||
+ | |||
+ | When a station registers with the AlphaCom, AlphaCom checks the 5 rules in turn to find a address match. The search stops when the first match is found. This means that it is possible to specify a rule with a narrow address range, followed by a different rule for a address range which is superset of the first rule. Stations which do not match rule 1, but rule 2 will use rule 2. | ||
+ | |||
+ | The corresponding NVRAM variables are found under ''.ex_profile.ip_config.mcast_net_rly[5]''. | ||
+ | |||
+ | ==Multicast Base Address== | ||
+ | Can be used to change the range of multicast addresses used by a AlphaCom exchange. See section [[#Multicast adresses|Multicast adresses]]. | ||
+ | |||
+ | (NVRAM variable ''.ex_profile.ip_config.mcast_addr_base'' ) | ||
+ | |||
+ | =AlphaWeb station status list= | ||
+ | [[AlphaWeb#Stations|AlphaWeb station status list]] gives information about Group Audio configuration and status of stations, in the "MC" column. | ||
+ | |||
+ | The first two characters of the MC filed shows the Group Audio configuration for the station. (Actually, how the IP address of the station matches the Group Audio configuration described above.) | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | | '''M0''', '''M1''' | ||
+ | | Direct multicast on ethernet ports 0 / 1 | ||
+ | |- | ||
+ | | '''R0''' to '''R4''' | ||
+ | | [[#Subnet Rules for Group Audio|Relay Group]] 0 to 4 | ||
+ | |- | ||
+ | | '''UC''' | ||
+ | | Unicast | ||
+ | |- | ||
+ | | '''--''' | ||
+ | | not applicable (not a IP station) | ||
+ | |} | ||
+ | |||
+ | AlphaCom tests stations using multicast or relayed multicast if they can be reached with multicasted [[DIP]] messages (see [[IP Station Supervision]]). The second part of the MC field shows the result of this test: | ||
+ | |||
+ | * '''OK''' - Success. Station confirm that it receives "mping" messages | ||
+ | * '''Fa''' - Failure. Station can not receive Group Audio | ||
+ | * - no code is displayed for Unicast, is covered by normal ping test. | ||
+ | |||
+ | Also see [[System_log#Multicast_test]]. | ||
+ | |||
+ | =Configuration Examples= | ||
+ | ==Relay Groups== | ||
+ | Large number of IP stations, distributed over 4 remote LANs, plus on same LAN as AlphaCom: | ||
+ | # Define 4 Subnet Rules with Relayed multicast for the remote LANs | ||
+ | # Set Default rule to multicast, for direct multicast to local stations. | ||
+ | |||
+ | |||
+ | ==Toll road example== | ||
+ | Remote IP stations on a large number of remote LANs, but only a couple of stations on each remote LAN. In addition a number of IP stations on the same LAN as AlphaCom. Since there are few stations on each remote LAN, multicasting will not necessarily save a lot of traffic on the network. | ||
+ | # Define one subnet rule which forces multicast on the AlphaCom LAN | ||
+ | # Set Default rule to Multiplied unicast, so all remote IP stations get unicast. | ||
− | + | [[Category: Audio Settings and Audio Features]] |
Latest revision as of 15:14, 25 October 2023
ICX-AlphaCom and AlphaCom XE use IP Multicast for transmitting Group Audio to IP stations.
Group Audio features are:
- Groupcall
- Audio Programs
- Simplex Conference
Group Audio is always transmitted on logical channels 1 and 2, see Audio Interface - IP devices.
Multicasts are only sent from the AlphaCom to IP stations. IP stations never sends multicasts (with the exception of Relayed multicast). IP stations will always send unicast data and audio to its owning AlphaCom. The AlphaCom will if needed forward the audio to other stations using multicast.
IP Multicasting usually works right out of the box within a single subnet.
If some IP stations are on a different subnets than the ICX/AlphaCom, attention must be paid to handle the multicast for Group Audio! |
Contents
Software Versions
Minimum software requirement for features described here:
- AMC 10.23
- IP station 01.06
- AlphaPro 10.40
Multicast addresses
Each AlphaCom in a AlphaNet uses its own range of multicast addresses. The bottom line is that for each multicast group used by the AlphaCom system, there is only one possible source, which is a specific AlphaCom. Listeners to the multicast group are only the IP stations owned by that AlphaCom. Therefore static forwarding rules for multicasts can be used in the IP routers.
By default AlphaCom uses multicast addresses 239.192.<node>.<chan> [1]. <node> is the node number of the AlphaCom exchange. AlphaCom use <chan> = 0 for DIP messages, and <chan> between 1 and 32 for the group audio.
The range of multicast addresses used by an AlphaCom exchange can be changed by setting the multicast "Base Address". The base address must be a valid Multicast address, the last byte being zero. Unless the AlphaCom conflicts with an other multicasting application on the network, there is no reason to set the "Base Address". Note that when "Base Address" is used to force the upper 3 bytes of the address, the node number is not used to form the actual address.
Example: If the multicast base address in AlphaCom node 7 is set to 238.0.1.135 from AlphaPro, the AlphaCom will use multicast address 238.0.1.136 to 23.0.1.167. The third number (“1”) will remain and will not be changed to the node number, and the channel number (1-32) will be added to the last number.
DIP and multicast
The stations learn the multicast address and UDP port for multicasted DIP messages in the con message. Default UDP port is 50001, which is the same number as the TCP port on the AlphaCom side for DIP over TCP.
When a group audio feature is started towards IP stations, AlphaCom multicasts an agc DIP message to all IP stations belonging to that exchange. The "agc" message lists all stations which should become member of the call in the form of a bitmap. The "agc" message also identifies the multicast IP address and UDP port for the RTP audio.
Since multicast has to use the unreliable UDP transport, AlphaCom will repeat the "agc" messages. AlphaCom repeats the "agc" of a call first after 200 ms. Then the "agc" message is repeated every 5 seconds. The "age" disconnect message is sent only once. The stations will disconnect group audio reception on own accord if it does not receive a "agc" repeat for 11 seconds.
"agc" messages sent as multiplied unicast messages are never repeated. This is because the message is sent over TCP, and the station is not a relay station.
Alternatives to multicast
If some of the IP stations are on a different LAN than the AlphaCom, and your IP routers do not handle multicasts, AlphaCom provides some flexibility to work around the problem:
Multiplied unicast
AlphaCom can be configured send separate copy of every packet to each station as unicast. The "agc" /"age" DIP messages are sent over the TCP links. And a separate copy of every RTP audio packet is sent to every IP station which is member.
Which means 100kbit/s bitrate over the network for every station in the group!
The maximum number of IP stations which can be reached in a groupcall using Multiplied unicast is 50.
This applies as long as unicast copying is used for groupcalls. The limit can be changed via the NVRAM variable .ex_profile.ip_config.ucast_grp_lim. The maximum UDP resources available for all VOIP calls are 64, that is the definite limit. However, the AlphaCom becomes unresponsive for 1-2 seconds during setup of a 50 member call, so best is to avoid such large groupcalls to IP stations. If the limit is exceeded, the following message is sent to the System Syslog:
"Number of IP stations in unicast groupcall exceed 50, skipping rest"
Relayed multicast
"Relayed multicast" can be used to extend multicasted group audio to a different subnet, without relying on multicast aware IP routers.
Up to 5 "Relay groups" of stations can be defined in AlphaPro. When some group audio is setup involves stations in a relay group, AlphaCom selects one of the stations in the relay group as a relay station. AlphaCom will send the DIP messages and the RTP audio as unicast to the relay station. The relay station is told to forward the DIP messages and RTP audio to the multicast address.
For this to work, multicasting must be working within each Relay Group.
AlphaCom will always select a relay station which is part of the group audio. Hence the relay station will never be asked to forward more than two audio streams (one for each logical channel). Also, the relay station is also required have a working DIP-TCP connection, which assures that a working station is chosen as the relay station.
Configuration of IP Station
When using multicast there must be a default gateway defined in the IP station. The IP address of the default gateway must belong to the same subnet as the IP station. The gateway IP address is received from the DHCP server when the station is using DHCP, but if the IP Station has Static IP address, one must set the gateway manually.
If there is no gateway in the network, it is recommended to define the AlphaCom IP address as the default gateway.
When using multicast on a network without default gateway defined, the IP station does not receive the audio.
Configuration of Group Audio in AlphaPro
AlphaPro 10.40 or later is required to configure "Group Audio".
AlphaCom allows flexible configuration of how Group Audio is transmitted to IP stations. These settings are found in AlphaPro under Exchange & System -> System -> VoIP.
Default Rule for Group Audio
The default rule is just a two-way choice:
- Multiplied unicast (0)
- Multicast (1)
This rule applies to all stations which do not match one of the rules below.
The corresponding NVRAM variable is .ex_profile.ip_config.mcast_enable.
Subnet Rules for Group Audio
Up to 5 Subnet Rules can be defined to make exceptions from the Default Rule.
A Subnet Rule applies to IP stations with IP addresses within a given range. The IP address range for the rule is defined using the IP-address + subnet-mask scheme familiar from IP routing tables, see http://en.wikipedia.org/wiki/Subnetwork .
A dropdown list with three alternatives tell how each of the 5 subnets are handled:
- Relayed multicast (0) - the subnet forms a Relay Group
- Multiplied unicast (1)
- Multicast (2)
After changing the Subnet Rules, AlphaCom has to be reset!
(Because AMCd converts textual IP addresses to binary format at reset, in order to optimize performance at system startup.)
When a station registers with the AlphaCom, AlphaCom checks the 5 rules in turn to find a address match. The search stops when the first match is found. This means that it is possible to specify a rule with a narrow address range, followed by a different rule for a address range which is superset of the first rule. Stations which do not match rule 1, but rule 2 will use rule 2.
The corresponding NVRAM variables are found under .ex_profile.ip_config.mcast_net_rly[5].
Multicast Base Address
Can be used to change the range of multicast addresses used by a AlphaCom exchange. See section Multicast adresses.
(NVRAM variable .ex_profile.ip_config.mcast_addr_base )
AlphaWeb station status list
AlphaWeb station status list gives information about Group Audio configuration and status of stations, in the "MC" column.
The first two characters of the MC filed shows the Group Audio configuration for the station. (Actually, how the IP address of the station matches the Group Audio configuration described above.)
M0, M1 | Direct multicast on ethernet ports 0 / 1 |
R0 to R4 | Relay Group 0 to 4 |
UC | Unicast |
-- | not applicable (not a IP station) |
AlphaCom tests stations using multicast or relayed multicast if they can be reached with multicasted DIP messages (see IP Station Supervision). The second part of the MC field shows the result of this test:
- OK - Success. Station confirm that it receives "mping" messages
- Fa - Failure. Station can not receive Group Audio
- - no code is displayed for Unicast, is covered by normal ping test.
Also see System_log#Multicast_test.
Configuration Examples
Relay Groups
Large number of IP stations, distributed over 4 remote LANs, plus on same LAN as AlphaCom:
- Define 4 Subnet Rules with Relayed multicast for the remote LANs
- Set Default rule to multicast, for direct multicast to local stations.
Toll road example
Remote IP stations on a large number of remote LANs, but only a couple of stations on each remote LAN. In addition a number of IP stations on the same LAN as AlphaCom. Since there are few stations on each remote LAN, multicasting will not necessarily save a lot of traffic on the network.
- Define one subnet rule which forces multicast on the AlphaCom LAN
- Set Default rule to Multiplied unicast, so all remote IP stations get unicast.