|
|
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 Mar 8 12:18:15 2010, using kdoc 2.0a54. |