(Page 1 of 1 in this chapter)


Chapter 11

Multi-Frequency R2 Protocol


11.1 Introduction
11.2 Signaling Overview
11.3 Parameters
11.3.1 Editable Parameters
11.3.2 Non-editable parameters
11.4 Special TCP Behavior
11.4.1 Inbound Calls: Retrieving Digits All at Once
11.4.2 Inbound Calls: Retrieving Digits One at a Time
11.4.3 Outbound Calls: Digit Format

11.1 Introduction

This chapter provides the following information:

The protocol known as MFC-R2 is defined by the CCITT (now ITU) Recommendations Q.421-Q.442, (CCITT Blue Book Volume VI, Fascicle VI.4, Geneva 1989). Many country-specific variations exist. The MFC0 TCP is programmed by the parameters described below to implement the specifications of all supported countries and network operators.

11.2 Signaling Overview

Although E1 Channel Associated Signaling (CAS) framing supports 4 signaling bits per direction, only 2 of them are used for R2 line signaling. Thus the signaling channels supporting the R2 line signaling protocol are referred to as Af and Bf in the forward direction, and Ab and Bb, in the backward direction. The forward channel indicates the condition of the outbound switch equipment and reflects the condition of the calling party's line. The backward channel indicates the condition of the called party's line (the inbound equipment).

The other bits in either direction (the C and D bits) usually have fixed values. However, their value may change from network to network.

The following table illustrates the signaling states of a typical call.
State

Outbound AfBf

Direction

Inbound AbBb

Idle

10

\xdf

10

Seizure

00

01

Seizure Acknowledged

00

\xdf

11

Here the outbound side starts to send the address information. This is accomplished by in-band compelled MF tones. The inbound side completes the compelled sequence by accepting or rejecting the call, using the last backward compelled tone. If the call has been accepted, the inbound side plays a ring tone on the line, and then signals that the call has been answered by setting the Ab bit to 0

Ringing

00

\xdf

11

Answer - conversation state

00

\xdf

01

If the inbound side rejects the call instead, the outbound side clears forward, by setting the Af bit to 1. The inbound side goes back to idle, by setting the Bb bit to 0

Clear forward

10

11

Idle

10

\xdf

10

During conversation the outbound protocol can receive billing pulses, to signal that a unit of cost has been billed to the call. The bit used to carry a billing pulse depends on national specifications.

Answer - conversation state

00

\xdf

01

Billing pulses

00

\xdf

11 or 00

Answer - conversation state

00

\xdf

01

Depending on which of the sides hangs up the call first, we have a clear back signal, or a clear forward signal. Depending on national specifications, there might be a period of time in which the inbound side holds a release guard state, which is the same as clear back but happens when the outbound side is already in the idle state. Idle follows.

Inbound hangs up first: Clear back

00

\xdf

11

Clear forward

10

11

Idle

10

\xdf

10

Outbound hangs up first: Clear forward

10

01

Release guard

10

\xdf

11

Idle

10

\xdf

10

The MFC-R2 protocol uses a Multi-Frequency Compelled scheme to perform register signaling, that is, to exchange address information.

The outbound exchange starts by putting on the line a forward tone that represents the first digit of the called address. The inbound exchange detects the tone, and answers with a backward tone, which has the purpose both to acknowledge the previous forward tone and to request another digit. The inbound exchange can use different tones in the backward direction, each carrying a request for a different piece of information. The outbound exchange interprets the request and sends the appropriate digit.

When the outbound exchange detects the backward tone, it stops the current forward tone. When the inbound exchange detects the end of the forward tone, it stops its backward tone. When the outbound exchange detects the end of the backward tone, it starts the next tone, representing the next digit, and the cycle starts again.

Different kind of information are transferred from the outbound to the inbound exchange in this way. The MFC-R2 protocol supports:

Natural MicroSystem's MFC-R2 protocol implementation gives developers control over all of these features.

11.3 Parameters

The MFC-R2 TCP is programmed for operation within different countries and networks by a number of TCP-specific parameters. These are comprised within the parameter category ADI.MFC. As explained in previous sections, the correct parameters are set at installation time.
Caution:

Most of the parameters that follow are signaling-specific: changing their value would not only invalidate any approval certificate for the used board, but would also most likely cause the board to malfunction. These parameters are described here for reference purposes only.

