class SS7ISUP

SS7 ISUP implementation. More...

Full nameTelEngine::SS7ISUP
Definition#include <libs/ysig/yatesig.h>
InheritsTelEngine::SS7Layer4 [public ], TelEngine::SignallingCallControl [public ]
Inherited bySS7BICC
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Protected Methods

Protected Members


Detailed Description

Implementation of SS7 ISDN User Part

enum { SlsAuto = -1, SlsLatest = -2, SlsCircuit = -3, SlsDefault = -4 }

Special SLS values

 SS7ISUP (const NamedList& params, unsigned char sio = SS7MSU::ISUP|SS7MSU::National)

SS7ISUP

Constructor

Parameters:
paramsCall controller's parameters
sioThe default Service Information Octet

 ~SS7ISUP ()

~SS7ISUP

[virtual]

Destructor

bool  initialize (const NamedList* config)

initialize

[virtual]

Configure and initialize the call controller and user part

Parameters:
configOptional configuration parameters override

Returns: True if ISUP was initialized properly

Reimplemented from SS7Layer4.

const char*  statusName ()

statusName

[const virtual]

Get the controller's status as text

Returns: Controller status name

Reimplemented from SignallingCallControl.

void  attach (SS7Layer3* network)

attach

[virtual]

Attach a SS7 network or router to this service. Detach itself from the old one

Parameters:
networkPointer to network or router to attach

Reimplemented from SignallingCallControl.

unsigned int  cicLen ()

cicLen

[const]

Get the length of the Circuit Identification Code for this user part

Returns: Length of the CIC field in octets

const String&  format ()

format

[const]

Get the default data format

Returns: The default data format

inline bool  ignoreUnknownAddrSignals ()

ignoreUnknownAddrSignals

[const]

Check if the message parser of this controller should ignore unknown digits encoding

Returns: True if unknown digits are ignored

bool  setPointCode (SS7PointCode* pc, bool def)

setPointCode

Append a point code to the list of point codes serviced by this controller if not already there. Set default point code if requested. If the list is empty, the default point code is set to the first point code added

Parameters:
pcThe point code to append
defTrue if this point code is the default for outgoing calls

Returns: False if the point code is invalid for this call controller type. If true is returned, don't reuse the pointer

unsigned int  setPointCode (const NamedList& params)

setPointCode

Append all point codes from a parameter list, use "pointcode" and "defaultpointcode" parameters

Parameters:
paramsList of parameters to take point codes from

Returns: Count of point codes added

SS7PointCode*  hasPointCode (const SS7PointCode& pc)

hasPointCode

Check if the given point code is serviced by this controller

Parameters:
pcThe point code to check

Returns: SS7PointCode pointer or 0 if not found

inline bool  handlesRemotePC (const SS7PointCode& pc)

handlesRemotePC

[const]

Check if this controller should handle a remote point code

Parameters:
pcThe remote point code to check

Returns: True if pc matches the remote or there is no remote set

inline void  setLabel (SS7Label& label, const SS7PointCode& opc, const SS7PointCode& dpc, unsigned char sls = 255)

setLabel

Set a routing label to be used for outgoing messages

Parameters:
labelRouting label to set
opcOriginating point code
dpcDestination point code
slsSignalling Link Selection

inline void  setDebug (bool printMsg, bool extendedDebug)

setDebug

Set debug data of this call controller

Parameters:
printMsgEnable/disable message printing on output
extendedDebugEnable/disable hex data dump if print messages is enabled

SS7MSU*  createMSU (SS7MsgISUP::Type type, unsigned char ssf, const SS7Label& label, unsigned int cic, const NamedList* params = 0)

createMSU

[const virtual]

Create a new MSU populated with type, routing label and space for fixed part

Parameters:
typeType of ISUP message
ssfSubservice Field
labelRouting label for the new MSU
cicCircuit Identification Code
paramsOptional parameter list

Returns: Pointer to the new MSU or NULL if an error occured

SignallingCall*  call (SignallingMessage* msg, String& reason)

call

[virtual]

Create an outgoing call. Send a NewCall event with the given msg parameter This method is thread safe

Parameters:
msgCall parameters
reasonFailure reason if any

Returns: Referenced SignallingCall pointer on success or 0 on failure

Reimplemented from SignallingCallControl.

int  transmitMessage (SS7MsgISUP* msg, const SS7Label& label, bool recvLbl, int sls = SlsDefault)

transmitMessage

Converts an ISUP message to a Message Signal Unit and push it down the protocol stack. The given message is consumed

Parameters:
msgThe message to send
labelThe routing label for the message
recvLblTrue if the given label is from a received message. If true, a new routing label will be created from the received one
slsSignalling Link to use for the new routing label. Ignored if recvLbl is false

Returns: Link the message was successfully queued to, negative for error

void  cleanup (const char* reason = "net-out-of-order")

cleanup

[virtual]

Cleanup calls This method is thread safe

Parameters:
reasonCleanup reason

Reimplemented from SignallingCallControl.

bool  control (NamedList& params)

control

[virtual]

Query or modify ISUP's settings or operational parameters

Parameters:
paramsThe list of parameters to query or change

Returns: True if the control operation was executed

Reimplemented from SignallingComponent.

bool  decodeMessage (NamedList& msg, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const unsigned char* paramPtr, unsigned int paramLen)

decodeMessage

Decode an ISUP message buffer to a list of parameters

Parameters:
msgDestination list of parameters
msgTypeThe message type
pcTypeThe point code type (message version)
paramPtrPointer to the Parameter area (just after the message type)
paramLenLength of the Parameter area

Returns: True if the mesage was succesfully parsed

bool  encodeMessage (DataBlock& buf, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const NamedList& params, unsigned int* cic = 0)

encodeMessage

Encode an ISUP list of parameters to a buffer. The input list may contain a 'message-prefix' parameter to override this controller's prefix

Parameters:
bufDestination buffer
msgTypeThe message type
pcTypeThe point code type (message version)
paramsMessage list of parameters
cicOptional cic to be added before mesage

Returns: True if the mesage was succesfully encoded

bool  processParamCompat (const NamedList& list, unsigned int cic, bool* callReleased = 0)

processParamCompat

Process parameter compatibility lists. Terminate an existing call if a non emtpy release call parameter(s) list is found. Send CNF if non emtpy cnf parameter(s) list is found

Parameters:
listMessage parameter list
cicThe circuit code
callReleasedOptional pointer to boolean value to be set if a call was released

Returns: True if any parameter compatibility was handled

void  destroyed ()

destroyed

[protected virtual]

Remove all links with other layers. Disposes the memory

Reimplemented from SignallingComponent.

void  timerTick (const Time& when)

timerTick

[protected virtual]

Send CGU if not already done. Check timeouts

Parameters:
whenTime to use as computing base for timeouts

Reimplemented from SignallingComponent.

void  notify (SS7Layer3* link, int sls)

notify

[protected virtual]

Process a notification generated by the attached network layer

Parameters:
linkNetwork or linkset that generated the notification
slsSignalling Link that generated the notification, negative if none

Reimplemented from SS7L3User.

SS7MSU*  buildMSU (SS7MsgISUP::Type type, unsigned char sio, const SS7Label& label, unsigned int cic, const NamedList* params)

buildMSU

[protected const]

Create a new MSU populated with type, routing label and space for fixed part

Parameters:
typeType of ISUP message
sioService Information Octet
labelRouting label for the new MSU
cicCircuit Identification Code
paramsParameter list

Returns: Pointer to the new MSU or NULL if an error occured

HandledMSU  receivedMSU (const SS7MSU& msu, const SS7Label& label, SS7Layer3* network, int sls)

receivedMSU

[protected virtual]

Process a MSU received from a Layer 3 component

Parameters:
msuMessage data, starting with Service Indicator Octet
labelRouting label of the received MSU
networkNetwork layer that delivered the MSU
slsSignalling Link the MSU was received from

Returns: Result of MSU processing

Reimplemented from SS7L3User.

bool  processMSU (SS7MsgISUP::Type type, unsigned int cic, const unsigned char* paramPtr, unsigned int paramLen, const SS7Label& label, SS7Layer3* network, int sls)

processMSU

[protected virtual]

Process a MSU received from a Layer 3 component

Parameters:
typeType of ISUP message
cicCircuit Identification Code
paramPtrPointer to the Parameter area
paramLenLength of the Parameter area
labelRouting label of the received MSU
networkNetwork layer that delivered the MSU
slsSignalling Link the MSU was received from

Returns: True if the MSU was processed

void  receivedUPU (SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label& label, int sls)

receivedUPU

[protected virtual]

Notification for receiving User Part Unavailable

Parameters:
typeType of Point Code
nodeNode on which the User Part is unavailable
partUser Part (service) reported unavailable
causeUnavailability cause - Q.704 15.17.5
labelRouting label of the UPU message
slsSignaling link the UPU was received on

Reimplemented from SS7L3User.

SignallingEvent*  processCircuitEvent (SignallingCircuitEvent*& event, SignallingCall* call = 0)

processCircuitEvent

[protected virtual]

Process an event received from a non-reserved circuit

Parameters:
eventThe event, will be consumed and zeroed
callOptional signalling call whose circuit generated the event

Returns: Signalling event pointer or 0

Reimplemented from SignallingCallControl.

bool  startCircuitReset (SignallingCircuit*& cic, const String& timer)

startCircuitReset

[protected]

Initiate circuit reset. The circuit must be already reserved This method is thread safe

Parameters:
cicThe circuit to reset. Its referrence counter will be decreased and the pointer will be zeroed
timerEllapsed timer

Returns: True if the circuit reset was initiated

unsigned int m_cicLen

m_cicLen

[protected]


Generated by: paulc on bussard on Fri Apr 1 18:17:10 2011, using kdoc 2.0a54.