<!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 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 List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class 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 <<a class="el" href="yatephone_8h-source.html">yatephone.h</a>></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 </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 * </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> &name) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </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> &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> * </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> * </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> * </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> &original, const char *params=0, bool minimal=false, bool data=false)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg, const char *tone)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg, const char *text)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg, const char *reason)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </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> &msg, const <a class="el" href="classTelEngine_1_1Time.html">Time</a> &tmr)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg, bool handled)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </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 </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </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> & </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 </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 </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 </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 * </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> * </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 </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 </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 </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 </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 </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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> & </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> & </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> & </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 </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 </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> &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 </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"> </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"> </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> &driver, const char *id=0, bool outgoing=false)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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 </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 </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 </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 </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 </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 </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 </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> &str)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </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 </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> &msg)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">bool </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 </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 </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> </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> </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> </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> </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 </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 </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 </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 & 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> ) </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> * </td> <td class="paramname"> <em>driver</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>id</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>outgoing</em> = <code>false</code></td><td> </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 &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> & </td> <td class="paramname"> <em>driver</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>id</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>outgoing</em> = <code>false</code></td><td> </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>& address </td> <td>(</td> <td class="paramname"> </td> <td> ) </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> ) </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>& billid </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>handled</em></td><td> </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> </td><td>Notification call.preroute message just after being dispatched </td></tr> <tr><td valign="top"></td><td valign="top"><em>handled</em> </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 * </td> <td class="paramname"> <em>error</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </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> * </td> <td class="paramname"> <em>msg</em> = <code>0</code></td><td> </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> </td><td>Standard error keyword </td></tr> <tr><td valign="top"></td><td valign="top"><em>reason</em> </td><td>Textual failure reason </td></tr> <tr><td valign="top"></td><td valign="top"><em>msg</em> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &msg, const Time &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> & </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> & </td> <td class="paramname"> <em>tmr</em></td><td> </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> </td><td>Timer message </td></tr> <tr><td valign="top"></td><td valign="top"><em>tmr</em> </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> ) </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 &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> & </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>minimal</em> = <code>false</code></td><td> </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> </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> </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 * </td> <td class="paramname"> <em>reason</em> </td> <td> ) </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> </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> ) </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 </td> <td class="paramname"> <em>final</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>reason</em></td><td> </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> </td><td>True if this disconnect was called from the destructor. </td></tr> <tr><td valign="top"></td><td valign="top"><em>reason</em> </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> ) </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> ) </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> * </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 * </td> <td class="paramname"> <em>tone</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>item</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>name</em> </td> <td> ) </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> </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> ) </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> ) </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> ) </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>& lastPeerId </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 </td> <td class="paramname"> <em>tout</em> </td> <td> ) </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> </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> ) </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 &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 * </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> & </td> <td class="paramname"> <em>original</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>params</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>minimal</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>data</em> = <code>false</code></td><td> </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> </td><td>Name of the message to create </td></tr> <tr><td valign="top"></td><td valign="top"><em>original</em> </td><td>Parameters to copy from </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </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> </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> </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 * </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> * </td> <td class="paramname"> <em>original</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>params</em> = <code>0</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>minimal</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>data</em> = <code>false</code></td><td> </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> </td><td>Name of the message to create </td></tr> <tr><td valign="top"></td><td valign="top"><em>original</em> </td><td>Parameters to copy from, can be NULL </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </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> </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> </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 * </td> <td class="paramname"> <em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>minimal</em> = <code>false</code>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>data</em> = <code>false</code></td><td> </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> </td><td>Name of the message to create </td></tr> <tr><td valign="top"></td><td valign="top"><em>minimal</em> </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>reason</em></td><td> </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> </td><td>Notification message </td></tr> <tr><td valign="top"></td><td valign="top"><em>reason</em> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>text</em></td><td> </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> </td><td>Notification message </td></tr> <tr><td valign="top"></td><td valign="top"><em>text</em> </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 &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> & </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>tone</em></td><td> </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> </td><td>Notification message </td></tr> <tr><td valign="top"></td><td valign="top"><em>tone</em> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 * </td> <td class="paramname"> <em>newId</em> </td> <td> ) </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> </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> * </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 &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> & </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 </td> <td class="paramname"> <em>outgoing</em> = <code>true</code> </td> <td> ) </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> </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> * </td> <td class="paramname"> <em>msg</em> </td> <td> ) </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> </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 * </td> <td class="paramname"> <em>newstat</em> </td> <td> ) </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> </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>& status </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 &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> & </td> <td class="paramname"> <em>str</em> </td> <td> ) </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> </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>& targetid </td> <td>(</td> <td class="paramname"> </td> <td> ) </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 </td> <td class="paramname"> <em>tout</em> </td> <td> ) </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> </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> ) </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 * </td> <td class="paramname"> <em>sniffer</em> = <code>0</code> </td> <td> ) </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> </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> ) </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 <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>