Actions

Multicast in AlphaCom

From Zenitel Wiki

Revision as of 12:51, 25 September 2008 by Ati (talk) (Subnet Rules for Group Audio)

AlphaCom use IP Multicast for transmitting Group Audio to IP stations. Group Audio features are Groupcall, Audio Programs and Simples Conference. Group Audio is always transmitted on logical channels 1 and 2, see IP Station Audio Interface.

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 LAN.

But if some of the IP stations are on a different LAN than the AlphaCom, attention must be paid to handle the multicasts for Group Audio!

SW Versions

Required SW versions for features described here:

  • AMCD SW 10.23
  • IP station SW 01.06
  • AlphaPro 10.40

Multicast adresses

Multicast - One VoIP stream is broadcasted to all 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. Listners 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 a 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.

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 a 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 have to use the unreliable UDP tranport, 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 does not handle multicasts, AlphaCom provides some flexibility to work around the problem:


Multiplied unicast

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.

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 - 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.

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 Group Audio in AlphaPro

AlphaPro 10.40 or later is required to configure "Group Audio".

AlphaCom allow 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 adresses used by a AlphaCom exchange. See section Multicast adresses.

(NVRAM variable .ex_profile.ip_config.mcast_addr_base )

Configuration Examples

Relay Groups

Large number of IP stations, distributed over 4 remote LANs, plus on same LAN as AlphaCom:

  1. Define 4 Subnet Rules with Relayed multicast for the remote LANs
  2. 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.

  1. Define one subnet rule which forces multicast on the AlphaCom LAN
  2. Set Default rule to Multiplied unicast, so all remote IP stations get unicast.