Yate
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends
SCCPManagement Class Reference

Abstract SS7 SCCP Management. More...

#include <yatesig.h>

Inheritance diagram for SCCPManagement:
SignallingComponent Mutex RefObject DebugEnabler Lockable GenObject SS7AnsiSccpManagement SS7ItuSccpManagement

List of all members.

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 &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)

Static Public Member Functions

static const TokenDictbroadcastType ()
static const char * stateName (SCCPManagement::SccpStates state)

Protected Member Functions

virtual void timerTick (const Time &when)
SS7SCCPsccp ()
u_int32_t getTestTimeout ()
bool managementMessage (SCCP::Type type, NamedList &params)
SccpLocalSubsystemgetLocalSubsystem (unsigned char ssn)
SccpRemotegetRemoteSccp (int pointcode)
virtual bool sendMessage (SCCPManagement::MsgType msgType, const NamedList &params)=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 &params)
virtual void manageSccpRemoteStatus (SccpRemote *rsccp, SS7Route::State newState)
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)
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

Detailed Description

Abstract SS7 SCCP Management.

An interface to a SS7 SCCP Management


Constructor & Destructor Documentation

SCCPManagement ( const NamedList params,
SS7PointCode::Type  type 
)

Constructor

virtual ~SCCPManagement ( ) [virtual]

Destructor


Member Function Documentation

void attach ( SS7SCCP sccp)

Attach a ss7 sccp to this management

Parameters:
sccpThe ss7 sccp to attach
static const TokenDict* broadcastType ( ) [static]

Obtain broadcast type dict table

Returns:
Pointer to broadcast type dict table
u_int32_t getCoordTimeout ( ) [inline, protected]

Ontain the coordinate changed time interval

Returns:
The coordinate time interval in ms
u_int32_t getIgnoreTestsInterval ( ) [inline, protected]

Obtain ignore status tests time interval

Returns:
ignore status tests time interval in ms
SccpLocalSubsystem* getLocalSubsystem ( unsigned char  ssn) [protected]

Obtain a local subsystem

Parameters:
ssnThe local subsystem ssn
Returns:
Pointer to local subsystem if found, 0 otherwise
SccpRemote* getRemoteSccp ( int  pointcode) [protected]

Obtain a remote SCCP

Parameters:
pointcodeThe remote sccp pointcode
Returns:
The remote SCCP with the matching pointcode or 0 if not found
u_int32_t getTestTimeout ( ) [inline, protected]

Obtain the subsystem status test time interval

Returns:
Subsystem status test duration
void handleCoordinateChanged ( unsigned char  ssn,
int  smi,
const NamedList params 
) [protected]

Helper method that handles coordinate request

Parameters:
ssnLocal subsystem that wish to go out of service
smiSubsystem multiplicity indicator
paramsList of parameters
bool handleMessage ( int  msgType,
unsigned char  ssn,
unsigned char  smi,
NamedList params 
) [protected]

Process a sccp management message

Parameters:
msgTypeThe sccp management message type
ssnThe affected subsystem
smiThe subsystem multiplicity indicator
paramsThe message params
Returns:
True if the message was handled
void handleSog ( unsigned char  ssn,
int  pointcode 
) [protected]

Handle a subsystem out of service grant message

Parameters:
ssnRemote subsystem ssn
pointcodeRemote 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

Parameters:
subsystemThe subsystem who's status has changed
allowedTrue if the subsystem status is Allowed false for Prohibited
remoteThe remote sccp pointcode where the subsystem is located
smiSubsystem 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

Parameters:
typeThe broadcast message type
pointcodeThe affected pointcode. -1 if it should not be included
spsThe signalling point status. -1 if it should not be included
rssThe remote sccp status. -1 if it should not be included
rlThe restriction level. -1 if it should not be included
ssnThe affected ssn. -1 if it should not be included
ssThe 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

Parameters:
typeThe broadcast type
paramsList of parameters
Returns:
True if at least one user has processed the message
virtual void manageSccpRemoteStatus ( SccpRemote rsccp,
SS7Route::State  newState 
) [inline, protected, virtual]

