Yate
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

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)
 
- Public Member Functions inherited from SignallingCallControl
 SignallingCallControl (const NamedList &params, const char *msgPrefix=0)
 
virtual ~SignallingCallControl ()
 
const Stringlocation () const
 
void setExiting ()
 
bool exiting () const
 
bool verify ()
 
MediaRequired mediaRequired () const
 
const StringmsgPrefix () const
 
SignallingCircuitGroupcircuits () const
 
const ObjListcalls () const
 
SignallingCircuitGroupattach (SignallingCircuitGroup *circuits)
 
bool reserveCircuit (SignallingCircuit *&cic, const char *range=0, int checkLock=-1, const String *list=0, bool mandatory=true, bool reverseRestrict=false)
 
bool releaseCircuit (SignallingCircuit *&cic, bool sync=false)
 
bool releaseCircuit (unsigned int code, bool sync=false)
 
virtual SignallingEventgetEvent (const Time &when)
 
virtual SignallingCallcall (SignallingMessage *msg, String &reason)
 
virtual void buildVerifyEvent (NamedList &params)
 
- Public Member Functions inherited from Mutex
 Mutex (bool recursive=false, const char *name=0)
 
 Mutex (const Mutex &original)
 
 ~Mutex ()
 
Mutexoperator= (const Mutex &original)
 
virtual bool lock (long maxwait=-1)
 
virtual bool unlock ()
 
virtual bool locked () const
 
const char * owner () const
 
bool recursive () const
 
- Public Member Functions inherited from Lockable
virtual ~Lockable ()
 
virtual bool check (long maxwait=-1)
 
virtual bool unlockAll ()
 
- Public Member Functions inherited from ISDNLayer3
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 ISDNLayer2attach (ISDNLayer2 *layer2)
 
- Public Member Functions inherited from SignallingComponent
virtual ~SignallingComponent ()
 
virtual const StringtoString () const
 
virtual bool control (NamedList &params)
 
virtual NamedListcontrolCreate (const char *oper=0)
 
virtual bool controlExecute (NamedList *params)
 
virtual void engine (SignallingEngine *eng)
 
SignallingEngineengine () const
 
int debugLevel (int level)
 
const StringcomponentType () const
 
- Public Member Functions inherited from RefObject
 RefObject ()
 
virtual ~RefObject ()
 
virtual void * getObject (const String &name) const
 
virtual bool alive () const
 
bool ref ()
 
bool deref ()
 
int refcount () const
 
virtual void destruct ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 
- Public Member Functions inherited from DebugEnabler
 DebugEnabler (int level=TelEngine::debugLevel(), bool enabled=true)
 
int debugLevel () const
 
int debugLevel (int level)
 
bool debugEnabled () const
 
void debugEnabled (bool enable)
 
const char * debugName () const
 
bool debugAt (int level) const
 
bool debugChained () const
 
void debugChain (const DebugEnabler *chain=0)
 
void debugCopy (const DebugEnabler *original=0)
 

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)
 
- Protected Member Functions inherited from SignallingCallControl
int strategy () const
 
virtual bool processEvent (SignallingEvent *event)
 
virtual SignallingEventprocessCircuitEvent (SignallingCircuitEvent *&event, SignallingCall *call=0)
 
void clearCalls ()
 
void removeCall (SignallingCall *call, bool del=false)
 
void setVerify (bool restartTimer=false, bool fireNow=false, const Time *time=0)
 
- Protected Member Functions inherited from ISDNLayer3
 ISDNLayer3 (const char *name=0)
 
Mutexl3Mutex ()
 
- Protected Member Functions inherited from SignallingComponent
 SignallingComponent (const char *name=0, const NamedList *params=0, const char *type="unknown")
 
void insert (SignallingComponent *component)
 
virtual void detach ()
 
void setName (const char *name)
 
void setCompType (const char *type)
 
unsigned long tickSleep (unsigned long usec=1000000) const
 
- Protected Member Functions inherited from RefObject
virtual void zeroRefs ()
 
bool resurrect ()
 
- Protected Member Functions inherited from DebugEnabler
void debugName (const char *name)
 

Friends

class ISDNQ931CallMonitor
 

Additional Inherited Members

- Public Types inherited from SignallingCallControl
enum  MediaRequired { MediaNever , MediaAnswered , MediaRinging , MediaAlways }
 
- Static Public Member Functions inherited from Mutex
static int count ()
 
static int locks ()
 
static bool efficientTimedLock ()
 
- Static Public Member Functions inherited from Lockable
static void wait (unsigned long maxwait)
 
static unsigned long wait ()
 
static void startUsingNow ()
 
static void enableSafety (bool safe=true)
 
static bool safety ()
 
- Static Public Member Functions inherited from SignallingComponent
static bool resolveConfig (const String &cmpName, NamedList &params, const NamedList *config)
 
- Static Public Member Functions inherited from RefObject
static bool alive (const RefObject *obj)
 
static bool efficientIncDec ()
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Protected Attributes inherited from SignallingCallControl
ObjList m_calls
 
String m_msgPrefix
 
MediaRequired m_mediaRequired
 
bool m_verifyEvent
 
SignallingTimer m_verifyTimer
 
String m_location
 
- Static Protected Attributes inherited from SignallingCallControl
static const TokenDict s_mediaRequired []
 

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

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

◆ ~ISDNQ931Monitor()

virtual ~ISDNQ931Monitor ( )
virtual

Destructor Destroy all calls

Member Function Documentation

◆ attach() [1/2]

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

Referenced by destroyed().

◆ attach() [2/2]

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

References circuits().

◆ circuits()

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

Referenced by attach().

◆ cleanup()

virtual void cleanup ( const char * reason = "offline")
inlinevirtual

Terminate all monitors This method is thread safe

Parameters
reasonCleanup reason

Reimplemented from SignallingCallControl.

References terminateMonitor().

◆ dataLinkState()

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.

◆ destroyed()

virtual void destroyed ( )
inlineprotectedvirtual

Detach links. Disposes memory

Reimplemented from SignallingComponent.

References attach(), SignallingCallControl::attach(), and RefObject::destroyed().

◆ idleTimeout()

virtual void idleTimeout ( ISDNLayer2 * layer2)
virtual

Notification from layer 2 of data link idle timeout

Parameters
layer2Pointer to the notifier

Reimplemented from ISDNLayer3.

◆ initialize()

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.

◆ processMsgRestart()

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

◆ receiveData()

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.

◆ releaseCircuit()

bool releaseCircuit ( SignallingCircuit * circuit)
protected

Release a circuit This method is thread safe

Parameters
circuitThe circuit to release
Returns
True on success

◆ reserveCircuit()

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

◆ setDebug()

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

◆ statusName()

virtual const char * statusName ( ) const
virtual

Get the controller's status as text

Returns
Controller status name

Implements SignallingCallControl.

◆ terminateMonitor()

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

Referenced by cleanup().

◆ timerTick()

virtual void timerTick ( const Time & when)
protectedvirtual

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: