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.
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.
Pass the information needed by started channel to strParam argument of GrabChannel. This string will be remembered by the started channel.
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
LineGroup has methods for controlling telephony options, such as bridging, volume, and global tones.
Call these methods only from the Enter or Exit event of VBVoice controls.
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