Yate
SS7ISUPCall Class Reference

An SS7 ISUP call. More...

#include <yatesig.h>

Inheritance diagram for SS7ISUPCall:
SignallingCall RefObject Mutex GenObject Lockable

Public Types

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

Public Member Functions

virtual ~SS7ISUPCall ()
 
State state () const
 
bool earlyState () const
 
const StringcicRange () const
 
unsigned int id () const
 
virtual SignallingEventgetEvent (const Time &when)
 
virtual bool sendEvent (SignallingEvent *event)
 
void setTerminate (bool gracefully, const char *reason=0, const char *diagnostic=0, const char *location=0)
 
virtual void * getObject (const String &name) const
 
- Public Member Functions inherited from SignallingCall
 SignallingCall (SignallingCallControl *controller, bool outgoing, bool signalOnly=false)
 
virtual ~SignallingCall ()
 
bool outgoing () const
 
SignallingCallControlcontroller () const
 
void userdata (void *data)
 
void * userdata () const
 
bool signalOnly () const
 
bool overlapDialing () const
 
virtual void eventTerminated (SignallingEvent *event)
 
- Public Member Functions inherited from RefObject
 RefObject ()
 
virtual ~RefObject ()
 
virtual bool alive () const
 
bool ref ()
 
bool deref ()
 
int refcount () const
 
virtual void destruct ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual const StringtoString () const
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 
- Public Member Functions inherited from Mutex
 Mutex (bool recursive=false, const char *name=0)
 
 Mutex (const Mutex &original)
 
 ~Mutex ()
 
Mutexoperator= (const Mutex &original)
 
virtual bool lock (long maxwait=-1)
 
virtual bool unlock ()
 
virtual bool locked () const
 
const char * owner () const
 
bool recursive () const
 
- Public Member Functions inherited from Lockable
virtual ~Lockable ()
 
virtual bool check (long maxwait=-1)
 
virtual bool unlockAll ()
 

Protected Member Functions

 SS7ISUPCall (SS7ISUP *controller, SignallingCircuit *cic, const SS7PointCode &local, const SS7PointCode &remote, bool outgoing, int sls=-1, const char *range=0, bool testCall=false)
 
SignallingEventreleaseComplete (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)
 
- Protected Member Functions inherited from SignallingCall
void enqueue (SignallingMessage *msg)
 
SignallingMessagedequeue (bool remove=true)
 
void clearQueue ()
 
- Protected Member Functions inherited from RefObject
virtual void zeroRefs ()
 
bool resurrect ()
 
virtual void destroyed ()
 

Friends

class SS7ISUP
 

Additional Inherited Members

- Static Public Member Functions inherited from RefObject
static bool alive (const RefObject *obj)
 
static bool efficientIncDec ()
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Static Public Member Functions inherited from Mutex
static int count ()
 
static int locks ()
 
static bool efficientTimedLock ()
 
- Static Public Member Functions inherited from Lockable
static void wait (unsigned long maxwait)
 
static unsigned long wait ()
 
static void startUsingNow ()
 
static void enableSafety (bool safe=true)
 
static bool safety ()
 
- Protected Attributes inherited from SignallingCall
SignallingEventm_lastEvent
 
bool m_overlap
 

Detailed Description

An SS7 ISUP call.

A signalling call using SS7 ISUP protocol

Member Enumeration Documentation

◆ State

enum State

Call state enumerators

Constructor & Destructor Documentation

◆ ~SS7ISUPCall()

virtual ~SS7ISUPCall ( )
virtual

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

◆ SS7ISUPCall()

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

Constructor

Parameters
controllerThe call controller
cicThe reserved circuit
localThe local point code used to create the routing label for sent messages
remoteThe remote point code used to create the routing label for sent messages
outgoingCall direction
slsOptional link for the routing label
rangeOptional range used to re-allocate a circuit for this call if necessary
testCallTrue if this is a test call

References SignallingCall::controller(), and SignallingCall::outgoing().

Member Function Documentation

◆ canReplaceCircuit()

bool canReplaceCircuit ( )
protected

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

Returns
True if the circuit can be replaced

◆ cicRange()

const String & cicRange ( ) const
inline

Get the call's circuit range

Returns
The call's circuit range

◆ earlyState()

bool earlyState ( ) const
inline

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

Returns
True if this a non test call in early state

◆ getEvent()

virtual SignallingEvent * getEvent ( const Time & when)
virtual

Get an event from this call This method is thread safe

Parameters
whenThe current time
Returns
SignallingEvent pointer or 0 if no events

Implements SignallingCall.

◆ getObject()

virtual void * getObject ( const String & name) const
virtual

Get a pointer to this object or other data

Parameters
nameObject name
Returns
The requested pointer or 0 if not exists

Reimplemented from RefObject.

◆ id()

unsigned int id ( ) const
inline

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

Returns
The call id

◆ releaseComplete()

SignallingEvent * releaseComplete ( bool final,
SS7MsgISUP * msg = 0,
const char * reason = 0,
bool timeout = false )
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
finalTrue if called from destructor
msgReceived message with parameters if any
reasonOptional release reason
timeoutTrue if this is method is called due to T5 timer expiry
Returns
SignallingEvent pointer or 0

◆ replaceCircuit()

bool replaceCircuit ( SignallingCircuit * circuit,
SS7MsgISUP * msg = 0 )
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
circuitThe new circuit reserved for this call
msgOptional 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

◆ sendEvent()

virtual bool sendEvent ( SignallingEvent * event)
virtual

Send an event to this call

Parameters
eventThe event to send
Returns
True if the operation succedded

Reimplemented from SignallingCall.

◆ setTerminate()

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

Set termination flag. Set termination reason if not already set

Parameters
gracefullyTrue to send RLC on termination, false to destroy the call without notification
reasonTermination reason
diagnosticOptional diagnostic data to be sent with termination reason
locationOptional release location

References Mutex::lock().

◆ state()

State state ( ) const
inline

Get the call state

Returns
The call state as enumeration

◆ stopWaitSegment()

void stopWaitSegment ( bool discard)
protected

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

Parameters
discardTrue to discard (destruct) the segment waiting message if any

References SignallingCall::outgoing().


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