Yate
SS7SCCP Class Reference

SS7 SCCP implementation. More...

#include <yatesig.h>

Inheritance diagram for SS7SCCP:
SS7Layer4 SCCP Mutex SS7L3User SignallingComponent Lockable SignallingComponent RefObject DebugEnabler RefObject DebugEnabler GenObject GenObject

Public Types

enum  ReturnCauses {
  NoTranslationAddressNature = 0x00 , NoTranslationSpecificAddress = 0x01 , SubsystemCongestion = 0x02 , SubsystemFailure = 0x03 ,
  UnequippedUser = 0x04 , MtpFailure = 0x05 , NetworkCongestion = 0x06 , Unqualified = 0x07 ,
  ErrorInMessageTransport = 0x08 , ErrorInLocalProcessing = 0x09 , DestinationCanNotPerformReassembly = 0x0a , SccpFailure = 0x0b ,
  HopCounterViolation = 0x0c , SegmentationNotSupported = 0x0d , SegmentationFailure = 0x0e , MessageChangeFailure = 0xf7 ,
  InvalidINSRoutingRequest = 0xf8 , InvalidISNIRoutingRequest = 0xf9 , UnauthorizedMessage = 0xfa , MessageIncompatibility = 0xfb ,
  NotSupportedISNIRouting = 0xfc , RedundantISNIConstrainedRouting = 0xfd , ISNIIdentificationFailed = 0xfe
}
 
enum  Control {
  Status = 0x01 , FullStatus = 0x02 , EnableExtendedMonitoring = 0x03 , DisableExtendedMonitoring = 0x04 ,
  EnablePrintMsg = 0x05 , DisablePrintMsg = 0x06
}
 
- Public Types inherited from SCCP
enum  Type {
  CoordinateRequest = 0 , CoordinateConfirm = 1 , CoordinateIndication = 2 , CoordinateResponse = 3 ,
  StatusIndication = 4 , StatusRequest = 5 , PointCodeStatusIndication = 6 , TraficIndication = 7 ,
  SubsystemStatus = 8
}
 

Public Member Functions

 SS7SCCP (const NamedList &config)
 
 ~SS7SCCP ()
 
virtual bool initialize (const NamedList *config)
 
virtual void attach (SS7Layer3 *network)
 
int transmitMessage (SS7MsgSCCP *msg, bool local=false)
 
virtual bool managementStatus (Type type, NamedList &params)
 
virtual int sendMessage (DataBlock &data, const NamedList &params)
 
