Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > eeacaa4eb55fa544d622989e42fc27b1 > files > 49

libyate-devel-2.0.0-2mdv2009.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Yate: Channel Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceTelEngine.html">TelEngine</a>::<a class="el" href="classTelEngine_1_1Channel.html">Channel</a>
  </div>
</div>
<div class="contents">
<h1>Channel Class Reference</h1><!-- doxytag: class="TelEngine::Channel" --><!-- doxytag: inherits="TelEngine::CallEndpoint,TelEngine::DebugEnabler" -->An abstract communication channel.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="yatephone_8h-source.html">yatephone.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Channel:</div>
<div class="dynsection">

<p><center><img src="classTelEngine_1_1Channel.png" usemap="#Channel_map" border="0" alt=""></center>
<map name="Channel_map">
<area href="classTelEngine_1_1CallEndpoint.html" alt="CallEndpoint" shape="rect" coords="0,112,93,136">
<area href="classTelEngine_1_1DebugEnabler.html" alt="DebugEnabler" shape="rect" coords="103,112,196,136">
<area href="classTelEngine_1_1RefObject.html" alt="RefObject" shape="rect" coords="0,56,93,80">
<area href="classTelEngine_1_1GenObject.html" alt="GenObject" shape="rect" coords="0,0,93,24">
<area href="classTelEngine_1_1ClientChannel.html" alt="ClientChannel" shape="rect" coords="51,224,144,248">
</map>
</div>

