(Page 1 of 1 in this chapter) Version


Chapter 16

Pulsed E and M Protocol


16.1 Introduction
16.2 Capability Mask
16.3 Signaling Overview
16.3.1 Multi-Frequency Compelled Scheme
16.4 Parameters
16.4.1 Editable Parameters
16.4.2 Non-editable Parameters
16.5 Special TCP Behavior
16.5.1 Inbound Calls: Retrieving Digits All at Once
16.5.2 Inbound Calls: Recieving Digits One at a Time
16.5.3 Billing Pulses

16.1 Introduction

This chapter describes the Pulsed E and M signaling protocol and TCP parameters.

This chapter provides the following information:

The protocol known as Pulsed E and M is defined by national specifications in a few countries. This protocol exploits MFC-R2 compelled register signaling (as defined by the CCITT in Recommendations Q.441, Q.442) while using only one bit for line signaling. This is so for compatibility with older analog equipment.

16.2 Capability Mask

With the NCC service, an application can call nccQueryCapability to determine the capabilities of a protocol. nccQueryCapability returns a capabilitymask.

For information about the capabilities supported for AG CAS protocols with NCC call control, refer to Appendix B.

16.3 Signaling Overview

The Pulsed E and M protocol uses one bit in each direction for line signaling. The bit is pulsed, i.e. a signal is defined by the bit being flipped from its idle value, and being flipped back after a certain time. Two types of pulses are defined, long and short. They carry different meanings in the context of the current state of a call.

Different countries use different bits to implement line signaling, with different idle states.

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

Outbound

Direction

Inbound

Idle

Idle code

Idle code

Seizure

Short pulse

Idle code

Seizure Acknowledged

Idle code

Short pulse (usually not necessary)

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.

Ringing

Idle code

Idle code

Answer - conversation state

Idle code

Short pulse

If the inbound side rejects the call instead, the outbound side clears forward, by sending a long pulse. The inbound side acknowledges with another long pulse, and the line is back in the Idle state.

Clear forward

Long pulse

Idle code

Idle

Idle code

Long pulse

During conversation the outbound protocol can receive billing pulses, to signal that a unit of cost has been billed to the call. A billing pulse is always a short pulse.

Answer - conversation state

Idle code

Idle code

Billing pulses

Idle code

Short pulse

Answer - conversation state

Idle code

Idle code

Depending on which of the sides hangs up the call first, we have a clear back signal, or a clear forward signal.

If outbound sends a clear forward signal, inbound always acknowledges with a release guard signal.

If inbound sends a clear back, outbound sends a clear forward. Depending on national specifications, inbound can still be required to acknowledge with a release guard. Idle follows.

Inbound hangs up first: Clear back

Idle code

Long pulse

Clear forward

Long pulse

Idle code

Release Guard (in some countries)

Idle code

Long pulse

Idle

Idle code

Idle code

Outbound hangs up first: Clear forward

Long pulse

Idle code

Release guard

Idle code

Long pulse

Idle

Idle code

Idle code

16.3.1 Multi-Frequency Compelled Scheme

The Pulsed E and M protocol uses the same Multi-Frequency Compelled scheme as the MFC-R2 protocol to perform register signaling.

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 acknowledges the previous forward tone and requests 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 is repeated.

Different kinds of information are transferred from the outbound to the inbound exchange in this way. The Pulsed E and M protocol supports:

Natural MicroSystem's Pulsed E and M protocol implementation gives developers control over all of these features.

16.4 Parameters

The Pulsed E and M TCP is programmed for operation within different countries and networks by a number of TCP-specific parameters. These are stored within the parameter category NCC.X.ADI.EAM.

Parameters in this category fall into two groups:

16.4.1 Editable Parameters

The following table describes NCC.X.ADI.EAM parameters (within the parameter category NCC.X.ADI.EAM) that you may modify. Also listed are the equivalent ADI.EAM parameters, to assist with migration from ADI to NCC.
NCC Field Name

ADI Field Name

Type/Unit

Default

Description

DIDnumber

DIDnumber

number

7

Inbound: Number of DID digits to expect.

ANInumber

ANInumber

number

8

Inbound: Number of ANI digits to expect.

