Yate
|
Abstract SS7 SCCP Management. More...
#include <yatesig.h>
Public Types | |
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 } |
Public Member Functions | |
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) |
Static Public Member Functions | |
static const TokenDict * | broadcastType () |
static const char * | stateName (SCCPManagement::SccpStates state) |
Protected Member Functions | |
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 () |
Protected Attributes | |
ObjList | m_remoteSccp |
ObjList | m_statusTest |
ObjList | m_localSubsystems |
ObjList | m_concerned |
SS7PointCode::Type | m_pcType |
Friends | |
class | SS7SCCP |
class | SccpLocalSubsystem |
SCCPManagement | ( | const NamedList & | params, |
SS7PointCode::Type | type | ||
) |
Constructor
virtual ~SCCPManagement | ( | ) | [virtual] |
Destructor
Attach a ss7 sccp to this management
sccp | The ss7 sccp to attach |
static const TokenDict* broadcastType | ( | ) | [static] |
Obtain broadcast type dict table
u_int32_t getCoordTimeout | ( | ) | [inline, protected] |
Ontain the coordinate changed time interval
u_int32_t getIgnoreTestsInterval | ( | ) | [inline, protected] |
Obtain ignore status tests time interval
SccpLocalSubsystem* getLocalSubsystem | ( | unsigned char | ssn | ) | [protected] |
Obtain a local subsystem
ssn | The local subsystem ssn |
SccpRemote* getRemoteSccp | ( | int | pointcode | ) | [protected] |
u_int32_t getTestTimeout | ( | ) | [inline, protected] |
Obtain the subsystem status test time interval
void handleCoordinateChanged | ( | unsigned char | ssn, |
int | smi, | ||
const NamedList & | params | ||
) | [protected] |
Helper method that handles coordinate request
ssn | Local subsystem that wish to go out of service |
smi | Subsystem multiplicity indicator |
params | List of parameters |
bool handleMessage | ( | int | msgType, |
unsigned char | ssn, | ||
unsigned char | smi, | ||
NamedList & | params | ||
) | [protected] |
Process a sccp management message
msgType | The sccp management message type |
ssn | The affected subsystem |
smi | The subsystem multiplicity indicator |
params | The message params |
void handleSog | ( | unsigned char | ssn, |
int | pointcode | ||
) | [protected] |
Handle a subsystem out of service grant message
ssn | Remote subsystem ssn |
pointcode | Remote subsystem pointcode Note! Lock management mutex before calling this method |
virtual void handleSubsystemStatus | ( | SccpSubsystem * | subsystem, |
bool | allowed, | ||
SccpRemote * | remote, | ||
int | smi | ||
) | [inline, protected, virtual] |
Process the status of subsystems
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 SS7ItuSccpManagement, and SS7AnsiSccpManagement.
virtual bool initialize | ( | const NamedList * | config | ) | [virtual] |
Initialize this sccp management
Reimplemented from SignallingComponent.
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
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 |
bool managementMessage | ( | SCCP::Type | type, |
NamedList & | params | ||
) | [protected] |
Broadcast a management message to local attached sccp users
type | The broadcast type |
params | List of parameters |
virtual void manageSccpRemoteStatus | ( | SccpRemote * | rsccp, |
SS7Route::State | newState | ||
) | [inline, protected, virtual] |
Process remote sccp state
rsccp | The remote sccp witch state has changed |
newState | The new state of the remote sccp |
Reimplemented in SS7ItuSccpManagement, and SS7AnsiSccpManagement.
void mtpEndRestart | ( | ) | [protected] |
Notification from sccp that mtp has finished restarting
Notification from sccp about local subsystems status
type | The type of notification |
params | The notification parameters |
virtual void notifyConcerned | ( | MsgType | msg, |
unsigned char | ssn, | ||
int | smi | ||
) | [virtual] |
Helper method used to notify the concerned signalling points about a subsystem status
msg | The message type to broadcast |
ssn | Local affected ssn |
smi | Local subsystem multiplicity indicator |
virtual void pointcodeStatus | ( | SS7Layer3 * | link, |
bool | operational | ||
) | [virtual] |
Process a notification from MTP about a pointcode status
link | The affected link |
operational | True if the layer3 is operational |
virtual void printMessage | ( | String & | dest, |
MsgType | type, | ||
const NamedList & | params | ||
) | [virtual] |
Print a sccp management message
dest | The destination string |
type | The sccp management message type |
params | List of sccp management message parameters |
bool printMessagess | ( | ) | [inline, protected] |
Helper method used to check if we should print sccp management messages
virtual bool processMessage | ( | SS7MsgSCCP * | message | ) | [virtual] |
Process a management message received from sccp
message | The message to process |
Reimplemented in SS7ItuSccpManagement, and SS7AnsiSccpManagement.
virtual void routeFailure | ( | SS7MsgSCCP * | msg | ) | [virtual] |
virtual void routeStatus | ( | SS7PointCode::Type | type, |
const SS7PointCode & | node, | ||
SS7Route::State | state | ||
) | [virtual] |
Process a notification from router about a route state change
type | The Point Code type |
node | The remote pointcode |
state | The route state |
void routeStatus | ( | String & | dest, |
bool | extended = false |
||
) |
Helper method used to obtain information about the messages that failed to be routed
dest | The destination string |
extended | True to print the GTT failures |
virtual void sccpUnavailable | ( | const SS7PointCode & | pointcode, |
unsigned char | cause | ||
) | [virtual] |
Notification from layer3 about a remote sccp unavailability
pointcode | The poincode of the unavailable sccp |
cause | Unavailability cause |
virtual bool sendMessage | ( | SCCPManagement::MsgType | msgType, |
const NamedList & | params | ||
) | [protected, pure virtual] |
Encode a sccp management message and send it to remote address
msgType | The SCCP management message type |
params | List of message parameters |
Implemented in SS7ItuSccpManagement, and SS7AnsiSccpManagement.
bool sendSST | ( | SccpRemote * | remote, |
SccpSubsystem * | sub | ||
) | [protected] |
Helper method. Send subsystem status test Note: Management mutex must not be locked. Thread safe
remote | The remote sccp |
sub | The remote subsystem |
virtual void startSst | ( | SccpRemote * | remoteSccp, |
SccpSubsystem * | rSubsystem | ||
) | [protected, virtual] |
Start a new subsystem status test
remoteSccp | The remote sccp |
rSubsystem | The remote subsystem |
static const char* stateName | ( | SCCPManagement::SccpStates | state | ) | [inline, static] |
Obtain a sccp management state name
state | The sccp management enum state |
References TelEngine::lookup().
Referenced by SccpSubsystem::dump().
virtual void stopSst | ( | SccpRemote * | remoteSccp, |
SccpSubsystem * | rSubsystem = 0 , |
||
SccpSubsystem * | less = 0 |
||
) | [protected, virtual] |
Stop subsystem status tests for a remote location
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 |
void stopSSTs | ( | ) | [inline, protected] |
Stop all subsystem status tests
virtual void subsystemFailure | ( | SS7MsgSCCP * | msg, |
const SS7Label & | label | ||
) | [virtual] |
Method called by sccp when a sccp message hasn't been processed by any user
msg | The message |
label | The mtp routing label |
void subsystemsStatus | ( | String & | dest, |
bool | extended = true |
||
) |
Helper method used to obtain a string statistic about the messages received for unknown subsystems
dest | The string where the statistics will be stored |
extended | True to print an extended statistic ( the number of messages received for unknown subsystem) |
Method called periodically by engine to check for timeouts
when | Time to use as computing base for events and timeouts Reimplemented from SignallingComponent |
Reimplemented from SignallingComponent.
virtual void updateTables | ( | SccpRemote * | rsccp, |
SccpSubsystem * | ssn = 0 |
||
) | [virtual] |