# class SS7ISUPCall | An SS7 ISUP call. More...
Full name | `TelEngine::SS7ISUPCall`
Definition | `#include <libs/ysig/yatesig.h>`
Inherits | TelEngine::SignallingCall [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Types

- enum State { Null = 0, Testing = 1, Setup = 2, Accepted = 3, Ringing = 4, Answered = 5, Releasing = 6, Released = 7 }

#### Public Methods

- virtual ~SS7ISUPCall ()
- inline State state () const
- inline bool earlyState () const
- inline const String& cicRange () const
- inline unsigned int id () const
- virtual SignallingEvent* getEvent (const Time& when)
- virtual bool sendEvent (SignallingEvent* event)
- inline void setTerminate (bool gracefully, const char* reason = 0, const char* diagnostic = 0, const char* location = 0)
- virtual void* getObject (const String& name) const

#### Protected Methods

- SS7ISUPCall (SS7ISUP* controller, SignallingCircuit* cic, const SS7PointCode& local, const SS7PointCode& remote, bool outgoing, int sls = -1, const char* range = 0, bool testCall = false)
- SignallingEvent* releaseComplete (bool final, SS7MsgISUP* msg = 0, const char* reason = 0, bool timeout = false)
- bool canReplaceCircuit ()
- bool replaceCircuit (SignallingCircuit* circuit, SS7MsgISUP* msg = 0)
- void stopWaitSegment (bool discard)

## Detailed Description

A signalling call using SS7 ISUP protocol

enum State { Null = 0, Testing = 1, Setup = 2, Accepted = 3, Ringing = 4, Answered = 5, Releasing = 6, Released = 7 } | ### State

Call state enumerators

~SS7ISUPCall () | ### ~SS7ISUPCall

[virtual]

Destructor. Complete call release. Releas circuit. Remove itself from controller's list

inline State state () | ### state

[const]

Get the call state

Returns: The call state as enumeration

inline bool earlyState () | ### earlyState

[const]

Check if the call is a not test one in early state

Returns: True if this a non test call in early state

inline const String& cicRange () | ### cicRange

[const]

Get the call's circuit range

Returns: The call's circuit range

inline unsigned int id () | ### id

[const]

Get the call id (the code of the circuit reserved for this call)

Returns: The call id

SignallingEvent* getEvent (const Time& when) | ### getEvent

[virtual]

Get an event from this call This method is thread safe

Parameters:

when | The current time

Returns: SignallingEvent pointer or 0 if no events

Reimplemented from SignallingCall.

bool sendEvent (SignallingEvent* event) | ### sendEvent

[virtual]

Send an event to this call

Parameters:

event | The event to send

Returns: True if the operation succedded

Reimplemented from SignallingCall.

inline void setTerminate (bool gracefully, const char* reason = 0, const char* diagnostic = 0, const char* location = 0) | ### setTerminate

Set termination flag. Set termination reason if not already set

Parameters:

gracefully | True to send RLC on termination, false to destroy the call without notification
reason | Termination reason
diagnostic | Optional diagnostic data to be sent with termination reason
location | Optional release location

void* getObject (const String& name) | ### getObject

[const virtual]

Get a pointer to this object or other data

Parameters:

name | Object name

Returns: The requested pointer or 0 if not exists

Reimplemented from RefObject.

SS7ISUPCall (SS7ISUP* controller, SignallingCircuit* cic, const SS7PointCode& local, const SS7PointCode& remote, bool outgoing, int sls = -1, const char* range = 0, bool testCall = false) | ### SS7ISUPCall

[protected]

Constructor

Parameters:

controller | The call controller
cic | The reserved circuit
local | The local point code used to create the routing label for sent messages
remote | The remote point code used to create the routing label for sent messages
outgoing | Call direction
sls | Optional link for the routing label
range | Optional range used to re-allocate a circuit for this call if necessary
testCall | True if this is a test call

SignallingEvent* releaseComplete (bool final, SS7MsgISUP* msg = 0, const char* reason = 0, bool timeout = false) | ### releaseComplete

[protected]

Release call. Stop timers. Send a RLC (Release Complete) message if it should terminate gracefully Decrease the object's referrence count and generate a Release event if not final This method is thread safe

Parameters:

final | True if called from destructor
msg | Received message with parameters if any
reason | Optional release reason
timeout | True if this is method is called due to T5 timer expiry

Returns: SignallingEvent pointer or 0

bool canReplaceCircuit () | ### canReplaceCircuit

[protected]

Check if the call's circuit can be replaced at this time

Returns: True if the circuit can be replaced

bool replaceCircuit (SignallingCircuit* circuit, SS7MsgISUP* msg = 0) | ### replaceCircuit

[protected]

Replace the circuit reserved for this call. Release the already reserved circuit. Retransmit the initial IAM request on success. On failure set the termination flag and release the new circuit if valid. If false is returned, the call is prepared to return a Release event. This method is thread safe

Parameters:

circuit | The new circuit reserved for this call
msg | Optional message to send before IAM (it will be consumed)

Returns: False if the state is greater then Setup, the call is not outgoing or the new circuit is 0

void stopWaitSegment (bool discard) | ### stopWaitSegment

[protected]

Stop waiting for a SGM (Segmentation) message when another message is received by the controller. This method is thread safe

Parameters:

discard | True to discard (destruct) the segment waiting message if any

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