Yate
Public Member Functions | Protected Member Functions | Friends
ISDNQ931Monitor Class Reference

ISDN Q.931 implementation on top of Q.921 of call controller monitor. More...

#include <yatesig.h>

Inheritance diagram for ISDNQ931Monitor:
SignallingCallControl ISDNLayer3 Mutex SignallingComponent Lockable RefObject DebugEnabler GenObject

List of all members.

Public Member Functions

 ISDNQ931Monitor (const NamedList &params, const char *name=0)
virtual ~ISDNQ931Monitor ()
virtual bool initialize (const NamedList *config)
virtual const char * statusName () const
virtual void dataLinkState (u_int8_t tei, bool cmd, bool value, ISDNLayer2 *layer2)
virtual void idleTimeout (ISDNLayer2 *layer2)
virtual void receiveData (const DataBlock &data, u_int8_t tei, ISDNLayer2 *layer2)
virtual ISDNQ921Passiveattach (ISDNQ921Passive *q921, bool net)
virtual SignallingCircuitGroupattach (SignallingCircuitGroup *circuits, bool net)
ISDNQ921Passivecircuits (bool net) const
void setDebug (bool printMsg, bool extendedDebug)
virtual void cleanup (const char *reason="offline")
void terminateMonitor (ISDNQ931CallMonitor *mon, const char *reason)

Protected Member Functions

virtual void destroyed ()
virtual void timerTick (const Time &when)
bool reserveCircuit (unsigned int code, bool netInit, SignallingCircuit **caller, SignallingCircuit **called)
bool releaseCircuit (SignallingCircuit *circuit)
void processMsgRestart (ISDNQ931Message *msg)

Friends

class ISDNQ931CallMonitor

Detailed Description

ISDN Q.931 implementation on top of Q.921 of call controller monitor.

Q.931 ISDN Layer 3 implementation on top of a Layer 2. Manage Q.931 monitors


Constructor & Destructor Documentation

ISDNQ931Monitor ( const NamedList params,
const char *  name = 0 
)

Constructor Initialize this object and the component

Parameters:
paramsLayer's parameters and parser settings
nameName of this component
virtual ~ISDNQ931Monitor ( ) [virtual]

Destructor Destroy all calls


Member Function Documentation

virtual ISDNQ921Passive* attach ( ISDNQ921Passive q921,
bool  net 
) [virtual]

Attach ISDN Q.921 pasive transport that monitors one side of the link This method is thread safe

Parameters:
q921Pointer to the monitor to attach
netTrue if this is the network side of the data link, false for user (CPE) side
Returns:
Pointer to detached monitor or NULL
virtual SignallingCircuitGroup* attach ( SignallingCircuitGroup circuits,
bool  net 
) [virtual]

Attach a circuit group to this call controller This method is thread safe

Parameters:
circuitsPointer to the SignallingCircuitGroup to attach
netTrue if this group belongs to the network side of the data link, false for user (CPE) side
Returns:
Pointer to the old group that was detached, NULL if none or no change
ISDNQ921Passive* circuits ( bool  net) const [inline]

Get a pointer to the NET or CPE circuit group

Parameters:
netTrue to get the network side circuits, false for user (CPE) side
Returns:
Pointer to the circuit group requested, NULL if none attached
virtual void cleanup ( const char *  reason = "offline") [inline, virtual]

Terminate all monitors This method is thread safe

Parameters:
reasonCleanup reason

Reimplemented from SignallingCallControl.

virtual void dataLinkState ( u_int8_t  tei,
bool  cmd,
bool  value,
ISDNLayer2 layer2 
) [virtual]

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

Parameters:
teiThe TEI of the notification
cmdTrue if received a command, false if received a response
valueThe 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
layer2Pointer to the notifier

Reimplemented from ISDNLayer3.

virtual void destroyed ( ) [inline, protected, virtual]

Detach links. Disposes memory

Reimplemented from SignallingComponent.

References SignallingCallControl::attach(), SignallingComponent::destroyed(), and TelEngine::destruct().

virtual void idleTimeout ( ISDNLayer2 layer2) [virtual]

Notification from layer 2 of data link idle timeout

Parameters:
layer2Pointer to the notifier

Reimplemented from ISDNLayer3.

virtual bool initialize ( const NamedList config) [virtual]

Configure and initialize the Q.931 monitor and its interfaces

Parameters:
configOptional configuration parameters override
Returns:
True if Q.931 monitor and both interfaces were initialized properly

Reimplemented from SignallingComponent.

void processMsgRestart ( ISDNQ931Message msg) [protected]

Process a restart or restart acknoledge message Terminate the monitor having the circuit given in restart message

Parameters:
msgThe received message
virtual void receiveData ( const DataBlock data,
u_int8_t  tei,
ISDNLayer2 layer2 
) [virtual]

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

Parameters:
dataReceived data
teiThe TEI of the Layer 2
layer2Pointer to the sender

Implements ISDNLayer3.

bool releaseCircuit ( SignallingCircuit circuit) [protected]

Release a circuit This method is thread safe

Parameters:
circuitThe circuit to release
Returns:
True on success
bool reserveCircuit ( unsigned int  code,
bool  netInit,
SignallingCircuit **  caller,
SignallingCircuit **  called 
) [protected]

Reserve the same circuit code from both circuit groups This is an atomic operation: if one circuit fails to be reserved, both of them will fail Release both circuits on failure This method is thread safe

Parameters:
codeThe circuit code to reserve
netInitTrue if the caller is from the network side of the link, false if it's from CPE side
callerThe destination caller circuit
calledThe destination called circuit
Returns:
True on success
void setDebug ( bool  printMsg,
bool  extendedDebug 
) [inline]

Set debug data of this call controller

Parameters:
printMsgEnable/disable message printing on output
extendedDebugEnable/disable hex data dump if print messages is enabled
virtual const char* statusName ( ) const [virtual]

Get the controller's status as text

Returns:
Controller status name

Implements SignallingCallControl.

void terminateMonitor ( ISDNQ931CallMonitor mon,
const char *  reason 
)

Terminate all monitors or only one This method is thread safe

Parameters:
monThe monitor to terminate, 0 to terminate all
reasonThe termination reason
virtual void timerTick ( const Time when) [protected, virtual]

Method called periodically to check timeouts This method is thread safe

Parameters:
whenTime to use as computing base for events and timeouts

Reimplemented from SignallingComponent.


The documentation for this class was generated from the following file: