|
Yate
|
An abstract communication channel. More...
#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 Mutex & | paramMutex () |
| 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 |
An abstract communication channel.
A class that holds common channel related features (a.k.a. call leg)
| virtual ~Channel | ( | ) | [virtual] |
Destructor
Alternate constructor provided for convenience
Get the current link address of the channel
| static unsigned int allocId | ( | ) | [static] |
Allocate an unique (per engine run) call ID
Get the billing identifier.
| 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 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 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 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 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 checkTimers | ( | Message & | msg, |
| const Time & | tmr | ||
| ) | [virtual] |
Timer check method, by default handles channel timeouts
| msg | Timer message |
| tmr | Current time against which timers are compared |
| void cleanup | ( | ) | [protected] |
Perform destruction time cleanup. You can call this method earlier if destruction is to be postponed.
Put channel variables into a message
| msg | Message to fill in |
| minimal | True to fill in only a minimum of parameters |
| virtual void connected | ( | const char * | reason | ) | [protected, virtual] |
Connect notification method.
| reason | Text that describes connect reason. |
Reimplemented from CallEndpoint.
Reimplemented in ClientChannel.
| const char* direction | ( | ) | const |
Get the direction of the channel as string
| 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 dispatched | ( | const Message & | msg, |
| bool | handled | ||
| ) | [virtual] |
Notification for dispatched messages
| msg | Message that was dispatched |
| handled | Result of handling the message |
Implements MessageNotifier.
Get the driver of this channel
| void dropChan | ( | ) | [protected] |
Remove the channel from the parent driver list
| 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 dtmfSequence | ( | Message & | msg | ) | [protected] |
Add sequence number to chan.dtmf message, check for duplicates
| msg | chan.dtmf message to apply sequence number |
| 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 |
| void filterDebug | ( | const String & | item | ) |
Enable or disable debugging according to driver's filter rules
| item | Value of the item to match |
| virtual Message* getDisconnect | ( | const char * | reason | ) | [protected, virtual] |
Create a properly populated chan.disconnect message
| reason | Channel disconnect reason if available |
Get a pointer to a derived class given that class name
| name | Name of the class we are asking for |
Reimplemented from CallEndpoint.
| void initChan | ( | ) |
Add the channel to the parent driver list This method must be called exactly once after the object is fully constructed
| bool isAnswered | ( | ) | const [inline] |
Check if the call was answered or not
| bool isIncoming | ( | ) | const [inline] |
Get the direction of the channel
| bool isOutgoing | ( | ) | const [inline] |
Get the direction of the channel
| const String& lastPeerId | ( | ) | const [inline] |
Get the last connected peer id
| 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 |
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 |
References Channel::message().
Referenced by Channel::message().
| 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 msgControl | ( | Message & | msg | ) | [virtual] |
Control message handler that is invoked only for messages to this channel
| msg | Control message |
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 msgMasquerade | ( | Message & | msg | ) | [virtual] |
Notification on message masquerade as channel request
| msg | Message already modified to masquerade as this channel |
| 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.
Status message handler that is invoked only for messages to this channel
| msg | Status message |
Notification on remote text messaging (sms)
| msg | Notification message |
| text | Pointer to the received text |
Notification on remote tone(s)
| msg | Notification message |
| tone | Pointer to the received tone(s) |
| virtual bool msgTransfer | ( | Message & | msg | ) | [virtual] |
Notification on native transfer request
| msg | Notification message |
Notification on call parameters update request
| msg | Notification message |
| const NamedList& parameters | ( | ) | const [inline] |
Get the disconnect parameters list
| NamedList& parameters | ( | ) | [inline, protected] |
Get the disconnect parameters list
| static Mutex& paramMutex | ( | ) | [static] |
Get the big mutex that serializes access to all disconnect parameter lists
Set the local debugging level
| msg | Debug setting message |
| 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 setId | ( | const char * | newId | ) | [protected, virtual] |
Set a new ID for this channel
| newId | New ID to set to this channel |
Reimplemented from CallEndpoint.
| 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 |
References Channel::setMaxcall().
Referenced by Channel::setMaxcall().
| void setMaxcall | ( | const Message * | msg | ) |
Set the time this channel will time out on outgoing calls
| msg | Pointer to message possibly holding "maxcall" parameter |
| void setOutgoing | ( | bool | outgoing = true | ) | [inline, protected] |
Set the current direction of the channel
| outgoing | True if this is an outgoing call channel |
| 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 |
Get the current status of the channel
| 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 |
Get the connected channel identifier.
| 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 |
| 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 |
| 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.
1.7.6.1