Outdial and Bridging

Outdial Master

In order for slaves to perform outdial or bridging, one master needs to be configured as an outdial master (see Configuration below). This master uses a SlaveStart control attached to the Start exitnode of the LineGroup. This SlaveStart is set for outdial on the property page.

When a slave requests a channel, an idle channel in the LineGroup is started, and passed to the slave by the outdial SlaveStart control. All of the channels in the LineGroup connected to the outdial SlaveStart are potential outdial channels.

If you wish to limit the number of outdial channels, add a LineGroup that is used only for outdial. Put the desired number of dedicated outdial channels in this LineGroup.

Outdial or Bridging from a Slave

A slave application needs to request a channel from the outdial master in order to perform outdial or bridging. This is done using the LineGroup.GrabChannel method, which sends a request to the master.

The master will start a channel and pass it to the slave, where it will exit the slave's LineGroup from the Start exitnode. The channel is onhook at this point. The slave would place a call using the Dial control.

Unlike conventional VBVoice where an application starts a particular channel, a slave using GrabChannel has no idea which channel number it will get. This is a result of multiple masters, where there are multiple channel 1s, channel 2s, and so on.

The slave should use the following technique to pass data to the started channel:
  1. Pass the information needed by started channel to strParam argument of GrabChannel. This string will be remembered by the started channel.

  2. When the started channel exits the Start exit of the LineGroup, obtain its strParam value using LineGroup1.OutDialParam(channel).

These steps work if the data being passed to the channel fits in a single string. If not, then store the data in Transfer Properties of the VBVFrame.

Before calling grab channel, store the data in the Transfer Property and pass the channel number to GrabChannel.

Vbvframe1.Transfer.customerNum(channel). = "45023"

Vbvframe1.Transfer.strToDial(channel) = "555-3456"

'etc.

LineGroup1.GrabChannel(channel) pass channel as the strParam

When the grabbed channel exits the LineGroup, it can obtain its data by extracting the requesting channel number from strParam.

Dim index as Integer

index = LineGroup1.OutDialParam(channel) 'get strParam

Dim custNum as Integer

custNum = Vbvframe1.Transfer.customerNum(index).customerNum

Restrictions on LineGroup Methods

LineGroup has methods for controlling telephony options, such as bridging, volume, and global tones.

A slave application that uses these methods needs to follow these rules:
  1. Call these methods only from the Enter or Exit event of VBVoice controls.

  2. The bridging methods such as BridgeChannelToChannel(channel1, channel2) have two channel parameters. The first parameter must be the current channel.

EXAMPLE

Private Sub GetDigits1_Enter(ByVal channel As Integer, ByVal Greeting As Object)

LineGroup1.BridgeChannelToChannel(channel, some_other_channel) 'channel must be first

End Sub