# DSPs and conferencing resources

This topic presents conference resource information for:

- AG boards

- CG boards

NaturalConference enables several DSPs to be merged into a single conference resource. This concept is called spanning. Spanning provides a single space to create conferences with more participants. Spanning can also be used to optimize the management of the resource.

To provide this feature, dedicate DSPs to two different tasks:

Task | Description
--- | ---
Signal processing (echo cancellation, tone clamping, gain control) | The DSP dedicated to this task is called a slave. These DSPs perform MIPS-consuming tasks on individual conference channels, but do not manage the conference (mixing) process.
Mixer or master | A DSP configured as the mixer or master primarily manages the conference processing (the mixing) for any members in a conference. As the master, the DSP subcontracts MIPS-consuming tasks to slave DSPs. It keeps enough power to perform the conference processing of a larger number of conference participants.

A conference resource implementing spanning is composed of a single master and one or more slaves. The following illustration provides a logical view of the NaturalConference master/slave architecture:

As shown in this illustration, the master DSP manages the signal processing for a small number of conferees. The number of members with locally managed signal processing on the master depends on the number of slave DSPs that are connected to the master. Refer to Managing resources for more information about precise conference resource capabilities.

To set up a configuration that implements spanning, indicate precisely which DSPs belong to which resources. Master and slave firmware are different and have different names. Both the firmware name and the resource for each DSP must be specified in the appropriate configuration files. Refer to Modifying the board keyword file for more information about board and conference configuration files.

You do not have to use spanning. You have the option to make a single DSP a separate conference resource. To do so, load the appropriate firmware and modify cnf.cfg accordingly.

The spanned conference resource architecture relies on the board's architecture to establish connections between master and slaves. Different types of boards provide different means and capacities for interconnecting DSP and voice channels. Read the configuration related sections of this manual to understand and modify the appropriate configuration file to create the desired conference configurations.

## Conferencing resources on AG boards

On AG boards, you can create many conferencing resources that implement spanning. There are two requirements to properly declaring conferencing resources:

- The DSP being configured must be located on the same DSP bank as the conferencing resource.

- The maximum number of members managed by a master DSP cannot be greater than 64, regardless of the number of DSPs allocated to a conferencing resource.

The following table lists the existing DSP banks and the corresponding DSP numbers. This information is also valid for AG 2000C and AG 2000-BRI boards.

Board model | 1st bank DSP number | 2nd bank DSP number | 3rd bank DSP number
--- | --- | --- | ---
AG 2000/200 | 0..1 | Not applicable. | Not applicable.
AG 2000/400 | 0..3 | Not applicable. | Not applicable.

The first DSP of each resource must be loaded with the master firmware. The other DSP of the conferencing resource must be loaded with the slave firmware.

For example, a single conferencing resource with five DSPs is configured as conferencing resource #0 spanned on five DSPs:

- DSP #1: Master

- DSP #2: Slave

- DSP #3: Slave

- DSP #4: Slave

- DSP #5: Slave

Two conferencing resources with four and three DSPs respectively are configured as:

- Conferencing resource #0 spanned on four DSPs:

- DSP #1: Master

- DSP #2: Slave

- DSP #3: Slave

- DSP #4: Slave

- Conferencing resource #1 spanned on three DSPs:

- DSP #5: Master

- DSP #6: Slave

- DSP #7: Slave

## Conferencing resources on CG boards

On CG boards, DSPs can be configured as a conferencing resource implementing spanning
. According to the CG board model, the number of groups of DSPs, as well as the DSP numbers that can be used with spanned conferencing, are different. The existence of spanning does not prevent a DSP on the board from being used as a single DSP conferencing resource when the appropriate (standalone) firmware is loaded.

Note: For specific information about firmware names, capacities, and possible configurations implementing spanning according to CG board type, refer to the NaturalConference readme file.

The following examples refer to CG boards.

- Master DSP# = 2

- Slave DSP# = 3 to 9

For example, a single conferencing resource with eight DSPs is configured as conferencing resource #0 spanned on eight DSPs:

- DSP #2: Master

- DSP #3: Slave

- DSP #4: Slave

- DSP #5: Slave

- DSP #6: Slave

- DSP #7: Slave

- DSP #8: Slave

- DSP #9: Slave

A configuration with a conferencing resource including four DSPs is configured as:

- DSP #2: Master

- DSP #3: Slave

- DSP #4: Slave

- DSP #5: Slave

By default, the number of timeslots (or voice channels) that can be managed by a single DSP on a CG board is 16. However, in certain circumstances this number can be set to 32 (depending on the conference capabilities being used).

When echo cancellation is not used, each DSP that is a part of a conferencing resource can manage up to 32 members and corresponding timeslots. Specify the parameters in the NMS OAM configuration file by setting the three keywords as shown for a four DSP conferencing resource:

DSP.C5x[2..5].NumTxTimeSlots = 32
DSP.C5x[2..5].NumRxTimeSlots = 32
DSP.C5x[2..5].CmdQSize = 0x110
ConferencingStream.Enable = YES

When a DSP is programmed to manage 32 timeslots, the value for the CmdQSize keyword must be set to 0x110. By adding ConferencingStream.Enable = YES to the configuration file, logical stream switching of members into conferences is enabled.

For example, the NMS OAM configuration file should contain the following statements to set up one or more single DSP conferencing resources with a maximum of 16 members per conferencing resource:

DSP.c5x[any dsp number].Files = <standalone_firmware_name>
DSP.c5x[any dsp number].Files = <standalone_firmware_name>
.
.
.
ConferencingStream.Enable = YES

To set-up a four DSP conferencing resource implementing spanning, without echo cancellation that can manage up to 96 members, the NMS OAM configuration file should contain the following statements:

DSP.C5x[2].Files = <master_firmware_name>
DSP.C5x[3..5].Files = <slave_firmware_name>
DSP.C5x[2..5].Libs = cg6klibu cg6mslib
DSP.C5x[2..5].NumTxTimeSlots = 32
DSP.C5x[2..5].NumRxTimeSlots = 32
DSP.C5x[2..5].CmdQSize = 0x110
ConferencingStream.Enable = YES

The cg6mslib file is used when implementing spanning independent of the number of timeslots used by each DSP. A configuration with one master and seven slaves requires the following keywords in the NMS OAM configuration file:

DSP.C5x[2].Files = <master_firmware_name>
DSP.C5x[3..9].Files = <slave_firmware_name>
DSP.C5x[2..9].Libs = cg6klibu cg6mslib