# class SCCPManagement | Abstract SS7 SCCP Management. More...
Contains pure virtuals
Full name | `TelEngine::SCCPManagement`
Definition | `#include <libs/ysig/yatesig.h>`
Inherits | TelEngine::Mutex [public ], TelEngine::SignallingComponent [public ]
Inherited by | SS7AnsiSccpManagement, SS7ItuSccpManagement
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### 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 Methods

- SCCPManagement (const NamedList& params, 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& params)
- 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& params)

#### Public Static Methods

- static const TokenDict* broadcastType ()
- static const char* stateName (SCCPManagement::SccpStates state)

#### Protected Methods

- virtual void timerTick (const Time& when)
- inline SS7SCCP* sccp ()
- inline u_int32_t getTestTimeout ()
- bool managementMessage (SCCP::Type type, NamedList& params)
- SccpLocalSubsystem* getLocalSubsystem (unsigned char ssn)
- SccpRemote* getRemoteSccp (int pointcode)
- virtual bool sendMessage (SCCPManagement::MsgType msgType, const NamedList& params)
- virtual void stopSst (SccpRemote* remoteSccp, SccpSubsystem* rSubsystem = 0, SccpSubsystem* less = 0)
- inline 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& params)
- virtual void manageSccpRemoteStatus (SccpRemote* rsccp, SS7Route::State newState)
- inline bool printMessagess ()
- void handleCoordinateChanged (unsigned char ssn, int smi, const NamedList& params)
- void handleSog (unsigned char ssn, int pointcode)
- virtual void handleSubsystemStatus (SccpSubsystem* subsystem, bool allowed, SccpRemote* remote, int smi)
- inline u_int32_t getCoordTimeout ()
- inline u_int32_t getIgnoreTestsInterval ()

#### Protected Members

- ObjList m_remoteSccp
- ObjList m_statusTest
- ObjList m_localSubsystems
- ObjList m_concerned
- SS7PointCode::Type m_pcType

## Detailed Description

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.