# 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:

- Single caller, single listener, that demonstrates the ease with which an incoming line can be transferred to an outgoing line over the MVIP
  bus.

- Single caller, multiple listeners, that demonstrates the use of a point-to-point connection.

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:

- Two AG 2000 boards. One of the boards has a loop start
  hybrid on timeslot 4 and the other board has two DID
  hybrids on timeslots 2 and 4. Make sure one of the AG 2000 boards is configured to act as the bus clock master and the other is configured to act as a bus clock slave. Refer to the board specific installation documentation for more information.

- The TCP files lps0.tcp and wnk0.tcp are downloaded to each of the boards.

- Two 2500-type telephones are connected to each DID
  hybrid port and there is a way to place and receive calls over the loop start line (such as a central office simulator with another telephone handset connected to it).

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.