|
|
An interface to a SS7 SCCP Management
enum MsgType { SSA = 0x01, SSP = 0x02, SST = 0x03, SOR = 0x04, SOG = 0x05, SSC = 0x06, SBR = 0xfd, SNR = 0xfe, SRT = 0xff } | MsgType |
enum LocalBroadcast { UserOutOfService, UserInService, PCInaccessible, PCAccessible, SccpRemoteInaccessible, SccpRemoteAccessible, PCCongested, SubsystemStatus } | LocalBroadcast |
enum SccpStates { Allowed = SS7Route::Allowed, Prohibited = SS7Route::Prohibited, Unknown = SS7Route::Unknown, WaitForGrant, IgnoreTests } | SccpStates |
SCCPManagement (const NamedList& params, SS7PointCode::Type type)
| SCCPManagement |
Constructor
~SCCPManagement ()
| ~SCCPManagement |
[virtual]
Destructor
bool initialize (const NamedList* config)
| initialize |
[virtual]
Initialize this sccp management
Reimplemented from SignallingComponent.
bool processMessage (SS7MsgSCCP* message)
| processMessage |
[virtual]
Process a management message received from sccp
Parameters:
message | The message to process |
Returns: True if the message was processed successfully
void attach (SS7SCCP* sccp)
| attach |
Attach a ss7 sccp to this management
Parameters:
sccp | The ss7 sccp to attach |
void pointcodeStatus (SS7Layer3* link, bool operational)
| pointcodeStatus |
[virtual]
Process a notification from MTP about a pointcode status
Parameters:
link | The affected link |
operational | True if the layer3 is operational |
void routeStatus (SS7PointCode::Type type, const SS7PointCode& node, SS7Route::State state)
| routeStatus |
[virtual]
Process a notification from router about a route state change
Parameters:
type | The Point Code type |
node | The remote pointcode |
state | The route state |
void notify (SCCP::Type type, NamedList& params)
| notify |
[virtual]
Notification from sccp about local subsystems status
Parameters:
type | The type of notification |
params | The notification parameters |
void routeFailure (SS7MsgSCCP* msg)
| routeFailure |
[virtual]
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 |
void subsystemFailure (SS7MsgSCCP* msg, const SS7Label& label)
| subsystemFailure |
[virtual]
Method called by sccp when a sccp message hasn't been processed by any user
Parameters:
msg | The message |
label | The mtp routing label |
void sccpUnavailable (const SS7PointCode& pointcode, unsigned char cause)
| sccpUnavailable |
[virtual]
Notification from layer3 about a remote sccp unavailability
Parameters:
pointcode | The poincode of the unavailable sccp |
cause | Unavailability cause |
void subsystemsStatus (String& dest,bool extended = true)
| subsystemsStatus |
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) |
void routeStatus (String& dest,bool extended = false)
| routeStatus |
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 |
void notifyConcerned (MsgType msg, unsigned char ssn, int smi)
| notifyConcerned |
[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 |
const TokenDict* broadcastType ()
| broadcastType |
[static]
Obtain broadcast type dict table
Returns: Pointer to broadcast type dict table
void updateTables (SccpRemote* rsccp, SccpSubsystem* ssn = 0)
| updateTables |
[virtual]
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 |
void printMessage (String& dest, MsgType type, const NamedList& params)
| printMessage |
[virtual]
Print a sccp management message
Parameters:
dest | The destination string |
type | The sccp management message type |
params | List of sccp management message parameters |
const char* stateName (SCCPManagement::SccpStates state)
| stateName |
[static]
Obtain a sccp management state name
Parameters:
state | The sccp management enum state |
Returns: The state name if found or 0
void timerTick (const Time& when)
| timerTick |
[protected virtual]
Method called periodically by engine to check for timeouts
Parameters:
when | Time to use as computing base for events and timeouts Reimplemented from SignallingComponent |
Reimplemented from SignallingComponent.
inline SS7SCCP* sccp ()
| sccp |
[protected]
ObjList m_remoteSccp | m_remoteSccp |
[protected]
ObjList m_statusTest | m_statusTest |
[protected]
ObjList m_localSubsystems | m_localSubsystems |
[protected]
ObjList m_concerned | m_concerned |
[protected]
SS7PointCode::Type m_pcType | m_pcType |
[protected]
inline u_int32_t getTestTimeout ()
| getTestTimeout |
[protected]
Obtain the subsystem status test time interval
Returns: Subsystem status test duration
bool managementMessage (SCCP::Type type, NamedList& params)
| managementMessage |
[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
SccpLocalSubsystem* getLocalSubsystem (unsigned char ssn)
| getLocalSubsystem |
[protected]
Obtain a local subsystem
Parameters:
ssn | The local subsystem ssn |
Returns: Pointer to local subsystem if found, 0 otherwise
SccpRemote* getRemoteSccp (int pointcode)
| getRemoteSccp |
[protected]
Obtain a remote SCCP
Parameters:
pointcode | The remote sccp pointcode |
Returns: The remote SCCP with the matching pointcode or 0 if not found
bool sendMessage (SCCPManagement::MsgType msgType, const NamedList& params)
| sendMessage |
[protected pure 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
void stopSst (SccpRemote* remoteSccp, SccpSubsystem* rSubsystem = 0, SccpSubsystem* less = 0)
| stopSst |
[protected virtual]
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 |
inline void stopSSTs ()
| stopSSTs |
[protected]
Stop all subsystem status tests
void startSst (SccpRemote* remoteSccp, SccpSubsystem* rSubsystem)
| startSst |
[protected virtual]
Start a new subsystem status test
Parameters:
remoteSccp | The remote sccp |
rSubsystem | The remote subsystem |
void mtpEndRestart ()
| mtpEndRestart |
[protected]
Notification from sccp that mtp has finished restarting
void localBroadcast (SCCP::Type type, int pointcode, int sps, int rss = -1,
int rl = -1, int ssn = -1, int ss = -1)
| localBroadcast |
[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 |
bool sendSST (SccpRemote* remote, SccpSubsystem* sub)
| sendSST |
[protected]
Helper method. Send subsystem status test Note: Management mutex must not be locked. Thread safe
Parameters:
remote | The remote sccp |
sub | The remote subsystem |
bool handleMessage (int msgType, unsigned char ssn, unsigned char smi, NamedList& params)
| handleMessage |
[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
void manageSccpRemoteStatus (SccpRemote* rsccp, SS7Route::State newState)
| manageSccpRemoteStatus |
[protected virtual]
Process remote sccp state
Parameters:
rsccp | The remote sccp witch state has changed |
newState | The new state of the remote sccp |
inline bool printMessagess ()
| printMessagess |
[protected]
Helper method used to check if we should print sccp management messages
Returns: True if we should print messages
void handleCoordinateChanged (unsigned char ssn, int smi, const NamedList& params)
| handleCoordinateChanged |
[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 |
void handleSog (unsigned char ssn, int pointcode)
| handleSog |
[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 |
void handleSubsystemStatus (SccpSubsystem* subsystem, bool allowed, SccpRemote* remote, int smi)
| handleSubsystemStatus |
[protected virtual]
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 |
inline u_int32_t getCoordTimeout ()
| getCoordTimeout |
[protected]
Ontain the coordinate changed time interval
Returns: The coordinate time interval in ms
inline u_int32_t getIgnoreTestsInterval ()
| getIgnoreTestsInterval |
[protected]
Obtain ignore status tests time interval
Returns: ignore status tests time interval in ms
Generated by: paulc on bussard on Mon Feb 10 13:15:47 2014, using kdoc 2.0a54. |