#include <yatephone.h>
Public Member Functions | |
virtual | ~Channel () |
virtual void * | getObject (const String &name) const |
virtual void | complete (Message &msg, bool minimal=false) const |
Message * | message (const char *name, bool minimal=false, bool data=false) |
Message * | message (const char *name, const NamedList *original, const char *params=0, bool minimal=false, bool data=false) |
Message * | message (const char *name, const NamedList &original, const char *params=0, bool minimal=false, bool data=false) |
virtual bool | msgProgress (Message &msg) |
virtual bool | msgRinging (Message &msg) |
virtual bool | msgAnswered (Message &msg) |
virtual bool | msgTone (Message &msg, const char *tone) |
virtual bool | msgText (Message &msg, const char *text) |
virtual bool | msgDrop (Message &msg, const char *reason) |
virtual bool | msgTransfer (Message &msg) |
virtual bool | msgUpdate (Message &msg) |
virtual bool | msgMasquerade (Message &msg) |
virtual void | msgStatus (Message &msg) |
virtual bool | msgControl (Message &msg) |
virtual void | checkTimers (Message &msg, const Time &tmr) |
virtual bool | callPrerouted (Message &msg, bool handled) |
virtual bool | callRouted (Message &msg) |
virtual void | callAccept (Message &msg) |
virtual void | callRejected (const char *error, const char *reason=0, const Message *msg=0) |
virtual void | callConnect (Message &msg) |
virtual bool | setDebug (Message &msg) |
const String & | status () const |
const String & | address () const |
bool | isOutgoing () const |
bool | isIncoming () const |
bool | isAnswered () const |
const char * | direction () const |
Driver * | driver () const |
u_int64_t | timeout () const |
void | timeout (u_int64_t tout) |
u_int64_t | maxcall () const |
void | maxcall (u_int64_t tout) |
void | setMaxcall (const Message &msg) |
void | setMaxcall (const Message *msg) |
const String & | targetid () const |
const String & | billid () const |
const String & | lastPeerId () const |
void | initChan () |
bool | startRouter (Message *msg) |
void | filterDebug (const String &item) |
const NamedList & | parameters () const |
virtual void | dispatched (const Message &msg, bool handled) |
Static Public Member Functions | |
static unsigned int | allocId () |
Protected Member Functions | |
Channel (Driver *driver, const char *id=0, bool outgoing=false) | |
Channel (Driver &driver, const char *id=0, bool outgoing=false) | |
void | cleanup () |
void | dropChan () |
virtual void | zeroRefs () |
virtual void | connected (const char *reason) |
virtual void | disconnected (bool final, const char *reason) |
virtual void | setDisconnect (const NamedList *params) |
virtual void | endDisconnect (const Message &msg, bool handled) |
virtual void | setId (const char *newId) |
virtual Message * | getDisconnect (const char *reason) |
void | status (const char *newstat) |
virtual void | statusParams (String &str) |
void | setOutgoing (bool outgoing=true) |
bool | dtmfSequence (Message &msg) |
bool | dtmfEnqueue (Message *msg) |
bool | dtmfInband (const char *tone) |
bool | toneDetect (const char *sniffer=0) |
NamedList & | parameters () |
Protected Attributes | |
String | m_status |
String | m_address |
String | m_targetid |
String | m_billid |
bool | m_answered |
Friends | |
class | Driver |
class | Router |
A class that holds common channel related features (a.k.a. call leg)
virtual ~Channel | ( | ) | [virtual] |
Destructor
Alternate constructor provided for convenience
virtual void* getObject | ( | const String & | name | ) | const [virtual] |
Get a pointer to a derived class given that class name
name | Name of the class we are asking for |
Reimplemented from CallEndpoint.
virtual void complete | ( | Message & | msg, | |
bool | minimal = false | |||
) | const [virtual] |
Put channel variables into a message
msg | Message to fill in | |
minimal | True to fill in only a minimum of parameters |
Message* message | ( | const char * | name, | |
bool | minimal = false , |
|||
bool | data = false | |||
) |
Create a filled notification message
name | Name of the message to create | |
minimal | Set to true to fill in only a minimum of parameters | |
data | Set the channel as message data |
Message* message | ( | const char * | name, | |
const NamedList * | original, | |||
const char * | params = 0 , |
|||
bool | minimal = false , |
|||
bool | data = false | |||
) |
Create a filled notification message, copy some parameters from another message
name | Name of the message to create | |
original | Parameters to copy from, can be NULL | |
params | Comma separated list of parameters to copy, if NULL will be taken from the "copyparams" parameter of original | |
minimal | Set to true to fill in only a minimum of parameters | |
data | Set the channel as message data |
Message* message | ( | const char * | name, | |
const NamedList & | original, | |||
const char * | params = 0 , |
|||
bool | minimal = false , |
|||
bool | data = false | |||
) | [inline] |
Create a filled notification message, copy some parameters from another message
name | Name of the message to create | |
original | Parameters to copy from | |
params | Comma separated list of parameters to copy, if NULL will be taken from the "copyparams" parameter of original | |
minimal | Set to true to fill in only a minimum of parameters | |
data | Set the channel as message data |
virtual bool msgProgress | ( | Message & | msg | ) | [virtual] |
Notification on remote call making some progress, not enabled by default
msg | Notification message |
Reimplemented in ClientChannel.
virtual bool msgRinging | ( | Message & | msg | ) | [virtual] |
Notification on remote ringing
msg | Notification message |
Reimplemented in ClientChannel.
virtual bool msgAnswered | ( | Message & | msg | ) | [virtual] |
Notification on remote answered. Note that the answered flag will be set
msg | Notification message |
Reimplemented in ClientChannel.
virtual bool msgTone | ( | Message & | msg, | |
const char * | tone | |||
) | [virtual] |
Notification on remote tone(s)
msg | Notification message | |
tone | Pointer to the received tone(s) |
virtual bool msgText | ( | Message & | msg, | |
const char * | text | |||
) | [virtual] |
Notification on remote text messaging (sms)
msg | Notification message | |
text | Pointer to the received text |
virtual bool msgDrop | ( | Message & | msg, | |
const char * | reason | |||
) | [virtual] |
Notification on current call drop request
msg | Notification message | |
reason | Pointer to drop reason text or NULL if none provided |
Reimplemented in ClientChannel.
virtual bool msgTransfer | ( | Message & | msg | ) | [virtual] |
Notification on native transfer request
msg | Notification message |
virtual bool msgUpdate | ( | Message & | msg | ) | [virtual] |
Notification on call parameters update request
msg | Notification message |
virtual bool msgMasquerade | ( | Message & | msg | ) | [virtual] |
Notification on message masquerade as channel request
msg | Message already modified to masquerade as this channel |
virtual void msgStatus | ( | Message & | msg | ) | [virtual] |
Status message handler that is invoked only for messages to this channel
msg | Status message |
virtual bool msgControl | ( | Message & | msg | ) | [virtual] |
Control message handler that is invoked only for messages to this channel
msg | Control message |
Timer check method, by default handles channel timeouts
msg | Timer message | |
tmr | Current time against which timers are compared |
virtual bool callPrerouted | ( | Message & | msg, | |
bool | handled | |||
) | [virtual] |
Notification on progress of prerouting incoming call
msg | Notification call.preroute message just after being dispatched | |
handled | True if a handler claimed having handled prerouting |
virtual bool callRouted | ( | Message & | msg | ) | [virtual] |
Notification on progress of routing incoming call
msg | Notification call.route message just after being dispatched |
Reimplemented in ClientChannel.
virtual void callAccept | ( | Message & | msg | ) | [virtual] |
Notification on success of incoming call
msg | Notification call.execute message just after being dispatched |
Reimplemented in ClientChannel.
virtual void callRejected | ( | const char * | error, | |
const char * | reason = 0 , |
|||
const Message * | msg = 0 | |||
) | [virtual] |
Notification on failure of incoming call
error | Standard error keyword | |
reason | Textual failure reason | |
msg | Pointer to message causing the rejection, if any |
Reimplemented in ClientChannel.
virtual void callConnect | ( | Message & | msg | ) | [virtual] |
Common processing after connecting the outgoing call, should be called from Driver's msgExecute()
msg | Notification call.execute message while being dispatched |
virtual bool setDebug | ( | Message & | msg | ) | [virtual] |
Set the local debugging level
msg | Debug setting message |
const String& status | ( | ) | const [inline] |
Get the current status of the channel
const String& address | ( | ) | const [inline] |
Get the current link address of the channel
bool isOutgoing | ( | ) | const [inline] |
Get the direction of the channel
bool isIncoming | ( | ) | const [inline] |
Get the direction of the channel
bool isAnswered | ( | ) | const [inline] |
Check if the call was answered or not
const char* direction | ( | ) | const |
Get the direction of the channel as string
Driver* driver | ( | ) | const [inline] |
Get the driver of this channel
u_int64_t timeout | ( | ) | const [inline] |
Get the time this channel will time out
void timeout | ( | u_int64_t | tout | ) | [inline] |
Set the time this channel will time out
tout | New timeout time or zero to disable |
u_int64_t maxcall | ( | ) | const [inline] |
Get the time this channel will time out on outgoing calls
void maxcall | ( | u_int64_t | tout | ) | [inline] |
Set the time this channel will time out on outgoing calls
tout | New timeout time or zero to disable |
void setMaxcall | ( | const Message & | msg | ) | [inline] |
Set the time this channel will time out on outgoing calls
msg | Reference of message possibly holding "maxcall" parameter |
void setMaxcall | ( | const Message * | msg | ) |
Set the time this channel will time out on outgoing calls
msg | Pointer to message possibly holding "maxcall" parameter |
const String& targetid | ( | ) | const [inline] |
Get the connected channel identifier.
const String& billid | ( | ) | const [inline] |
Get the billing identifier.
const String& lastPeerId | ( | ) | const [inline] |
Get the last connected peer id
void initChan | ( | ) |
Add the channel to the parent driver list This method must be called exactly once after the object is fully constructed
bool startRouter | ( | Message * | msg | ) |
Start a routing thread for this channel, dereference dynamic channels
msg | Pointer to message to route, typically a "call.route", will be destroyed after routing fails or completes |
static unsigned int allocId | ( | ) | [static] |
Allocate an unique (per engine run) call ID
void filterDebug | ( | const String & | item | ) |
Enable or disable debugging according to driver's filter rules
item | Value of the item to match |
const NamedList& parameters | ( | ) | const [inline] |
Get the disconnect parameters list
virtual void dispatched | ( | const Message & | msg, | |
bool | handled | |||
) | [virtual] |
Notification for dispatched messages
msg | Message that was dispatched | |
handled | Result of handling the message |
Implements MessageNotifier.
void cleanup | ( | ) | [protected] |
Perform destruction time cleanup. You can call this method earlier if destruction is to be postponed.
void dropChan | ( | ) | [protected] |
Remove the channel from the parent driver list
virtual void zeroRefs | ( | ) | [protected, virtual] |
This method is overriden to safely remove the channel from the parent driver list before actually destroying the channel.
Reimplemented from RefObject.
virtual void connected | ( | const char * | reason | ) | [protected, virtual] |
Connect notification method.
reason | Text that describes connect reason. |
Reimplemented from CallEndpoint.
Reimplemented in ClientChannel.
virtual void disconnected | ( | bool | final, | |
const char * | reason | |||
) | [protected, virtual] |
Disconnect notification method.
final | True if this disconnect was called from the destructor. | |
reason | Text that describes disconnect reason. |
Reimplemented from CallEndpoint.
Reimplemented in ClientChannel.
virtual void setDisconnect | ( | const NamedList * | params | ) | [protected, virtual] |
Set disconnect parameters
params | Pointer to disconnect cause parameters, NULL to reset them |
Reimplemented from CallEndpoint.
virtual void endDisconnect | ( | const Message & | msg, | |
bool | handled | |||
) | [protected, virtual] |
Notification after chan.disconnected handling
msg | The chan.disconnected message | |
handled | True if the message was handled |
virtual void setId | ( | const char * | newId | ) | [protected, virtual] |
Set a new ID for this channel
newId | New ID to set to this channel |
Reimplemented from CallEndpoint.
virtual Message* getDisconnect | ( | const char * | reason | ) | [protected, virtual] |
Create a properly populated chan.disconnect message
reason | Channel disconnect reason if available |
void status | ( | const char * | newstat | ) | [protected] |
Set the current status of the channel. Note that a value of "answered" will set the answered flag
newstat | The new status as String |
virtual void statusParams | ( | String & | str | ) | [protected, virtual] |
Build the parameter reporting part of the status answer
str | String variable to fill up |
void setOutgoing | ( | bool | outgoing = true |
) | [inline, protected] |
Set the current direction of the channel
outgoing | True if this is an outgoing call channel |
bool dtmfSequence | ( | Message & | msg | ) | [protected] |
Add sequence number to chan.dtmf message, check for duplicates
msg | chan.dtmf message to apply sequence number |
bool dtmfEnqueue | ( | Message * | msg | ) | [protected] |
Add sequence number to chan.dtmf and enqueue it, delete if duplicate
msg | chan.dtmf message to sequence and enqueue |
bool dtmfInband | ( | const char * | tone | ) | [protected] |
Attempt to install an override data source to send DTMF inband. Needs a tone generator module capable to override with "tone/dtmfstr/xyz"
tone | Pointer to the tone sequence to send |
bool toneDetect | ( | const char * | sniffer = 0 |
) | [protected] |
Attempt to install a data sniffer to detect inband tones Needs a tone detector module capable of attaching sniffer consumers.
sniffer | Name of the sniffer to install, default will detect all tones |
NamedList& parameters | ( | ) | [inline, protected] |
Get the disconnect parameters list