浏览代码

modules/ims_usrloc_pcscf: Updated documentation

Updated documentation and added README for ims_usrloc_pcscf module
Richard Good 12 年之前
父节点
当前提交
e7b5f667a4

+ 214 - 0
modules/ims_usrloc_pcscf/README

@@ -0,0 +1,214 @@
+IMS Usrloc PCSCF Module
+
+Jason Penton
+
+   Smile Communications
+
+Edited by
+
+Richard Good
+
+   Smile Communications
+
+   Copyright © 2012 Smile Communications
+     __________________________________________________________________
+
+   Table of Contents
+
+   1. Admin Guide
+
+        1. Overview
+        2. Dependencies
+
+              2.1. Kamailio Modules
+              2.2. External Libraries or Applications
+
+        3. Parameters
+
+              3.1. hash_size (int)
+              3.2. timer_interval (int)
+
+        4. Functions
+
+              4.1.
+
+        5. RPC Commands
+
+              5.1. ulpcscf.status
+
+        6. Statistics
+
+              6.1. registered contacts
+              6.2. impus
+              6.3. expired contacts
+
+   2. Frequently Asked Questions
+
+   List of Examples
+
+   1.1. Set hash_size parameter
+   1.2. Set timer_interval parameter
+
+Chapter 1. Admin Guide
+
+   Table of Contents
+
+   1. Overview
+   2. Dependencies
+
+        2.1. Kamailio Modules
+        2.2. External Libraries or Applications
+
+   3. Parameters
+
+        3.1. hash_size (int)
+        3.2. timer_interval (int)
+
+   4. Functions
+
+        4.1.
+
+   5. RPC Commands
+
+        5.1. ulpcscf.status
+
+   6. Statistics
+
+        6.1. registered contacts
+        6.2. impus
+        6.3. expired contacts
+
+1. Overview
+
+   This module serves as a storage engine for PCSCF contacts, much like
+   the standard Kamailio module, usrloc, is a storage engine for standard
+   SIP contacts. The concept of a contact in IMS, PCSCF specifically, is
+   very different to that of std. SIP and as a result we have built this
+   new module. Alot of the design has been borrowed from the std. usrloc
+   module. For example. An IMS contact, in PCSCF, needs things like:
+     * Diameter Rx session for signalling bearer status. i.e. this is
+       effectively QoS from the network to make sure the signalling link
+       can be 'trusted'
+     * IPSEC Security Assocation for secure signalling between UE and
+       PCSCF (first point of contact)
+     * IMPU, each contact can have a number of associated public
+       identities (IMPU).
+
+2. Dependencies
+
+   2.1. Kamailio Modules
+   2.2. External Libraries or Applications
+
+2.1. Kamailio Modules
+
+   The following modules must be loaded before this module:
+     * None.
+
+2.2. External Libraries or Applications
+
+   The following libraries or applications must be installed before
+   running Kamailio with this module loaded:
+     * None.
+
+3. Parameters
+
+   3.1. hash_size (int)
+   3.2. timer_interval (int)
+
+3.1. hash_size (int)
+
+   The number of entries of the hash table used by to store the contact
+   records is 2^hash_size. For hash_size=4, the number of entries of the
+   hash table is 16.
+
+   Default value is 9.
+
+   Example 1.1. Set hash_size parameter
+...
+modparam("ims_usrloc_pcscf", "hash_size", 10)
+...
+
+3.2. timer_interval (int)
+
+   Number of seconds between two timer runs. The module uses timer to
+   delete expired contacts.
+
+   Default value is 60.
+
+   Example 1.2. Set timer_interval parameter
+...
+modparam("ims_usrloc_pcscf", "timer_interval", 30)
+...
+
+4. Functions
+
+   4.1.
+
+   There are no exported functions that could be used in scripts.
+
+5. RPC Commands
+
+   5.1. ulpcscf.status
+
+   exported RPC commands.
+
+5.1. ulpcscf.status
+
+   Status of pcscf_usrloc, AORs, max slots, etc.
+
+6. Statistics
+
+   6.1. registered contacts
+   6.2. impus
+   6.3. expired contacts
+
+   Exported statistics are listed in the next sections.
+
+6.1. registered contacts
+
+   Number of AOR contacts in registered state - cannot be reset.
+
+6.2. impus
+
+   Number of IMPUs - cannot be reset.
+
+6.3. expired contacts
+
+   Number of expired contacts - can be reset.
+
+Chapter 2. Frequently Asked Questions
+
+   2.1. Where can I find more about Kamailio?
+   2.2. Where can I post a question about this module?
+   2.3. How can I report a bug?
+
+   2.1.
+
+       Where can I find more about Kamailio?
+
+       Take a look at http://www.kamailio.org/.
+
+   2.2.
+
+       Where can I post a question about this module?
+
+       First at all check if your question was already answered on one of our
+       mailing lists:
+         * User Mailing List -
+           http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
+         * Developer Mailing List -
+           http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
+
+       E-mails regarding any stable Kamailio release should be sent to
+       <[email protected]> and e-mails regarding development
+       versions should be sent to <[email protected]>.
+
+       If you want to keep the mail private, send it to
+       <[email protected]>.
+
+   2.3.
+
+       How can I report a bug?
+
+       Please follow the guidelines provided at:
+       http://sip-router.org/tracker.