Process remote sccp state

Parameters:
rsccpThe remote sccp witch state has changed
newStateThe new state of the remote sccp

Reimplemented in SS7ItuSccpManagement, and SS7AnsiSccpManagement.

void mtpEndRestart ( ) [protected]

Notification from sccp that mtp has finished restarting

virtual void notify ( SCCP::Type  type,
NamedList params 
) [virtual]

Notification from sccp about local subsystems status

Parameters:
typeThe type of notification
paramsThe 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

Parameters:
msgThe message type to broadcast
ssnLocal affected ssn
smiLocal subsystem multiplicity indicator
virtual void pointcodeStatus ( SS7Layer3 link,
bool  operational 
) [virtual]

Process a notification from MTP about a pointcode status

Parameters:
linkThe affected link
operationalTrue if the layer3 is operational
virtual void printMessage ( String dest,
MsgType  type,
const NamedList params 
) [virtual]

Print a sccp management message

Parameters:
destThe destination string
typeThe sccp management message type
paramsList of sccp management message parameters
bool printMessagess ( ) [inline, protected]

Helper method used to check if we should print sccp management messages

Returns:
True if we should print messages
virtual bool processMessage ( SS7MsgSCCP message) [virtual]

Process a management message received from sccp

Parameters:
messageThe message to process
Returns:
True if the message was processed successfully

Reimplemented in SS7ItuSccpManagement, and SS7AnsiSccpManagement.

virtual void routeFailure ( SS7MsgSCCP msg) [virtual]

Method called by SCCP to inform management that no route was found for the message

Parameters:
msgThe SCCP message that failed to be routed
virtual void routeStatus ( SS7PointCode::Type  type,
const SS7PointCode node,
SS7Route::State  state 
) [virtual]

Process a notification from router about a route state change

Parameters:
typeThe Point Code type
nodeThe remote pointcode
stateThe route state
void routeStatus ( String dest,
bool  extended = false 
)

Helper method used to obtain information about the messages that failed to be routed

Parameters:
destThe destination string
extendedTrue to print the GTT failures
virtual void sccpUnavailable ( const SS7PointCode pointcode,
unsigned char  cause 
) [virtual]

Notification from layer3 about a remote sccp unavailability

Parameters:
pointcodeThe poincode of the unavailable sccp
causeUnavailability cause
virtual bool sendMessage ( SCCPManagement::MsgType  msgType,
const NamedList params 
) [protected, pure virtual]

Encode a sccp management message and send it to remote address

Parameters:
msgTypeThe SCCP management message type
paramsList of message parameters
Returns:
True if the message was successfully send

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

Parameters:
remoteThe remote sccp
subThe remote subsystem
virtual void startSst ( SccpRemote remoteSccp,
SccpSubsystem rSubsystem 
) [protected, virtual]

Start a new subsystem status test

Parameters:
remoteSccpThe remote sccp
rSubsystemThe remote subsystem
static const char* stateName ( SCCPManagement::SccpStates  state) [inline, static]

Obtain a sccp management state name

Parameters:
stateThe sccp management enum state
Returns:
The state name if found or 0

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

Parameters:
remoteSccpThe remote sccp
rSubsystemThe remote subsystem. Can be 0 to stop all tests for the remote sccp
lessStop 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

Parameters:
msgThe message
labelThe 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

Parameters:
destThe string where the statistics will be stored
extendedTrue to print an extended statistic ( the number of messages received for unknown subsystem)
virtual void timerTick ( const Time when) [protected, virtual]

Method called periodically by engine to check for timeouts

Parameters:
whenTime to use as computing base for events and timeouts Reimplemented from SignallingComponent

Reimplemented from SignallingComponent.

virtual void updateTables ( SccpRemote rsccp,
SccpSubsystem ssn = 0 
) [virtual]

Helper method used to inform Global Title Translator to update translation tables

Parameters:
rsccpThe remote SCCP witch status has been changed
ssnThe remote SCCP subsystem witch status has been changed

The documentation for this class was generated from the following file: