Yate
|
ISDN Q.931 implementation on top of Q.921 of call controller monitor. More...
#include <yatesig.h>
Public Member Functions | |
ISDNQ931Monitor (const NamedList ¶ms, const char *name=0) | |
virtual | ~ISDNQ931Monitor () |
virtual bool | initialize (const NamedList *config) |
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 ISDNQ921Passive * | attach (ISDNQ921Passive *q921, bool net) |
virtual SignallingCircuitGroup * | attach (SignallingCircuitGroup *circuits, bool net) |
ISDNQ921Passive * | circuits (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 |
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
ISDNQ931Monitor | ( | const NamedList & | params, |
const char * | name = 0 |
||
) |
Constructor Initialize this object and the component
params | Layer's parameters and parser settings |
name | Name of this component |
virtual ~ISDNQ931Monitor | ( | ) | [virtual] |
Destructor Destroy all calls
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
q921 | Pointer to the monitor to attach |
net | True if this is the network side of the data link, false for user (CPE) side |
virtual SignallingCircuitGroup* attach | ( | SignallingCircuitGroup * | circuits, |
bool | net | ||
) | [virtual] |
Attach a circuit group to this call controller This method is thread safe
circuits | Pointer to the SignallingCircuitGroup to attach |
net | True if this group belongs to the network side of the data link, false for user (CPE) side |
ISDNQ921Passive* circuits | ( | bool | net | ) | const [inline] |
Get a pointer to the NET or CPE circuit group
net | True to get the network side circuits, false for user (CPE) side |
virtual void cleanup | ( | const char * | reason = "offline" | ) | [inline, virtual] |
Terminate all monitors This method is thread safe
reason | Cleanup 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
tei | The TEI of the notification |
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 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
layer2 | Pointer to the notifier |
Reimplemented from ISDNLayer3.
virtual bool initialize | ( | const NamedList * | config | ) | [virtual] |
Configure and initialize the Q.931 monitor and its interfaces
config | Optional configuration parameters override |
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
msg | The 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
data | Received data |
tei | The TEI of the Layer 2 |
layer2 | Pointer to the sender |
Implements ISDNLayer3.
bool releaseCircuit | ( | SignallingCircuit * | circuit | ) | [protected] |
Release a circuit This method is thread safe
circuit | The circuit to release |
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
code | The circuit code to reserve |
netInit | True if the caller is from the network side of the link, false if it's from CPE side |
caller | The destination caller circuit |
called | The destination called circuit |
void setDebug | ( | bool | printMsg, |
bool | extendedDebug | ||
) | [inline] |
Set debug data of this call controller
printMsg | Enable/disable message printing on output |
extendedDebug | Enable/disable hex data dump if print messages is enabled |
void terminateMonitor | ( | ISDNQ931CallMonitor * | mon, |
const char * | reason | ||
) |
Terminate all monitors or only one This method is thread safe
mon | The monitor to terminate, 0 to terminate all |
reason | The termination reason |
virtual void timerTick | ( | const Time & | when | ) | [protected, virtual] |
Method called periodically to check timeouts This method is thread safe
when | Time to use as computing base for events and timeouts |
Reimplemented from SignallingComponent.