# class ISDNQ921Management | ISDN Layer 2 BRI TEI management or PRI with D-channel(s) backup. More...
Full name | `TelEngine::ISDNQ921Management`
Definition | `#include <libs/ysig/yatesig.h>`
Inherits | TelEngine::ISDNLayer2 [public ], TelEngine::ISDNLayer3 [public ], TelEngine::SignallingDumpable [public ], TelEngine::SignallingReceiver [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- ISDNQ921Management (const NamedList& params, const char* name = 0, bool net = true)
- virtual ~ISDNQ921Management ()
- virtual bool initialize (const NamedList* config)
- virtual void engine (SignallingEngine* eng)
- virtual bool multipleFrame (u_int8_t tei, bool establish, bool force)
- virtual bool sendData (const DataBlock& data, u_int8_t tei, bool ack)
- bool sendFrame (const ISDNFrame* frame, const ISDNQ921* q921 = 0)
- virtual void cleanup ()
- virtual void multipleFrameEstablished (u_int8_t tei, bool confirm, bool timeout, ISDNLayer2* layer2)
- virtual void multipleFrameReleased (u_int8_t tei, bool confirm, bool timeout, ISDNLayer2* layer2)
- virtual void dataLinkState (u_int8_t tei, bool cmd, bool value, ISDNLayer2* layer2)
- virtual void receiveData (const DataBlock& data, u_int8_t tei, ISDNLayer2* layer2)

#### Protected Methods

- virtual void timerTick (const Time& when)
- virtual bool receivedPacket (const DataBlock& packet)
- virtual bool notify (SignallingInterface::Notification event)
- bool processTeiManagement (ISDNFrame* frame)
- bool sendTeiManagement (ISDNFrame::TeiManagement type, u_int16_t ri, u_int8_t ai, u_int8_t tei = 127, bool pf = false)
- void processTeiRequest (u_int16_t ri, u_int8_t ai, bool pf)
- void processTeiRemove (u_int8_t ai)
- void processTeiCheckRequest (u_int8_t ai, bool pf)
- void processTeiCheckResponse (u_int16_t ri, u_int8_t ai)
- void processTeiAssigned (u_int16_t ri, u_int8_t ai)
- void processTeiDenied (u_int16_t ri)
- void processTeiVerify (u_int8_t ai, bool pf)
- void sendTeiReq (u_int8_t tei)
- void sendTeiRemove ()

## Detailed Description

This class is intended to be used as a proxy between an ISDN Layer 3 and multiple Layer 2 objects sharing the same signalling interface. It is used for BRI TEI management or PRI with D-channel backup. It also keeps a list of ISDN Layer 2 object(s) used for the designated purpose

ISDNQ921Management (const NamedList& params, const char* name = 0, bool net = true) | ### ISDNQ921Management

Constructor - initialize this Layer 2 and the component

Parameters:

params | Layer's parameters
name | Optional name of the component
net | True if managing the network side of Q.921

~ISDNQ921Management () | ### ~ISDNQ921Management

[virtual]

Destructor

bool initialize (const NamedList* config) | ### initialize

[virtual]

Configure and initialize Q.921 Management and its children

Parameters:

config | Optional configuration parameters override

Returns: True if Q.921 management was initialized properly

Reimplemented from SignallingComponent.

void engine (SignallingEngine* eng) | ### engine

[virtual]

Set the engine for this management and all Layer 2 children

Parameters:

eng | Pointer to the engine that will manage this mangement

Reimplemented from SignallingComponent.

bool multipleFrame (u_int8_t tei, bool establish, bool force) | ### multipleFrame

[virtual]

Implements Q.921 DL-ESTABLISH and DL-RELEASE request primitives

Parameters:

tei | This layer TEI (-1 to apply it to all targets this object may have attached)
establish | True to establish. False to release
force | True to establish even if we already are established.

Returns: True if the request was accepted

Reimplemented from ISDNLayer2.

bool sendData (const DataBlock& data, u_int8_t tei, bool ack) | ### sendData

[virtual]

Implements Q.921 DL-DATA and DL-UNIT DATA request primitives

Parameters:

data | Data to send
tei | This layer TEI (-1 for broadcast)
ack | True to send an acknowledged frame, false to send an unacknowledged one

Returns: True if the request was accepted

Reimplemented from ISDNLayer2.

bool sendFrame (const ISDNFrame* frame, const ISDNQ921* q921 = 0) | ### sendFrame

Implements Q.921 send frame to the interface

Parameters:

frame | The frame to be sent
q921 | Pointer to the Q.921 that sends the frame, if any

Returns: True if the frame was sent

void cleanup () | ### cleanup

[virtual]

Emergency release. Cleanup all Layer 2 objects attached to this Management

Reimplemented from ISDNLayer2.

void multipleFrameEstablished (u_int8_t tei, bool confirm, bool timeout, ISDNLayer2* layer2) | ### multipleFrameEstablished

[virtual]

Implements Q.921 DL-ESTABLISH indication/confirmation primitive: 'multiple frame acknowledged' mode established

Parameters:

tei | This layer TEI
confirm | True if this is a confirmation of a previous request, false if it is an indication of state change on remote request
timeout | True if the reason is a timeout
layer2 | Pointer to the notifier

Reimplemented from ISDNLayer2.

void multipleFrameReleased (u_int8_t tei, bool confirm, bool timeout, ISDNLayer2* layer2) | ### multipleFrameReleased

[virtual]

Implements Q.921 DL-RELEASE indication/confirmation primitive: 'multiple frame acknowledged' mode released

Parameters:

tei | This layer TEI
confirm | True if this is a confirmation of a previous request, false if it is an indication of state change on remote request
timeout | True if the reason is a timeout.
layer2 | Pointer to the notifier

Reimplemented from ISDNLayer2.

void dataLinkState (u_int8_t tei, bool cmd, bool value, ISDNLayer2* layer2) | ### dataLinkState

[virtual]

Notification from layer 2 of data link set/release command or response Used for stateless layer 2

Parameters:

tei | This layer TEI
cmd | True if received a command, false if received a response
value | The value of the notification If 'cmd' is true (command), the value is true if a request to establish data link was received or false if received a request to release data link If 'cmd' is false (response), the value is the response
layer2 | Pointer to the notifier

Reimplemented from ISDNLayer2.

void receiveData (const DataBlock& data, u_int8_t tei, ISDNLayer2* layer2) | ### receiveData

[virtual]

Implements Q.921 DL-DATA and DL-UNIT DATA indication primitives Receive data from an encapsulated Layer 2 and send it to the attached Layer 3

Parameters:

data | Received data
tei | The TEI as received in the packet
layer2 | Pointer to the sender

Reimplemented from ISDNLayer2.

void timerTick (const Time& when) | ### timerTick

[protected virtual]

Method called periodically to check timeouts This method is thread safe

Parameters:

when | Time to use as computing base for events and timeouts

Reimplemented from SignallingComponent.

bool receivedPacket (const DataBlock& packet) | ### receivedPacket

[protected virtual]

Process a Signalling Packet received by the interface. Parse the data and send all non-UI frames to the appropriate Layer 2. Process UI frames

Returns: True if message was successfully processed

Reimplemented from SignallingReceiver.

bool notify (SignallingInterface::Notification event) | ### notify

[protected virtual]

Process a notification generated by the attached interface

Parameters:

event | Notification event reported by the interface

Returns: True if notification was processed

Reimplemented from SignallingReceiver.

bool processTeiManagement (ISDNFrame* frame) | ### processTeiManagement

[protected]

Process UI frames carrying TEI management messages

Parameters:

frame | The parsed frame

Returns: False if the frame is not a TEI management one, true otherwise

bool sendTeiManagement (ISDNFrame::TeiManagement type, u_int16_t ri, u_int8_t ai, u_int8_t tei = 127, bool pf = false) | ### sendTeiManagement

[protected]

Send a TEI management frame

Parameters:

type | Type of the frame to send
ri | Reference number to send in frame
ai | Action indicator to send in frame
tei | The TEI to send the frame to, default use broadcast
pf | The Poll/Final bit to set in the frame

Returns: True if frame was sent successfully

void processTeiRequest (u_int16_t ri, u_int8_t ai, bool pf) | ### processTeiRequest

[protected]

Process TEI request message and send back to TE: TEI Assigned message if the request succeeded; TEI Denied message with the received reference number if the reference number is already in use; TEI Denied message with the reference number set to 127 if there is no TEI value available.

Parameters:

ri | The reference number
ai | Action indicator
pf | The Poll/Final bit in the incoming frame

void processTeiRemove (u_int8_t ai) | ### processTeiRemove

[protected]

Process Tei remove message removing the tei(s) contained by ai

Parameters:

ai | Contains the TEI value to remove or 127 to remove all TEI values

void processTeiCheckRequest (u_int8_t ai, bool pf) | ### processTeiCheckRequest

[protected]

Process TEI Check Request message and send to the NET a message with the TEI and the asociated reference number

Parameters:

ai | Contains the TEI value to check or 127 to check all TEI values
pf | The Poll/Final bit in the incoming frame

void processTeiCheckResponse (u_int16_t ri, u_int8_t ai) | ### processTeiCheckResponse

[protected]

Process TEI Check Response message and set the check flag to true to know that we have a response for that TEI

Parameters:

ri | The associated reference number to the ai
ai | The TEI value as received in the answer

void processTeiAssigned (u_int16_t ri, u_int8_t ai) | ### processTeiAssigned

[protected]

Process TEI Assigned message

Parameters:

ri | The reference number assigned to the ai
ai | The TEI value assigned

void processTeiDenied (u_int16_t ri) | ### processTeiDenied

[protected]

Process TEI Denied message

Parameters:

ri | The reference number of the denied request

void processTeiVerify (u_int8_t ai, bool pf) | ### processTeiVerify

[protected]

Process TEI verify

Parameters:

ai | The TEI value of the message initiator
pf | The Poll/Final bit in the incoming frame

void sendTeiReq (u_int8_t tei) | ### sendTeiReq

[protected]

Send TEI request message

Parameters:

tei | TEI value to assign

void sendTeiRemove () | ### sendTeiRemove

[protected]

Send a TEI remove frame

Generated by: paulc on bussard on Mon Feb 10 13:15:47 2014, using kdoc 2.0a54.