+ 1 - 4
modules/ims_usrloc_pcscf/doc/ims_usrloc_pcscf.xml

@@ -7,7 +7,7 @@
 ]>
 <book>
   <bookinfo>
-    <title>cdp Module</title>
+    <title>IMS Usrloc PCSCF Module</title>
 
     <productname class="trade">&kamailioname;</productname>
 
@@ -53,9 +53,6 @@
   <xi:include href="ims_usrloc_pcscf_admin.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
-  <xi:include href="ims_usrloc_pcscf_devel.xml"
-              xmlns:xi="http://www.w3.org/2001/XInclude"/>
-
   <xi:include href="ims_usrloc_pcscf_faq.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude"/>
 </book>

+ 0 - 682
modules/ims_usrloc_pcscf/doc/usrloc_pcscf_devel.xml

@@ -1,682 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
-"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
-<!-- Include general documentation entities -->
-<!ENTITY % docentities SYSTEM "../../../docbook/entities.xml">
-%docentities;
-]>
-<!-- Module Developer's Guide -->
-<chapter>
-  <title>&develguide;</title>
-
-  <section>
-    <title>Available Functions</title>
-
-    <section>
-      <title><function moreinfo="none">load_cdp(struct cdp_binds
-      *cdpb)</function></title>
-
-      <para>Find and load the CDiameterPeer function bindings</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>struct cdp_binds *cdpb</emphasis> - structure
-          holding function pointers</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAACreateRequest(AAAApplicationId
-      app_id, AAACommandCode command_code, AAAMsgFlag flags, AAASession
-      *session)</function></title>
-
-      <para>Create a Diameter request</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAApplicationId app_id</emphasis> - structure
-          holding function pointers</para>
-        </listitem>
-
-        <listitem>
-          <para>AAACommandCode command_code - command code for the
-          message</para>
-        </listitem>
-
-        <listitem>
-          <para>AAAMsgFlag flags - flags to be set</para>
-        </listitem>
-
-        <listitem>
-          <para>AAASession *session - session id to be set</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAACreateResponse(AAAMessage
-      *request)</function></title>
-
-      <para>Create a Diameter response to a give request</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAMessage *request</emphasis> - request that this
-          response is for</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAReturnCode AAAFreeMessage(AAAMessage
-      **msg)</function></title>
-
-      <para>Free up memory used by Diameter message</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAMessage **msg</emphasis> - pointer to the pointer
-          containing the message</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAReturnCode AAASendMessage(AAAMessage
-      *message, AAATransactionCallback_f *callback_f, void
-      *callback_param)</function></title>
-
-      <para>Send Diameter message asynchronously</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAMessage *message</emphasis> - request message to
-          be sent</para>
-        </listitem>
-
-        <listitem>
-          <para>AAATransactionCallback_f *callback_f - When the response is
-          received, the callback_f(callback_param,...) is called</para>
-        </listitem>
-
-        <listitem>
-          <para>void *callback_param - generic param for callback</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAReturnCode
-      AAASendMessageToPeer(AAAMessage *message, str *peer_id,
-      AAATransactionCallback_f *callback_f, void
-      *callback_param)</function></title>
-
-      <para>Send Diameter message to specific peer asynchronously</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAAMessage *message - request message to send</para>
-        </listitem>
-
-        <listitem>
-          <para>str *peer_id - FQDN of peer to send to</para>
-        </listitem>
-
-        <listitem>
-          <para>AAATransactionCallback_f *callback_f - When the response is
-          received, the callback_f(callback_param,...) is called</para>
-        </listitem>
-
-        <listitem>
-          <para>void *callback_param - generic param for callback</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAMessage*
-      AAASendRecvMessage(AAAMessage *message)</function></title>
-
-      <para>Send Diameter message synchronously. This blocks until a response
-      is received or a transactional time-out happens.</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAAMessage *message - request message to be sent</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAMessage*
-      AAASendRecvMessageToPeer(AAAMessage *message, str
-      *peer_id)</function></title>
-
-      <para>Send Diameter message to specific peer synchronously. This blocks
-      until a response is received or a transactional time-out happens.</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAMessage *message</emphasis> - request message to
-          send</para>
-        </listitem>
-
-        <listitem>
-          <para>str *peer_id - FQDN of peer to send to.</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASession* AAACreateSession(void
-      *generic_data)</function></title>
-
-      <para>Create a generic Diameter session</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>void *generic_data - data to be save to session, useful for
-          attaching app specific data to the session</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASession* AAAMakeSession(int
-      app_id,int type,str session_id)</function></title>
-
-      <para>Create a Diameter session using already known params</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>int app_id - app id to use</para>
-        </listitem>
-
-        <listitem>
-          <para>int type - type of session</para>
-        </listitem>
-
-        <listitem>
-          <para>str session_id - session ID</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASession* AAAGetSession(str
-      id)</function></title>
-
-      <para>Retrieve a Diameter session. Returns with a lock on
-      AAASession-&gt;hash - Unlock when done working with result</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>str id - Diameter session ID to search for</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAADropSession(AAASession
-      *s)</function></title>
-
-      <para>Drop a Diameter session - deallocating all memory</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAASession *s - session to drop</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASessionLock(unsigned int
-      hash)</function></title>
-
-      <para>Lock a Diameter session (hash table row)</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>unsigned int hash - hash to lock</emphasis></para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASessionUnLock(unsigned int
-      hash)</function></title>
-
-      <para>Unlock a Diameter session (hash table row)</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>unsigned int hash - hash to unlock</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASession*
-      AAACreateClientAuthSession(int is_statefull,AAASessionCallback_f
-      *cb,void *generic_data)</function></title>
-
-      <para>Creates an Authorisation session for the Client. It generate a new
-      ID and adds to the list of CDP sessions. Returns with a lock on
-      AAASession-&gt;hash</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>int is_statefull - is session stateful or
-          not</emphasis></para>
-        </listitem>
-
-        <listitem>
-          <para>AAASessionCallback_f *cb - callback function on session state
-          change</para>
-        </listitem>
-
-        <listitem>
-          <para>void *generic_data - generic callback data</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASession*
-      AAACreateServerAuthSession(AAMessage *msg,int
-      is_statefull,AAASessionCallback_f *cb,void
-      *generic_data)</function></title>
-
-      <para>Create authorisation session for the Server. Generates a new ID
-      and add to CDP list of sessions. Returns with a lock on
-      AAASession-&gt;hash.</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAMessage *msg - request message from which to create server
-          session</para>
-        </listitem>
-
-        <listitem>
-          <para>int is_statefull - is session stateful or not</para>
-        </listitem>
-
-        <listitem>
-          <para>AAASessionCallback_f *cb - callback function on session state
-          change</para>
-        </listitem>
-
-        <listitem>
-          <para>void *generic_data - generic callback data</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAASession* AAAGetAuthSession(str
-      id)</function></title>
-
-      <para>Look for an authorisation session. Returns with lock on
-      AAASession-&gt;hash</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>str id - ID of Auth session to search for</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAADropAuthSession(AAASession
-      *s)</function></title>
-
-      <para>Deallocates the memory taken by a Authorisation session</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAASession *s</emphasis> - Session to drop and
-          deallocate memory for</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAATerminateAuthSession(AAASession
-      *s)</function></title>
-
-      <para>Sends a service terminated event to the session</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAASession *s</emphasis> - authhorisation session to
-          terminate</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAATransaction*
-      AAACreateTransaction(AAAApplicationId app_id,AAACommandCode
-      cmd_code)</function></title>
-
-      <para>Create a AAATransaction for the given request</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAAApplicationId app_id - ID of the request's
-          application</para>
-        </listitem>
-
-        <listitem>
-          <para>AAACommandCode cmd_code - request's code</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">int AAADropTransaction(AAATransaction
-      *trans)</function></title>
-
-      <para>Deallocates the memory taken by AAA transaction</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAATransaction *trans - transaction to free</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAA_AVP* AAACreateAVP(AAA_AVPCode code,
-      AAA_AVPFlag flags, AAAVendorId vendorId, char *data, size_t length,
-      AVPDataStatus data_status)</function></title>
-
-      <para>Create new AVP and return pointer to it</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAA_AVPCode code</emphasis> - code for new
-          AVP</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVPFlag flags - flags to set</para>
-        </listitem>
-
-        <listitem>
-          <para>AAAVendorId vendorId - vendor ID for AVP</para>
-        </listitem>
-
-        <listitem>
-          <para>char *data - generic payload data</para>
-        </listitem>
-
-        <listitem>
-          <para>size_t length - length of payload data</para>
-        </listitem>
-
-        <listitem>
-          <para>AVPDataStatus data_status - what to do with the payload,
-          duplicate, free with message, etc</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAReturnCode
-      AAAAddAVPToMessage(AAAMessage *msg, AAA_AVP *avp, AAA_AVP
-      *position)</function></title>
-
-      <para>Find and load the CDiameterPeer function bindings</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAMessage *msg</emphasis> - the message to add
-          to</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVP *avp - the AVP to add</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVP *position - AVP to add after. if NULL, we add at
-          beginning</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAA_AVP* AAAFindMatchingAVP(AAAMessage
-      *msg, AAA_AVP *startAvp, AAA_AVPCode avpCode, AAAVendorId vendorId,
-      AAASearchType searchType)</function></title>
-
-      <para>Find and load the CDiameterPeer function bindings</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAAMessage *msg - the message to search in</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVP *startAvp - at which AVP to start the search. usefull
-          for looking for more of the same name</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVPCode avpCode - AVP code to match</para>
-        </listitem>
-
-        <listitem>
-          <para>AAAVendorId vendorId - AVP vendor ID to match</para>
-        </listitem>
-
-        <listitem>
-          <para>AAASearchType searchType - look forward or backward</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAA_AVP * AAAGetNextAVP(AAA_AVP
-      *avp)</function></title>
-
-      <para>Find and load the CDiameterPeer function bindings</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAA_AVP *avp - reference AVP</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAReturnCode AAAFreeAVP(AAA_AVP
-      **avp)</function></title>
-
-      <para>Find and load the CDiameterPeer function bindings</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAA_AVP **avp - pointer memory to be freed</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">str AAAGroupAVPS(AAA_AVP_LIST
-      avps)</function></title>
-
-      <para>Groups a list of AVPS into a data buffer</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAA_AVP_LIST avps - list of AVPS to group</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAA_AVP_LIST AAAUnGroupAVPS(str
-      buf)</function></title>
-
-      <para>Ungroup a data buffer into a list of AVPs</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>str buf - payload to ungroup list from</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAA_AVP*
-      AAAFindMatchingAVPList(AAA_AVP_LIST avpList, AAA_AVP *startAvp,
-      AAA_AVPCode avpCode, AAAVendorId vendorId, AAASearchType
-      searchType)</function></title>
-
-      <para>Find an AVP in an AVP list</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAA_AVP_LIST avpList - AVP list to search</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVP *startAvp - where to start the search</para>
-        </listitem>
-
-        <listitem>
-          <para>AAA_AVPCode avpCode - AVP code to match</para>
-        </listitem>
-
-        <listitem>
-          <para>AAAVendorId vendorId - vendor ID to match</para>
-        </listitem>
-
-        <listitem>
-          <para>AAASearchType searchType - forwards or backwards</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">AAAFreeAVPList(AAA_AVP_LIST
-      *avpList)</function></title>
-
-      <para>Free AVP list and all its members</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAA_AVP_LIST *avpList - list to be freed</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">int
-      AAAAddRequestHandler(AAARequestHandler_f *f,void
-      *param)</function></title>
-
-      <para>add a #AAARequestHandler_f callback to request being
-      received</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>AAARequestHandler_f *f - callback function to be called on
-          incoming requests</para>
-        </listitem>
-
-        <listitem>
-          <para>void *param - generic data passed to callback function</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section>
-      <title><function moreinfo="none">int
-      AAAAddResponseHandler(AAAResponseHandler_f *f,void
-      *param)</function></title>
-
-      <para>add a #AAAResponseHandler_f callback to responses being
-      received</para>
-
-      <para>Meaning of the parameters is as follows:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para><emphasis>AAAResponseHandler_f *f</emphasis> - callback
-          function to be called on incoming responses</para>
-        </listitem>
-
-        <listitem>
-          <para>void *param - generic data to be bassed to callback
-          function</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-  </section>
-</chapter>