Actions

Multicast in AlphaCom

From Zenitel Wiki

Revision as of 11:20, 18 December 2007 by Egil (talk) (Multicast Base Address)

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!

Multicast adresses

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

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

This AlphaCom feature is under development and is not yet released!

Support for this is not yet completed in AlphaPro, as per version 10.27. AlphaCom is default set up using Multiplied unicast. NVRAM variables has to be edited directly to enable multicast

AlphaCom allow flexible configuration of how Group Audio is transmitted to IP stations. These settings are found in AlphaPro under exchange/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)

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 )