Переглянути джерело

ims_registrar_pcscf: Initial Documentation on module

Carsten Bock 10 роки тому
батько
коміт
fb5d38b12e

+ 4 - 0
modules/ims_registrar_pcscf/doc/Makefile

@@ -0,0 +1,4 @@
+docs = ims_registrar_pcscf.xml
+
+docbook_dir = ../../../docbook
+include $(docbook_dir)/Makefile.module

+ 80 - 0
modules/ims_registrar_pcscf/doc/ims_registrar_pcscf.xml

@@ -0,0 +1,80 @@
+<?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;
+]>
+<book>
+  <bookinfo>
+    <title>The IMS PCSCF-Registrar Module</title>
+
+    <authorgroup>
+      <author>
+        <firstname>Dragos Vingarzan</firstname>
+
+        <surname/>
+
+        <affiliation>
+          <orgname>FhG Fokus</orgname>
+        </affiliation>
+
+        <email>[email protected]</email>
+      </author>
+
+      <author>
+        <firstname>Jason</firstname>
+
+        <surname>Penton</surname>
+
+        <affiliation>
+          <orgname>Smile Communications</orgname>
+        </affiliation>
+
+        <email>[email protected]</email>
+      </author>
+
+      <author>
+        <firstname>Richard</firstname>
+
+        <surname>Good</surname>
+        <affiliation>
+          <orgname>Smile Communications</orgname>
+        </affiliation>
+
+        <email>[email protected]</email>
+      </author>
+
+      <author>
+        <firstname>Carsten</firstname>
+
+        <surname>Bock</surname>
+        <affiliation>
+          <orgname>ng-voice GmbH</orgname>
+        </affiliation>
+
+        <email>[email protected]</email>
+      </author>
+    </authorgroup>
+
+    <copyright>
+      <year>2007</year>
+      <holder>FhG FOKUS</holder>
+    </copyright>
+
+    <copyright>
+      <year>2012</year>
+
+      <holder>Smile Communications</holder>
+    </copyright>
+    <copyright>
+      <year>2015</year>
+      <holder>ng-voice GmbH</holder>
+    </copyright>
+  </bookinfo>
+
+  <toc/>
+
+  <xi:include href="ims_registrar_pcscf_admin.xml"
+              xmlns:xi="http://www.w3.org/2001/XInclude"/>
+</book>

+ 382 - 0
modules/ims_registrar_pcscf/doc/ims_registrar_pcscf_admin.xml

