<!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: SignallingUtils 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_1SignallingUtils.html">SignallingUtils</a> </div> </div> <div class="contents"> <h1>SignallingUtils Class Reference</h1><!-- doxytag: class="TelEngine::SignallingUtils" -->Library wide services and data provider. <a href="#_details">More...</a> <p> <code>#include <<a class="el" href="yatesig_8h-source.html">yatesig.h</a>></code> <p> <p> <a href="classTelEngine_1_1SignallingUtils-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></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 const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#d69b6146f565eb21bc676a53254ba719">codings</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#d5c084ca43403ae08240ad8441ebc303">locations</a> ()</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#477f055827aa343f8f12436612ad68f4">dict</a> (unsigned int index, unsigned char coding=0)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#1a88634c43e2d34041d52590272ec493">hasFlag</a> (const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const char *param, const char *flag)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#ff529371dcd1caebdec0e1440e0990e1">removeFlag</a> (<a class="el" href="classTelEngine_1_1String.html">String</a> &flags, const char *flag)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#5707b98955540fdebc44f066af591436">addKeyword</a> (<a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const char *param, const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> *tokens, unsigned int val)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#9f2bed5da177769198b6cfb69af234c9">dumpData</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const char *param, const unsigned char *buf, unsigned int len, char sep= ' ')</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_1SignallingUtils.html#b6504641721495fc1ae3f58a25b4de86">dumpDataExt</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const char *param, const unsigned char *buf, unsigned int len, char sep= ' ')</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#ff0f178dbef6ff8dfd41dc3a95fdc1eb">decodeFlags</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const char *param, const <a class="el" href="structTelEngine_1_1SignallingFlags.html">SignallingFlags</a> *flags, const unsigned char *buf, unsigned int len)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#2ebffcae941ba162503d9c67259959b3">decodeCause</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const unsigned char *buf, unsigned int len, const char *prefix, bool isup)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#032d00b0b7a994c68aca27535cc768df">decodeCaps</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &list, const unsigned char *buf, unsigned int len, const char *prefix, bool isup)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#2724b7363497ee62fdc74a526a43ed02">encodeFlags</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, int &dest, const <a class="el" href="classTelEngine_1_1String.html">String</a> &flags, <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> *dict)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#1a87bc5d054f2d05e029bde17ecd9591">encodeCause</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &buf, const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &params, const char *prefix, bool isup, bool fail=false)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classTelEngine_1_1SignallingUtils.html#3b4e10b0a2e64ebcddb1d82e66b52fc5">encodeCaps</a> (const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> *comp, <a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> &buf, const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> &params, const char *prefix, bool isup)</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_1SignallingUtils.html#bb7f15e357ba2d442c2cdac5c21a8fb8">parseUIntArray</a> (const <a class="el" href="classTelEngine_1_1String.html">String</a> &source, unsigned int minVal, unsigned int maxVal, unsigned int &count, bool discardDup)</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Library wide services and data provider. <p> Provides data and services for SS7 and ISDN <hr><h2>Member Function Documentation</h2> <a class="anchor" name="5707b98955540fdebc44f066af591436"></a><!-- doxytag: member="TelEngine::SignallingUtils::addKeyword" ref="5707b98955540fdebc44f066af591436" args="(NamedList &list, const char *param, const TokenDict *tokens, unsigned int val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void addKeyword </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> * </td> <td class="paramname"> <em>tokens</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Add string (keyword) if found in a dictionary or integer parameter to a named list <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>Destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>param</em> </td><td>Parameter to add to the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>tokens</em> </td><td>The dictionary used to find the given value </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>The value to find/add to the list </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="d69b6146f565eb21bc676a53254ba719"></a><!-- doxytag: member="TelEngine::SignallingUtils::codings" ref="d69b6146f565eb21bc676a53254ba719" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a>* codings </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retreive the dictionary keeping the coding standard flags of ISUP and ISDN parameters as defined in Q.850 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the coding standards dictionary </dd></dl> </div> </div><p> <a class="anchor" name="032d00b0b7a994c68aca27535cc768df"></a><!-- doxytag: member="TelEngine::SignallingUtils::decodeCaps" ref="032d00b0b7a994c68aca27535cc768df" args="(const SignallingComponent *comp, NamedList &list, const unsigned char *buf, unsigned int len, const char *prefix, bool isup)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool decodeCaps </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>prefix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>isup</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Decode bearer capabilities as defined in Q.931 (Bearer Capabilities) and Q.763 (User Service Information) <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The buffer containing the data to parse </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Buffer's length </td></tr> <tr><td valign="top"></td><td valign="top"><em>prefix</em> </td><td>The prefix to add to the fields before adding to the destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>isup</em> </td><td>True if the requestor is ISUP, false for ISDN requestor </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if successfully parsed </dd></dl> </div> </div><p> <a class="anchor" name="2ebffcae941ba162503d9c67259959b3"></a><!-- doxytag: member="TelEngine::SignallingUtils::decodeCause" ref="2ebffcae941ba162503d9c67259959b3" args="(const SignallingComponent *comp, NamedList &list, const unsigned char *buf, unsigned int len, const char *prefix, bool isup)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool decodeCause </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>prefix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>isup</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Decode cause parameters as defined in Q.850 <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The buffer containing the data to parse </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Buffer's length </td></tr> <tr><td valign="top"></td><td valign="top"><em>prefix</em> </td><td>The prefix to add to the fields before adding to the destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>isup</em> </td><td>True if the requestor is ISUP, false for ISDN requestor </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if successfully parsed </dd></dl> </div> </div><p> <a class="anchor" name="ff0f178dbef6ff8dfd41dc3a95fdc1eb"></a><!-- doxytag: member="TelEngine::SignallingUtils::decodeFlags" ref="ff0f178dbef6ff8dfd41dc3a95fdc1eb" args="(const SignallingComponent *comp, NamedList &list, const char *param, const SignallingFlags *flags, const unsigned char *buf, unsigned int len)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool decodeFlags </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structTelEngine_1_1SignallingFlags.html">SignallingFlags</a> * </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>len</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Decode a received buffer to a comma separated list of flags and add it to a list of parameters <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>param</em> </td><td>The parameter to add to the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>The flags description to use </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The buffer containing the data to parse </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Buffer's length </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>False if the flags description or the buffer is missing or the buffer's length exceeds the length of the 'unsigned int' data type </dd></dl> </div> </div><p> <a class="anchor" name="477f055827aa343f8f12436612ad68f4"></a><!-- doxytag: member="TelEngine::SignallingUtils::dict" ref="477f055827aa343f8f12436612ad68f4" args="(unsigned int index, unsigned char coding=0)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a>* dict </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>index</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned char </td> <td class="paramname"> <em>coding</em> = <code>0</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retreive a dictionary given by index and coding standard for ISUP and ISDN parameters <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>The desired disctionary: 0: The release causes of ISUP and ISDN calls as defined in Q.850. 1: The formats negotiated in ISDN and ISUP parameters as defined in Q.931/Q.763. 2: The transfer capability negotiated in ISDN and ISUP parameters as defined in Q.931/Q.763. 3: The transfer mode negotiated in ISDN and ISUP parameters as defined in Q.931/Q.763. 4: The transfer rate negotiated in ISDN and ISUP parameters as defined in Q.931/Q.763. </td></tr> <tr><td valign="top"></td><td valign="top"><em>coding</em> </td><td>Optional coding standard. Defaults to CCITT if 0 </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the requested dictionary or 0 </dd></dl> </div> </div><p> <a class="anchor" name="9f2bed5da177769198b6cfb69af234c9"></a><!-- doxytag: member="TelEngine::SignallingUtils::dumpData" ref="9f2bed5da177769198b6cfb69af234c9" args="(const SignallingComponent *comp, NamedList &list, const char *param, const unsigned char *buf, unsigned int len, char sep= ' ')" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void dumpData </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char </td> <td class="paramname"> <em>sep</em> = <code>' '</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Dump a buffer to a list of parameters <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>param</em> </td><td>Parameter to add to the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The buffer containing the data to dump </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Buffer's length </td></tr> <tr><td valign="top"></td><td valign="top"><em>sep</em> </td><td>The separator between elements </td></tr> </table> </dl> </div> </div><p> <a class="anchor" name="b6504641721495fc1ae3f58a25b4de86"></a><!-- doxytag: member="TelEngine::SignallingUtils::dumpDataExt" ref="b6504641721495fc1ae3f58a25b4de86" args="(const SignallingComponent *comp, NamedList &list, const char *param, const unsigned char *buf, unsigned int len, char sep= ' ')" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static unsigned int dumpDataExt </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const unsigned char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char </td> <td class="paramname"> <em>sep</em> = <code>' '</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Dump data from a buffer to a list of parameters. The buffer is parsed until (and including) the first byte with the extension bit (the most significant one) 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>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>list</em> </td><td>The destination list </td></tr> <tr><td valign="top"></td><td valign="top"><em>param</em> </td><td>Parameter to add to the list </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The buffer containing the data to dump </td></tr> <tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>Buffer's length </td></tr> <tr><td valign="top"></td><td valign="top"><em>sep</em> </td><td>The separator between elements </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The number of bytes processed. 0 if the end of the buffer was reached without finding a byte with the extension bit set </dd></dl> </div> </div><p> <a class="anchor" name="3b4e10b0a2e64ebcddb1d82e66b52fc5"></a><!-- doxytag: member="TelEngine::SignallingUtils::encodeCaps" ref="3b4e10b0a2e64ebcddb1d82e66b52fc5" args="(const SignallingComponent *comp, DataBlock &buf, const NamedList &params, const char *prefix, bool isup)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool encodeCaps </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> & </td> <td class="paramname"> <em>buf</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>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>prefix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>isup</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Encode bearer capabilities as defined in Q.931 (Bearer Capabilities) and Q.763 (User Service Information) <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The destination buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>The list with the parameters </td></tr> <tr><td valign="top"></td><td valign="top"><em>prefix</em> </td><td>The prefix of the fields obtained from parameter list </td></tr> <tr><td valign="top"></td><td valign="top"><em>isup</em> </td><td>True if the requestor is ISUP, false for ISDN requestor </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True </dd></dl> </div> </div><p> <a class="anchor" name="1a87bc5d054f2d05e029bde17ecd9591"></a><!-- doxytag: member="TelEngine::SignallingUtils::encodeCause" ref="1a87bc5d054f2d05e029bde17ecd9591" args="(const SignallingComponent *comp, DataBlock &buf, const NamedList &params, const char *prefix, bool isup, bool fail=false)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool encodeCause </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classTelEngine_1_1DataBlock.html">DataBlock</a> & </td> <td class="paramname"> <em>buf</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>params</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>prefix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>isup</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>fail</em> = <code>false</code></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Encode cause parameters as defined in Q.850. Create with normal clearing value if parameter is missing. Don't encode diagnostic if total length exceeds 32 bytes for Q.931 requestor <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>The destination buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>params</em> </td><td>The list with the parameters </td></tr> <tr><td valign="top"></td><td valign="top"><em>prefix</em> </td><td>The prefix of the fields obtained from parameter list </td></tr> <tr><td valign="top"></td><td valign="top"><em>isup</em> </td><td>True if the requestor is ISUP, false for ISDN requestor </td></tr> <tr><td valign="top"></td><td valign="top"><em>fail</em> </td><td>Fail if the buffer is too long. Ignored if isup is true </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>False if the requestor is Q.931, fail is true and the length exceeds 32 bytes </dd></dl> </div> </div><p> <a class="anchor" name="2724b7363497ee62fdc74a526a43ed02"></a><!-- doxytag: member="TelEngine::SignallingUtils::encodeFlags" ref="2724b7363497ee62fdc74a526a43ed02" args="(const SignallingComponent *comp, int &dest, const String &flags, TokenDict *dict)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void encodeFlags </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1SignallingComponent.html">SignallingComponent</a> * </td> <td class="paramname"> <em>comp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int & </td> <td class="paramname"> <em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a> * </td> <td class="paramname"> <em>dict</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Encode a comma separated list of flags. Flags can be prefixed with the '-' character to be reset if previously 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>comp</em> </td><td>Signalling component requesting the service. Used to print debug messages </td></tr> <tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>Destination flak mask </td></tr> <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>The flag list </td></tr> <tr><td valign="top"></td><td valign="top"><em>dict</em> </td><td>Dictionary used to retrive the flag names and values </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>The OR'd value of found flags </dd></dl> </div> </div><p> <a class="anchor" name="1a88634c43e2d34041d52590272ec493"></a><!-- doxytag: member="TelEngine::SignallingUtils::hasFlag" ref="1a88634c43e2d34041d52590272ec493" args="(const NamedList &list, const char *param, const char *flag)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool hasFlag </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1NamedList.html">NamedList</a> & </td> <td class="paramname"> <em>list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>flag</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Check if a list's parameter (comma separated list of flags) has a given 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>list</em> </td><td>The parameter list </td></tr> <tr><td valign="top"></td><td valign="top"><em>param</em> </td><td>The parameter to check </td></tr> <tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>The flag to check </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the given flag is found </dd></dl> </div> </div><p> <a class="anchor" name="d5c084ca43403ae08240ad8441ebc303"></a><!-- doxytag: member="TelEngine::SignallingUtils::locations" ref="d5c084ca43403ae08240ad8441ebc303" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static const <a class="el" href="structTelEngine_1_1TokenDict.html">TokenDict</a>* locations </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Retreive the dictionary keeping the location flags of ISUP and ISDN parameters as defined in Q.850 <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to the locations dictionary </dd></dl> </div> </div><p> <a class="anchor" name="bb7f15e357ba2d442c2cdac5c21a8fb8"></a><!-- doxytag: member="TelEngine::SignallingUtils::parseUIntArray" ref="bb7f15e357ba2d442c2cdac5c21a8fb8" args="(const String &source, unsigned int minVal, unsigned int maxVal, unsigned int &count, bool discardDup)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static unsigned int* parseUIntArray </td> <td>(</td> <td class="paramtype">const <a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>source</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>minVal</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>maxVal</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int & </td> <td class="paramname"> <em>count</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>discardDup</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Parse a list of unsigned integers or unsigned integer intervals. Source elements must be separated by a '.' or ',' character. Interval margins must be separated by a '-' character. Empty elements are ignored <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>source</em> </td><td>The string to parse </td></tr> <tr><td valign="top"></td><td valign="top"><em>minVal</em> </td><td>The minimum value for each element in the array </td></tr> <tr><td valign="top"></td><td valign="top"><em>maxVal</em> </td><td>The maximum value for each element in the array </td></tr> <tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>On exit will contain the length of the returned array (0 on failure) </td></tr> <tr><td valign="top"></td><td valign="top"><em>discardDup</em> </td><td>True to discard duplicate values </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to an array of unsigned integers on success (the caller must delete it after use). 0 on failure (source is empty or has invalid format or an invalid value was found) </dd></dl> </div> </div><p> <a class="anchor" name="ff529371dcd1caebdec0e1440e0990e1"></a><!-- doxytag: member="TelEngine::SignallingUtils::removeFlag" ref="ff529371dcd1caebdec0e1440e0990e1" args="(String &flags, const char *flag)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static bool removeFlag </td> <td>(</td> <td class="paramtype"><a class="el" href="classTelEngine_1_1String.html">String</a> & </td> <td class="paramname"> <em>flags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>flag</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> Remove a flag from a comma separated list of flags <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>flags</em> </td><td>The list of flags </td></tr> <tr><td valign="top"></td><td valign="top"><em>flag</em> </td><td>The flag to remove </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>True if the given flag was found and removed </dd></dl> </div> </div><p> <hr>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="yatesig_8h-source.html">yatesig.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Sun Dec 7 21:36:14 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>