<p>
<a href="classTelEngine_1_1Channel-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#c8917ded4599c304977c2842014de6a6">~Channel</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#aa71c3294b1a073c3ad0b64a2ed6325a">getObject</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;name) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#b12bae1b93c0b7a44a1b72fbc463b7ff">complete</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg, bool minimal=false) const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#9a87609112f832f8c12a26d2cfc5b760">message</a> (const char *name, bool minimal=false, bool data=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#3ac62862cba2e5757f9b400a95605e4e">message</a> (const char *name, const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> *original, const char *params=0, bool minimal=false, bool data=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#9aa44e44e13aeaed287d36832bb0146a">message</a> (const char *name, const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &amp;original, const char *params=0, bool minimal=false, bool data=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#2245bcc7008090dfd5d201733f453847">msgProgress</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#07f2ebd8defa68d0c320ae09337b184a">msgRinging</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#60097ee73cb6411471467da98ff3c014">msgAnswered</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#615ee3d575ac34a6e98bf3ea1cb1614f">msgTone</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg, const char *tone)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#da2eac980aa03bf1cd97e1dd988371a0">msgText</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg, const char *text)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#4b96a8fd6c1dc96dbb7a3bcc31fef0ea">msgDrop</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg, const char *reason)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#161e32aee260e4e56b8b974ea256937c">msgTransfer</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#c7d3de7def40a3d116ed7e8dd83ed595">msgUpdate</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#0bf5265db6c57cf75fc27e74fe0afef5">msgMasquerade</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#b0e7bac83e35ee6e8bf3e66faa094efd">msgStatus</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#b5cd14d6694e4d21721acde16a01be35">msgControl</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#fb885242bc7465e25fbd00968c9924a2">checkTimers</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg, const <a class="el" href="classTelEngine_1_1Time.html">Time</a> &amp;tmr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#b1002647427dd86e276b0f7ddce4f28c">callPrerouted</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg, bool handled)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#20af7b70238cd69c088a9a2c2f5e0117">callRouted</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#b6196c00a7b0597032e9f05c192d184a">callAccept</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#a1ef480b0ae6f1e48080c1787c280bf2">callRejected</a> (const char *error, const char *reason=0, const <a class="el" href="classTelEngine_1_1Message.html">Message</a> *msg=0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#228c24186d7e04a96b391e1bfccf42f7">callConnect</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#4b839b942f83fac8c7f77d7dea781838">setDebug</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#89af19d58d2d27ed45e9881623867169">status</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#3bda554343c4ef7e1e6fa9fb807fd66b">address</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#07940f718d7777b6870e84d4f027e709">isOutgoing</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#c7b578c32ac980a62fd845aa40dab5cd">isIncoming</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#46023e0515705cbf89af0cdfff723a42">isAnswered</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#7b0bb118a2090e44b170d3e1240f4c2b">direction</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classTelEngine_1_1Driver.html">Driver</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#de4137125c697539bd432f779f3836be">driver</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#023348f4bef371c975e853db8d4011db">timeout</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#2d3c5861b45c960a3097aaaf8093c7f5">timeout</a> (u_int64_t tout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">u_int64_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#d3933d9fd7bc97bd3f2417f6e1fa83e5">maxcall</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#9fcfaecfd4c73453cec3d45b3066d039">maxcall</a> (u_int64_t tout)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#1a12f6f0ba6f520f5cb265f9a6ddcda7">setMaxcall</a> (const <a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#7ac507d97032fc2c856a05303fc4dd87">setMaxcall</a> (const <a class="el" href="classTelEngine_1_1Message.html">Message</a> *msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#329ba42faea3dcc5e1ff8c7974e902c6">targetid</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#0fe07f430a9f3311dc55d7ae7d85a1d0">billid</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#afa13a29483b7cb5ca21b120413dbf3a">lastPeerId</a> () const </td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#ae4d2fe1b57b168f78513ce43b896e2f">startRouter</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> *msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#c36edf8c403de97f9b13aa21ec522bb3">filterDebug</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;item)</td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#3b122628159c56121925c5d450d56462">allocId</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#d05ebf8b98e78b627e5262a4c0ef626a">Channel</a> (<a class="el" href="classTelEngine_1_1Driver.html">Driver</a> *driver, const char *id=0, bool outgoing=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#910b81f0f96733a777d2121c5c9c6f1b">Channel</a> (<a class="el" href="classTelEngine_1_1Driver.html">Driver</a> &amp;driver, const char *id=0, bool outgoing=false)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#4b66d5e31b5dc18b314c8a68163263bd">cleanup</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#00def9c0322a2b7e220d3968228cd791">dropChan</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#0a76988705940cb01d55d360049f57e4">zeroRefs</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#4dcae0def3a8269363f598b64f2b856e">connected</a> (const char *reason)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#f8eecda3d9df4ea9382b7faf58cb14c1">disconnected</a> (bool final, const char *reason)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#c4ccba85920a559795b0b5ffb9ad060a">setId</a> (const char *newId)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#f968f68b4db2fba84d669ac0110d4da0">status</a> (const char *newstat)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#0b03ee0e462004bbe59a7bcd1b6f7f3c">statusParams</a> (<a class="el" href="classTelEngine_1_1String.html">String</a> &amp;str)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#506f7e465513a50f88237f6ccc03699b">setOutgoing</a> (bool outgoing=true)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#7470256a1a04412a3d3266139101ff43">dtmfSequence</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#3c4453e150db26046f963e447ad0fb6e">dtmfEnqueue</a> (<a class="el" href="classTelEngine_1_1Message.html">Message</a> *msg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#21d84093e70fd483ed84202846e69ada">dtmfInband</a> (const char *tone)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1Channel.html#b499bd067a661f7e80e5c01d056e168c">toneDetect</a> (const char *sniffer=0)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3fda4632b3defea3159e836f9d75adef"></a><!-- doxytag: member="TelEngine::Channel::m_status" ref="3fda4632b3defea3159e836f9d75adef" args="" -->
<a class="el" href="classTelEngine_1_1String.html">String</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>m_status</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fd0f2b4fe74bcdf3df4f718bdaec300c"></a><!-- doxytag: member="TelEngine::Channel::m_address" ref="fd0f2b4fe74bcdf3df4f718bdaec300c" args="" -->
<a class="el" href="classTelEngine_1_1String.html">String</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>m_address</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9ff9108c32b611ee3f9fa191ac2618e5"></a><!-- doxytag: member="TelEngine::Channel::m_targetid" ref="9ff9108c32b611ee3f9fa191ac2618e5" args="" -->
<a class="el" href="classTelEngine_1_1String.html">String</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>m_targetid</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0385cbc255feb5cd5b187b0ff136e621"></a><!-- doxytag: member="TelEngine::Channel::m_billid" ref="0385cbc255feb5cd5b187b0ff136e621" args="" -->
<a class="el" href="classTelEngine_1_1String.html">String</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>m_billid</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d550618c24a2c19e7aa8ee1a296b64f0"></a><!-- doxytag: member="TelEngine::Channel::m_answered" ref="d550618c24a2c19e7aa8ee1a296b64f0" args="" -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><b>m_answered</b></td></tr>

<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a486dd31a76947b501426d11b1d6c700"></a><!-- doxytag: member="TelEngine::Channel::Driver" ref="a486dd31a76947b501426d11b1d6c700" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>Driver</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d1fd3424328f664cd049fe429e0e3dc6"></a><!-- doxytag: member="TelEngine::Channel::Router" ref="d1fd3424328f664cd049fe429e0e3dc6" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>Router</b></td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
An abstract communication channel. 
<p>
A class that holds common channel related features (a.k.a. call leg) <hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="c8917ded4599c304977c2842014de6a6"></a><!-- doxytag: member="TelEngine::Channel::~Channel" ref="c8917ded4599c304977c2842014de6a6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classTelEngine_1_1Channel.html">Channel</a>           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor 
</div>
</div><p>
<a class="anchor" name="d05ebf8b98e78b627e5262a4c0ef626a"></a><!-- doxytag: member="TelEngine::Channel::Channel" ref="d05ebf8b98e78b627e5262a4c0ef626a" args="(Driver *driver, const char *id=0, bool outgoing=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1Channel.html">Channel</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Driver.html">Driver</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>outgoing</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor 
</div>
</div><p>
<a class="anchor" name="910b81f0f96733a777d2121c5c9c6f1b"></a><!-- doxytag: member="TelEngine::Channel::Channel" ref="910b81f0f96733a777d2121c5c9c6f1b" args="(Driver &amp;driver, const char *id=0, bool outgoing=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1Channel.html">Channel</a>           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Driver.html">Driver</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>outgoing</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Alternate constructor provided for convenience 
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="3bda554343c4ef7e1e6fa9fb807fd66b"></a><!-- doxytag: member="TelEngine::Channel::address" ref="3bda554343c4ef7e1e6fa9fb807fd66b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>&amp; address           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current link address of the channel <dl class="return" compact><dt><b>Returns:</b></dt><dd>The protocol dependent address as <a class="el" href="classTelEngine_1_1String.html" title="A C-style string handling class.">String</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="3b122628159c56121925c5d450d56462"></a><!-- doxytag: member="TelEngine::Channel::allocId" ref="3b122628159c56121925c5d450d56462" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned int allocId           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Allocate an unique (per engine run) call ID <dl class="return" compact><dt><b>Returns:</b></dt><dd>Unique call ID number </dd></dl>

</div>
</div><p>
<a class="anchor" name="0fe07f430a9f3311dc55d7ae7d85a1d0"></a><!-- doxytag: member="TelEngine::Channel::billid" ref="0fe07f430a9f3311dc55d7ae7d85a1d0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>&amp; billid           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the billing identifier. <dl class="return" compact><dt><b>Returns:</b></dt><dd>An identifier of the call or account that will be billed for calls made by this channel. </dd></dl>

</div>
</div><p>
<a class="anchor" name="b6196c00a7b0597032e9f05c192d184a"></a><!-- doxytag: member="TelEngine::Channel::callAccept" ref="b6196c00a7b0597032e9f05c192d184a" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void callAccept           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on success of incoming call <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification call.execute message just after being dispatched </td></tr>
  </table>
</dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#b6196c00a7b0597032e9f05c192d184a">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="228c24186d7e04a96b391e1bfccf42f7"></a><!-- doxytag: member="TelEngine::Channel::callConnect" ref="228c24186d7e04a96b391e1bfccf42f7" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void callConnect           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Common processing after connecting the outgoing call, should be called from Driver's msgExecute() <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification call.execute message while being dispatched </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="b1002647427dd86e276b0f7ddce4f28c"></a><!-- doxytag: member="TelEngine::Channel::callPrerouted" ref="b1002647427dd86e276b0f7ddce4f28c" args="(Message &amp;msg, bool handled)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool callPrerouted           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>handled</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on progress of prerouting incoming call <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification call.preroute message just after being dispatched </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handled</em>&nbsp;</td><td>True if a handler claimed having handled prerouting </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to continue with the call, false to abort the route </dd></dl>

</div>
</div><p>
<a class="anchor" name="a1ef480b0ae6f1e48080c1787c280bf2"></a><!-- doxytag: member="TelEngine::Channel::callRejected" ref="a1ef480b0ae6f1e48080c1787c280bf2" args="(const char *error, const char *reason=0, const Message *msg=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void callRejected           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>reason</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on failure of incoming call <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>Standard error keyword </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>Textual failure reason </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Pointer to message causing the rejection, if any </td></tr>
  </table>
</dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#871ccaca4cba40444872853bacd99e3f">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="20af7b70238cd69c088a9a2c2f5e0117"></a><!-- doxytag: member="TelEngine::Channel::callRouted" ref="20af7b70238cd69c088a9a2c2f5e0117" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool callRouted           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on progress of routing incoming call <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification call.route message just after being dispatched </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to continue with the call, false to abort the route </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#20af7b70238cd69c088a9a2c2f5e0117">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="fb885242bc7465e25fbd00968c9924a2"></a><!-- doxytag: member="TelEngine::Channel::checkTimers" ref="fb885242bc7465e25fbd00968c9924a2" args="(Message &amp;msg, const Time &amp;tmr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void checkTimers           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1Time.html">Time</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>tmr</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Timer check method, by default handles channel timeouts <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Timer message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tmr</em>&nbsp;</td><td>Current time against which timers are compared </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="4b66d5e31b5dc18b314c8a68163263bd"></a><!-- doxytag: member="TelEngine::Channel::cleanup" ref="4b66d5e31b5dc18b314c8a68163263bd" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cleanup           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Perform destruction time cleanup. You can call this method earlier if destruction is to be postponed. 
</div>
</div><p>
<a class="anchor" name="b12bae1b93c0b7a44a1b72fbc463b7ff"></a><!-- doxytag: member="TelEngine::Channel::complete" ref="b12bae1b93c0b7a44a1b72fbc463b7ff" args="(Message &amp;msg, bool minimal=false) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void complete           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>minimal</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Put channel variables into a message <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td><a class="el" href="classTelEngine_1_1Message.html" title="A message container class.">Message</a> to fill in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>minimal</em>&nbsp;</td><td>True to fill in only a minimum of parameters </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="4dcae0def3a8269363f598b64f2b856e"></a><!-- doxytag: member="TelEngine::Channel::connected" ref="4dcae0def3a8269363f598b64f2b856e" args="(const char *reason)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void connected           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>reason</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Connect notification method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>Text that describes connect reason. </td></tr>
  </table>
</dl>

<p>Reimplemented from <a class="el" href="classTelEngine_1_1CallEndpoint.html#4dcae0def3a8269363f598b64f2b856e">CallEndpoint</a>.</p>

</div>
</div><p>
<a class="anchor" name="7b0bb118a2090e44b170d3e1240f4c2b"></a><!-- doxytag: member="TelEngine::Channel::direction" ref="7b0bb118a2090e44b170d3e1240f4c2b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* direction           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the direction of the channel as string <dl class="return" compact><dt><b>Returns:</b></dt><dd>"incoming" or "outgoing" according to the direction </dd></dl>

</div>
</div><p>
<a class="anchor" name="f8eecda3d9df4ea9382b7faf58cb14c1"></a><!-- doxytag: member="TelEngine::Channel::disconnected" ref="f8eecda3d9df4ea9382b7faf58cb14c1" args="(bool final, const char *reason)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void disconnected           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>final</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Disconnect notification method. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>final</em>&nbsp;</td><td>True if this disconnect was called from the destructor. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>Text that describes disconnect reason. </td></tr>
  </table>
</dl>

<p>Reimplemented from <a class="el" href="classTelEngine_1_1CallEndpoint.html#f8eecda3d9df4ea9382b7faf58cb14c1">CallEndpoint</a>.</p>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#f8eecda3d9df4ea9382b7faf58cb14c1">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="de4137125c697539bd432f779f3836be"></a><!-- doxytag: member="TelEngine::Channel::driver" ref="de4137125c697539bd432f779f3836be" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1Driver.html">Driver</a>* driver           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the driver of this channel <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to this channel's driver </dd></dl>

</div>
</div><p>
<a class="anchor" name="00def9c0322a2b7e220d3968228cd791"></a><!-- doxytag: member="TelEngine::Channel::dropChan" ref="00def9c0322a2b7e220d3968228cd791" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dropChan           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove the channel from the parent driver list 
</div>
</div><p>
<a class="anchor" name="3c4453e150db26046f963e447ad0fb6e"></a><!-- doxytag: member="TelEngine::Channel::dtmfEnqueue" ref="3c4453e150db26046f963e447ad0fb6e" args="(Message *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool dtmfEnqueue           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add sequence number to chan.dtmf and enqueue it, delete if duplicate <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>chan.dtmf message to sequence and enqueue </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the message was enqueued, false if was a duplicate </dd></dl>

