Call center: callcntr

Demonstrates call transfer from an incoming line to an outgoing line over the CT bus using the PPX service connection objects.

Usage

callcntr [options]

where options are:

Option

Specifies...

-b n

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

-B n

NMS board number n for the outgoing line. Default = 1

-x n

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

-X n

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

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

From 1 to 8 timeslots for incoming lines. Default = 0

-S n

Outgoing call timeslot number n. Default = 0.

Note: Timeslot n+1 is used for playing the on-hold recording.

-i protocol

Protocol to run on the incoming lines. All incoming lines are assumed to run the same protocol. Default = lps0

-o protocol

Protocol to run on the outgoing line. Default = lps0


Functions

ppxAddListeners, ppxConnect, ppxCreateConnection, ppxDisconnect, ppxRemoveListeners, ppxSetTalker

Description

callcntr uses the PPX 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 PPX service. The purpose is not to present a true call center application model.

In this second mode, callcntr 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 callcntr for stream numbering.

Procedure

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

The PPX service also requires that the switching fabric be defined in the PPX configuration file \nms\ctaccess\cfg\ppx.cfg. Make sure this file exists and represents the appropriate hardware configuration. The following example represents the hardware layout described here:

[PPX]
Fabric
  Bus H100
        CTBUS:0..15:0..31
        CTBUS:16..23:0..63
        CTBUS:24..31:0..127
  End Bus
  
  Switch 0                  ## AG 2000
   SwitchType = HMIC
   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 2000
   SwitchType = HMIC
   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, start ctdaemon and ppxserv, and verify that the boards are booted. Refer to the NMS OAM System User's Manual for information about OAM, to the Natural Access Developer's Reference Manual for information about ctdaemon, and to PPX server of this manual for information about ppxserv.

Note: Be sure the PPX server is properly configured and installed before running callcntr. The PPX demos fail to execute if the server application is not running.

Complete the following steps to run callcntr:

Step

Action

1

Start ctdaemon (if it is not already running).

2

Run oamsys to boot the boards.

3

Start ppxserv.

4

Start callcntr by entering the following command:

callcntr -b 1 -s 4,2 -B 0 -S 4 -i wnk0 -o lps0

This command indicates the following usage:

  • Board 1, timeslots 2 and 4 on the local streams for the incoming (customer) lines.

  • Board 0, timeslot 4 on the local streams for the outgoing (operator) line.

  • Board 0, timeslot 5 on the local streams for the DSP voice resource used when managing the callers on hold for an operator.

  • Wink start is being run on the incoming customer calls; loop start protocol is being run on the outgoing operator line.

As the program initializes, event messages indicate that services are open on each of the four ports: the operator port, two customer ports, and the on hold message port. In addition, protocols are started on the two customer ports and on the hold message port.

Event: CTAEVN_OPEN_SERVICES_DONE, Finished
Event: CTAEVN_OPEN_SERVICES_DONE, Finished
Event: CTAEVN_OPEN_SERVICES_DONE, Finished
Event: CTAEVN_OPEN_SERVICES_DONE, Finished
Event: ADIEVN_STARTPROTOCOL_DONE, Finished
Event: ADIEVN_STARTPROTOCOL_DONE, Finished
--------
Waiting for incoming call...
Event: ADIEVN_STARTPROTOCOL_DONE, Finished
--------
Waiting for incoming call...

Two messages indicate that the program is waiting for an incoming call. Each of these messages represents a thread in the demonstration program that is waiting for calls to be received on the customer lines, and indicates that a message is continually being played on the on hold port:

Playing file 'ctademo', msg #17...
Playing 1 messages from 'ctademo'...
Event: VCEEVN_PLAY_DONE, Finished ,
msec=2240

callcntr is ready to receive an incoming call.

5

Take the handset of the telephone connected to board 1, local stream 0:4 off-hook.

You hear a relay click.

6

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

7

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.

8

Tap on the mouthpiece of one handset to confirm that the two voice streams are connected.

You hear the tapping on the other handset.

9

Take the receiver of the second telephone connected to board 1, local stream 0:2 off-hook.

You hear a relay click.

10

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.

Because there is a previously established connection to the operator, you continually hear a message saying "I'll try that extension now ... I'll try that extension now ... I'll try..."

11

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, the following message displays, indicating that a call is being placed to the operator:

Placing a call to '331'...
Event: ADIEVN_PLACING_CALL

The operator phone rings.

12

Answer the call.

callcntr displays the following:

Event: ADIEVN_CALL_CONNECTED, Voice Connected.

13

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).

14

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