Abstract SS7 SCCP Management.
More...
#include <yatesig.h>
|
| enum | MsgType {
SSA = 0x01
, SSP = 0x02
, SST = 0x03
, SOR = 0x04
,
SOG = 0x05
, SSC = 0x06
, SBR = 0xfd
, SNR = 0xfe
,
SRT = 0xff
} |
| |
| enum | LocalBroadcast {
UserOutOfService
, UserInService
, PCInaccessible
, PCAccessible
,
SccpRemoteInaccessible
, SccpRemoteAccessible
, PCCongested
, SubsystemStatus
} |
| |
| enum | SccpStates {
Allowed = SS7Route::Allowed
, Prohibited = SS7Route::Prohibited
, Unknown = SS7Route::Unknown
, WaitForGrant
,
IgnoreTests
} |
| |
|
| | SCCPManagement (const NamedList ¶ms, SS7PointCode::Type type) |
| |
| virtual | ~SCCPManagement () |
| |
| virtual bool | initialize (const NamedList *config) |
| |
| virtual bool | processMessage (SS7MsgSCCP *message) |
| |
| void | attach (SS7SCCP *sccp) |
| |
| virtual void | pointcodeStatus (SS7Layer3 *link, bool operational) |
| |
| virtual void | routeStatus (SS7PointCode::Type type, const SS7PointCode &node, SS7Route::State state) |
| |
| virtual void | notify (SCCP::Type type, NamedList ¶ms) |
| |
| virtual void | routeFailure (SS7MsgSCCP *msg) |
| |
| virtual void | subsystemFailure (SS7MsgSCCP *msg, const SS7Label &label) |
| |
| virtual void | sccpUnavailable (const SS7PointCode &pointcode, unsigned char cause) |
| |
| void | subsystemsStatus (String &dest, bool extended=true) |
| |
| void | routeStatus (String &dest, bool extended=false) |
| |
| virtual void | notifyConcerned (MsgType msg, unsigned char ssn, int smi) |
| |
| virtual void | updateTables (SccpRemote *rsccp, SccpSubsystem *ssn=0) |
| |
| virtual void | printMessage (String &dest, MsgType type, const NamedList ¶ms) |
| |
| virtual | ~SignallingComponent () |
| |
| virtual const String & | toString () const |
| |
| virtual bool | control (NamedList ¶ms) |
| |
| virtual NamedList * | controlCreate (const char *oper=0) |
| |
| virtual bool | controlExecute (NamedList *params) |
| |
| virtual void | engine (SignallingEngine *eng) |
| |
| SignallingEngine * | engine () const |
| |
| int | debugLevel (int level) |
| |
| const String & | componentType () const |
| |
| | RefObject () |
| |
| virtual | ~RefObject () |
| |
| virtual void * | getObject (const String &name) const |
| |
| virtual bool | alive () const |
| |
| bool | ref () |
| |
| bool | deref () |
| |
| int | refcount () const |
| |
| virtual void | destruct () |
| |
| | GenObject () |
| |
| virtual | ~GenObject () |
| |
| virtual const String & | traceId () const |
| |
| NamedCounter * | getObjCounter () const |
| |
| NamedCounter * | setObjCounter (NamedCounter *counter) |
| |
| | 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) |
| |
| | Mutex (bool recursive=false, const char *name=0) |
| |
| | Mutex (const Mutex &original) |
| |
| | ~Mutex () |
| |
| Mutex & | operator= (const Mutex &original) |
| |
| virtual bool | lock (long maxwait=-1) |
| |
| virtual bool | unlock () |
| |
| virtual bool | locked () const |
| |
| const char * | owner () const |
| |
| bool | recursive () const |
| |
| virtual | ~Lockable () |
| |
| virtual bool | check (long maxwait=-1) |
| |
| virtual bool | unlockAll () |
| |
|
| virtual void | timerTick (const Time &when) |
| |
|
SS7SCCP * | sccp () |
| |
| u_int32_t | getTestTimeout () |
| |
| bool | managementMessage (SCCP::Type type, NamedList ¶ms) |
| |
| SccpLocalSubsystem * | getLocalSubsystem (unsigned char ssn) |
| |
| SccpRemote * | getRemoteSccp (int pointcode) |
| |
| virtual bool | sendMessage (SCCPManagement::MsgType msgType, const NamedList ¶ms)=0 |
| |
| virtual void | stopSst (SccpRemote *remoteSccp, SccpSubsystem *rSubsystem=0, SccpSubsystem *less=0) |
| |
| void | stopSSTs () |
| |
| virtual void | startSst (SccpRemote *remoteSccp, SccpSubsystem *rSubsystem) |
| |
| void | mtpEndRestart () |
| |
| void | localBroadcast (SCCP::Type type, int pointcode, int sps, int rss=-1, int rl=-1, int ssn=-1, int ss=-1) |
| |
| bool | sendSST (SccpRemote *remote, SccpSubsystem *sub) |
| |
| bool | handleMessage (int msgType, unsigned char ssn, unsigned char smi, NamedList ¶ms) |
| |
| virtual void | manageSccpRemoteStatus (SccpRemote *rsccp, SS7Route::State newState) |
| |
| bool | printMessagess () |
| |
| void | handleCoordinateChanged (unsigned char ssn, int smi, const NamedList ¶ms) |
| |
| void | handleSog (unsigned char ssn, int pointcode) |
| |
| virtual void | handleSubsystemStatus (SccpSubsystem *subsystem, bool allowed, SccpRemote *remote, int smi) |
| |
| u_int32_t | getCoordTimeout () |
| |
| u_int32_t | getIgnoreTestsInterval () |
| |
| | SignallingComponent (const char *name=0, const NamedList *params=0, const char *type="unknown") |
| |
| virtual void | destroyed () |
| |
| 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 |
| |
| virtual void | zeroRefs () |
| |
| bool | resurrect () |
| |
| void | debugName (const char *name) |
| |
|
|
class | SS7SCCP |
| |
|
class | SccpLocalSubsystem |
| |
Abstract SS7 SCCP Management.
An interface to a SS7 SCCP Management
◆ SCCPManagement()
◆ ~SCCPManagement()
◆ attach()
Attach a ss7 sccp to this management
- Parameters
-
| sccp | The ss7 sccp to attach |
◆ broadcastType()
Obtain broadcast type dict table
- Returns
- Pointer to broadcast type dict table
◆ getCoordTimeout()
| u_int32_t getCoordTimeout |
( |
| ) |
|
|
inlineprotected |
Ontain the coordinate changed time interval
- Returns
- The coordinate time interval in ms
◆ getIgnoreTestsInterval()
| u_int32_t getIgnoreTestsInterval |
( |
| ) |
|
|
inlineprotected |
Obtain ignore status tests time interval
- Returns
- ignore status tests time interval in ms
◆ getLocalSubsystem()
Obtain a local subsystem
- Parameters
-
| ssn | The local subsystem ssn |
- Returns
- Pointer to local subsystem if found, 0 otherwise
◆ getRemoteSccp()
Obtain a remote SCCP
- Parameters
-
| pointcode | The remote sccp pointcode |
- Returns
- The remote SCCP with the matching pointcode or 0 if not found
◆ getTestTimeout()
| u_int32_t getTestTimeout |
( |
| ) |
|
|
inlineprotected |
Obtain the subsystem status test time interval
- Returns
- Subsystem status test duration
◆ handleCoordinateChanged()
| void handleCoordinateChanged |
( |
unsigned char |
ssn, |
|
|
int |
smi, |
|
|
const NamedList & |
params |
|
) |
| |
|
protected |
Helper method that handles coordinate request
- Parameters
-
| ssn | Local subsystem that wish to go out of service |
| smi | Subsystem multiplicity indicator |
| params | List of parameters |
◆ handleMessage()
| bool handleMessage |
( |
int |
msgType, |
|
|
unsigned char |
ssn, |
|
|
unsigned char |
smi, |
|
|
NamedList & |
params |
|
) |
| |
|
protected |
Process a sccp management message
- Parameters
-
| msgType | The sccp management message type |
| ssn | The affected subsystem |
| smi | The subsystem multiplicity indicator |
| params | The message params |
- Returns
- True if the message was handled
◆ handleSog()
| void handleSog |
( |
unsigned char |
ssn, |
|
|
int |
pointcode |
|
) |
| |
|
protected |
Handle a subsystem out of service grant message
- Parameters
-
| ssn | Remote subsystem ssn |
| pointcode | Remote subsystem pointcode Note! Lock management mutex before calling this method |
◆ handleSubsystemStatus()
Process the status of subsystems
- Parameters
-
| subsystem | The subsystem who's status has changed |
| allowed | True if the subsystem status is Allowed false for Prohibited |
| remote | The remote sccp pointcode where the subsystem is located |
| smi | Subsystem Multiplicity Indicator |
Reimplemented in SS7AnsiSccpManagement, and SS7ItuSccpManagement.
◆ initialize()
| virtual bool initialize |
( |
const NamedList * |
config | ) |
|
|
virtual |
◆ localBroadcast()
| void localBroadcast |
( |
SCCP::Type |
type, |
|
|
int |
pointcode, |
|
|
int |
sps, |
|
|
int |
rss = -1, |
|
|
int |
rl = -1, |
|
|
int |
ssn = -1, |
|
|
int |
ss = -1 |
|
) |
| |
|
protected |
Send a local sccp broadcast
- Parameters
-
| type | The broadcast message type |
| pointcode | The affected pointcode. -1 if it should not be included |
| sps | The signalling point status. -1 if it should not be included |
| rss | The remote sccp status. -1 if it should not be included |
| rl | The restriction level. -1 if it should not be included |
| ssn | The affected ssn. -1 if it should not be included |
| ss | The subsystem status. -1 if it should not be included |
◆ managementMessage()
| bool managementMessage |
( |
SCCP::Type |
type, |
|
|
NamedList & |
params |
|
) |
| |
|
protected |
Broadcast a management message to local attached sccp users
- Parameters
-
| type | The broadcast type |
| params | List of parameters |
- Returns
- True if at least one user has processed the message
◆ manageSccpRemoteStatus()
◆ mtpEndRestart()
Notification from sccp that mtp has finished restarting
◆ notify()
| virtual void notify |
( |
SCCP::Type |
type, |
|
|
NamedList & |
params |
|
) |
| |
|
virtual |
Notification from sccp about local subsystems status
- Parameters
-
| type | The type of notification |
| params | The notification parameters |
◆ notifyConcerned()
| virtual void notifyConcerned |
( |
MsgType |
msg, |
|
|
unsigned char |
ssn, |
|
|
int |
smi |
|
) |
| |
|
virtual |
Helper method used to notify the concerned signalling points about a subsystem status
- Parameters
-
| msg | The message type to broadcast |
| ssn | Local affected ssn |
| smi | Local subsystem multiplicity indicator |
◆ pointcodeStatus()
| virtual void pointcodeStatus |
( |
SS7Layer3 * |
link, |
|
|
bool |
operational |
|
) |
| |
|
virtual |
Process a notification from MTP about a pointcode status
- Parameters
-
| link | The affected link |
| operational | True if the layer3 is operational |
◆ printMessage()
| virtual void printMessage |
( |
String & |
dest, |
|
|
MsgType |
type, |
|
|
const NamedList & |
params |
|
) |
| |
|
virtual |
Print a sccp management message
- Parameters
-
| dest | The destination string |
| type | The sccp management message type |
| params | List of sccp management message parameters |
◆ printMessagess()
Helper method used to check if we should print sccp management messages
- Returns
- True if we should print messages
◆ processMessage()
| virtual bool processMessage |
( |
SS7MsgSCCP * |
message | ) |
|
|
virtual |
Process a management message received from sccp
- Parameters
-
| message | The message to process |
- Returns
- True if the message was processed successfully
Reimplemented in SS7AnsiSccpManagement, and SS7ItuSccpManagement.
◆ routeFailure()
Method called by SCCP to inform management that no route was found for the message
- Parameters
-
| msg | The SCCP message that failed to be routed |
◆ routeStatus() [1/2]
Process a notification from router about a route state change
- Parameters
-
| type | The Point Code type |
| node | The remote pointcode |
| state | The route state |
◆ routeStatus() [2/2]
| void routeStatus |
( |
String & |
dest, |
|
|
bool |
extended = false |
|
) |
| |
Helper method used to obtain information about the messages that failed to be routed
- Parameters
-
| dest | The destination string |
| extended | True to print the GTT failures |
◆ sccpUnavailable()
| virtual void sccpUnavailable |
( |
const SS7PointCode & |
pointcode, |
|
|
unsigned char |
cause |
|
) |
| |
|
virtual |
Notification from layer3 about a remote sccp unavailability
- Parameters
-
| pointcode | The poincode of the unavailable sccp |
| cause | Unavailability cause |
◆ sendMessage()
| virtual bool sendMessage |
( |
SCCPManagement::MsgType |
msgType, |
|
|
const NamedList & |
params |
|
) |
| |
|
protectedpure virtual |
Encode a sccp management message and send it to remote address
- Parameters
-
| msgType | The SCCP management message type |
| params | List of message parameters |
- Returns
- True if the message was successfully send
Implemented in SS7ItuSccpManagement, and SS7AnsiSccpManagement.
◆ sendSST()
Helper method. Send subsystem status test Note: Management mutex must not be locked. Thread safe
- Parameters
-
| remote | The remote sccp |
| sub | The remote subsystem |
◆ startSst()
Start a new subsystem status test
- Parameters
-
| remoteSccp | The remote sccp |
| rSubsystem | The remote subsystem |
◆ stateName()
| static const char * stateName |
( |
SCCPManagement::SccpStates |
state | ) |
|
|
inlinestatic |
Obtain a sccp management state name
- Parameters
-
| state | The sccp management enum state |
- Returns
- The state name if found or 0
Referenced by SccpSubsystem::dump().
◆ stopSst()
Stop subsystem status tests for a remote location
- Parameters
-
| remoteSccp | The remote sccp |
| rSubsystem | The remote subsystem. Can be 0 to stop all tests for the remote sccp |
| less | Stop all sst except this |
◆ stopSSTs()
◆ subsystemFailure()
Method called by sccp when a sccp message hasn't been processed by any user
- Parameters
-
| msg | The message |
| label | The mtp routing label |
◆ subsystemsStatus()
| void subsystemsStatus |
( |
String & |
dest, |
|
|
bool |
extended = true |
|
) |
| |
Helper method used to obtain a string statistic about the messages received for unknown subsystems
- Parameters
-
| dest | The string where the statistics will be stored |
| extended | True to print an extended statistic ( the number of messages received for unknown subsystem) |
◆ timerTick()
| virtual void timerTick |
( |
const Time & |
when | ) |
|
|
protectedvirtual |
Method called periodically by engine to check for timeouts
- Parameters
-
Reimplemented from SignallingComponent.
◆ updateTables()
Helper method used to inform Global Title Translator to update translation tables
- Parameters
-
| rsccp | The remote SCCP witch status has been changed |
| ssn | The remote SCCP subsystem witch status has been changed |
The documentation for this class was generated from the following file: