2
0
Эх сурвалжийг харах

modules/ims_icscf: documentation updated

Documentation for IMS ICSCF modules updated and README added
Richard Good 12 жил өмнө
parent
commit
0b476ea498

+ 310 - 0
modules/ims_icscf/README

@@ -0,0 +1,310 @@
+IMS ICSCF Module
+
+Dragos Vingarzan
+
+   FhG Fokus
+   <[email protected]>
+
+Jason Penton
+
+   Smile Communications
+   <[email protected]>
+
+Richard Good
+
+   Smile Communications
+   <[email protected]>
+
+   Copyright © 2007 FhG FOKUS
+
+   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. route_lir_user_unknown (string)
+              3.2. route_uar_user_unknown (string)
+              3.3. scscf_entry_expiry (integer)
+              3.4. cxdx_forced_peer (string)
+              3.5. cxdx_dest_realm (string)
+
+        4. Functions
+
+              4.1. I_scscf_select(initial)
+              4.2. I_scscf_drop()
+              4.3. I_perform_user_authorization_request(capabalities)
+              4.4. I_perform_location_information_request()
+
+        5. Statistics
+
+              5.1. Average UAR Response Time (uar_avg_response_time)
+              5.2. UAR Timeouts (uar_timeouts)
+              5.3. Average LIR Response Time (lir_avg_response_time)
+              5.4. LIR Timeouts (lir_timeouts)
+
+   List of Examples
+
+   1.1. route_lir_user_unknown parameter usage
+   1.2. route_uar_user_unknown parameter usage
+   1.3. scscf_entry_expiry parameter usage
+   1.4. cxdx_forced_peer parameter usage
+   1.5. version_table parameter usage
+   1.6. I_scscf_select usage
+   1.7. I_scscf_drop usage
+   1.8. I_perform_user_authorization_request usage
+   1.9. proxy_authorize usage
+
+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. route_lir_user_unknown (string)
+        3.2. route_uar_user_unknown (string)
+        3.3. scscf_entry_expiry (integer)
+        3.4. cxdx_forced_peer (string)
+        3.5. cxdx_dest_realm (string)
+
+   4. Functions
+
+        4.1. I_scscf_select(initial)
+        4.2. I_scscf_drop()
+        4.3. I_perform_user_authorization_request(capabalities)
+        4.4. I_perform_location_information_request()
+
+   5. Statistics
+
+        5.1. Average UAR Response Time (uar_avg_response_time)
+        5.2. UAR Timeouts (uar_timeouts)
+        5.3. Average LIR Response Time (lir_avg_response_time)
+        5.4. LIR Timeouts (lir_timeouts)
+
+1. Overview
+
+   This module provides all functionality to build an IMS ICSCF.
+
+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:
+     * TM - Transaction Manager
+     * SL - Stateless Reply
+     * CDP - C Diameter Peer
+     * CDP_AVP - CDP AVP Applications
+
+2.2. External Libraries or Applications
+
+   This modules requires the Kamailio internal IMS library.
+
+3. Parameters
+
+   3.1. route_lir_user_unknown (string)
+   3.2. route_uar_user_unknown (string)
+   3.3. scscf_entry_expiry (integer)
+   3.4. cxdx_forced_peer (string)
+   3.5. cxdx_dest_realm (string)
+
+3.1. route_lir_user_unknown (string)
+
+   This is the route which is executed if HSS returns "user unknown" in
+   LIR
+
+   Default value is ''.
+
+   Example 1.1. route_lir_user_unknown parameter usage
+...
+modparam("ims_icscf","route_lir_user_unknown", "lir_term_user_unknown")
+...
+
+3.2. route_uar_user_unknown (string)
+
+   This is the route which is executed if HSS returns "user unknown" in
+   UAR.
+
+   Default value is ''.
+
+   Example 1.2. route_uar_user_unknown parameter usage
+...
+modparam("ims_icscf","route_uar_user_unknown", "uar_term_user_unknown")
+...
+
+3.3. scscf_entry_expiry (integer)
+
+   This is the time in s after which S-CSCF entries in the I-CSCF's SCSCF
+   list will expire.
+
+   Default value is 300.
+
+   Example 1.3. scscf_entry_expiry parameter usage
+...
+modparam("ims_icscf","scscf_entry_expiry", 300)
+...
+
+3.4. cxdx_forced_peer (string)
+
+   FQDN of Diameter Peer (HSS) to use for communication (MAR)
+
+   Default value is "".
+
+   Example 1.4. cxdx_forced_peer parameter usage
+...
+modparam("ims_icscf", "cxdx_forced_peer", "hss.ims.smilecoms.com")
+...
+
+3.5. cxdx_dest_realm (string)
+
+   Destination realm to be used in Diameter messags to HSS
+
+   Default value is "ims.smilecoms.com".
+
+   Example 1.5. version_table parameter usage
+...
+modparam("ims_icscf", "cxdx_dest_realm", "ims.smilecoms.com")
+...
+
+4. Functions
+
+   4.1. I_scscf_select(initial)
+   4.2. I_scscf_drop()
+   4.3. I_perform_user_authorization_request(capabalities)
+   4.4. I_perform_location_information_request()
+
+4.1. I_scscf_select(initial)
+
+   This function is used to retrieve the next unused SCSCF from thelist
+   for this request (based on callid).
+
+   A positive return code (1) means an SCSCF was found and is armed for
+   routing.
+
+   Meaning of the parameters is as follows:
+     * initial - Signal whether or not this is an original or subsequent.
+
+   This function can be used from REQUEST_ROUTE | FAILURE_ROUTE.
+
+   Example 1.6. I_scscf_select usage
+...
+if (I_scscf_select("0")) {
+     #there is an S-CSCF list - no need to do a UAR
+     t_on_reply("register_reply");
+     t_on_failure("register_failure");
+     t_relay();
+}
+...
+
+4.2. I_scscf_drop()
+
+   Drop the list of SCSCFs for this request (based on callid).
+
+   This function can be used from REQUEST_ROUTE | FAILURE_ROUTE |
+   REPLY_ROUTE
+
+   Example 1.7. I_scscf_drop usage
+...
+I_scscf_drop();
+...
+
+   .
+
+4.3. I_perform_user_authorization_request(capabalities)
+
+   Perform a UAR on Diameter CXDX interface. This function will build a
+   list of SCSCFs to be used and populate the SCSCF list for the request.
+   On a succesful return of this message you can get the next available
+   SCSCF by using the I_scscf_select functoin in 4.1.
+     * capabilities - whether to request capabilities or not "1" - with
+       capabilities, "0" - no capabilities.
+
+   This function can be used from REQUEST_ROUTE.
+
+   p.s. this is executed asynchronously. See example on how to retrieve
+   return value
+
+   Example 1.8. I_perform_user_authorization_request usage
+...
+            I_perform_user_authorization_request("0"); #0=REG/DEREG; 1=REG+Capab
+ilities
+            #this is async so to know status we have to check the reply avp
+            switch ($avp(s:uaa_return_code)){
+                case 1: #success
+                    if (I_scscf_select("0")){
+                        t_on_failure("register_failure");
+                        t_on_reply("register_reply");
+                        if (!t_relay()) {
+                            t_reply("500", "Error forwarding to SCSCF");
+                        }
+                    } else {#select failed
+                        I_scscf_drop();
+                        t_reply("500", "Server error on SCSCF Select (UAR)");
+                    }
+                    break;
+                case -1: #failure
+                    xlog("L_ERR", "UAR failure - error response sent from module
+");
+                    break;
+                case -2: #error
+                    xlog("L_ERR", "UAR error - sending error response now");
+                    t_reply("500", "UAR failed");
+                    break;
+                default:
+                    xlog("L_ERR", "Unknown return code from UAR, value is [$avp(
+s:uaa_return_code)]");
+                    t_reply("500", "Unknown response code from UAR");
+                    break;
+            }
+...
+
+4.4. I_perform_location_information_request()
+
+   This function can be used from REQUEST_ROUTE.
+
+   Example 1.9. proxy_authorize usage
+...
+if (!proxy_authorize("$fd", "subscriber)) {
+proxy_challenge("$fd", "1");  # Realm will be autogenerated
+};
+...
+
+5. Statistics
+
+   5.1. Average UAR Response Time (uar_avg_response_time)
+   5.2. UAR Timeouts (uar_timeouts)
+   5.3. Average LIR Response Time (lir_avg_response_time)
+   5.4. LIR Timeouts (lir_timeouts)
+
+5.1. Average UAR Response Time (uar_avg_response_time)
+
+   The average response time in milliseconds for UAR-UAA transaction.
+
+5.2. UAR Timeouts (uar_timeouts)
+
+   The number of UAR timeouts.
+
+5.3. Average LIR Response Time (lir_avg_response_time)
+
+   The average response time in milliseconds for LIR-LIA transaction.
+
+5.4. LIR Timeouts (lir_timeouts)
+
+   The number of LIR timeouts.

+ 1 - 1
modules/ims_icscf/doc/ims_icscf.xml

@@ -7,7 +7,7 @@
 ]>
 <book>
   <bookinfo>
