|
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] |
1.7.6.1