# MSPP exerciser: msppxsr

After initializing the system hardware with oamsys, run the MSPP exerciser (msppxsr) program to verify that MSPP endpoints and channels can be created, connected, and enabled on CG board DSPs. The MSPP exerciser program is a looping demonstration program that repeatedly creates, connects, and enables MSPP channels, then disables, disconnects, and destroys them. It supports the maximum number of connections the host system can support. It also demonstrates sending commands to MSPP endpoint and channel filters.

#### Usage

msppxsr arguments

#### Featured functions

mspCreateEndpoint, mspCreateChannel, mspConnect, mspEnableChannel, mspSendCommand, mspDisconnect, mspDisableChannel, mspDestroyChannel

### Running massxsr

#### Before you begin

Before running msppxsr:

- Edit one of the provided CG board keyword files to indicate any system-specific configuration information.

- (Optional) Compile the file msppxsr.exe with the make files provided.

- Run oamsys with a customized version of one of the sample OAM board keyword files.

#### Procedure

To run msppxsr:

1. Navigate to the \nms\fusion\samples\general\msppxsr directory.

2. Enter the following command:

msppxsr -b boardnum ep1 eptype ep2 eptype -c chantype -l localip -d remoteip -nport numport -nloop numloop

The following table shows available options. All option expressions must include a space between the option and the value (as shown in the previous example).

Option | Description | Valid entries
-b boardnum | Board number. | Default is 0.
-ep1 eptype | Type of endpoint for endpoint 1. By default, msppxsr creates RTP IPv4 endpoints of the requested type unless you specify the -v6 argument after the eptype argument. | Valid endpoint types include: ds0 rtp (full duplex) rtpi n (simplex receive) rtpout (simplex receive) rtpv6 (full duplex) rtpi nv6 (simplex receive) rtpoutv6 (simplex receive) tpkt t38udp pktmedia
-ep2 eptype | Type of endpoint for endpoint 2. By default, msppxsr creates RTP IPv4 endpoints of the requested type unless you specify the -v6 argument after the eptype argument. | Default is ds0. See valid entries for ep1 eptype.
-6 | Specifies to create RTP IPv6 endpoints of the requested type (full duplex, simplex receive, or simplex send). |
-c chantype | Type of MSPP channel to connect endpoint 1 and 2. | Entry channel type. See Valid channel types.
-l localip | Local IP address for an RTP or UDP endpoint. If no RTP or UDP endpoint is created, this value is ignored. The IP address must be appropriate for the type of RTP endpoint specified (that is, an IPv4 address for an IPv4 endpoint or an IPv6 address for an IPv6 endpoint). Entering 0 indicates that the data will not be transferred to an IP network. Use for testing purposes only. | IPv4 or IPv6 address or 0 (for NULL).
-d remoteip | Remote IP address for an RTP or UDP endpoint. If no RTP or UDP endpoint is created, this value is ignored. The IP address must be appropriate for the type of RTP endpoint specified (that is, an IPv4 address for an IPv4 endpoint or an IPv6 address for an IPv6 endpoint). Entering 0 indicates that the data will not be transferred to an IP network. Use for testing purposes only. | IPv4 or IPv6 address or 0 (for NULL).
-nport numport | Maximum number of channels msppxsr creates. | 1 - 360
-nloop numloop | Number of times msppxsr creates and destroys connections. Must be greater than or equal to one. | 1 or greater
-nbcast bcastEPs | Number of broadcast (simplex RTP send) endpoints to create plus 1. For example, to create seven broadcast endpoints, specify a bcastEPs of 6. | 0 - 7
q | Stops the program. | NA
? | Displays on screen Help. | NA

For example:

msppxsr -b 1 -ep1 rtp -ep2 ds0 -c 4 -l 0 -d 0 -nport 1 -nloop 10

The previous example commands msppxsr to create set up and tear down one duplex G.729A/B voice connection (made up of a DS0 endpoint, a G.729A/B channel, and an RTP IPv4 endpoint) ten times. No data is transferred to the IP network because the local IPv4 address and remote IPv4 address are each set to 0.

msppxsr displays results of MSPP function calls at the command prompt and displays status information about MSPP connections.
Before msppxsr sets up and tears down MSPP connections for the final time (iteration numloop - 1), it displays a numbered list of commands you can invoke for the connected channels. The list varies according to the kinds of channels created.

3. Enter the number associated with any commands to execute.

msppxsr executes the specified command.

4. Stop the program after entering commands by entering Q.

### Valid channel types

Value | Description
1 | G.711 full duplex
2 | G.723 full duplex
3 | G.726 full duplex
4 | G.729 full duplex
5 | Fax relay full duplex
6 | G.711 encode simplex
7 | G.711 decode simplex
8 | G.723 encode simplex
9 | G.723 decode simplex
10 | G.726 encode simplex
11 | G.726 decode simplex
12 | G.729 encode simplex
13 | G.729 decode simplex
14 | G.728 full duplex
15 | G.728 encode simplex
16 | G.728 decode simplex
17 | RTP switch simplex
19 | AMR full duplex
20 | AMR encode simplex
21 | AMR decode simplex
44 | EVRC full duplex
45 | EVRC encode simplex
46 | EVRC decode simplex
47 | ILBC 2.0 full duplex
48 | ILBC 2.0 encode simplex
49 | ILBC 2.0 decode simplex
50 | ILBC 3.0 full duplex
51 | ILBC 3.0 encode simplex
52 | ILBC 3.0 decode simplex
53 | GSM-FR full duplex
54 | GSM-FR encode simplex
55 | GSM-FR decode simplex

#### Description

msppxsr creates and enables the number of MSPP channels specified (numport) for the number of iterations specified (by numloop). The command line interface shows the progress of MSPP commands as they execute. msppxsr uses ctaCreateQueue, ctaCreateContext, and ctaOpenService to create CTA queues, contexts, open CTA services for MSPP endpoints and channels. msppxsr then creates, connects, and enables MSPP endpoints and channels with mspCreateEndpoint, mspCreateChannel, mspConnect, and mspEnableChannel.

After the numport channels have been enabled, msppxsr disables, disconnects, and destroys the MSPP channels with mspDisableChannel, mspDisconnect, mspDestroyChannel, and mspDestroyEndpoint. msppxsr exercises each MSPP channel the number of times specified by numloop.

When msppxsr stops running in the middle of a cycle, an expected event has not been received because of a configuration error or software mismatch. Check configuration files, runtime files, and component file dates and make sure the PATH environment variable does not redirect the system to an older file.