# class SignallingCallControl | Abstract phone call signalling. More...
Contains pure virtuals
Full name | `TelEngine::SignallingCallControl`
Definition | `#include <libs/ysig/yatesig.h>`
Inherits | TelEngine::Mutex [public ]
Inherited by | ISDNQ931, ISDNQ931Monitor, SS7BICC, SS7ISUP, SS7TUP
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Types

- enum MediaRequired { MediaNever, MediaAnswered, MediaRinging, MediaAlways }

#### Public Methods

- SignallingCallControl (const NamedList& params, const char* msgPrefix = 0)
- virtual ~SignallingCallControl ()
- inline const String& location () const
- inline void setExiting ()
- inline bool exiting () const
- inline bool verify ()
- inline MediaRequired mediaRequired () const
- inline const String& msgPrefix () const
- inline SignallingCircuitGroup* circuits () const
- inline const ObjList& calls () const
- virtual const char* statusName () const
- SignallingCircuitGroup* attach (SignallingCircuitGroup* circuits)
- bool reserveCircuit (SignallingCircuit*& cic, const char* range = 0, int checkLock = -1, const String* list = 0, bool mandatory = true, bool reverseRestrict = false)
- bool releaseCircuit (SignallingCircuit*& cic, bool sync = false)
- bool releaseCircuit (unsigned int code, bool sync = false)
- virtual void cleanup (const char* reason = "net-out-of-order")
- virtual SignallingEvent* getEvent (const Time& when)
- virtual SignallingCall* call (SignallingMessage* msg, String& reason)
- virtual void buildVerifyEvent (NamedList& params)

#### Protected Methods

- inline int strategy () const
- virtual bool processEvent (SignallingEvent* event)
- virtual SignallingEvent* processCircuitEvent (SignallingCircuitEvent*& event, SignallingCall* call = 0)
- void clearCalls ()
- void removeCall (SignallingCall* call, bool del = false)
- void setVerify (bool restartTimer = false, bool fireNow = false, const Time* time = 0)

#### Protected Members

- ObjList m_calls
- String m_msgPrefix
- MediaRequired m_mediaRequired
- bool m_verifyEvent
- SignallingTimer m_verifyTimer
- String m_location
- static const TokenDict s_mediaRequired[]

## Detailed Description

Interface of protocol independent signalling for phone calls

enum MediaRequired { MediaNever, MediaAnswered, MediaRinging, MediaAlways } | ### MediaRequired

When is media absolutely required during the call

SignallingCallControl (const NamedList& params, const char* msgPrefix = 0) | ### SignallingCallControl

Constructor

Parameters:

params | Call controller's parameters
msgPrefix | Optional prefix to be added before a decoded message's parameters or retrieve message parameters from a list

~SignallingCallControl () | ### ~SignallingCallControl

[virtual]

Destructor

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

[const]

Retrieve Q.850 cause location

Returns: Controller location

inline void setExiting () | ### setExiting

Set exiting flag

inline bool exiting () | ### exiting

[const]

Get exiting flag

Returns: The exiting flag

inline bool verify () | ### verify

Check the verify event flag. Reset it if true is returned

Returns: True if the verify event flag is set

inline MediaRequired mediaRequired () | ### mediaRequired

[const]

Get the Media Required flag

Returns: Configured media requirement

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

[const]

Get the prefix used by this call controller when decoding message parameters or retrieve message parameters from a list

Returns: Message parameters prefix used by this call controller

inline SignallingCircuitGroup* circuits () | ### circuits

[const]

Get the circuit group attached to this call controller

Returns: The circuit group attached to this call controller

inline const ObjList& calls () | ### calls

[const]

Get the list of calls currently known by this call controller

Returns: Reference to the list of calls

const char* statusName () | ### statusName

[const pure virtual]

Get the controller's status as text

Returns: Controller status name

SignallingCircuitGroup* attach (SignallingCircuitGroup* circuits) | ### attach

