| 
 
 | 
 | 
A class that holds common channel related features (a.k.a. call leg)
| String m_status | m_status | 
[protected]
| String m_address | m_address | 
[protected]
| String m_targetid | m_targetid | 
[protected]
| String m_billid | m_billid | 
[protected]
| bool m_answered | m_answered | 
[protected]
| ~Channel () | ~Channel | 
[virtual]
Destructor
| void*  getObject (const String& name) | getObject | 
[const virtual]
Get a pointer to a derived class given that class name
Parameters:
| name | Name of the class we are asking for | 
Returns: Pointer to the requested class or NULL if this object doesn't implement it
Reimplemented from CallEndpoint.
| Mutex&  paramMutex () | paramMutex | 
[static]
Get the big mutex that serializes access to all disconnect parameter lists
Returns: A reference to the mutex
| void  complete (Message& msg, bool minimal = false) | complete | 
[const virtual]
Put channel variables into a message
Parameters:
| 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) | message | 
Create a filled notification message
Parameters:
| 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 | 
Returns: A new allocated and parameter filled message
| Message*  message (const char* name, const NamedList* original, const char* params = 0, bool minimal = false, bool data = false) | message | 
Create a filled notification message, copy some parameters from another message
Parameters:
| 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 | 
Returns: A new allocated and parameter filled message
| inline Message*  message (const char* name, const NamedList& original, const char* params = 0, bool minimal = false, bool data = false) | message | 
Create a filled notification message, copy some parameters from another message
Parameters:
| 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 | 
Returns: A new allocated and parameter filled message
| bool  msgProgress (Message& msg) | msgProgress | 
[virtual]
Notification on remote call making some progress, not enabled by default
Parameters:
| msg | Notification message | 
Returns: True to stop processing the message, false to let it flow
| bool  msgRinging (Message& msg) | msgRinging | 
[virtual]
Notification on remote ringing
Parameters:
| msg | Notification message | 
Returns: True to stop processing the message, false to let it flow
| bool  msgAnswered (Message& msg) | msgAnswered | 
[virtual]
Notification on remote answered. Note that the answered flag will be set
Parameters:
| msg | Notification message | 
Returns: True to stop processing the message, false to let it flow
| bool  msgTone (Message& msg, const char* tone) | msgTone | 
[virtual]
Notification on remote tone(s)
Parameters:
| msg | Notification message | 
| tone | Pointer to the received tone(s) | 
Returns: True to stop processing the message, false to let it flow
| bool  msgText (Message& msg, const char* text) | msgText | 
[virtual]
Notification on remote text messaging (sms)
Parameters:
| msg | Notification message | 
| text | Pointer to the received text | 
Returns: True to stop processing the message, false to let it flow
| bool  msgDrop (Message& msg, const char* reason) | msgDrop | 
[virtual]
Notification on current call drop request
Parameters:
| msg | Notification message | 
| reason | Pointer to drop reason text or NULL if none provided | 
Returns: True if initiated call drop, false if failed
| bool  msgTransfer (Message& msg) | msgTransfer | 
[virtual]
Notification on native transfer request
Parameters:
| msg | Notification message | 
Returns: True to stop processing the message, false to let it flow
| bool  msgUpdate (Message& msg) | msgUpdate | 
[virtual]
Notification on call parameters update request
Parameters:
| msg | Notification message | 
Returns: True to stop processing the message, false to let it flow
| bool  msgMasquerade (Message& msg) | msgMasquerade | 
[virtual]
Notification on message masquerade as channel request
Parameters:
| msg | Message already modified to masquerade as this channel | 
Returns: True to stop processing the message, false to masquerade it
| void  msgStatus (Message& msg) | msgStatus | 
[virtual]
Status message handler that is invoked only for messages to this channel
Parameters:
| msg | Status message | 
| bool  msgControl (Message& msg) | msgControl | 
[virtual]
Control message handler that is invoked only for messages to this channel
Parameters:
| msg | Control message | 
Returns: True to stop processing the message, false to let it flow
| void  checkTimers (Message& msg, const Time& tmr) | checkTimers | 
[virtual]
Timer check method, by default handles channel timeouts
Parameters:
| msg | Timer message | 
| tmr | Current time against which timers are compared | 
| bool  callPrerouted (Message& msg, bool handled) | callPrerouted | 
[virtual]
Notification on progress of prerouting incoming call
Parameters:
| msg | Notification call.preroute message just after being dispatched | 
| handled | True if a handler claimed having handled prerouting | 
Returns: True to continue with the call, false to abort the route
| bool  callRouted (Message& msg) | callRouted | 
[virtual]
Notification on progress of routing incoming call
Parameters:
| msg | Notification call.route message just after being dispatched | 
Returns: True to continue with the call, false to abort the route
| void  callAccept (Message& msg) | callAccept | 
[virtual]
Notification on success of incoming call
Parameters:
| msg | Notification call.execute message just after being dispatched | 
| void  callRejected (const char* error, const char* reason = 0, const Message* msg = 0) | callRejected | 
[virtual]
Notification on failure of incoming call
Parameters:
| error | Standard error keyword | 
| reason | Textual failure reason | 
| msg | Pointer to message causing the rejection, if any | 
| void  callConnect (Message& msg) | callConnect | 
[virtual]
Common processing after connecting the outgoing call, should be called from Driver's msgExecute()
Parameters:
| msg | Notification call.execute message while being dispatched | 
| bool  setDebug (Message& msg) | setDebug | 
[virtual]
Set the local debugging level
Parameters:
| msg | Debug setting message | 
| inline const String&  status () | status | 
[const]
Get the current status of the channel
Returns: The current status as String
| inline const String&  address () | address | 
[const]
Get the current link address of the channel
Returns: The protocol dependent address as String
| inline bool  isOutgoing () | isOutgoing | 
[const]
Get the direction of the channel
Returns: True if the channel is an outgoing call (generated locally)
| inline bool  isIncoming () | isIncoming | 
[const]
Get the direction of the channel
Returns: True if the channel is an incoming call (generated remotely)
| inline bool  isAnswered () | isAnswered | 
[const]
Check if the call was answered or not
Returns: True if the call was answered
| const char*  direction () | direction | 
[const]
Get the direction of the channel as string
Returns: "incoming" or "outgoing" according to the direction
| inline Driver*  driver () | driver | 
[const]
Get the driver of this channel
Returns: Pointer to this channel's driver
| inline u_int64_t  timeout () | timeout | 
[const]
Get the time this channel will time out
Returns: Timeout time or zero if no timeout
| inline void  timeout (u_int64_t tout) | timeout | 
Set the time this channel will time out
Parameters:
| tout | New timeout time or zero to disable | 
| inline u_int64_t  maxcall () | maxcall | 
[const]
Get the time this channel will time out on outgoing calls
Returns: Timeout time or zero if no timeout
| inline void  maxcall (u_int64_t tout) | maxcall | 
Set the time this channel will time out on outgoing calls
Parameters:
| tout | New timeout time or zero to disable | 
| inline void  setMaxcall (const Message& msg, int defTout = -1) | setMaxcall | 
Set the time this channel will time out on outgoing calls
Parameters:
| msg | Reference of message possibly holding "maxcall" parameter | 
| defTout | Default timeout to apply, negative to not alter | 
| void  setMaxcall (const Message* msg, int defTout = -1) | setMaxcall | 
Set the time this channel will time out on outgoing calls
Parameters:
| msg | Pointer to message possibly holding "maxcall" parameter | 
| defTout | Default timeout to apply, negative to not alter | 
| inline u_int64_t  maxPDD () | maxPDD | 
[const]
Get the time this channel will time out while waiting for some progress on outgoing calls
Returns: Timeout time or zero if no timeout
| inline void  maxPDD (u_int64_t tout) | maxPDD | 
Set the time this channel will time out while waiting for some progress on outgoing calls
Parameters:
| tout | New timeout time or zero to disable | 
| void  setMaxPDD (const Message& msg) | setMaxPDD | 
Set the time this channel will time out while waiting for some progress on outgoing calls
Parameters:
| msg | Reference of message possibly holding "maxpdd" parameter | 
| inline const String&  targetid () | targetid | 
[const]
Get the connected channel identifier.
Returns: A String holding the unique channel id of the target or an empty string if this channel is not connected to a target.
| inline const String&  billid () | billid | 
[const]
Get the billing identifier.
Returns: An identifier of the call or account that will be billed for calls made by this channel.
| void  initChan () | 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) | startRouter | 
Start a routing thread for this channel, dereference dynamic channels
Parameters:
| msg | Pointer to message to route, typically a "call.route", will be destroyed after routing fails or completes | 
Returns: True if routing thread started successfully, false if failed
| unsigned int  allocId () | allocId | 
[static]
Allocate an unique (per engine run) call ID
Returns: Unique call ID number
| void  filterDebug (const String& item) | filterDebug | 
Enable or disable debugging according to driver's filter rules
Parameters:
| item | Value of the item to match | 
| inline const NamedList&  parameters () | parameters | 
[const]
Get the disconnect parameters list
Returns: Constant reference to disconnect parameters
| void  dispatched (const Message& msg, bool handled) | dispatched | 
[virtual]
Notification for dispatched messages
Parameters:
| msg | Message that was dispatched | 
| handled | Result of handling the message | 
Reimplemented from MessageNotifier.
| Channel (Driver* driver, const char* id = 0, bool outgoing = false) | Channel | 
[protected]
Constructor
| Channel (Driver& driver, const char* id = 0, bool outgoing = false) | Channel | 
[protected]
Alternate constructor provided for convenience
| void  cleanup () | cleanup | 
[protected]
Perform destruction time cleanup. You can call this method earlier if destruction is to be postponed.
| void  dropChan () | dropChan | 
[protected]
Remove the channel from the parent driver list
| void  zeroRefs () | 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.
| void  connected (const char* reason) | connected | 
[protected virtual]
Connect notification method.
Parameters:
| reason | Text that describes connect reason. | 
Reimplemented from CallEndpoint.
| void  disconnected (bool final, const char* reason) | disconnected | 
[protected virtual]
Disconnect notification method.
Parameters:
| final | True if this disconnect was called from the destructor. | 
| reason | Text that describes disconnect reason. | 
Reimplemented from CallEndpoint.
| void  setDisconnect (const NamedList* params) | setDisconnect | 
[protected virtual]
Set disconnect parameters
Parameters:
| params | Pointer to disconnect cause parameters, NULL to reset them | 
Reimplemented from CallEndpoint.
| void  endDisconnect (const Message& msg, bool handled) | endDisconnect | 
[protected virtual]
Notification after chan.disconnected handling
Parameters:
| msg | The chan.disconnected message | 
| handled | True if the message was handled | 
| void  setId (const char* newId) | setId | 
[protected virtual]
Set a new ID for this channel
Parameters:
| newId | New ID to set to this channel | 
Reimplemented from CallEndpoint.
| Message*  getDisconnect (const char* reason) | getDisconnect | 
[protected virtual]
Create a properly populated chan.disconnect message
Parameters:
| reason | Channel disconnect reason if available | 
Returns: A new allocated and parameter filled chan.disconnected message
| void  status (const char* newstat) | status | 
[protected]
Set the current status of the channel. Note that a value of "answered" will set the answered flag
Parameters:
| newstat | The new status as String | 
| void  statusParams (String& str) | statusParams | 
[protected virtual]
Build the parameter reporting part of the status answer
Parameters:
| str | String variable to fill up | 
| inline void  setOutgoing (bool outgoing = true) | setOutgoing | 
[protected]
Set the current direction of the channel
Parameters:
| outgoing | True if this is an outgoing call channel | 
| bool  dtmfSequence (Message& msg) | dtmfSequence | 
[protected]
Add sequence number to chan.dtmf message, check for duplicates
Parameters:
| msg | chan.dtmf message to apply sequence number | 
Returns: True if the message is a duplicate (same tone, different method)
| bool  dtmfEnqueue (Message* msg) | dtmfEnqueue | 
[protected]
Add sequence number to chan.dtmf and enqueue it, delete if duplicate
Parameters:
| msg | chan.dtmf message to sequence and enqueue | 
Returns: True if the message was enqueued, false if was a duplicate
| bool  dtmfInband (const char* tone) | dtmfInband | 
[protected]
Attempt to install an override data source to send DTMF inband. Needs a tone generator module capable to override with "tone/dtmfstr/xyz"
Parameters:
| tone | Pointer to the tone sequence to send | 
Returns: True on success
| bool  toneDetect (const char* sniffer = 0) | toneDetect | 
[protected]
Attempt to install a data sniffer to detect inband tones Needs a tone detector module capable of attaching sniffer consumers.
Parameters:
| sniffer | Name of the sniffer to install, default will detect all tones | 
Returns: True on success
| inline NamedList&  parameters () | parameters | 
[protected]
Get the disconnect parameters list
Returns: Reference to disconnect parameters
| Generated by: paulc on bussard on Fri May 8 12:37:22 2015, using kdoc 2.0a54. |