|
Yate
|
ISDN Layer 2 BRI TEI management or PRI with D-channel(s) backup. More...
#include <yatesig.h>
Public Member Functions | |
| ISDNQ921Management (const NamedList ¶ms, const char *name=0, bool net=true) | |
| virtual | ~ISDNQ921Management () |
| virtual bool | initialize (const NamedList *config) |
| virtual void | engine (SignallingEngine *eng) |
| virtual bool | multipleFrame (u_int8_t tei, bool establish, bool force) |
| virtual bool | sendData (const DataBlock &data, u_int8_t tei, bool ack) |
| bool | sendFrame (const ISDNFrame *frame, const ISDNQ921 *q921=0) |
| virtual void | cleanup () |
| 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 void | dataLinkState (u_int8_t tei, bool cmd, bool value, ISDNLayer2 *layer2) |
| virtual void | receiveData (const DataBlock &data, u_int8_t tei, ISDNLayer2 *layer2) |
Protected Member Functions | |
| virtual void | timerTick (const Time &when) |
| virtual bool | receivedPacket (const DataBlock &packet) |
| virtual bool | notify (SignallingInterface::Notification event) |
| bool | processTeiManagement (ISDNFrame *frame) |
| bool | sendTeiManagement (ISDNFrame::TeiManagement type, u_int16_t ri, u_int8_t ai, u_int8_t tei=127, bool pf=false) |
| void | processTeiRequest (u_int16_t ri, u_int8_t ai, bool pf) |
| void | processTeiRemove (u_int8_t ai) |
| void | processTeiCheckRequest (u_int8_t ai, bool pf) |
| void | processTeiCheckResponse (u_int16_t ri, u_int8_t ai) |
| void | processTeiAssigned (u_int16_t ri, u_int8_t ai) |
| void | processTeiDenied (u_int16_t ri) |
| void | processTeiVerify (u_int8_t ai, bool pf) |
| void | sendTeiReq (u_int8_t tei) |
| void | sendTeiRemove () |
ISDN Layer 2 BRI TEI management or PRI with D-channel(s) backup.
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 |
||
| ) |
Constructor - initialize this Layer 2 and the component
| params | Layer's parameters |
| name | Optional name of the component |
| net | True if managing the network side of Q.921 |
| virtual ~ISDNQ921Management | ( | ) | [virtual] |
Destructor
| virtual void cleanup | ( | ) | [virtual] |
Emergency release. Cleanup all Layer 2 objects attached to this Management
Implements ISDNLayer2.
| 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 Used for stateless layer 2
| 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 ISDNLayer3.
| virtual void engine | ( | SignallingEngine * | eng | ) | [virtual] |
Set the engine for this management and all Layer 2 children
| eng | Pointer to the engine that will manage this mangement |
Reimplemented from SignallingComponent.
| virtual bool initialize | ( | const NamedList * | config | ) | [virtual] |
Configure and initialize Q.921 Management and its children
| config | Optional configuration parameters override |
Reimplemented from SignallingComponent.
| virtual bool multipleFrame | ( | u_int8_t | tei, |
| bool | establish, | ||
| bool | force | ||
| ) | [virtual] |
Implements Q.921 DL-ESTABLISH and DL-RELEASE request primitives
| 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. |
Reimplemented from ISDNLayer2.
| virtual void multipleFrameEstablished | ( | u_int8_t | tei, |
| bool | confirm, | ||
| bool | timeout, | ||
| ISDNLayer2 * | layer2 | ||
| ) | [virtual] |
Implements Q.921 DL-ESTABLISH indication/confirmation primitive: 'multiple frame acknowledged' mode established
| 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 ISDNLayer3.
| virtual void multipleFrameReleased | ( | u_int8_t | tei, |
| bool | confirm, | ||
| bool | timeout, | ||
| ISDNLayer2 * | layer2 | ||
| ) | [virtual] |
Implements Q.921 DL-RELEASE indication/confirmation primitive: 'multiple frame acknowledged' mode released
| 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 ISDNLayer3.
| virtual bool notify | ( | SignallingInterface::Notification | event | ) | [protected, virtual] |
Process a notification generated by the attached interface
| event | Notification event reported by the interface |
Reimplemented from SignallingReceiver.
| void processTeiAssigned | ( | u_int16_t | ri, |
| u_int8_t | ai | ||
| ) | [protected] |
Process TEI Assigned message
| ri | The reference number assigned to the ai |
| ai | The TEI value assigned |
| void processTeiCheckRequest | ( | u_int8_t | ai, |
| bool | pf | ||
| ) | [protected] |
Process TEI Check Request message and send to the NET a message with the TEI and the asociated reference number
| 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 | ||
| ) | [protected] |
Process TEI Check Response message and set the check flag to true to know that we have a response for that TEI
| ri | The associated reference number to the ai |
| ai | The TEI value as received in the answer |
| void processTeiDenied | ( | u_int16_t | ri | ) | [protected] |
Process TEI Denied message
| ri | The reference number of the denied request |
| bool processTeiManagement | ( | ISDNFrame * | frame | ) | [protected] |
Process UI frames carrying TEI management messages
| frame | The parsed frame |
| void processTeiRemove | ( | u_int8_t | ai | ) | [protected] |
Process Tei remove message removing the tei(s) contained by ai
| ai | Contains the TEI value to remove or 127 to remove all TEI values |
| void processTeiRequest | ( | u_int16_t | ri, |
| u_int8_t | ai, | ||
| bool | pf | ||
| ) | [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.
| ri | The reference number |
| ai | Action indicator |
| pf | The Poll/Final bit in the incoming frame |
| void processTeiVerify | ( | u_int8_t | ai, |
| bool | pf | ||
| ) | [protected] |
Process TEI verify
| ai | The TEI value of the message initiator |
| pf | The Poll/Final bit in the incoming frame |
| virtual void receiveData | ( | const DataBlock & | data, |
| u_int8_t | tei, | ||
| ISDNLayer2 * | layer2 | ||
| ) | [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
| data | Received data |
| tei | The TEI as received in the packet |
| layer2 | Pointer to the sender |
Implements ISDNLayer3.
| virtual bool receivedPacket | ( | const DataBlock & | packet | ) | [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
Implements SignallingReceiver.
Implements Q.921 DL-DATA and DL-UNIT DATA request primitives
| data | Data to send |
| tei | This layer TEI (-1 for broadcast) |
| ack | True to send an acknowledged frame, false to send an unacknowledged one |
Reimplemented from ISDNLayer2.
Implements Q.921 send frame to the interface
| frame | The frame to be sent |
| q921 | Pointer to the Q.921 that sends the frame, if any |
| bool sendTeiManagement | ( | ISDNFrame::TeiManagement | type, |
| u_int16_t | ri, | ||
| u_int8_t | ai, | ||
| u_int8_t | tei = 127, |
||
| bool | pf = false |
||
| ) | [protected] |
Send a TEI management frame
| 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 |
| void sendTeiRemove | ( | ) | [protected] |
Send a TEI remove frame
| void sendTeiReq | ( | u_int8_t | tei | ) | [protected] |
Send TEI request message
| tei | TEI value to assign |
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.
1.7.6.1