Attach/detach a circuit group to this call controller. Set group's allocation strategy. Set locked flags for all circuits belonging to the attached circuit group. Cleanup controller before detaching the group or attaching a new one This method is thread safe

Parameters:

circuits | Pointer to the SignallingCircuitGroup to attach. 0 to detach and force a cleanup

Returns: Pointer to the old group that was detached, NULL if none or no change

bool reserveCircuit (SignallingCircuit*& cic, const char* range = 0, int checkLock = -1, const String* list = 0, bool mandatory = true, bool reverseRestrict = false) | ### reserveCircuit

Reserve a circuit for later use. If the circuit list is 0, try to reserve a circuit from the group using its strategy. Release the given circuit before trying to reserve it. Set cic to 0 on failure. This method is thread safe

Parameters:

cic | Destination circuit
checkLock | Lock flags to check. If the given lock flags are set, reservation will fail
range | Optional range name to restrict circuit reservation within attached circuit group
list | Comma separated list of circuits
mandatory | The list is mandatory. If false and none of the circuits in the list are available, try to reserve a free one. Ignored if list is 0
reverseRestrict | Used when failed to reserve circuit from list. If true and the circuit allocation strategy includes any restriction (odd or even) use the opposite restriction to reserve a circuit. Ignored if mandatory is true

Returns: False if the operation failed

bool releaseCircuit (SignallingCircuit*& cic, bool sync = false) | ### releaseCircuit

Initiate a release of a circuit. Set cic to 0. This method is thread safe

Parameters:

cic | The circuit to release
sync | Synchronous release requested

Returns: True if the circuit release was initiated

bool releaseCircuit (unsigned int code, bool sync = false) | ### releaseCircuit

Initiate a release of a circuit from the attached group This method is thread safe

Parameters:

code | The circuit's code
sync | Synchronous release requested

Returns: True if the circuit release was initiated

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

[virtual]

Cleanup

Parameters:

reason | Cleanup reason

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

[virtual]

Iterate through the call list to get an event

Parameters:

when | The current time

Returns: SignallingEvent pointer or 0 if no events

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

[virtual]

Create an outgoing call. Send a NewCall event with the given msg parameter

Parameters:

msg | Call parameters
reason | Failure reason if any

Returns: Referenced SignallingCall pointer on success or 0 on failure

void buildVerifyEvent (NamedList& params) | ### buildVerifyEvent

[virtual]

Build the parameters of a Verify event

Parameters:

params | The list of parameters to fill

inline int strategy () | ### strategy

[protected const]

Get the strategy used by the attached circuit group to allocate circuits

Returns: The strategy used by the attached circuit group to allocate circuits

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

[protected virtual]

Process an event received from a call. This will give to derived classes an opportunity to intercept events generated by their calls

Parameters:

event | The event

Returns: True if the event was processed by the controller. False to deliver the event to the requestor

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

void clearCalls () | ### clearCalls

[protected]

Clear call list

void removeCall (SignallingCall* call, bool del = false) | ### removeCall

[protected]

Remove a call from list

Parameters:

call | The call to remove
del | True to delete it. False to remove without destruct

void setVerify (bool restartTimer = false, bool fireNow = false, const Time* time = 0) | ### setVerify

[protected]

Set the verify event flag. Restart/fire verify timer

Parameters:

restartTimer | True to restart/fire the timer
fireNow | True to fire the verify timer. Ignored if restartTimer is false
time | Optional time to use for timer restart

ObjList m_calls | ### m_calls

[protected]

String m_msgPrefix | ### m_msgPrefix

[protected]

MediaRequired m_mediaRequired | ### m_mediaRequired

[protected]

bool m_verifyEvent | ### m_verifyEvent

[protected]

SignallingTimer m_verifyTimer | ### m_verifyTimer

[protected]

String m_location | ### m_location

[protected]

static const TokenDict s_mediaRequired[] | ### s_mediaRequired[]

[protected]

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