|
Yate
|
Abstract ISDN layer 2 (Q.921) message transport. More...
#include <yatesig.h>
Public Types | |
| enum | State { Released , WaitEstablish , Established , WaitRelease } |
Public Member Functions | |
| virtual | ~ISDNLayer2 () |
| ISDNLayer3 * | layer3 () const |
| State | state () const |
| bool | network () const |
| bool | detectType () const |
| u_int8_t | localSapi () const |
| u_int8_t | localTei () const |
| u_int32_t | maxUserData () const |
| bool | teiAssigned () const |
| bool | autoRestart () const |
| unsigned int | upTime () const |
| virtual bool | multipleFrame (u_int8_t tei, bool establish, bool force) |
| virtual bool | sendData (const DataBlock &data, u_int8_t tei, bool ack) |
| virtual void | cleanup ()=0 |
| virtual void | attach (ISDNLayer3 *layer3) |
Public Member Functions inherited from SignallingComponent | |
| virtual | ~SignallingComponent () |
| virtual const String & | toString () const |
| virtual bool | initialize (const NamedList *config) |
| virtual bool | control (NamedList ¶ms) |
| virtual NamedList * | controlCreate (const char *oper=0) |
| virtual bool | controlExecute (NamedList *params) |
| virtual void | engine (SignallingEngine *eng) |
| SignallingEngine * | engine () const |
| int | debugLevel (int level) |
| const String & | componentType () 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 String & | traceId () const |
| NamedCounter * | getObjCounter () const |
| NamedCounter * | setObjCounter (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) |
Static Public Member Functions | |
| static const char * | stateName (State s) |
Static Public Member Functions inherited from SignallingComponent | |
| static bool | resolveConfig (const String &cmpName, NamedList ¶ms, 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 NamedCounter * | getObjCounter (const String &name, bool create=true) |
| static ObjList & | getObjCounters () |
Protected Member Functions | |
| ISDNLayer2 (const NamedList ¶ms, const char *name=0, u_int8_t tei=0) | |
| Mutex & | l2Mutex () |
| void | multipleFrameEstablished (u_int8_t tei, bool confirm, bool timeout) |
| void | multipleFrameReleased (u_int8_t tei, bool confirm, bool timeout) |
| void | dataLinkState (u_int8_t tei, bool cmd, bool value) |
| void | idleTimeout () |
| void | receiveData (const DataBlock &data, u_int8_t tei) |
| void | teiAssigned (bool status) |
| void | changeState (State newState, const char *reason=0) |
| bool | changeType () |
| void | autoRestart (bool restart) |
| void | setRi (u_int16_t ri) |
| ISDNFrame * | parsePacket (const DataBlock &packet) |
Protected Member Functions inherited from SignallingComponent | |
| SignallingComponent (const char *name=0, const NamedList *params=0, const char *type="unknown") | |
| virtual void | destroyed () |
| void | insert (SignallingComponent *component) |
| virtual void | detach () |
| virtual void | timerTick (const Time &when) |
| 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 | ISDNQ921Management |
Abstract ISDN layer 2 (Q.921) message transport.
An interface to a Layer 2 (Q.921) ISDN message transport
| enum State |
Layer states if it has a TEI assigned
|
virtual |
Destructor
|
protected |
Constructor Initialize this interface and the component
| params | Layer's parameters |
| name | Optional name of the component |
| tei | Value of TEI for this layer |
Referenced by ISDNQ921Management::dataLinkState(), ISDNQ921Management::multipleFrameEstablished(), ISDNQ921Management::multipleFrameReleased(), and ISDNQ921Management::receiveData().
|
virtual |
Attach an ISDN Q.931 Layer 3 if the given parameter is different from the one we have Cleanup the object before ataching the new Layer 3 This method is thread safe
| layer3 | Pointer to the Q.931 Layer 3 to attach |
References layer3().
Referenced by ISDNQ921::destroyed(), and ISDNQ921Passive::destroyed().
|
inline |
Check if this interface will automatically re-establish when released
|
inlineprotected |
Set the automatically re-establish when released flag
| restart | The new value of the auto restart flag |
|
protected |
Set the state Descendants are responsable for multiple frame status management
| newState | The new state |
| reason | Reason of state change, NULL if unspecified |
|
protected |
Change the interface type
|
pure virtual |
Emergency release. Descendants must implement this method to cleanup/reset data
Implemented in ISDNIUA, ISDNQ921, ISDNQ921Management, and ISDNQ921Passive.
|
protected |
Notify layer 3 of data link set/release command or response Used for stateless layer 2
| tei | The TEI of this layer |
| 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 |
|
inline |
Check if this interface should change its type
|
protected |
Notify layer 3 of data link idle timeout Used for stateless layer 2
|
inlineprotected |
Retrieve the layer's mutex
|
inline |
Get the ISDN Layer 3 attached to this layer
Referenced by attach().
|
inline |
Get the SAPI (Service Access Point Identifier) of this interface
|
inline |
Get the TEI (Terminal Endpoint Identifier) of this interface
|
inline |
Get the maximum length of user data transported through this layer
|
inlinevirtual |
Implements Q.921 DL-ESTABLISH and DL-RELEASE request primitives Descendants must implement this method to fullfill the request
| tei | This layer TEI (Terminal Endpoint Identifier) |
| establish | True to establish. False to release |
| force | True to establish even if we already are in this mode. This parameter is ignored if establish is false |
Reimplemented in ISDNIUA, ISDNQ921, and ISDNQ921Management.
|
protected |
Implements Q.921 DL-ESTABLISH indication/confirmation primitive of 'multiple frame acknowledged' mode established
| tei | The TEI requested |
| 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. |
|
protected |
Implements Q.921 DL-RELEASE indication/confirmation primitive of 'multiple frame acknowledged' mode released
| tei | The TEI released |
| 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. |
|
inline |
Check if this interface is the network or CPE (user) side of the link
Parse a received packet
| packet | The packet received |
|
protected |
Implements Q.921 DL-DATA and DL-UNIT DATA indication primitives Receive data from remote peer
| data | Received data |
| tei | The TEI for which the data was received |
|
inlinevirtual |
Implements Q.921 DL-DATA and DL-UNIT DATA request primitives Descendants must implement this method to fullfill the request
| data | Data to send |
| tei | This layer TEI |
| ack | True to send an acknowledged frame, false to send an unacknowledged one |
Reimplemented in ISDNIUA, ISDNQ921, and ISDNQ921Management.
|
inlineprotected |
Set the Reference Identifier used in management procedures
| ri | The new reference number |
|
inline |
Get the layer's state
|
inlinestatic |
Get the text associated with a given state
| s | The state to get the text for |
|
inline |
Check if this interface has a TEI assigned
|
protected |
Set TEI assigned status. Print a debug message. If status is false calls cleanup() Descendants are responsable for TEI assigned status management
| status | The new TEI assigned status |
|
inline |
Get the uptime of the interface
References Time::secNow().