(Page 1 of 1 in this chapter)


Chapter 6

Demonstration Programs and Utilities


6.1 Introduction
6.2 Board to Board Program: brd2brd
6.3 Call Center Program: callcntr
6.4 Switching Shell: swish
6.5 Show Switch Connections: showcx95
6.6 Service Configuration Utility: ppxservicecfg

6.1 Introduction

This chapter presents the following demonstration programs and utilities shipped with the Point-to-Point Switching service:

Program/Utility

Description

brd2brd

Demonstrates call transfer from an incoming line to an outgoing line over the MVIP bus using the Point-to-Point Switching service to make connections.

callcntr

Demonstrates a call transfer from an incoming line to an outgoing line over the MVIP bus. The Point-to-Point Switching service is used to create a connection and add talkers/listeners to the connection.

swish

Allows interactive or text-file-driven control of MVIP switches. It provides a convenient way to manually test connections during development.

showcx95

Displays switch connections for all boards that have MVIP switches.

ppxservicecfg

Installs the PPX server as an NT service or removes it from the registry.

CT Access is shipped with source code for all demonstration programs. Each demonstration program is shipped as an executable program and with its source and makefiles.

Before you start the demonstration programs, ensure that:

Refer to the appropriate installation manual for details on board installation.

6.2 Board to Board Program: brd2brd

Name

brd2brd

Purpose

Demonstrates call transfer from an incoming line to an outgoing line over the MVIP bus using the Point-to-Point Switching service.

Usage

brd2brd [options]

where options are:

Option

Description

-b n

Specifies the AG board number n for the primary incoming line. Default = 0

-B n

Specifies the AG board number n for the outgoing line.
Default = 1

-x n

Specifies the PPX switch number n for the primary incoming line. Default = 0

-X n

Specifies the PPX switch number n for the outgoing line.
Default = 1

-s n

Specifies the incoming call timeslot. Default = 0

-S n

Specifies the outgoing call timeslot. Default = 0

-i protocol

Specifies the protocol to run on the primary incoming line.
Default = lps0

-o protocol

Specifies the protocol to run on the outgoing line.
Default = lps0

Functions

ppxConnect, ppxDisconnect

Description

brd2brd performs call transfer of an incoming call to an outgoing line using the Point-to-Point Switching service. The connection is made over the MVIP-90 bus using the MVIP-95 model for stream numbering.

Procedure

The following procedure assumes you are using a system with the following configuration:

The Point-to-Point Switching service also requires the switching fabric be defined in the Point-to-Point Switching configuration file, \nms\ctaccess\cfg\ppx.cfg. Make sure this file exists and represents your hardware configuration. The following example represents the hardware layout described above:

[PPX]
Fabric
  Bus H100
        CTBUS:0..15:0..31
        CTBUS:16..23:0..63
        CTBUS:24..31:0..127
  End Bus
  
  Switch 0                  ## AG-8
   SwitchType = FMIC
   DeviceName = "agsw"
    DeviceNumber = 0
    Bus H100 (CTBUS:0..15:0..31)
    Inputs                        
        LOCAL:0..6(2):0..7   
    End Inputs
    Outputs                      
        LOCAL:1..7(2):0..7   
    End Outputs
  End Switch
Switch 1                  ## AG-8
   SwitchType = FMIC
   DeviceName = "agsw"
    DeviceNumber = 1
    Bus H100 (CTBUS:0..15:0..31)
    Inputs                  
        LOCAL:0..6(2):0..7   
    End Inputs
    Outputs                
        LOCAL:1..7(2):0..7  
    End Outputs
  End Switch
End Fabric

Before you start up brd2brd, stop any currently running instances of agmon, ctdaemon, and ppxserv. Refer to the AG Runtime Configuration and Developer's Manual for information about agmon, the CT Access Developer's Reference Manual for information about ctdaemon, and Section 1.6 of this manual for information about ppxserv.

To run brd2brd:

  1. Start agmon.

    
    
  2. If you want to use ctdaemon, start it now.

    
    
  3. Start ppxserv.

    
    
  4. Start brd2brd by entering:

    
    brd2brd -b 0 -s 4 -B 1 -S 2 -i lps0 -o wnk0
    This indicates the following usage:
  1. Pick up the phone connected to the loop start line and dial a 3 digit number.

    
    brd2brd displays the following:
    Event: ADIEVN_INCOMING_CALL
    Incoming Call...
    Answering call...
    Event: ADIEVN_ANSWERING_CALL
    Event: ADIEVN_CALL_CONNECTED, Answered
    You will hear a greeting and a prompt to provide an extension number.
  2. Enter an extension number.

    
    brd2brd displays the following:
    Collecting digits to dial...
    Event: ADIEVN_DIGIT_BEGIN, '3'
    Event: ADIEVN_DIGIT_END
    Event: ADIEVN_DIGIT_BEGIN, '3'
    Event: ADIEVN_DIGIT_END
    Event: ADIEVN_DIGIT_BEGIN, '1'
    Event: ADIEVN_COLLECTION_DONE,
    Finished digit string ='331'
    Got extension: 331
  3. You will hear: "I'll try that extension now."

    
    brd2brd displays the following:
    Playing file 'ctademo', msg #17...
    Playing 1 messages from 'ctademo'...
    Event: ADIEVN_DIGIT_END
    Event: VCEEVN_PLAY_DONE, Finished, msec=2240
    Placing a call to '331'...
    Event: ADIEVN_PLACING_CALL
  4. Take the outgoing phone handset off-hook, and then quickly replace it to provide the needed wink.

    
    brd2brd displays the following:
    Event: ADIEVN_CALL_CONNECTED, Signal Connected.
    The program makes a duplex connection between the incoming and outgoing lines.
  5. Confirm that the two voice streams are connected by tapping on the mouthpiece of one handset.

    
    You should be able to hear the tapping on the other handset.
  6. Hang up the outgoing line.

    
    The program tears down the call and returns to its initial state, waiting for a call. brd2brd displays the following:
    Hanging up...
    Event: ADIEVN_CALL_RELEASED
    Call done.
    Hanging up...
    Event: ADIEVN_CALL_RELEASED
    Call done.
    Event: ADIEVN_STOPPROTOCOL_DONE, Finished
    Event: ADIEVN_STOPPROTOCOL_DONE, Finished
    Event: ADIEVN_STARTPROTOCOL_DONE, Finished
    --------
    Waiting for incoming call...

6.3 Call Center Program: callcntr

Name

callcntr

Purpose

Demonstrates call transfer from an incoming line to an outgoing line over the MVIP bus using the Point-to-Point Switching service connection objects.

Usage

callcntr [options]

where options are:

Option

Description

-b n

Specifies the AG board number n for the incoming line(s). Default = 0

-B n

Specifies the AG board number n for the outgoing line. Default = 1

-x n

Specifies the PPX switch number n for the primary incoming line. Default = 0

-X n

Specifies the PPX switch number n for the outgoing line.
Default = 1

-s n[,n,...,n]

Specifies between 1 to 8 timeslots for incoming lines.
Default = 0

-S n

Specifies the outgoing call timeslot. Default = 0.
Note: timeslot n+1 will be used for playing the "on hold" recording.

-i protocol

Specifies the protocol to run on the incoming line(s). All incoming lines are assumed to run the same protocol.
Default = lps0

-o protocol

Specifies the protocol to run on the outgoing line.
Default = lps0

Functions

ppxAddListeners, ppxConnect, ppxCreateConnection, ppxDisconnect, ppxRemoveListeners, ppxSetTalker

Description

callcntr uses the Point-to-Point Switching service to connect incoming and outgoing calls. This demonstration program presents two styles of point-to-point switch management:

The second mode of operation is modeled upon an operator line servicing calls that have been put on hold. This portion of the demonstration program shows the ease with which connection switches can be managed using the Point-to-Point Switching Service. (The purpose is not to present a true "Call Center" application model.)

In this second mode, this demonstration program creates a connection for the management of callers that have been put on hold, waiting for an "operator" to become available. As "customers" call in, and the demonstration program determines that the "operator" line is busy, these callers are added as listeners to the connection. These callers are later removed from the connection, one at a time, as the "operator" becomes available.

Note: The MVIP-95 switch model is used in this demonstration program for stream numbering.

Procedure

The following procedure assumes you are using a system with the following configuration:

The Point-to-Point Switching service also requires the switching fabric be defined in the Point-to-Point Switching configuration file, \nms\ctaccess\cfg\ppx.cfg. Make sure this file exists and represents your hardware configuration. The following example represents the hardware layout described above:

[PPX]
Fabric
  Bus H100
        CTBUS:0..15:0..31
        CTBUS:16..23:0..63
        CTBUS:24..31:0..127
  End Bus
  
  Switch 0                  ## AG-8
   SwitchType = FMIC
   DeviceName = "agsw"
    DeviceNumber = 0
    Bus H100 (CTBUS:0..15:0..31)
    Inputs                        
        LOCAL:0..6(2):0..7   
    End Inputs
    Outputs                      
        LOCAL:1..7(2):0..7   
    End Outputs
  End Switch
  Switch 1                  ## AG-8
   SwitchType = FMIC
   DeviceName = "agsw"
    DeviceNumber = 1
    Bus H100 (CTBUS:0..15:0..31)
    Inputs                  
        LOCAL:0..6(2):0..7   
    End Inputs
    Outputs                
        LOCAL:1..7(2):0..7  
    End Outputs
  End Switch
End Fabric

Before you start up callcntr, stop any currently running instances of agmon, ctdaemon, and ppxserv. Refer to the AG Runtime Configuration and Developer's Manual for information about agmon, the CT Access Developer's Reference Manual for information about ctdaemon, and Section 1.6 of this manual for information about ppxserv.

To run callcntr:

  1. Start agmon.

    
    
  2. If you want to use ctdaemon, start it now.

    
    
  3. Start ppxserv.

    
    
  4. Start callcntr by entering the following prompt:

    
    callcntr -b 1 -s 4,2 -B 0 -S 4 -i wnk0 -o lps0
    This indicates the following usage:
  1. Take the handset of the telephone connected to board 1, local stream 0:4 off-hook.

    
    You should hear a relay click. 
  2. Dial a 3-digit telephone number (such as 331) for the loop start handset.

    
    callcntr displays the following:
    Event: ADIEVN_INCOMING_CALL
    Incoming Call...Answering call...
    Event: ADIEVN_ANSWERING_CALL
    Event: ADIEVN_CALL_CONNECTED, Answered
    And then:
    --------
    Placing a call to '331'...
    Event: ADIEVN_PLACING_CALL
  3. Answer the call on the "operator" phone that is connected to the loop start line when it rings.

    
    callcntr displays the following:
    Event: ADIEVN_CALL_CONNECTED, Voice Begin Connected.
    callcntr makes a duplex connection between the "customer" line and the "operator" line.
  4. Confirm that the two voice streams are connected by tapping on the mouthpiece of one handset.

    
    You should be able to hear the tapping on the other handset.
  5. Take the receiver of the second telephone connected to board 1, local stream 0:2 off-hook.

    
    You should hear a relay click. 
  6. Dial the 3 digit telephone number for the loop start handset.

    
    callcntr displays the following:
    Event: ADIEVN_INCOMING_CALL
    Incoming Call...
    Answering call...
    Event: ADIEVN_ANSWERING_CALL
    Event: ADIEVN_CALL_CONNECTED, Answered
    Call connected.
  7. Because there is a previously established connection to the "operator", you will continually hear a message saying "I'll try that extension now ... I'll try that extension now ... I'll try..."

    
    
  8. Hang up both the phone originally taken off hook and the "operator" phone.

    
    callcntr displays the following message twice:
    Hanging up...
    Event: ADIEVN_CALL_RELEASED
    Call done.
    Event: ADIEVN_STOPPROTOCOL_DONE, Finished
    callcntr then displays the following message, which indicates that the customer protocol is being reestablished so that it can wait for the next call:
    Event: ADIEVN_STARTPROTOCOL_DONE, Finished
    Almost immediately following this message, there will be a message indicating that a call is being placed to the operator:
    Placing a call to '331'...
    Event: ADIEVN_PLACING_CALL
    The "operator" phone will ring.
  9. Answer the call.

    
    callcntr displays the following:
    Event: ADIEVN_CALL_CONNECTED, Voice Connected.
  10. Confirm that you no longer hear the message "I'll try that extension now...", but instead have a voice connection with the "operator" phone (see step 8.)

    
    
  11. Do not hang up the phones. Repeat step 10 using the phone on timeslot 4 of board 1. You will hear the message as described in step 11.