virtual HandledMSU receivedMSU (const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
 
virtual void receivedUPU (SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label &label, int sls)
 
virtual bool control (NamedList &params)
 
int segmentMessage (SS7MsgSCCP *origMsg, const SS7Label &label, bool local)
 
const bool ITU () const
 
bool ignoreUnknownAddrSignals () const
 
virtual void notify (SS7Layer3 *link, int sls)
 
virtual void routeStatusChanged (SS7PointCode::Type type, const SS7PointCode &node, SS7Route::State state)
 
unsigned int messagesSend ()
 
unsigned int messagesReceived ()
 
unsigned int errors ()
 
unsigned int translations ()
 
const SS7PointCodegetLocalPointCode () const
 
SS7PointCode::Type getLocalPointCodeType ()
 
int getPackedPointCode ()
 
bool isLayer3Up ()
 
- Public Member Functions inherited from SS7Layer4
SS7Layer3network () const
 
unsigned char sio () const
 
unsigned char sif () const
 
unsigned char ssf () const
 
unsigned char prio () const
 
unsigned char ni () const
 
unsigned char getSIO (const NamedList &params) const
 
- Public Member Functions inherited from SignallingComponent
virtual ~SignallingComponent ()
 
virtual const StringtoString () const
 
virtual NamedListcontrolCreate (const char *oper=0)
 
virtual bool controlExecute (NamedList *params)
 
virtual void engine (SignallingEngine *eng)
 
SignallingEngineengine () const
 
int debugLevel (int level)
 
const StringcomponentType () 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 StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (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)
 
- Public Member Functions inherited from SCCP
 SCCP ()
 
virtual ~SCCP ()
 
virtual void attach (SCCPUser *user)
 
virtual void detach (SCCPUser *user)
 
virtual void attachGTT (GTT *gtt)
 
virtual void updateTables (const NamedList &params)
 
- Public Member Functions inherited from Mutex
 Mutex (bool recursive=false, const char *name=0)
 
 Mutex (const Mutex &original)
 
 ~Mutex ()
 
Mutexoperator= (const Mutex &original)
 
virtual bool lock (long maxwait=-1)
 
virtual bool unlock ()
 
virtual bool locked () const
 
const char * owner () const
 
bool recursive () const
 
- Public Member Functions inherited from Lockable
virtual ~Lockable ()
 
virtual bool check (long maxwait=-1)
 
virtual bool unlockAll ()
 

Protected Member Functions

virtual void destroyed ()
 
bool extendedMonitoring ()
 
virtual void timerTick (const Time &when)
 
SS7MsgSccpReassemble::Return reassembleSegment (SS7MsgSCCP *segment, const SS7Label &label, SS7MsgSCCP *&msg)
 
virtual bool isEndpoint ()
 
int routeLocal (SS7MsgSCCP *msg)
 
- Protected Member Functions inherited from SS7Layer4
 SS7Layer4 (unsigned char sio=SS7MSU::National, const NamedList *params=0)
 
int transmitMSU (const SS7MSU &msu, const SS7Label &label, int sls=-1)
 
- Protected Member Functions inherited from SS7L3User
virtual bool recoveredMSU (const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
 
- Protected Member Functions inherited from SignallingComponent
 SignallingComponent (const char *name=0, const NamedList *params=0, const char *type="unknown")
 
void insert (SignallingComponent *component)
 
virtual void detach ()
 
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)
 
- Protected Member Functions inherited from SCCP
NamedListtranslateGT (const NamedList &params, const String &prefix, const String &nextPrefix)
 
HandledMSU pushMessage (DataBlock &data, NamedList &params, int ssn)
 
HandledMSU notifyMessage (DataBlock &data, NamedList &params, int ssn)
 
bool managementMessage (Type type, NamedList &params)
 
void resolveGTParams (SS7MsgSCCP *msg, const NamedList *gtParams)
 

Friends

class SCCPManagement
 

Additional Inherited Members

- Static Public Member Functions inherited from SS7Layer4
static unsigned char getSIO (const NamedList &params, unsigned char sif, unsigned char prio, unsigned char ni)
 
static unsigned char getSIO (const NamedList &params, unsigned char sif, unsigned char ssf)
 
static unsigned char getSIO (const NamedList &params, unsigned char sio)
 
- Static Public Member Functions inherited from SignallingComponent
static bool resolveConfig (const String &cmpName, NamedList &params, 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 NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Static Public Member Functions inherited from SCCP
static const TokenDictnotifTypes ()
 
- Static Public Member Functions inherited from Mutex
static int count ()
 
static int locks ()
 
static bool efficientTimedLock ()
 
- Static Public Member Functions inherited from Lockable
static void wait (unsigned long maxwait)
 
static unsigned long wait ()
 
static void startUsingNow ()
 
static void enableSafety (bool safe=true)
 
static bool safety ()
 
- Static Protected Member Functions inherited from SS7L3User
static ObjListgetNetRoutes (SS7Layer3 *network, SS7PointCode::Type type)
 
static const ObjListgetNetRoutes (const SS7Layer3 *network, SS7PointCode::Type type)
 
- Protected Attributes inherited from SS7Layer4
unsigned char m_sio
 

Detailed Description

SS7 SCCP implementation.

Implementation of SS7 Signalling Connection Control Part

Constructor & Destructor Documentation

◆ SS7SCCP()

SS7SCCP ( const NamedList & config)

Constructor

◆ ~SS7SCCP()

~SS7SCCP ( )

Destructor

Member Function Documentation

◆ attach()

virtual void attach ( SS7Layer3 * network)
virtual

Attach a SS7 network or router to this service. Detach itself from the old one

Parameters
networkPointer to network or router to attach

Reimplemented from SS7Layer4.

References SS7Layer4::network().

◆ control()

virtual bool control ( NamedList & params)
virtual

Query or modify component's settings or operational parameters

Parameters
paramsThe list of parameters to query or change
Returns
True if the control operation was executed

Reimplemented from SignallingComponent.

◆ destroyed()

virtual void destroyed ( )
protectedvirtual

This method is called to clean up and destroy the object after the reference counter becomes zero

Reimplemented from SS7Layer4.

◆ errors()

unsigned int errors ( )
inline

Obtain the number of errors found by this SCCP instance

Returns
The number of errors found

◆ extendedMonitoring()

bool extendedMonitoring ( )
inlineprotected

Helper method to check if this sccp needs extended monitoring

Returns
True if extended monitoring is needed

◆ getLocalPointCode()

const SS7PointCode * getLocalPointCode ( ) const
inline

Obtain the local SCCP point code

Returns
Pointer to local point code or 0 if no pointcode was configured

◆ getLocalPointCodeType()

SS7PointCode::Type getLocalPointCodeType ( )
inline

Obtain local pointcode type

Returns
Local pointcode type

◆ getPackedPointCode()

int getPackedPointCode ( )
inline

Helper method to obtain the packed pointcode

Returns
Packed pointcode or 0 if local pointcode is not set

◆ ignoreUnknownAddrSignals()

bool ignoreUnknownAddrSignals ( ) const
inline

Check if GT digit parser of should ignore unknown digits encoding

Returns
True if unknown digits are ignored

◆ initialize()

virtual bool initialize ( const NamedList * config)
virtual

Configure and initialize the Signalling connection control part

Parameters
configOptional configuration parameters override
Returns
True if SCCP was initialized properly

Reimplemented from SS7Layer4.

◆ isEndpoint()

virtual bool isEndpoint ( )
inlineprotectedvirtual

Check if this sccp is an endpoint

Returns
True if this sccp is an endpoint

Reimplemented from SCCP.

◆ isLayer3Up()

bool isLayer3Up ( )
inline

Helper method to check if attached layer 3 is up

Returns
True if attached layer3 is up

◆ ITU()

const bool ITU ( ) const
inline

Helper method to know if we use ITU or ANSI

◆ managementStatus()

virtual bool managementStatus ( Type type,
NamedList & params )
virtual

Receive management information from attached users.

Parameters
typeThe type of management message
paramsList of parameters (Affected subsystem [M])
Returns
True if the notification was processed

Reimplemented from SCCP.

◆ messagesReceived()

unsigned int messagesReceived ( )
inline

Obtain the number of messages received by this SCCP instance

Returns
The number of messsages received

◆ messagesSend()

unsigned int messagesSend ( )
inline

Obtain the number of messages send by this SCCP instance

Returns
The number of messages send

◆ notify()

virtual void notify ( SS7Layer3 * link,
int sls )
virtual

Process a notification generated by the attached network layer

Parameters
linkNetwork or linkset that generated the notification
slsSignalling Link that generated the notification, negative if none

Reimplemented from SS7L3User.

◆ reassembleSegment()

SS7MsgSccpReassemble::Return reassembleSegment ( SS7MsgSCCP * segment,
const SS7Label & label,
SS7MsgSCCP *& msg )
protected

Reassemble a message segment

Parameters
segmentThe message segment
labelThe MTP routing label
msgPointer to fill with the SS7MsgSccpReassemble who processed the message
Returns
SS7MsgSccpReassemble::Return enum value

◆ receivedMSU()

virtual HandledMSU receivedMSU ( const SS7MSU & msu,
const SS7Label & label,
SS7Layer3 * network,
int sls )
virtual

Process a MSU received from the Layer 3 component

Parameters
msuMessage data, starting with Service Indicator Octet
labelRouting label of the received MSU
networkNetwork layer that delivered the MSU
slsSignalling Link the MSU was received from
Returns
Result of MSU processing

Implements SS7L3User.

References SS7Layer4::network().

◆ receivedUPU()

virtual void receivedUPU ( SS7PointCode::Type type,
const SS7PointCode node,
SS7MSU::Services part,
unsigned char cause,
const SS7Label & label,
int sls )
virtual

Notification for receiving User Part Unavailable

Parameters
typeType of Point Code
nodeNode on which the User Part is unavailable
partUser Part (service) reported unavailable
causeUnavailability cause - Q.704 15.17.5
labelRouting label of the UPU message
slsSignaling link the UPU was received on

Reimplemented from SS7L3User.

◆ routeLocal()

int routeLocal ( SS7MsgSCCP * msg)
protected

Route a SCCP Message to other SCCP component.

Parameters
msgThe sccp message.
Returns
-1 if the message failed to be routed

◆ routeStatusChanged()

virtual void routeStatusChanged ( SS7PointCode::Type type,
const SS7PointCode & node,
SS7Route::State state )
virtual

Process route status changed notifications

Parameters
typeType of Point Code
nodeDestination node witch communication status has changed
stateThe new route state

Reimplemented from SS7L3User.

◆ segmentMessage()

int segmentMessage ( SS7MsgSCCP * origMsg,
const SS7Label & label,
bool local )

Message changeover procedure for segmentation purpose

Parameters
origMsgThe original message
labelMTP3 routing label
localTrue if the origMsg is local initiated
Returns
Negative value if the message failed to be sent

◆ sendMessage()

virtual int sendMessage ( DataBlock & data,
const NamedList & params )
virtual

Send a message Reimplemented from SCCP

Parameters
dataData to be transported trough SCCP protocol
paramsSCCP parameters

Reimplemented from SCCP.

◆ timerTick()

virtual void timerTick ( const Time & when)
protectedvirtual

Method called periodically to check for timeouts Reimplemented from SignallingComponent

Reimplemented from SignallingComponent.

◆ translations()

unsigned int translations ( )
inline

Obtain the number of GT translations made by this SCCP instance

Returns
The number of translations made

◆ transmitMessage()

int transmitMessage ( SS7MsgSCCP * msg,
bool local = false )

Converts an SCCP message to a Message Signal Unit and push it down the protocol stack. The given message is consumed

Parameters
msgThe message to send
localTrue if the message is local initiated
Returns
Link the message was successfully queued to, negative for error

The documentation for this class was generated from the following file: