# class SS7ISUP | SS7 ISUP implementation. More...
Full name | `TelEngine::SS7ISUP`
Definition | `#include <libs/ysig/yatesig.h>`
Inherits | TelEngine::SS7Layer4 [public ], TelEngine::SignallingCallControl [public ]
Inherited by | SS7BICC
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Types

- enum { SlsAuto = -1, SlsLatest = -2, SlsCircuit = -3, SlsDefault = -4 }
- enum ChargeProcess { Confusion, Ignore, Raw, Parsed }

#### Public Methods

- SS7ISUP (const NamedList& params, unsigned char sio = SS7MSU::ISUP|SS7MSU::National)
- virtual ~SS7ISUP ()
- virtual bool initialize (const NamedList* config)
- virtual const char* statusName () const
- virtual void attach (SS7Layer3* network)
- unsigned int cicLen () const
- const String& format () const
- inline bool ignoreUnknownAddrSignals () const
- bool setPointCode (SS7PointCode* pc, bool def)
- unsigned int setPointCode (const NamedList& params)
- SS7PointCode* hasPointCode (const SS7PointCode& pc)
- inline bool handlesRemotePC (const SS7PointCode& pc) const
- inline void setLabel (SS7Label& label, const SS7PointCode& opc, const SS7PointCode& dpc, unsigned char sls = 255)
- inline void setDebug (bool printMsg, bool extendedDebug)
- virtual SS7MSU* createMSU (SS7MsgISUP::Type type, unsigned char ssf, const SS7Label& label, unsigned int cic, const NamedList* params = 0) const
- virtual SignallingCall* call (SignallingMessage* msg, String& reason)
- int transmitMessage (SS7MsgISUP* msg, const SS7Label& label, bool recvLbl, int sls = SlsDefault)
- virtual void cleanup (const char* reason = "net-out-of-order")
- virtual bool control (NamedList& params)
- bool decodeMessage (NamedList& msg, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const unsigned char* paramPtr, unsigned int paramLen)
- bool encodeMessage (DataBlock& buf, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const NamedList& params, unsigned int* cic = 0)
- bool processParamCompat (const NamedList& list, unsigned int cic, bool* callReleased = 0)
- inline ChargeProcess getChargeProcessType () const

#### Protected Methods

- virtual void destroyed ()
- virtual void timerTick (const Time& when)
- virtual void notify (SS7Layer3* link, int sls)
- SS7MSU* buildMSU (SS7MsgISUP::Type type, unsigned char sio, const SS7Label& label, unsigned int cic, const NamedList* params) const
- virtual HandledMSU receivedMSU (const SS7MSU& msu, const SS7Label& label, SS7Layer3* network, int sls)
- virtual bool processMSU (SS7MsgISUP::Type type, unsigned int cic, const unsigned char* paramPtr, unsigned int paramLen, const SS7Label& label, SS7Layer3* network, int sls)
- virtual void receivedUPU (SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label& label, int sls)
- virtual SignallingEvent* processCircuitEvent (SignallingCircuitEvent*& event, SignallingCall* call = 0)
- bool startCircuitReset (SignallingCircuit*& cic, const String& timer)

#### Protected Members

- unsigned int m_cicLen

## Detailed Description

Implementation of SS7 ISDN User Part

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

Special SLS values

enum ChargeProcess { Confusion, Ignore, Raw, Parsed } | ### ChargeProcess

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

Constructor

Parameters:

params | Call controller's parameters
sio | The 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:

config | Optional 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:

network | Pointer 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:

pc | The point code to append
def | True 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:

params | List 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:

pc | The 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:

pc | The 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:

label | Routing label to set
opc | Originating point code
dpc | Destination point code
sls | Signalling Link Selection

inline void setDebug (bool printMsg, bool extendedDebug) | ### setDebug

Set debug data of this call controller

Parameters:

printMsg | Enable/disable message printing on output
extendedDebug | Enable/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:

type | Type of ISUP message
ssf | Subservice Field
label | Routing label for the new MSU
cic | Circuit Identification Code
params | Optional 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:

msg | Call parameters
reason | Failure 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:

msg | The message to send
label | The routing label for the message
recvLbl | True if the given label is from a received message. If true, a new routing label will be created from the received one
sls | Signalling 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:

reason | Cleanup reason

Reimplemented from SignallingCallControl.

bool control (NamedList& params) | ### control

[virtual]

Query or modify ISUP's settings or operational parameters

Parameters:

params | The 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:

msg | Destination list of parameters
msgType | The message type
pcType | The point code type (message version)
paramPtr | Pointer to the Parameter area (just after the message type)
paramLen | Length of the Parameter area

Returns: True if the mesage was successfully 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:

buf | Destination buffer
msgType | The message type
pcType | The point code type (message version)
params | Message list of parameters
cic | Optional cic to be added before mesage

Returns: True if the mesage was successfully 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:

list | Message parameter list
cic | The circuit code
callReleased | Optional pointer to boolean value to be set if a call was released

Returns: True if any parameter compatibility was handled

inline ChargeProcess getChargeProcessType () | ### getChargeProcessType

[const]

Obtain the way that charge message should be processed

Returns: The way that charge message should be processed

void destroyed () | ### destroyed

[protected virtual]

Remove all links with other layers. Disposes the memory

Reimplemented from SS7Layer4.

void timerTick (const Time& when) | ### timerTick

[protected virtual]

Send CGU if not already done. Check timeouts

Parameters:

when | Time 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:

link | Network or linkset that generated the notification
sls | Signalling 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:

type | Type of ISUP message
sio | Service Information Octet
label | Routing label for the new MSU
cic | Circuit Identification Code
params | Parameter 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:

msu | Message data, starting with Service Indicator Octet
label | Routing label of the received MSU
network | Network layer that delivered the MSU
sls | Signalling 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:

type | Type of ISUP message
cic | Circuit Identification Code
paramPtr | Pointer to the Parameter area
paramLen | Length of the Parameter area
label | Routing label of the received MSU
network | Network layer that delivered the MSU
sls | Signalling 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:

type | Type of Point Code
node | Node on which the User Part is unavailable
part | User Part (service) reported unavailable
cause | Unavailability cause - Q.704 15.17.5
label | Routing label of the UPU message
sls | Signaling 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:

event | The event, will be consumed and zeroed
call | Optional 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:

cic | The circuit to reset. Its referrence counter will be decreased and the pointer will be zeroed
timer | Ellapsed timer

Returns: True if the circuit reset was initiated

unsigned int m_cicLen | ### m_cicLen

[protected]

Generated by: paulc on bussard on Mon Feb 10 13:15:47 2014, using kdoc 2.0a54.