DIDBeforeANI

DIDBeforeANI

number

1

Inbound: Number of DID digits to receive before asking for category.

nobusyonReject

optionflags bit 0

mask

0x0

Determines if the TCP plays busy when rejecting a call. If not, the switch does it instead.

1 do not play

0 play (default)

trunkdirection

optionflags (bits 1 and 2)

mask

0x0

Determine trunk direction:

0 bidirectional

1 Inbound only (no calls can be placed on it)

2 Outbound only (no calls can be received
on it)

cleardowntone

optionflags (bit 3)

mask

0x1

Determines if a cleardown tone (busy tone) is necessary when the inbound side of the TCP hangs up a call first:

0 No cleardown tone is played.

1 Play cleardown tone.

norejtoneUserAudio

optionflags (bit 4)

mask

0x0

Use this parameter if you need to play a message while rejecting a call. If set to 1, 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.

askrepeat

optionflags (bit 15)

mask

0x0

timewaitdial

timewaitdial

ms

500

Outbound: Inactive time between the end of an outbound call and the next outbound call. Needed to synchronize the parties in those cases when a release guard signal is not in the protocol.

16.4.2 Non-editable Parameters

The following NCC.X.ADI.EAM parameters instead are country- or network-specific, and cannot be modified. Also listed are the equivalent ADI.EAM parameters, to assist with migration from ADI to NCC.
Caution:

Most of the parameters that follow are signaling-specific: changing their value will invalidate any approval certificate for the used board, and may cause the board to malfunction. These parameters are described here for reference purposes only.

NCC Field Name

ADI Field Name

Type/Unit

Example

Description

The following parameters specify the signaling timers

Compelled timers

compelledT1

compelledtimers (lowest 5 bits)

ms

1500

T1: forward tones max on-time.

compelledT2

compelledtimers (middle 5 bits)

ms

2700

T2: forward tones max off-time.

compelledT3

compelledtimers (highest 5 bits)

ms

1500

T3: inbound compelled cycle timer.

Pulse Timers: specify the duration and tolerance of short and long signaling pulses (In 1/100's of second). The pulses will be generated with the nominal time value, and detected within nominal value ± tolerance.

shortpulsetime

shortpulsetimers (low byte)

ms

150

Determines the nominal duration of short signaling pulses.

maxshortpulsetime

shortpulsetimers (high byte)

ms

150

Determines the tolerance of short signaling pulses.

longpulsetime

longpulsetimers (low byte)

ms

600

Determines the nominal duration of long signaling pulses.

maxlongpulsetime

longpulsetimers (high byte)

mask

300

Determines the tolerance of long signaling pulses.

seizureacktime

seizureacktime

ms

0

Outbound: Time to wait for seizure acknowledge after seizure, before clearing forward. The seizure acknowledgment signal is defined only in the case of particular network variations, such as satellite connections. A value of 0 instructs the TCP not to expect a seizure acknowledge signal when dialing out.

Miscellaneous Timers

waitforanswertime

answer_hangupack (low byte)

count

90

Time to wait for inbound to answer the call, after all digits have been delivered, before clearing forward (in seconds).

waitforreleasetime

answer_hangupack (high byte)

count

90

Time to wait for a release guard signal after clearing forward, before starting an alarm recovery sequence (in seconds).

alarmtimeout

alarmtimeout

counter

300

Outbound: Time in seconds to keep performing the alarm recovery sequence, before setting the alarm bit. The alarm recovery sequence is as follows: the TCP seizes the line with a short pulse, then clears forward with a long pulse, and waits for a release guard signal from inbound. If the release guard signal is not received, the sequence is repeated periodically.

alarminterpulse

alarminterpulse

ms

300

Outbound: Time between short and long pulse in the alarm recovery sequence.

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 inone tone. Each tone uses 4 bits (one hexade) of the 16 bit word. Hexades are listed from least to most significant inside each parameter.

· Backward Group A tones. The TCP uses these tones to send requests to the calling party during the compelled sequence.

tnGAsendnextDID

tonesgroupA (lowest hexade)

mask

0x1

Send next DID (A-1).

tnGAsendCAT

tonesgroupA (second hexade)

mask

0x5

Send Group I category (A-5).

tnGAsendnextANI

tonesgroupA (third hexade)

mask

0x5

Send next ANI (A-5).

tnGAswitchtoGB

tonesgroupA (highest hexade)

mask

0x3

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

· Some backward Group B tones. The TCP uses these tones to send the final indication of the compelled sequence to the calling party.

tnGBcongestion

tonesgroupB (lowest hexade)

mask

0x4

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

tnGBunallocnumber

tonesgroupB (second hexade)

mask

0x5

Indicate unallocated number (B-5).

tnGBlinebusy

tonesgroupB (third hexade)

mask

0x3

Indicate busy (B-3).

tnGBlineoutoforder

tonesgroupB (highest hexade)

mask

0x8

Indicate line out of order (B-8).

· Forward tones that indicate the end or the non-availability of a certain type of information.

tnDIDeoi

tonesendofinfo (lowest hexade)

mask

0xF

End of DID digits. (I-15) Note that in some countries this tone doesn't exist. In this case the parameter is 0.

tnCATcompulsory

tonesendofinfo (middle hexade)

mask

0xC

Caller's category. In some countries the category must be available to the caller, so the parameter will be 0.

tnANIeoi

tonesendofinfo (highest hexade)

mask

0x8

End of ANI digits (I-15) - caller id available.

· Backward tones indicating acceptance of the call.

tnanswerGBtoll

tonesanswer (lowest hexade)

mask

0x6

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

tnanswerGBfree

tonesanswer (second hexade)

mask

0x7

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

tnanswerGA

tonesanswer (third hexade)

mask

0x6

Call accepted in Group A (A-6).

tnaltGB

tonesanswer (highest hexade)

mask

0x0

Alternative tone for call accepted in Group B (not in CCITT specifications, but necessary in some countries, such as CZH).

· Request or indication tones used in different contexts by the TCP.

tnoutGIIcategory

tonesmiscellaneous (lowest hexade)

mask

0x1

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

tnGIcategory

tonesmiscellaneous (second hexade)

mask

0x1

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

tnGIANInotavailable

tonesmiscellaneous (third hexade)

mask

0xC

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

tnGIIfreecategory

tonesmiscellaneous (highest hexade)

mask

0x0

Free category - II-3 (maintenance equipment)

· Request or indication tones used in different contexts by the TCP.

tnA2RepeatLastMinus7DID

tonesrepeatrequest (lowest hexade)

mask

0x2

Repeat digit n-1 (A-2), where n is the DID digit that the outbound side last played.

tnA2RepeatLastMinus2DID

tonesrepeatrequest (second hexade)

mask

0x7

Repeat digit n-2 (A-7).

tnA2RepeatLastMinus3DID

tonesrepeatrequest (third hexade)

mask

0x8

Repeat digit n-3 (A-8).

tnA2RepeatAllDID

tonesrepeatrequest (highest hexade)

mask

0x02

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

· Backward tones that the inbound plays when it is collecting ANIs (the specifications of some countries identify a Group C in this case).

tnSendNextDIDfromANI

tonesgroupC (lowest hexade)

mask

0x1

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 (tnGAsendnextDID), but it can be different in some countries, such as Mexico.

tnRepeatLastDID

tonesgroupC (second hexade)

mask

0x0

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

Miscellaneous Parameters

compelledtoneslevel

compelledtoneslevel

IDU

330

R2 tones amplitude (forward and backward)

idlecode

signalingflags (bits 0-3)

mask

0xB

Idle code (ABCD - 1011)

pulsecode

signalingflags (bits 4-5)

mask

0xF

Line code during pulse (AB - 11)

alarmcode

signalingflags (bits 6-7)

mask

0x3

Line code during alarm (AB - 00)

(if same as idle code, no alarms are handled)

doalarms

signalingflags (0x100)

mask

0x1

· Determines whether outbound signals alarms.

0 = No

1 = Yes

releaseguard

signalingflags (0x200)

mask

0x1

· Determines whether release guard is needed.

0 = No

1 = Yes

clearback

signalingflags (0x400)

mask

0x1

· Determines whether clear back is needed after clear forward.

0 = No

1 = Yes

twoclearforward

signalingflags (0x800)

mask

0x1

· Determines whether the protocol sends more than one Clear Forward before setting alarm status.

0 = No

1 = Yes

satelliteconnection

signalingflags (0x1000)

mask

0x0

· Determines if seizure acknowledgment is needed.

0 = No

1 = Yes

nodigitbehavior

signalingflags (0x2000)

mask

0x1

· Specifies no digit behavior.

0 = pulse congestion

1 = go to Group II

Digit Masks

In the following mask parameters, 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. For example, for the validDIDmask parameter below, the digits `B', `C', `D' and `E' are invalid DID digits.

validDIDmask

validDIDmask

mask

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

validANImask

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

validcategorymask

mask

0x97FE

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

noANIfollowmask

noANIfollowmask

mask

0x9000

Specifies the values of ANIs, implying that no ANIs follow. The mask is the following:

FEDC|BA98|7654|321-
1001|0000|0000|0000

categorynoANImask

categorynoANImask

mask

0x0

Specifies the category tones that imply that no ANIs follow (a possibility for international calls). The mask is:

FEDC|BA98|7654|321-

0000|0000|0000|0000

clearbackdelay

clearbackdelay

ms

1000

If not equal to zero (0), specifies time to wait before "reject collect calls" clearback pulse. This might be needed for special switches in certain countries. Set to 0 to disable.

reanswerdelay

reanswerdelay

ms

2000

Specifies time after "reject collect calls" clearback pulse and before reanswer. Disabled if NCC.X.ADI.EAM.clearbackdelay is set to 0.

The following parameters are served for NMS internal use:

16.5 Special TCP Behavior

The following section describes operations that are specific to the Pulsed E and M protocol within the framework of Natural Call Control.

16.5.1 Inbound Calls: Retrieving Digits All at Once

For EAM, after NCCEVN_INCOMING_CALL is received, the following fields contain the received digits in the NCC_CALL_STATUS structure:

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.

For EAM, after NCCEVN_INCOMING_CALL is received, the following fields contain the received digits in the NCC_CAS_EXT_CALL_STATUS structure:
Field

Description

usercategory

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

ANIpresentation

The ANIs may not be available because the application is using protocols where call path, or ANI presentation are 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 entries in the TCP parameter file affect the way pulsed E and M TCPs accept and process digits.

Note: When you call nccAnswerCall with EAM TCPs, the upper five bits of the number_of_rings argument are reserved and should be set to zero. This means that EAM TCPs support a maximum of 0x7ff (2047) rings.
EAM Parameter

Description

NCC.X.ADI.EAM.DIDnumber

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

NCC.X.ADI.EAM.ANInumber

This parameter 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. However, the TCP always tries to collect the user category of the calling party and present it to the application.

NCC.X.ADI.EAM.DIDBeforeANI

This parameter determines the number of DID digits the TCP should receive before signaling the calling party to send ANI digits. Default = 1.

Refer to Chapter 4 for instructions about loading parameter files.

16.5.2 Inbound Calls: Recieving Digits One at a Time

For Pulsed E and M, the digits appear in the following format:

d1 # c1 a1am # d2 d3dn # c2

where:

d1dn

DID digits received. n is determined by the NCC.X.ADI.EAM.DIDnumber parameter.

c1

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

a1 am

ANI digits received. m is determined by the NCC.X.ADI.EAM.ANInumber parameter.

c2

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

#

NMS separator symbol.

Note: The number of DID digits received before the # separator depends on the NCC.X.ADI.EAM.DIDbeforeANI parameter.

16.5.3 Billing Pulses

If the network provides this service, an outbound call receives billing pulses during the Connected state. These are brief variations in the state of the signaling bits, that signal that a unit of cost has been billed to the call. The actual price of a unit of cost changes from network to network, as does the frequency with which billing pulses are received.

An application placing outbound calls can set the bit NCC_REPORT_BILLING in the NCC.START.eventmask parameter to enable the reception of billing pulse events. These are presented as NCCEVN_BILLING_INDICATION events by CT Access. The application can then count the events to calculate the cost of the call.



(Page 1 of 1 in this chapter) Version


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