The following sections describe all MFC-R2 parameters.

11.3.1 Editable Parameters

Users can modify the following ADI.MFC parameters:
Field Name

Type/Unit

Default

Description

DIDnumber

number

7

Inbound: number of DID digits to expect

ANInumber

number

8

Inbound: number of ANI digits to expect

DIDBeforeANI

number

2

Inbound: DID number to receive before asking for category

optionflags

mask

0x0

Flags for the user to set for optional TCP behavior (inbound):

· bit 0 (& 0x1): does the TCP play busy when rejecting a call? If not, the switch does it instead.

1=do not play, 0=play (default)

· bit 1 (& 0x2): Set this bit if the trunk you are using is inbound only (no calls can be placed on it)

· bit 2 (& 0x4): Set this bit if the trunk you are using is outbound only (no calls can be received on it)

· bit 3 (& 0x8): Set this bit if a cleardown tone (busy tone) is necessary when the inbound side of the TCP hangs up a call first. Default = 0: no cleardown tone is played.

· bit 4 (& 0x10): Set this bit if you need to play a message while rejecting a call. If the bit is set, the TCP will send to the network the backward Group B tone to accept the call, thus causing the network to establish the voice path. The TCP will then wait for the far end to hang up while the application plays a message.

· bit 5 (& 0x20): Start call progress in any case after an outbound call has been accepted by the network, so that a message or SIT tone can be detected (complementary of the above). Note: call progress detection by default is not started, if the user sets the connect mask to connect on SIGNAL. This saves DSP resources.

· bit 6 (& 0x40): If this bit is set, the TCP will answer an incoming call from Group A, without asking the network for the caller's category (Group II forward tone). The caller's category will therefore be missing from the incoming call-related information delivered to the host.

debugmask

mask

0x0

Trace level specification, as follows:

· Show states: 0x01

· Show tones: 0x02

· Show line code: 0x04

· Show tone ends: 0x08

· Show compel errors: 0x10

· Show tone validity errors: 0x20

These values can be ORed for cumulative effect (run agtrace 1000 or higher to see trace messages).

11.3.2 Non-editable parameters

The following ADI.MFC parameters are country- or network-specific, and cannot be modified.
Field Name

Type/Unit

Example

Description

compelledtimers

internal

0x3F6F

All compelled timers, both for inbound and outbound, expressed in seconds and packed in a 16-bits word. The timers are the following:

1 T1 (forward tones max on-time): lowest 5 bits. Example 01111 = 15 s

2 T2 (forward tones max off-time): middle 5 bits. Example 11011 = 27 s

3 T3 (inbound compelled cycle timer): highest 6 bits. Example 001111 = 15 s

releaseguardtime

ms

0

Inbound, time to wait in release guard, if set (regulated time for the inbound protocol to remain in blocking state after mutual hang-up)

inboundqualtimers

internal

0x222

Group of three inbound line qualification timers (time for the inbound protocol to wait to recognize a line signaling change), expressed in units of 10 ms and packed in the following way:

1 Qualification time during idle: lowest hexade, typical value 20 ms

2 Qualification time during the compelled sequence: middle hexade, typical value 20 ms

3 Qualification time during connected: middle hexade, typical value 20 ms

outboundqualtimers

internal

0x222

Group of three outbound qualification timers (time for the protocol to wait to recognize a line signaling change), expressed in units of 10 ms and packed in the following way:

1 Qualification time during idle: lowest hexade, typical value 20 ms

2 Qualification time during the compelled sequence: middle hexade, typical value 20 ms

3 Qualification time during connected: middle hexade, typical value 20 ms

seizureacktime

ms

240

Outbound: time to wait for seizure acknowledge after seizure, before clearing forward. The CCITT Blue Book value is 200 ms, but the TCP must account for internal transmission time.

answertime

internal

0x0F3C

Outbound: group of two timers used during the answering phase of call setup. Both timers are expressed in seconds.

1 Lower byte: maximum time for the protocol to wait between receipt of the Group B backward tone until the phone is answered (line signaling event). After this timer expires, the TCP clears the line.

2 Higher byte: maximum time for the protocol to wait between the generation of the Group II forward tone and the detection of the Group B backward tone. This is usually the same as timer T1 from the parameter compelledtimers, but it can be different in some countries.

inboundreleasetime

ms

0

Outbound: the time after which a clearback seen by outbound is treated as a remote hang up signal. If the signal lasts less than this value, it could be a billing pulse (only applicable during conversation).

The following parameters contain the specification of all the tones needed by the protocols to implement the country-specific variation of R2. Each parameter holds more than one tone. Each tone uses 4 bits (one hexade) of the 16 bit word. Hexades are listed from least to most significant inside each parameter.

tonesgroupA

internal

0x3551

Backward Group A tones. The TCP uses these tones to send requests to the calling party during the compelled sequence. Each hexade of the parameter contains one request. Low to high hexade:

0 Send next DID (A-1).

1 Send Group I category (A-5).

2 Send next ANI (A-5).

3 Send Group II tone (and switch to group B tone reception) (A-3).

tonesgroupB

internal

0x8354

Some backward Group B tones. The TCP uses these tones to send the final indication of the compelled sequence to the calling party. Each hexade of the parameter contains one Group B indication. Low to high hexade:

0 Indicate congestion (B-4). This is also applicable during Group A transmission.

1 Indicate unallocated number (B-5).

2 Indicate busy (B-3).

3 Indicate line out of order (B-8).

tonesendofinfo

internal

0x0FCF

Forward tones that indicate the end or the non-availability of a certain type on information. The types of information are:

0 End of DID digits. In some countries a tone that signals the end of the DID digits doesn't exist. In this case the first hexade will be 0.

1 Caller's category not available. In some countries the category must be available to the caller, so the second hexade will be 0.

2 End of ANI digits- caller id available

3 End of ANI digits - called id restricted. In most countries there is no distinction for MFC-R2 between restricted and non-restricted caller id. In this case the fourth hexade is 0.

tonesanswer

internal

0x0667

Backward tones indicating acceptance of the call. Each hexade of the parameter contains one flavor of acceptance indication. Low to high hexade:

0 Call accepted in Group B - charge (B-6).

1 Call accepted in Group B - free call (B-7).

2 Call accepted in Group A (A-6).

3 Alternative tone for call accepted in Group B (not in CCITT specifications, but necessary in some countries)

tonesmiscellaneous

internal

0x0C11

Request or indication tones used in different contexts by the TCP. They are (low to high hexade)

0 The tone the outbound part of the TCP plays in Group II (toll category in some countries) (II-1, normal subscriber).

1 Default user category (Group I category) to be used if the application does not provide it (in some countries the outbound must play it in all cases) (I-1, normal subscriber).

2 Tone meaning that after the user category no ANIs are available (I-12, or 0xC).

3 Backward Group B tone used in some countries to reject an incoming call while requesting that the voice path be open for a special announcement.

tonesrepeatrequest

internal

0x0872

Backward Group A tones inbound plays to request a DID digit repetition from outbound. Consider the digit that outbound played last to be DID N. Low to high hexade:

0 Repeat digit N-1 (A-2).

1 Repeat digit N-2 (A-7).

2. Repeat digit N-3 (A-8).

3. Repeat all digits (restart dialing) (Not specified by the CCITT Blue Book, but used in many countries).

tonesgroupC

internal

0xED01

Backward tones that the inbound plays when it is collecting ANIs (the specifications of some countries identify a Group C in this case) Low to high hexades:

0 Request the outbound to go back to sending DIDs, and send the next DID. This is typically the same as the normal send DID tone, hexade 1 of tonesgroupA, but it can be different in some countries.

1 Request the outbound to go back to sending DIDs, and repeat the last DID transmitted. (Not supported by the CCITT Blue Book).

In this parameter there are two more hexades, not related with the Group C tones. These are:

2 Tone that inbound sends to request that outbound specifies the nature of the circuit, either land-based or through a satellite link (A-13).

3 Tone that inbound sends to ask if a half-echo suppressor is needed (A-14).

These parameters do not have a CCITT specification describing them, but rather they describe the target country's call progress tones. Their default values are set to a reasonable international standard.

ringfreq1

Hz

425

Inbound: Ring frequency #1.

ringfreq2

Hz

0

Inbound: Ring frequency #2 (if the ringing tone is composed of 2 frequencies: otherwise, 0).

ringontime

ms

1000

Inbound: Time the ring tone is on in a ring cycle.

ringofftime1

ms

4000

Inbound: Time the ring tone is off in a ring cycle.

ringofftime2

ms

0

Inbound: Ring off-time two (for UK-style ringing cycles, e.g. 400 on, 200 off, 400 on, 2000 off).

busyfreq1

Hz

425

Inbound: Busy frequency #1.

busyfreq2

Hz

0

Inbound: Busy frequency #2 (if the busy tone is composed of 2 frequencies: otherwise, 0).

busyontime

ms

500

Inbound: Time the busy tone is on in a busy cycle.

busyofftime

ms

500

Inbound: Time the busy tone is off in a busy cycle.

CPtoneslevel

IDU

350

Inbound: Amplitude of call progress tones (ring and busy).

Miscellaneous parameters

compelledtoneslevel

IDU

330

R2 tones amplitude (forward and backward)

signalingflags

mask

0x301

Parameter containing flags describing signaling variations. These are:

· bits 0, 1 (& 0x3): Value of the C and D bits (usually, C=0, D=1).

· bit 2 (& 0x4): What to do if next DID does not come: pulse congestion (0) or pulse request for Group II tone (1). This addresses the problem of those protocol variations without a tone to signal the end of DID digits. In this case, the bit is set to 1, so the compelled sequence continues with the request to send the Group II tone and switch to reception of Group B tones.

· bit 3 (& 0x8): Ignore bit faults during ring (0), or detect and abort the call (1).

· bit 4 (& 0x10): Expect metering pulses on the A bit (1=yes, 0=no).

· bit 5 (& 0x20): Expect metering pulses on the B bit (1=yes, 0=no) (if no metering pulses, both these bits are set to zero).

· bits 6 and 7 (& 0xC0): Controls the length of delay after the outbound protocol hangs up before the application is able to place a new call. This is needed by some switches to clear the line and being able to be seized again. Values:

0x0 = no delay

0x1 = 400 ms delay

0x2 = 700 ms delay (default)

0x3 = 1000 ms delay

Continued.

signalingflags

mask

0x301

· bit 8 (& 0x100): Flag to determine if a inbound clearing back is signaled by a release guard (AB=11), value 1, or by a forced release (AB=00), value 0.

· bit 9 (& 0x200): Flag to determine if the bit detector should be set with a simultaneity window of zero (if clear), or of 5 ms (if set). Having two bit transitions falling in the same 5 ms period is the definition of simultaneous bit transitions on the line. Double bit transitions are illegal in some countries.

· bit 10 (& 0x400): Expect metering pulses on the C bit (1=yes, 0=no)

· bit 11 (& 0x800): If set, a half-echo suppression is needed in international working (the outbound side answers with a I-14 to a A-14 request, in CCITT speech).

validDIDmask

internal

0x87FE

The valid DID tones in the target country. If a DID is received by inbound, that is not valid, the compelled sequence is aborted with a congestion indication.

The mask is the following:

FEDC|BA98|7654|321-

1000|0111|1111|1110

In this parameter and the following ones, bits set to `1' represent valid digits. If the TCP receives a digit corresponding to a bit set to `0', it will automatically reject the call. In this example, the digits `B', `C', `D' and `E' are invalid DID digits.

validANImask

mask

0x97FE

The valid ANI tones in the target country. If a ANI is received by inbound, that is not valid, the compelled sequence is aborted with a congestion indication.

The mask is the following:

FEDC|BA98|7654|321-

1001|0111|1111|1110

validcategorymask

mask

0x07FE

The valid category tones in the target country. If an invalid category is received by inbound, the compelled sequence is aborted with a congestion indication.

The mask is the following:

FEDC|BA98|7654|321-

0000|0111|1111|1110

validGroupIImask

mask

0x07FE

The valid Group II tones in the country. If an invalid Group II tone is received by inbound, the compelled sequence is aborted with a congestion indication.

The mask is the following:

FEDC|BA98|7654|321-

0000|0111|1111|1110

catnoANImask

mask

0x0

The category tones that imply that no ANI digits follow. The mask is the following:

FEDC|BA98|7654|321-

0000|0000|0000|0000

tonesinternational

internal

0xEED

Forward Group I tones that outbound plays to answer inbound's request for information about the presence or absence of a satellite link in the circuit, and the need for half-echo suppression. Low to high hexade:

0. No satellite link in the circuit (I-13)

1. Satellite link in the circuit (I-14)