</div>
</div><p>
<a class="anchor" name="21d84093e70fd483ed84202846e69ada"></a><!-- doxytag: member="TelEngine::Channel::dtmfInband" ref="21d84093e70fd483ed84202846e69ada" args="(const char *tone)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool dtmfInband           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>tone</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Attempt to install an override data source to send DTMF inband. Needs a tone generator module capable to override with "tone/dtmfstr/xyz" <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tone</em>&nbsp;</td><td>Pointer to the tone sequence to send </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True on success </dd></dl>

</div>
</div><p>
<a class="anchor" name="7470256a1a04412a3d3266139101ff43"></a><!-- doxytag: member="TelEngine::Channel::dtmfSequence" ref="7470256a1a04412a3d3266139101ff43" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool dtmfSequence           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add sequence number to chan.dtmf message, check for duplicates <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>chan.dtmf message to apply sequence number </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the message is a duplicate (same tone, different method) </dd></dl>

</div>
</div><p>
<a class="anchor" name="c36edf8c403de97f9b13aa21ec522bb3"></a><!-- doxytag: member="TelEngine::Channel::filterDebug" ref="c36edf8c403de97f9b13aa21ec522bb3" args="(const String &amp;item)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void filterDebug           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>item</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Enable or disable debugging according to driver's filter rules <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>item</em>&nbsp;</td><td>Value of the item to match </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="aa71c3294b1a073c3ad0b64a2ed6325a"></a><!-- doxytag: member="TelEngine::Channel::getObject" ref="aa71c3294b1a073c3ad0b64a2ed6325a" args="(const String &amp;name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void* getObject           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get a pointer to a derived class given that class name <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the class we are asking for </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the requested class or NULL if this object doesn't implement it </dd></dl>

<p>Reimplemented from <a class="el" href="classTelEngine_1_1CallEndpoint.html#aa71c3294b1a073c3ad0b64a2ed6325a">CallEndpoint</a>.</p>

</div>
</div><p>
<a class="anchor" name="46023e0515705cbf89af0cdfff723a42"></a><!-- doxytag: member="TelEngine::Channel::isAnswered" ref="46023e0515705cbf89af0cdfff723a42" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isAnswered           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check if the call was answered or not <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the call was answered </dd></dl>

</div>
</div><p>
<a class="anchor" name="c7b578c32ac980a62fd845aa40dab5cd"></a><!-- doxytag: member="TelEngine::Channel::isIncoming" ref="c7b578c32ac980a62fd845aa40dab5cd" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isIncoming           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the direction of the channel <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the channel is an incoming call (generated remotely) </dd></dl>

</div>
</div><p>
<a class="anchor" name="07940f718d7777b6870e84d4f027e709"></a><!-- doxytag: member="TelEngine::Channel::isOutgoing" ref="07940f718d7777b6870e84d4f027e709" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool isOutgoing           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the direction of the channel <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the channel is an outgoing call (generated locally) </dd></dl>

</div>
</div><p>
<a class="anchor" name="afa13a29483b7cb5ca21b120413dbf3a"></a><!-- doxytag: member="TelEngine::Channel::lastPeerId" ref="afa13a29483b7cb5ca21b120413dbf3a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>&amp; lastPeerId           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the last connected peer id <dl class="return" compact><dt><b>Returns:</b></dt><dd>The last connected peer id </dd></dl>

</div>
</div><p>
<a class="anchor" name="9fcfaecfd4c73453cec3d45b3066d039"></a><!-- doxytag: member="TelEngine::Channel::maxcall" ref="9fcfaecfd4c73453cec3d45b3066d039" args="(u_int64_t tout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void maxcall           </td>
          <td>(</td>
          <td class="paramtype">u_int64_t&nbsp;</td>
          <td class="paramname"> <em>tout</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the time this channel will time out on outgoing calls <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tout</em>&nbsp;</td><td>New timeout time or zero to disable </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d3933d9fd7bc97bd3f2417f6e1fa83e5"></a><!-- doxytag: member="TelEngine::Channel::maxcall" ref="d3933d9fd7bc97bd3f2417f6e1fa83e5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int64_t maxcall           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the time this channel will time out on outgoing calls <dl class="return" compact><dt><b>Returns:</b></dt><dd>Timeout time or zero if no timeout </dd></dl>

</div>
</div><p>
<a class="anchor" name="9aa44e44e13aeaed287d36832bb0146a"></a><!-- doxytag: member="TelEngine::Channel::message" ref="9aa44e44e13aeaed287d36832bb0146a" args="(const char *name, const NamedList &amp;original, const char *params=0, bool minimal=false, bool data=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1Message.html">Message</a>* message           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>original</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>params</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>minimal</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>data</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a filled notification message, copy some parameters from another message <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the message to create </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>original</em>&nbsp;</td><td>Parameters to copy from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>Comma separated list of parameters to copy, if NULL will be taken from the "copyparams" parameter of original </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>minimal</em>&nbsp;</td><td>Set to true to fill in only a minimum of parameters </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Set the channel as message data </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new allocated and parameter filled message </dd></dl>

<p>References <a class="el" href="yatephone_8h-source.html#l01574">Channel::message()</a>.</p>

<p>Referenced by <a class="el" href="yatephone_8h-source.html#l01574">Channel::message()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3ac62862cba2e5757f9b400a95605e4e"></a><!-- doxytag: member="TelEngine::Channel::message" ref="3ac62862cba2e5757f9b400a95605e4e" args="(const char *name, const NamedList *original, const char *params=0, bool minimal=false, bool data=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1Message.html">Message</a>* message           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> *&nbsp;</td>
          <td class="paramname"> <em>original</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>params</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>minimal</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>data</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a filled notification message, copy some parameters from another message <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the message to create </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>original</em>&nbsp;</td><td>Parameters to copy from, can be NULL </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>Comma separated list of parameters to copy, if NULL will be taken from the "copyparams" parameter of original </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>minimal</em>&nbsp;</td><td>Set to true to fill in only a minimum of parameters </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Set the channel as message data </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new allocated and parameter filled message </dd></dl>

</div>
</div><p>
<a class="anchor" name="9a87609112f832f8c12a26d2cfc5b760"></a><!-- doxytag: member="TelEngine::Channel::message" ref="9a87609112f832f8c12a26d2cfc5b760" args="(const char *name, bool minimal=false, bool data=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classTelEngine_1_1Message.html">Message</a>* message           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>minimal</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>data</em> = <code>false</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create a filled notification message <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Name of the message to create </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>minimal</em>&nbsp;</td><td>Set to true to fill in only a minimum of parameters </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>Set the channel as message data </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A new allocated and parameter filled message </dd></dl>

</div>
</div><p>
<a class="anchor" name="60097ee73cb6411471467da98ff3c014"></a><!-- doxytag: member="TelEngine::Channel::msgAnswered" ref="60097ee73cb6411471467da98ff3c014" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgAnswered           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on remote answered. Note that the answered flag will be set <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#60097ee73cb6411471467da98ff3c014">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="b5cd14d6694e4d21721acde16a01be35"></a><!-- doxytag: member="TelEngine::Channel::msgControl" ref="b5cd14d6694e4d21721acde16a01be35" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgControl           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Control message handler that is invoked only for messages to this channel <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Control message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="4b96a8fd6c1dc96dbb7a3bcc31fef0ea"></a><!-- doxytag: member="TelEngine::Channel::msgDrop" ref="4b96a8fd6c1dc96dbb7a3bcc31fef0ea" args="(Message &amp;msg, const char *reason)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgDrop           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>reason</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on current call drop request <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reason</em>&nbsp;</td><td>Pointer to drop reason text or NULL if none provided </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if initiated call drop, false if failed </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#4b96a8fd6c1dc96dbb7a3bcc31fef0ea">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="0bf5265db6c57cf75fc27e74fe0afef5"></a><!-- doxytag: member="TelEngine::Channel::msgMasquerade" ref="0bf5265db6c57cf75fc27e74fe0afef5" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgMasquerade           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on message masquerade as channel request <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td><a class="el" href="classTelEngine_1_1Message.html" title="A message container class.">Message</a> already modified to masquerade as this channel </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to masquerade it </dd></dl>

</div>
</div><p>
<a class="anchor" name="2245bcc7008090dfd5d201733f453847"></a><!-- doxytag: member="TelEngine::Channel::msgProgress" ref="2245bcc7008090dfd5d201733f453847" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgProgress           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on remote call making some progress, not enabled by default <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#2245bcc7008090dfd5d201733f453847">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="07f2ebd8defa68d0c320ae09337b184a"></a><!-- doxytag: member="TelEngine::Channel::msgRinging" ref="07f2ebd8defa68d0c320ae09337b184a" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgRinging           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on remote ringing <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

<p>Reimplemented in <a class="el" href="classTelEngine_1_1ClientChannel.html#07f2ebd8defa68d0c320ae09337b184a">ClientChannel</a>.</p>

</div>
</div><p>
<a class="anchor" name="b0e7bac83e35ee6e8bf3e66faa094efd"></a><!-- doxytag: member="TelEngine::Channel::msgStatus" ref="b0e7bac83e35ee6e8bf3e66faa094efd" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void msgStatus           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Status message handler that is invoked only for messages to this channel <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Status message </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="da2eac980aa03bf1cd97e1dd988371a0"></a><!-- doxytag: member="TelEngine::Channel::msgText" ref="da2eac980aa03bf1cd97e1dd988371a0" args="(Message &amp;msg, const char *text)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgText           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>text</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on remote text messaging (sms) <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>text</em>&nbsp;</td><td>Pointer to the received text </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="615ee3d575ac34a6e98bf3ea1cb1614f"></a><!-- doxytag: member="TelEngine::Channel::msgTone" ref="615ee3d575ac34a6e98bf3ea1cb1614f" args="(Message &amp;msg, const char *tone)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgTone           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>tone</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on remote tone(s) <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tone</em>&nbsp;</td><td>Pointer to the received tone(s) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="161e32aee260e4e56b8b974ea256937c"></a><!-- doxytag: member="TelEngine::Channel::msgTransfer" ref="161e32aee260e4e56b8b974ea256937c" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgTransfer           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on native transfer request <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="c7d3de7def40a3d116ed7e8dd83ed595"></a><!-- doxytag: member="TelEngine::Channel::msgUpdate" ref="c7d3de7def40a3d116ed7e8dd83ed595" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool msgUpdate           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Notification on call parameters update request <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Notification message </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True to stop processing the message, false to let it flow </dd></dl>

</div>
</div><p>
<a class="anchor" name="4b839b942f83fac8c7f77d7dea781838"></a><!-- doxytag: member="TelEngine::Channel::setDebug" ref="4b839b942f83fac8c7f77d7dea781838" args="(Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool setDebug           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the local debugging level <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Debug setting message </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="c4ccba85920a559795b0b5ffb9ad060a"></a><!-- doxytag: member="TelEngine::Channel::setId" ref="c4ccba85920a559795b0b5ffb9ad060a" args="(const char *newId)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void setId           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>newId</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a new ID for this channel <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>newId</em>&nbsp;</td><td>New ID to set to this channel </td></tr>
  </table>
</dl>

<p>Reimplemented from <a class="el" href="classTelEngine_1_1CallEndpoint.html#c4ccba85920a559795b0b5ffb9ad060a">CallEndpoint</a>.</p>

</div>
</div><p>
<a class="anchor" name="7ac507d97032fc2c856a05303fc4dd87"></a><!-- doxytag: member="TelEngine::Channel::setMaxcall" ref="7ac507d97032fc2c856a05303fc4dd87" args="(const Message *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setMaxcall           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the time this channel will time out on outgoing calls <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Pointer to message possibly holding "maxcall" parameter </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="1a12f6f0ba6f520f5cb265f9a6ddcda7"></a><!-- doxytag: member="TelEngine::Channel::setMaxcall" ref="1a12f6f0ba6f520f5cb265f9a6ddcda7" args="(const Message &amp;msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setMaxcall           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classTelEngine_1_1Message.html">Message</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the time this channel will time out on outgoing calls <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Reference of message possibly holding "maxcall" parameter </td></tr>
  </table>
</dl>

<p>References <a class="el" href="yatephone_8h-source.html#l01785">Channel::setMaxcall()</a>.</p>

<p>Referenced by <a class="el" href="yatephone_8h-source.html#l01785">Channel::setMaxcall()</a>.</p>

</div>
</div><p>
<a class="anchor" name="506f7e465513a50f88237f6ccc03699b"></a><!-- doxytag: member="TelEngine::Channel::setOutgoing" ref="506f7e465513a50f88237f6ccc03699b" args="(bool outgoing=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setOutgoing           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>outgoing</em> = <code>true</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the current direction of the channel <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>outgoing</em>&nbsp;</td><td>True if this is an outgoing call channel </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="ae4d2fe1b57b168f78513ce43b896e2f"></a><!-- doxytag: member="TelEngine::Channel::startRouter" ref="ae4d2fe1b57b168f78513ce43b896e2f" args="(Message *msg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool startRouter           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1Message.html">Message</a> *&nbsp;</td>
          <td class="paramname"> <em>msg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Start a routing thread for this channel, dereference dynamic channels <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg</em>&nbsp;</td><td>Pointer to message to route, typically a "call.route", will be destroyed after routing fails or completes </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True if routing thread started successfully, false if failed </dd></dl>

</div>
</div><p>
<a class="anchor" name="f968f68b4db2fba84d669ac0110d4da0"></a><!-- doxytag: member="TelEngine::Channel::status" ref="f968f68b4db2fba84d669ac0110d4da0" args="(const char *newstat)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void status           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>newstat</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the current status of the channel. Note that a value of "answered" will set the answered flag <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>newstat</em>&nbsp;</td><td>The new status as <a class="el" href="classTelEngine_1_1String.html" title="A C-style string handling class.">String</a> </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="89af19d58d2d27ed45e9881623867169"></a><!-- doxytag: member="TelEngine::Channel::status" ref="89af19d58d2d27ed45e9881623867169" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>&amp; status           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the current status of the channel <dl class="return" compact><dt><b>Returns:</b></dt><dd>The current status as <a class="el" href="classTelEngine_1_1String.html" title="A C-style string handling class.">String</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="0b03ee0e462004bbe59a7bcd1b6f7f3c"></a><!-- doxytag: member="TelEngine::Channel::statusParams" ref="0b03ee0e462004bbe59a7bcd1b6f7f3c" args="(String &amp;str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void statusParams           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classTelEngine_1_1String.html">String</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>str</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Build the parameter reporting part of the status answer <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td><a class="el" href="classTelEngine_1_1String.html" title="A C-style string handling class.">String</a> variable to fill up </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="329ba42faea3dcc5e1ff8c7974e902c6"></a><!-- doxytag: member="TelEngine::Channel::targetid" ref="329ba42faea3dcc5e1ff8c7974e902c6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classTelEngine_1_1String.html">String</a>&amp; targetid           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the connected channel identifier. <dl class="return" compact><dt><b>Returns:</b></dt><dd>A <a class="el" href="classTelEngine_1_1String.html" title="A C-style string handling class.">String</a> holding the unique channel id of the target or an empty string if this channel is not connected to a target. </dd></dl>

</div>
</div><p>
<a class="anchor" name="2d3c5861b45c960a3097aaaf8093c7f5"></a><!-- doxytag: member="TelEngine::Channel::timeout" ref="2d3c5861b45c960a3097aaaf8093c7f5" args="(u_int64_t tout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void timeout           </td>
          <td>(</td>
          <td class="paramtype">u_int64_t&nbsp;</td>
          <td class="paramname"> <em>tout</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the time this channel will time out <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tout</em>&nbsp;</td><td>New timeout time or zero to disable </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="023348f4bef371c975e853db8d4011db"></a><!-- doxytag: member="TelEngine::Channel::timeout" ref="023348f4bef371c975e853db8d4011db" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u_int64_t timeout           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the time this channel will time out <dl class="return" compact><dt><b>Returns:</b></dt><dd>Timeout time or zero if no timeout </dd></dl>

</div>
</div><p>
<a class="anchor" name="b499bd067a661f7e80e5c01d056e168c"></a><!-- doxytag: member="TelEngine::Channel::toneDetect" ref="b499bd067a661f7e80e5c01d056e168c" args="(const char *sniffer=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool toneDetect           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>sniffer</em> = <code>0</code>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Attempt to install a data sniffer to detect inband tones Needs a tone detector module capable of attaching sniffer consumers. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>sniffer</em>&nbsp;</td><td>Name of the sniffer to install, default will detect all tones </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>True on success </dd></dl>

</div>
</div><p>
<a class="anchor" name="0a76988705940cb01d55d360049f57e4"></a><!-- doxytag: member="TelEngine::Channel::zeroRefs" ref="0a76988705940cb01d55d360049f57e4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void zeroRefs           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This method is overriden to safely remove the channel from the parent driver list before actually destroying the channel. 
<p>Reimplemented from <a class="el" href="classTelEngine_1_1RefObject.html#0a76988705940cb01d55d360049f57e4">RefObject</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="yatephone_8h-source.html">yatephone.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:12 2008 for Yate by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>