Yate
|
SS7 ISUP implementation. More...
#include <yatesig.h>
Public Member Functions | |
SS7ISUP (const NamedList ¶ms) | |
virtual | ~SS7ISUP () |
virtual bool | initialize (const NamedList *config) |
unsigned int | cicLen () const |
const String & | format () const |
bool | setPointCode (SS7PointCode *pc, bool def) |
unsigned int | setPointCode (const NamedList ¶ms) |
SS7PointCode * | hasPointCode (const SS7PointCode &pc) |
void | setLabel (SS7Label &label, const SS7PointCode &opc, const SS7PointCode &dpc, unsigned char sls=255) |
void | setDebug (bool printMsg, bool extendedDebug) |
virtual SS7MSU * | createMSU (SS7MsgISUP::Type type, unsigned char ssf, const SS7Label &label, unsigned int cic, const NamedList *params=0) const |
virtual SignallingCall * | call (SignallingMessage *msg, String &reason) |
int | transmitMessage (SS7MsgISUP *msg, const SS7Label &label, bool recvLbl, int sls=-1) |
virtual void | cleanup (const char *reason="offline") |
bool | decodeMessage (NamedList &msg, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const unsigned char *paramPtr, unsigned int paramLen) |
bool | encodeMessage (DataBlock &buf, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const NamedList ¶ms, unsigned int *cic=0) |
Protected Member Functions | |
virtual void | destroyed () |
virtual void | timerTick (const Time &when) |
virtual void | notify (SS7Layer3 *link, int sls) |
SS7MSU * | buildMSU (SS7MsgISUP::Type type, unsigned char sio, const SS7Label &label, unsigned int cic, const NamedList *params) const |
virtual bool | receivedMSU (const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls) |
virtual bool | processMSU (SS7MsgISUP::Type type, unsigned int cic, const unsigned char *paramPtr, unsigned int paramLen, const SS7Label &label, SS7Layer3 *network, int sls) |
virtual SignallingEvent * | processCircuitEvent (SignallingCircuitEvent *&event, SignallingCall *call=0) |
Protected Attributes | |
unsigned int | m_cicLen |
Friends | |
class | SS7ISUPCall |
SS7 ISUP implementation.
Implementation of SS7 ISDN User Part
virtual ~SS7ISUP | ( | ) | [virtual] |
Destructor
SS7MSU* buildMSU | ( | SS7MsgISUP::Type | type, |
unsigned char | sio, | ||
const SS7Label & | label, | ||
unsigned int | cic, | ||
const NamedList * | params | ||
) | const [protected] |
Create a new MSU populated with type, routing label and space for fixed part
type | Type of ISUP message |
sio | Service Information Octet |
label | Routing label for the new MSU |
cic | Circuit Identification Code |
params | Parameter list |
virtual SignallingCall* call | ( | SignallingMessage * | msg, |
String & | reason | ||
) | [virtual] |
Create an outgoing call. Send a NewCall event with the given msg parameter This method is thread safe
msg | Call parameters |
reason | Failure reason if any |
Reimplemented from SignallingCallControl.
unsigned int cicLen | ( | ) | const [inline] |
Get the length of the Circuit Identification Code for this user part
virtual void cleanup | ( | const char * | reason = "offline" | ) | [virtual] |
Cleanup calls This method is thread safe
reason | Cleanup reason |
Reimplemented from SignallingCallControl.
virtual SS7MSU* createMSU | ( | SS7MsgISUP::Type | type, |
unsigned char | ssf, | ||
const SS7Label & | label, | ||
unsigned int | cic, | ||
const NamedList * | params = 0 |
||
) | const [virtual] |
Create a new MSU populated with type, routing label and space for fixed part
type | Type of ISUP message |
ssf | Subservice Field |
label | Routing label for the new MSU |
cic | Circuit Identification Code |
params | Optional parameter list |
Reimplemented in SS7BICC.
bool decodeMessage | ( | NamedList & | msg, |
SS7MsgISUP::Type | msgType, | ||
SS7PointCode::Type | pcType, | ||
const unsigned char * | paramPtr, | ||
unsigned int | paramLen | ||
) |
Decode an ISUP message buffer to a list of parameters
msg | Destination list of parameters |
msgType | The message type |
pcType | The point code type (message version) |
paramPtr | Pointer to the Parameter area (just after the message type) |
paramLen | Length of the Parameter area |
virtual void destroyed | ( | ) | [protected, virtual] |
Remove all links with other layers. Disposes the memory
Reimplemented from SignallingComponent.
bool encodeMessage | ( | DataBlock & | buf, |
SS7MsgISUP::Type | msgType, | ||
SS7PointCode::Type | pcType, | ||
const NamedList & | params, | ||
unsigned int * | cic = 0 |
||
) |
Encode an ISUP list of parameters to a buffer. The input list may contain a 'message-prefix' parameter to override this controller's prefix
buf | Destination buffer |
msgType | The message type |
pcType | The point code type (message version) |
params | Message list of parameters |
cic | Optional cic to be added before mesage |
const String& format | ( | ) | const [inline] |
Get the default data format
SS7PointCode* hasPointCode | ( | const SS7PointCode & | pc | ) |
Check if the given point code is serviced by this controller
pc | The point code to check |
virtual bool initialize | ( | const NamedList * | config | ) | [virtual] |
Configure and initialize the call controller and user part
config | Optional configuration parameters override |
Reimplemented from SignallingComponent.
virtual void notify | ( | SS7Layer3 * | link, |
int | sls | ||
) | [protected, virtual] |
Process a notification generated by the attached network layer
link | Network or linkset that generated the notification |
sls | Signalling Link that generated the notification, negative if none |
Reimplemented from SS7L3User.
virtual SignallingEvent* processCircuitEvent | ( | SignallingCircuitEvent *& | event, |
SignallingCall * | call = 0 |
||
) | [protected, virtual] |
Process an event received from a non-reserved circuit
event | The event, will be consumed and zeroed |
call | Optional signalling call whose circuit generated the event |
Reimplemented from SignallingCallControl.
virtual bool processMSU | ( | SS7MsgISUP::Type | type, |
unsigned int | cic, | ||
const unsigned char * | paramPtr, | ||
unsigned int | paramLen, | ||
const SS7Label & | label, | ||
SS7Layer3 * | network, | ||
int | sls | ||
) | [protected, virtual] |
Process a MSU received from a Layer 3 component
type | Type of ISUP message |
cic | Circuit Identification Code |
paramPtr | Pointer to the Parameter area |
paramLen | Length of the Parameter area |
label | Routing label of the received MSU |
network | Network layer that delivered the MSU |
sls | Signalling Link the MSU was received from |
virtual bool receivedMSU | ( | const SS7MSU & | msu, |
const SS7Label & | label, | ||
SS7Layer3 * | network, | ||
int | sls | ||
) | [protected, virtual] |
Process a MSU received from a Layer 3 component
msu | Message data, starting with Service Indicator Octet |
label | Routing label of the received MSU |
network | Network layer that delivered the MSU |
sls | Signalling Link the MSU was received from |
Implements SS7L3User.
Reimplemented in SS7BICC.
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 setLabel | ( | SS7Label & | label, |
const SS7PointCode & | opc, | ||
const SS7PointCode & | dpc, | ||
unsigned char | sls = 255 |
||
) | [inline] |
Set a routing label to be used for outgoing messages
label | Routing label to set |
opc | Originating point code |
dpc | Destination point code |
sls | Signalling Link Selection |
References SS7Label::assign().
unsigned int setPointCode | ( | const NamedList & | params | ) |
Append all point codes from a parameter list, use "pointcode" and "defaultpointcode" parameters
params | List of parameters to take point codes from |
bool setPointCode | ( | SS7PointCode * | pc, |
bool | def | ||
) |
Append a point code to the list of point codes serviced by this controller if not already there. Set default point code if requested. If the list is empty, the default point code is set to the first point code added
pc | The point code to append |
def | True if this point code is the default for outgoing calls |
virtual void timerTick | ( | const Time & | when | ) | [protected, virtual] |
Send CGU if not already done. Check timeouts
when | Time to use as computing base for timeouts |
Reimplemented from SignallingComponent.
int transmitMessage | ( | SS7MsgISUP * | msg, |
const SS7Label & | label, | ||
bool | recvLbl, | ||
int | sls = -1 |
||
) |
Converts an ISUP message to a Message Signal Unit and push it down the protocol stack. The given message is consumed
msg | The message to send |
label | The routing label for the message |
recvLbl | True if the given label is from a received message. If true, a new routing label will be created from the received one |
sls | Signalling Link to use for the new routing label. Ignored if recvLbl is false |
unsigned int m_cicLen [protected] |
Length of the Circuit Identification Code in octets