2. Half-echo suppression needed (I-14) (if this is not the case, the outbound just ignores the request and plays any other tone)

reanswerdelay

ms

0

Time to wait for re-answer pulse. This might be needed for special switches in certain countries. Set to zero to disable.

reanswerpulsetime

ms

0

Length of re-answer pulse. Disabled if reanswerdelay is set to zero.

Timers related to the AG Quad boards resource management

resourcegettimes

internal

0x0a0f

This parameter addresses a special need of protocols running on a AG Quad board with resource management enabled. If this is the case, for certain operations it is necessary to acquire a resource from a resource pool on the board. The parameter defines to timeouts after which the operation is aborted if a resource is not available. This is a very unlikely occurrence though.

Low byte: time to wait for resource before placing a call (15 s)

High byte: time to wait for resource when a resource is needed by inbound to release a call (e.g. to play a cleardown tone).
(10 s)

11.4 Special TCP Behavior

The following sections describe operations that are specific to the MFC-R2 protocol within the framework of Natural Call Control.

11.4.1 Inbound Calls: Retrieving Digits All at Once

For MFC-R2, after ADIEVN_INCOMING_CALL is received, the following fields of the ADI_CALL_STATUS structure contain information relevant to the call:

Field

Description

calledaddr

The called number. Also referred to as the Direct Inward Dial (DID) number.

callingaddr

The calling number (if available). Also referred to as the Automatic Number Identification (ANI) number.

usercategory

The calling party category (Group I), e.g., normal subscriber, operator, maintenance equipment.

callingpresentation

The ANI digits might not be available, because of interworking of different protocols with different features in the call path, or ANI presentation might be restricted. Possible values include:

0 = Calling number presentation allowed (default)

1 = Calling number presentation restricted

2 = Calling number not available

tollcategory

The category associated with the calling party in register signaling Group II. Usually this is the same as the user category, but in some countries it carries the toll category of the call.

Several parameters affect the way the MFC-R2 TCP accepts, processes and presents the incoming digits to the host:

Parameter

Description

DIDnumber

Determines the number of Direct Inward Dial (DID) digits the TCP should expect from the calling party. Default is 7.

ANInumber

Determines the number of Automatic Number Identification (ANI) digits the TCP should expect. Set this number to one more than the number of ANI digits to expect, to include the category digit. For example, if the TCP is to expect 7 digits, set this parameter to 8 (the default).

If this parameter is set to 0, no ANI digits are collected.

DIDBeforeANI

Determines the number of DID digits the TCP should receive before signaling the calling party to send ANI digits. It defaults to 1.

Note: When you call adiAnswerCall with MFC TCPs, the upper five bits of the number_of_rings argument are reserved, and should be set to zero. This means that the mfc0 TCPs can play a maximum of 0x7ff (2047) ring back tones when answering a call.

11.4.2 Inbound Calls: Retrieving Digits One at a Time

An application must set the bit ADI_CC_REPTDIGITS in the parameter ADI.START.callctl.eventmask to retrieve digits one at a time.

For MFC-R2, the digits appears in the following format:

d1 # c1 a1 a2 a3 am # d2 d3 dn # c2

where:

d1dn

DID digits received. n is determined by the ADI.MFC.DIDnumber parameter.

c1

Group I category of the calling party (user category).

a1 am

ANI digits received. m is determined by the ADI.MFC.ANInumber parameter.

c2

Group II category of the calling party (toll category).

#

NMS separator symbol.

Note: The number of DID digits received before the first # separator depends on the parameter ADI.MFC.DIDbeforeANI.

11.4.3 Outbound Calls: Digit Format

MFC-R2 TCPs expect the digit string to be formatted as follows:

# c a1 . am # d1 dn [s]

where:

c

User category of the calling party.

a1 . am

ANI digits (the address of the calling party).

d1 dn

DID digits (the address of the called party).

#

NMS separator symbol.

s or S

Optional indicator that the call is on a satellite circuit. This is used to allow the TCP to respond to requests for information about the nature of the circuit, on a call-by-call basis.

Category and ANIs can be omitted if the connection does not require them to be present. If they are omitted, the digit string should be formatted as follows:

d1 dn

In this case, the TCP use the default user category contained in the parameter ADI.MFC.tonesmiscellaneous.



(Page 1 of 1 in this chapter)


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