6.4 Switching Shell: swish

Name

swish

Purpose

Provides interactive or text-file-driven control of MVIP and H.100 switches via the Switching service, Point-to-Point Switching service or directly using the device drivers.

Usage

swish [-i] [filename]

Options

-i specifies that the default initialization file, swish.ini, will be ignored.

filename specifies an ASCII file which contains swish commands to be executed before any interactive commands are executed.

Description

swish is a tool for interactive or text-file-driven control of switches. It provides a convenient way to manually try out connections during development to verify the commands that will be given to switches from within CT Access applications that use the Switching service.

Procedure

swish may be used in interactive mode, text-file-driven mode, or in a combination of the two.

In interactive mode, the user enters swish commands at the swish command prompt to control the switches on the underlying hardware.

In text-file-driven mode, the user provides swish with the name of the text file that holds the commands to be executed. If the text file does not have the exit command at the end, swish goes into interactive mode after executing the commands in the text file. Use the filename.swi naming convention for the input text file.

To run swish interactively:

To run swish using input from a text file:

In interactive mode, the command prompt swish: is displayed. Type Help to get a list of commands and arguments that swish supports. You may also enter the name of a command without any arguments to get more information about the command.

In text-file-driven mode, swish executes the commands from the specified filename. The syntax of the commands in the file is the same as the syntax of the commands in interactive mode.

swish supports four kinds of commands:

The Point-to-Point Switching service commands use functions from the Point-to-Point Switching service API. The names of the commands are the same as the functions provided by the Point-to-Point Switching service, and the arguments to the commands are also similar. Refer to Chapter 5 for more information about the Point-to-Point Switching service functions.

The swish commands use prefixes that correspond to the related APIs or device drivers, as shown in the following table:

Use this prefix...

To indicate...

ppx

Point-to-Point Switching service commands

swi

Switching service commands.

drv

MVIP-90 driver commands.

d95

MVIP-95 driver commands.

swish supports the following commands:

Command

Arguments

Description

ppx.CreateConnection

<PpxHd> = <CxName> <DefaultPattern>

Creates an empty connection.

ppx.OpenConnection

<PpxHd> = <CxName>

Opens a previously created connection.

ppx.CloseConnection

<PpxHd>

Closes a connection.

ppx.DestroyNamed
Connection

<PpxHd>

Destroys a named connection.

ppx.SetTalker

<PpxHd> <Talker>

Sets the talker for a connection.

ppx.AddListeners

<PpxHd> <ListenerList>

Adds listeners to a connection.

ppx.RemoveListeners

<PpxHd> <ListenerList>

Removes listeners from a connection.

ppx.SetDefaultPattern

<PpxHd> <pattern>

Sets the default pattern for a connection.

ppx.Connect

<TiList> TO <ToList> [SIMPLEX | DUPLEX | QUAD]

Makes a connection.

ppx.Disconnect

<ToList> FROM <TiList> [SIMPLEX | DUPLEX | QUAD]

Disconnects a connection.

ppx.Begin

Starts collecting commands.

ppx.BeginCancel

Cancels a begin command.

ppx.ShowDB

Dumps the PPX runtime database to a text file.

ppx.Submit

Sends commands to server.

If you need more information about a specific command, type the name of the command and press Enter.

Refer to the Switching Service Developer's Reference Manual for more information on the swish utility.

Example

The following ppx.cfg file is used for this example.

[PPX]
Fabric
  Bus H100
        CTBUS:0..15:0..31
        CTBUS:16..23:0..63
        CTBUS:24..31:0..127
  End Bus
  
  Switch 0                  ## AG-8
   SwitchType = FMIC
   DeviceName = "agsw"
    DeviceNumber = 0
    Bus H100 (CTBUS:0..15:0..31)
    Inputs                        
        LOCAL:0..6(2):0..7   
    End Inputs
    Outputs                      
        LOCAL:1..7(2):0..7   
    End Outputs
  End Switch
End Fabric

# This SWISH script connects the Line-interfaces on an AG-8 board as listeners on a connection block to a DSP resource on the AG-8 board which is playing a hold message (the talker).

# Create the connection block.
ppx.CreateConnection hd0 = "" 0

# Set the talker
ppx.SetTalker hd0 0:LOCAL:4:0

# Add the listeners - add the 8 incoming lines
ppx.AddListeners hd0 0:LOCAL:0:0..7

# A new message can be played to all the listeners by simply setting a
# new talker to the connection. The previous talker is disconnected.
ppx.SetTalker hd0 0:LOCAL:4:1

# Close the connection
ppx.CloseConnection hd0
quit

6.5 Show Switch Connections: showcx95

Name

showcx95

Purpose

Displays switch connections.

Usage

showcx95 [switch_driver]

Description

Displays the switch connections for all boards that have MVIP switches. If a pattern is being sent on a timeslot, the pattern value is displayed.

Procedure

To run showcx95 for AG boards, enter the following:

showcx95 agsw

Example

The following example make sample connections between an AG-8 board and an AG Quad T.

The following ppx.cfg file is used for this example.

[PPX]
Fabric
  Bus H100                 
   CTBUS:0..15:0..31
   CTBUS:16..23:0..63
   CTBUS:24..31:0..127
  End Bus
  Switch 0                            ## AG-8  
   SwitchType = FMIC
   DeviceName = "agsw"
   DeviceNumber = 0
   Bus H100 (CTBUS:0..15:0..31)
   Inputs                  
    LOCAL:0..6(2):0..7   
   End Inputs
   Outputs                     
    LOCAL:1..7(2):0..7   
   End Outputs
  End Switch
  Switch 2                             ## Quad T
   SwitchType = HMIC
   DeviceName = "agsw"
   DeviceNumber = 2
   Bus H100 ()
   Inputs                       
    LOCAL:0..14(2):0..23     # Trunk
    LOCAL:16..18(2):0..127   # DSP
   End Inputs
   Outputs                           
    LOCAL:1..15(2):0..23     # Trunk
    LOCAL:17..19(2):0..127   # DSP
   End Outputs
  End Switch
End Fabric

For the following swish commands:

ppx.Connect  0:local:0:0   to 2:local:17:0   SIMPLEX
ppx.Connect  0:local:0:2   to 2:local:17:2   DUPLEX
ppx.Connect  0:local:0:4   to 2:local:17:4   QUAD

The showcx95 output is:

 SHOWCX95 Version 1.1       Jan 15 1998

AGSW 0
M-14:02 <- L-00:00 M-14:04 <- L-00:02 M-14:06 <- L-00:04 M-14:07 <- L-02:04 L-01:00 <- 0x7f L-01:02 <- M-15:00 L-01:04 <- M-15:01 L-01:06 <- 0x7f L-03:00 <- 0x00 L-03:02 <- 0x00 L-03:04 <- M-15:02 AGSW 2 M-15:00 <- L-16:02 M-15:01 <- L-16:04 M-15:02 <- L-18:04 L-01:00..23 <- 0x7f
[...]

 L-15:00..23            <-   0x00
 L-17:00                <-  M-14:02
 L-17:01                <-   0x7f
 L-17:02                <-  M-14:04
 L-17:03                <-   0x7f
 L-17:04                <-  M-14:06
 L-17:05..127           <-   0x7f
 L-19:00..03            <-   0x00
 L-19:04                <-  M-14:07
 L-19:05..127           <-   0x00
In the showcx95 output, M indicates MVIP bus and L indicates local bus. The showcx95 output shows three types of connections:

6.6 Service Configuration Utility: ppxservicecfg

Name

ppxservicecfg

Purpose

Installs the PPX server as an NT service or removes it from the registry.

Usage

ppxservicecfg [ -install | -remove ] [options]

-install Registers the service.

-remove Stops the service and removes it.

where options includes:

Option

Description

-f filename

Specifies the configuration filename.
Default = \nms\ctaccess\cfg\ppx.cfg

-e filename

Specifies the error log filename.
Default = \nms\ctaccess\ppxerror.log

-d filename

Specifies the database output filename.
Default = \nms\ctaccess\ppxdb.log

-l

Turns on the SWI command logging process.
Default = OFF

-w number

Specifies the line number at which the SWI log file will wrap to start. Default = 2000

-s filename

Specifies the SWI command log filename.
Default = \nms\ctaccess\ppxswi.log



(Page 1 of 1 in this chapter)


tech_support@nmss.com
Copyright © 1999, Natural MicroSystems, Inc. All rights reserved.