Managing Outbound Routing Groups

The following Microsoft Visual Basic code example creates an outbound routing group and adds devices to the group. It then displays information about all of the outbound routing groups on the server, and allows you to remove a group.

Note

This example will fail if you try to add a group using the name of an existing group.

 

    Private Sub Form_Load()
        Dim objFaxServer As New FAXCOMEXLib.FaxServer
        Dim objFaxOutboundRouting As FAXCOMEXLib.FaxOutboundRouting
        Dim collFaxOutboundRoutingGroups As FAXCOMEXLib.FaxOutboundRoutingGroups
        Dim objFaxOutboundRoutingGroup As FAXCOMEXLib.FaxOutboundRoutingGroup
        Dim collFaxDevices As FAXCOMEXLib.FaxDevices
        Dim objFaxDevice As FAXCOMEXLib.FaxDevice

        'Error handling
        On Error GoTo Error_Handler

        'Connect to the fax server. An empty string defaults to the local server
        objFaxServer.Connect("")

        'Create the outbound routing object
        objFaxOutboundRouting = objFaxServer.OutboundRouting

        'Get the routing group collection
        collFaxOutboundRoutingGroups = objFaxOutboundRouting.GetGroups

        'Create the outbound routing group object
        Dim GroupName As String
        GroupName = InputBox("Provide a name for the outbound routing group.")
        objFaxOutboundRoutingGroup = collFaxOutboundRoutingGroups.Add(GroupName)

        'Get the devices collection
        collFaxDevices = objFaxServer.GetDevices

        'Add devices to the routing group
        For n = 1 To collFaxDevices.Count
            objFaxDevice = collFaxDevices.Item(n)
            objFaxOutboundRoutingGroup.DeviceIds.Add(objFaxDevice.Id)
        Next n
        'Move last device to the top of the order
        objFaxOutboundRoutingGroup.DeviceIds.SetOrder(collFaxDevices.Item(n - 1).Id, 1)

        'Display the number of devices, and the device id of the first device,
        'to confirm its location in the order
        MsgBox("Number of devices " & objFaxOutboundRoutingGroup.DeviceIds.Count & _
            vbCrLf & "ID of first device " & objFaxOutboundRoutingGroup.DeviceIds.Item(1))

        'Remove the first device
        objFaxOutboundRoutingGroup.DeviceIds.Remove(1)

        'Display the number of routing groups in the collection
        MsgBox("There are " & collFaxOutboundRoutingGroups.Count & " routing groups on this server")

        Dim i As Integer
        For i = 1 To collFaxOutboundRoutingGroups.Count
            objFaxOutboundRoutingGroup = collFaxOutboundRoutingGroups.Item(i)
            'Display the name of each group, and the status of its devices
            MsgBox("Routing group number: " & i & _
            vbCrLf & "Outbound routing group name: " & objFaxOutboundRoutingGroup.Name & _
            vbCrLf & "Device status: " & objFaxOutboundRoutingGroup.Status)
        Next

        'Allow user to remove a routing group
        Dim Answer As String
        Answer = InputBox("Do you want to remove a routing group (Y/N)?")
        If Answer = "Y" Then
            Dim ItemNumber As Integer
            ItemNumber = InputBox("Provide the item number for the group you want to remove.")
            collFaxOutboundRoutingGroups.Remove(ItemNumber)
        End If
        Exit Sub

Error_Handler:
        'Implement error handling at the end of your subroutine. This 
        'implementation is for demonstration purposes
        MsgBox("Error number: " & Hex(Err.Number) & ", " & Err.Description)

    End Sub