|
| ||||||||||||||||||
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 Thu Jul 24 18:41:02 2014, using kdoc 2.0a54. |