@@ -0,0 +1,382 @@
+<?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;
+]>
+<!-- Auth_db Module User's Guide -->
+<chapter>
+  <title>&adminguide;</title>
+
+  <section>
+    <title>Overview</title>
+
+    <para>This module contains all methods related for usage of Kamailio as a
+	Proxy-CSCF.</para>
+  </section>
+
+  <section>
+    <title>Dependencies</title>
+
+    <section>
+      <title>&kamailio; Modules</title>
+
+      <para>The Following mouldes must be loaded before this module:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Usrloc PCSCF</para>
+        </listitem>
+
+        <listitem>
+          <para>PUA - if reginfo is used.</para>
+        </listitem>
+      </itemizedlist>
+    </section>
+
+    <section>
+      <title>External Libraries or Applications</title>
+
+      <para>This modules requires the internal IMS library.</para>
+    </section>
+  </section>
+
+  <section>
+    <title>Parameters</title>
+
+    <section>
+      <title><varname>pcscf_uri</varname> (string)</title>
+
+      <para>URI of this Proxy-CSCF.</para>
+
+      <example>
+        <title><varname>pcscf_uri</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "pcscf_uri", "pcscf.mnc001.mcc001.3gppnetwork.org")
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>pending_reg_expires</varname> (int)</title>
+
+      <para>How long (in seconds), until pending (uncomplete) Registrations expire</para>
+
+      <para><emphasis> Default value is 30. </emphasis></para>
+
+      <example>
+        <title><varname>pending_reg_expires</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "pending_reg_expires", 15)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>received_avp</varname> (string)</title>
+
+      <para>AVP, holding the received information (optional)</para>
+
+      <example>
+        <title><varname>received_avp</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "received_avp", "$avp(i:42)")
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>is_registered_fallback2ip</varname> (int)</title>
+
+      <para>Defines, whether a contact should be searched by it's contact only
+	or alternatively by the received IP-Address.</para>
+
+      <para>The option may have the following values:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para><emphasis>0</emphasis> Search by Contact-Header only</para>
+        </listitem>
+        <listitem>
+          <para><emphasis>1</emphasis> Search by Contact-Header, if this fails,
+		search by Received Information (IP, Port, Proto)</para>
+        </listitem>
+        <listitem>
+          <para><emphasis>2</emphasis> Search by Received Information
+		(IP, Port, Proto), if this fails, Search by Contact Header</para>
+        </listitem>
+      </itemizedlist>
+
+      <para>This Parameter is primarily used by the "is_registered" function.</para>
+
+      <para><emphasis> Default value is 0 (Contact only). </emphasis></para>
+
+      <example>
+        <title><varname>is_registered_fallback2ip</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "is_registered_fallback2ip", 2)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>publish_reginfo</varname> (int)</title>
+
+      <para>If set to "1", the module will send PUBLISH regarding changes of
+	the registration (e.g. due to Rx-Information) towards the network
+	core.</para>
+
+      <para><emphasis>Default value is 0 (Do not send PUBLISH).</emphasis></para>
+
+      <example>
+        <title><varname>publish_reginfo</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "publish_reginfo", 1)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>subscribe_to_reginfo</varname> (int)</title>
+
+      <para>If set to "1", the module will send a SUBSCRIBE for the registration
+	status towards the network core.</para>
+
+      <para><emphasis>Default value is 0 (Do not send SUBSCRIBE).</emphasis></para>
+
+      <example>
+        <title><varname>subscribe_to_reginfo</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "subscribe_to_reginfo", 1)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>subscription_expires</varname> (int)</title>
+
+      <para>How long should the subscription of reg-info towards the
+	packet-core be valid?</para>
+
+      <para><emphasis>Default value is 3600.</emphasis></para>
+
+      <example>
+        <title><varname>subscription_expires</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "subscription_expires", 7200)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>ignore_contact_rxport_check</varname> (int)</title>
+
+      <para>Validate, if the port, from which the request was received, is the 
+	same as used during registration.</para>
+
+      <para>This Parameter is primarily used by the "is_registered" function.</para>
+
+      <para><emphasis>Default value is 0 (do not ignore Ports).</emphasis></para>
+
+      <example>
+        <title><varname>ignore_contact_rxport_check</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "ignore_contact_rxport_check", 1)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>ignore_reg_state</varname> (int)</title>
+
+      <para>Validate, if the found contact is really and completely registered.</para>
+
+      <para>This Parameter is primarily used by the "is_registered" function.</para>
+
+      <para><emphasis>Default value is 0 (do not ignore registration state).</emphasis></para>
+
+      <example>
+        <title><varname>ignore_reg_state</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "ignore_reg_state", 1)
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>force_icscf_uri</varname> (string)</title>
+
+      <para>Instead of doing a DNS-Lookup on the domain, always send the requests
+	to a specific I-CSCF.</para>
+
+      <para><emphasis>Default value is not set, do the DNS-Lookup.</emphasis></para>
+
+      <example>
+        <title><varname>force_icscf_uri</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "force_icscf_uri", "sip:icscf.mnc001.mcc001.3gppnetwork.org")
+...
+        </programlisting>
+      </example>
+    </section>
+
+    <section>
+      <title><varname>reginfo_queue_size_threshold</varname> (int)</title>
+
+      <para>As reginfo operations are processed asynchronously, this parameter
+	defines at what length of the queue, the length should be logged (in
+	order to determine overload)</para>
+
+      <para><emphasis>Default value is 0 (do not log queue length).</emphasis></para>
+
+      <example>
+        <title><varname>reginfo_queue_size_threshold</varname> parameter usage</title>
+
+        <programlisting format="linespecific">
+...
+modparam("ims_registrar_pcscf", "reginfo_queue_size_threshold", 42)
+...
+        </programlisting>
+      </example>
+    </section>
+
+  </section>
+
+  <section>
+    <title>Functions</title>
+
+    <section>
+      <title><function moreinfo="none">pcscf_save(domain)</function></title>
+
+		<para>
+		The function processes a reply to a <emphasis>REGISTER</emphasis>
+		message. It can add, remove or modify location records (in
+		usrloc) depending on Contact and Expires HFs in the REGISTER
+		message.
+		</para>
+		<para>Meaning of the parameters is as follows:</para>
+		<itemizedlist>
+		<listitem>
+			<para>
+			<emphasis>domain</emphasis> - Logical domain within the registrar. 
+			If a database is used then this must be name of the table which 
+			stores the contacts.
+			</para>
+		</listitem>
+		</itemizedlist>
+      <example>
+        <title>pcscf_save</title>
+
+        <programlisting format="linespecific">
+...
+pcscf_save("location");
+...
+</programlisting>
+      </example>
+    </section>
+
+   <section>
+      <title><function moreinfo="none">pcscf_save_pending(domain)</function></title>
+      <para>Same as pcscf_save(), but it will store the registration in a
+	"Pending" state.</para>
+		<para>Meaning of the parameters is as follows:</para>
+		<itemizedlist>
+		<listitem>
+			<para>
+			<emphasis>domain</emphasis> - Logical domain within the registrar. 
+			If a database is used then this must be name of the table which 
+			stores the contacts.
+			</para>
+		</listitem>
+		</itemizedlist>
+  </section>
+
+   <section>
+      <title><function moreinfo="none">pcscf_follows_service_routes(domain)</function></title>
+      <para>Returns true, if the request is following the "learned"
+	service-routes during registratin.</para>
+		<para>Meaning of the parameters is as follows:</para>
+		<itemizedlist>
+		<listitem>
+			<para>
+			<emphasis>domain</emphasis> - Logical domain within the registrar. 
+			If a database is used then this must be name of the table which 
+			stores the contacts.
+			</para>
+		</listitem>
+		</itemizedlist>
+  </section>
+
+   <section>
+      <title><function moreinfo="none">pcscf_force_service_routes(domain)</function></title>
+      <para>Remove existing route-headers and force the Service-Routes, that were
+	learned during registration.</para>
+		<para>Meaning of the parameters is as follows:</para>
+		<itemizedlist>
+		<listitem>
+			<para>
+			<emphasis>domain</emphasis> - Logical domain within the registrar. 
+			If a database is used then this must be name of the table which 
+			stores the contacts.
+			</para>
+		</listitem>
+		</itemizedlist>
+  </section>
+
+   <section>
+      <title><function moreinfo="none">pcscf_is_registered(domain)</function></title>
+      <para>Returns true, if the request is coming from a "registered" endpoint.</para>
+		<para>Meaning of the parameters is as follows:</para>
+		<itemizedlist>
+		<listitem>
+			<para>
+			<emphasis>domain</emphasis> - Logical domain within the registrar. 
+			If a database is used then this must be name of the table which 
+			stores the contacts.
+			</para>
+		</listitem>
+		</itemizedlist>
+  </section>
+
+<!--
+
+	{"pcscf_assert_identity",       (cmd_function)w_assert_identity,        2,  	assert_identity_fixup,  0,REQUEST_ROUTE },
+	{"pcscf_assert_called_identity",(cmd_function)w_assert_called_identity, 1,      assert_identity_fixup,  0,ONREPLY_ROUTE },
+	{"reginfo_handle_notify",       (cmd_function)w_reginfo_handle_notify,  1,      domain_fixup,           0,REQUEST_ROUTE},
+        {"lookup_transport",		(cmd_function)w_lookup_transport,       1,      domain_fixup,           0,REQUEST_ROUTE|FAILURE_ROUTE},
+        {"lookup_transport",		(cmd_function)w_lookup_transport,       2,      domain_uri_fixup,       0,REQUEST_ROUTE|FAILURE_ROUTE},
+        {"pcscf_unregister",		(cmd_function)w_unregister,		4,      domain_uri_fixup,       0,ANY_ROUTE},
+
+-->
+
+</chapter>