-    <title>ims_auth Module</title>
+    <title>IMS ICSCF Module</title>
 
     <authorgroup>
       <author>

+ 36 - 161
modules/ims_icscf/doc/ims_icscf_admin.xml

@@ -12,7 +12,7 @@
   <section>
     <title>Overview</title>
 
-    <para>This module provides all functionality to build an IMS_ICSCF.</para>
+    <para>This module provides all functionality to build an IMS ICSCF.</para>
   </section>
 
   <section>
@@ -21,7 +21,7 @@
     <section>
       <title>&kamailio; Modules</title>
 
-      <para>The Following mouldes must be loaded before this module:</para>
+      <para>The Following modules must be loaded before this module:</para>
 
       <itemizedlist>
         <listitem>
@@ -53,208 +53,83 @@
     <title>Parameters</title>
 
     <section>
-      <title><varname>name</varname> (string)</title>
+      <title><varname>route_lir_user_unknown</varname> (string)</title>
 
-      <para>This is the name of the SCSCF as identified in communication with
-      the HSS (Server-Name AVP of MAR).</para>
+      <para>This is the route which is executed if HSS returns "user unknown" in LIR
+      </para>
 
-      <para><emphasis> Default value is 'sip:scscf.ims.smilecoms.com:6060'.
+      <para><emphasis> Default value is ''.
       </emphasis></para>
 
       <example>
-        <title><varname>name</varname> parameter usage</title>
+        <title><varname>route_lir_user_unknown</varname> parameter usage</title>
 
         <programlisting format="linespecific">
 ...
-modparam("ims_auth", "name", "sip:scscf3.ims.smilecoms.com:6060")
+modparam("ims_icscf","route_lir_user_unknown", "lir_term_user_unknown")
 ...
-</programlisting>
+        </programlisting>
       </example>
     </section>
-
+    
     <section>
-      <title><varname>name</varname> (string)</title>
+      <title><varname>route_uar_user_unknown</varname> (string)</title>
 
-      <para>This is the name of the SCSCF as identified in communication with
-      the HSS (Server-Name AVP of MAR).</para>
+      <para>This is the route which is executed if HSS returns "user unknown" 
+      in UAR.
+      </para>
 
-      <para><emphasis> Default value is 'sip:scscf.ims.smilecoms.com:6060'.
+      <para><emphasis> Default value is ''.
       </emphasis></para>
 
       <example>
-        <title><varname>name</varname> parameter usage</title>
-
-        <programlisting format="linespecific">
-...
-modparam("ims_auth", "name", "sip:scscf3.ims.smilecoms.com:6060")
-...
-</programlisting>
-      </example>
-    </section>
-
-    <section>
-      <title><varname>auth_data_hash_size</varname> (integer)</title>
-
-      <para>This is the size of the hash table used to store auth vectors
-      (AV). Default value is fine for most people. Use the parameter if you
-      really need to change it.</para>
-
-      <para>Default value is <quote>1024</quote>.</para>
-
-      <example>
-        <title><varname>auth_data_hash_size</varname> parameter usage</title>
-
-        <programlisting format="linespecific">
-...
-modparam("ims_auth", "auth_data_hash_size", 1024)
-...
-</programlisting>
-      </example>
-    </section>
-
-    <section>
-      <title><varname>auth_vector_timeout</varname> (integer)</title>
-
-      <para>This is the time, in seconds, that a SENTauth vector is valid for.
-      If there is no response ...</para>
-
-      <para>Default value is <quote>60</quote>.</para>
-
-      <example>
-        <title><varname>auth_vector_timeout</varname> parameter usage</title>
+        <title><varname>route_uar_user_unknown</varname> parameter usage</title>
 
         <programlisting format="linespecific">
 ...
-modparam("ims_auth", "auth_vector_timeout", "domain")
+modparam("ims_icscf","route_uar_user_unknown", "uar_term_user_unknown")
 ...
-</programlisting>
+        </programlisting>
       </example>
     </section>
-
+    
     <section>
-      <title><varname>auth_data_timeout</varname> (int)</title>
-
-      <para>Time, in seconds, a used auth vector is valid for.</para>
-
-      <para>Default value is <quote>60</quote>.</para>
+      <title><varname>scscf_entry_expiry</varname> (integer)</title>
 
-      <example>
-        <title><varname>password_column</varname> parameter usage</title>
-
-        <programlisting format="linespecific">
-...
-modparam("ims_auth", "auth_data_timeout", 60)
-...
-</programlisting>
-      </example>
-    </section>
-
-    <section>
-      <title><varname>av_request_at_once</varname> (integer)</title>
-
-      <para>How many auth vectors to request in MAR.</para>
-
-      <para>Default value is 1</para>
-
-      <example>
-        <title><varname>av_request_at_once</varname> parameter usage</title>
+      <para>This is the time in s after which S-CSCF entries in the I-CSCF's 
+      SCSCF list will expire.
+      </para>
 
-        <programlisting format="linespecific">
-...
-modparam("ims_auth", "av_request_at_once", 1)
-...
-</programlisting>
-      </example>
-    </section>
-
-    <section>
-      <title><varname>av_request_at_sync</varname> (integer)</title>
-
-      <para>How many auth vectors to request at sync. Default value is
-      1.</para>
-
-      <example>
-        <title><varname>av_request_at_sync</varname> parameter usage</title>
-
-        <programlisting format="linespecific">
-...
-modparam("ims_auth", "av_request_at_sync", 1)
-...
-</programlisting>
-      </example>
-    </section>
-
-    <section>
-      <title><varname>registration_default_algorithm</varname>
-      (string)</title>
-
-      <para>The default authentication algorithm to use for registration if
-      one is not specified.</para>
-
-      <para>Options are: <itemizedlist>
-          <listitem>
-            <para><emphasis>AKAV1-MD5</emphasis></para>
-          </listitem>
-
-          <listitem>
-            <para><emphasis>AKAV2-MD5</emphasis></para>
-          </listitem>
-
-          <listitem>
-            <para><emphasis>MD5</emphasis></para>
-          </listitem>
-
-          <listitem>
-            <para>HSS-Selected - HSS will decide on auth algorithm</para>
-          </listitem>
-        </itemizedlist>Default value is <quote>AKAv1-MD5</quote>.</para>
-
-      <example>
-        <title><varname>registration_default_algorithm</varname> parameter
-        usage</title>
-
-        <programlisting format="linespecific">
-...
-modparam("ims_auth", "registration_default_algorithm", "HSS-Selected")
-...
-</programlisting>
-      </example>
-    </section>
-
-    <section>
-      <title><varname>registration_qop</varname> (string)</title>
-
-      <para>The QOP options to put in the authorisation challenges.</para>
-
-      <para>Default value of this parameter is
-      <quote>auth,auth-int</quote>.</para>
+      <para><emphasis> Default value is 300.
+      </emphasis></para>
 
       <example>
-        <title><varname>load_credentials</varname> parameter usage</title>
+        <title><varname>scscf_entry_expiry</varname> parameter usage</title>
 
         <programlisting format="linespecific">
 ...
-modparam("ims_auth", "load_credentials", "auth-int")
+modparam("ims_icscf","scscf_entry_expiry", 300)
 ...
-</programlisting>
+        </programlisting>
       </example>
     </section>
-
+    
     <section>
       <title><varname>cxdx_forced_peer</varname> (string)</title>
 
       <para>FQDN of Diameter Peer (HSS) to use for communication (MAR)</para>
 
-      <para>Default value is <quote/>.</para>
+      <para><emphasis> Default value is "".
+      </emphasis></para>
 
       <example>
         <title><varname>cxdx_forced_peer</varname> parameter usage</title>
 
         <programlisting format="linespecific">
 ...
-modparam("ims_auth", "cxdx_forced_peer", "hss.ims.smilecoms.com")
+modparam("ims_icscf", "cxdx_forced_peer", "hss.ims.smilecoms.com")
 ...
-</programlisting>
+    </programlisting>
       </example>
     </section>
 
@@ -263,16 +138,16 @@ modparam("ims_auth", "cxdx_forced_peer", "hss.ims.smilecoms.com")
 
       <para>Destination realm to be used in Diameter messags to HSS</para>
 
-      <para>Default value is <quote>ims.smilecoms.com</quote>.</para>
+      <para><emphasis> Default value is "ims.smilecoms.com".</emphasis></para>
 
       <example>
         <title><varname>version_table</varname> parameter usage</title>
 
         <programlisting format="linespecific">
 ...
-modparam("ims_auth", "cxdx_dest_realm", "ims.smilecoms.com")
+modparam("ims_icscf", "cxdx_dest_realm", "ims.smilecoms.com")
 ...
-</programlisting>
+    </programlisting>
       </example>
     </section>
   </section>