Explorar o código

ims_registrar_scscf: added the readme

Daniel-Constantin Mierla %!s(int64=9) %!d(string=hai) anos
pai
achega
169a835808
Modificáronse 1 ficheiros con 818 adicións e 0 borrados
  1. 818 0
      modules/ims_registrar_scscf/README

+ 818 - 0
modules/ims_registrar_scscf/README

@@ -0,0 +1,818 @@
+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. default_expires (int)
+              3.2. default_expires_range (int)
+              3.3. min_expires (int)
+              3.4. max_expires (int)
+              3.5. subscription_default_expires (int)
+              3.6. subscription_expires_range (int)
+              3.7. subscription_min_expires (int)
+              3.8. subscription_max_expires (int)
+              3.9. user_data_dtd (string)
+              3.10. user_data_xsd (string)
+              3.11. support_wildcardPSI (int)
+              3.12. scscf_name (string)
+              3.13. store_profile_dereg (int)
+              3.14. cxdx_dest_realm (string)
+              3.15. cxdx_forced_peer (string)
+              3.16. append_branches (integer)
+              3.17. method_filtering (integer)
+              3.18. user_data_always (integer)
+
+        4. Functions
+
+              4.1. save(async_reply_route, domain)
+              4.2. lookup(domain)
+              4.3. lookup_path_to_contact(uri)
+              4.4. unregister(domain)
+              4.5. assign_server_unreg(aysnc_reply_route, domain,
+                      direction)
+
+              4.6. impu_registered(domain)
+              4.7. term_impu_registered(domain)
+              4.8. reg_fetch_contacts(domain, uri, profile)
+              4.9. reg_free_contacts(profile)
+              4.10. can_subscribe_to_reg(domain)
+              4.11. subscribe_to_reg(domain)
+              4.12. can_publish_reg(domain)
+              4.13. publish_reg(domain)
+
+        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 default_expires parameter
+   1.2. Set default_expires_range parameter
+   1.3. Set min_expiresparameter
+   1.4. Set max_expiresparameter
+   1.5. Set subscription_default_expires parameter
+   1.6. Set subscription_expires_range parameter
+   1.7. Set subscription_min_expiresparameter
+   1.8. Set subscription_max_expiresparameter
+   1.9. Set user_data_dtdparameter
+   1.10. Set user_data_xsdparameter
+   1.11. Set support_wildcardPSIparameter
+   1.12. Set scscf_nameparameter
+   1.13. Set store_profile_deregparameter
+   1.14. Set cxdx_dest_realmparameter
+   1.15. Set cxdx_forced_peerparameter
+   1.16. Set cxdx_forced_peerparameter
+   1.17. Set cxdx_forced_peerparameter
+   1.18. Set user_data_alwaysparameter
+   1.19. save usage
+   1.20. lookup usage
+   1.21. lookup usage
+   1.22. unregister usage
+   1.23. impu_registered usage
+   1.24. term_impu_registered usage
+   1.25. reg_fetch_contacts usage
+   1.26. reg_free_contacts usage
+   1.27. can_subscribe_to_reg usage
+   1.28. subscribe_to_reg usage
+   1.29. can_publish_reg usage
+   1.30. publish_reg 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. default_expires (int)
+        3.2. default_expires_range (int)
+        3.3. min_expires (int)
+        3.4. max_expires (int)
+        3.5. subscription_default_expires (int)
+        3.6. subscription_expires_range (int)
+        3.7. subscription_min_expires (int)
+        3.8. subscription_max_expires (int)
+        3.9. user_data_dtd (string)
+        3.10. user_data_xsd (string)
+        3.11. support_wildcardPSI (int)
+        3.12. scscf_name (string)
+        3.13. store_profile_dereg (int)
+        3.14. cxdx_dest_realm (string)
+        3.15. cxdx_forced_peer (string)
+        3.16. append_branches (integer)
+        3.17. method_filtering (integer)
+        3.18. user_data_always (integer)
+
+   4. Functions
+
+        4.1. save(async_reply_route, domain)
+        4.2. lookup(domain)
+        4.3. lookup_path_to_contact(uri)
+        4.4. unregister(domain)
+        4.5. assign_server_unreg(aysnc_reply_route, domain, direction)
+        4.6. impu_registered(domain)
+        4.7. term_impu_registered(domain)
+        4.8. reg_fetch_contacts(domain, uri, profile)
+        4.9. reg_free_contacts(profile)
+        4.10. can_subscribe_to_reg(domain)
+        4.11. subscribe_to_reg(domain)
+        4.12. can_publish_reg(domain)
+        4.13. publish_reg(domain)
+
+   5. RPC Commands
+
+        5.1. ulpcscf.status
+
+   6. Statistics
+
+        6.1. registered contacts
+        6.2. impus
+        6.3. expired contacts
+
+1. Overview
+
+   This module contains REGISTER processing logic for the S-CSCF. The
+   'storage engine' of this module is provided by the ims_usrloc_scscf
+   module:
+
+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:
+     * CDP
+     * CDP_AVP
+     * TM
+     * ims_usrloc_scscf
+
+2.2. External Libraries or Applications
+
+   The following libraries or applications must be installed before
+   running Kamailio with this module loaded:
+     * LibXML2 - used for parsing the XML Subscription information
+       obtained from the HSS (Home Subscriber Server)
+
+3. Parameters
+
+   3.1. default_expires (int)
+   3.2. default_expires_range (int)
+   3.3. min_expires (int)
+   3.4. max_expires (int)
+   3.5. subscription_default_expires (int)
+   3.6. subscription_expires_range (int)
+   3.7. subscription_min_expires (int)
+   3.8. subscription_max_expires (int)
+   3.9. user_data_dtd (string)
+   3.10. user_data_xsd (string)
+   3.11. support_wildcardPSI (int)
+   3.12. scscf_name (string)
+   3.13. store_profile_dereg (int)
+   3.14. cxdx_dest_realm (string)
+   3.15. cxdx_forced_peer (string)
+   3.16. append_branches (integer)
+   3.17. method_filtering (integer)
+   3.18. user_data_always (integer)
+
+3.1. default_expires (int)
+
+   If the processed message contains neither Expires HFs nor expires
+   contact parameters, this value will be used for newly created S-CSCF
+   usrloc records. The parameter contains number of second to expire (for
+   example use 3600 for one hour). If it is set to a lower value than the
+   min_expires parameter then it will be ignored. This parameter can be
+   modified via ser config framework. A random value in a specific
+   interval can be selected by using the default_expires_range parameter
+
+   Default value is 3600.
+
+   Example 1.1. Set default_expires parameter
+...
+        modparam("ims_registrar_scscf", "default_expires", 3600)
+...
+
+3.2. default_expires_range (int)
+
+   This parameter specifies that the expiry used for newly created S-CSCF
+   usrloc records are not fixed(when default_expires applies), but a
+   random value in the intervalrdq
+   [default_expires-default_expires_range%,
+   default_expires+default_expires_range%]. The value is between 0 and 100
+   and represent the maximim percentage from default_expires that will be
+   substracted or added when computing the value. Default in 0, meaning
+   default_expires is left unmodified. This parameter can be modified via
+   ser config framework.
+
+   Default value is 0.
+
+   Example 1.2. Set default_expires_range parameter
+...
+        modparam("ims_registrar_scscf", "default_expires_range", 30) # +- 30% fr
+om default_expires
+...
+
+3.3. min_expires (int)
+
+   The minimum expires value of a Contact, values lower than this minimum
+   will be automatically set to the minimum. Value 0 disables the
+   checking. This parameter can be modified via ser config framework.
+
+   Default value is 60.
+
+   Example 1.3. Set min_expiresparameter
+...
+        modparam("ims_registrar_scscf", "min_expires", 1800)
+...
+
+3.4. max_expires (int)
+
+   The maximum expires value of a Contact, values higher than this maximum
+   will be automatically set to the maximum. Value 0 disables the
+   checking. This parameter can be modified via ser config framework.
+
+   Default value is 0.
+
+   Example 1.4. Set max_expiresparameter
+...
+        modparam("ims_registrar_scscf", "max_expires", 3600)
+...
+
+3.5. subscription_default_expires (int)
+
+   If the processed message contains neither Expires HFs nor expires
+   contact parameters, this value will be used for newly created
+   subscriptions. The parameter contains number of second to expire (for
+   example use 3600 for one hour). If it is set to a lower value than the
+   subscription_min_expires parameter then it will be ignored. A random
+   value in a specific interval can be selected by using the
+   subscription_expires_range parameter
+
+   Default value is 3600.
+
+   Example 1.5. Set subscription_default_expires parameter
+...
+        modparam("ims_registrar_scscf", "subscription_default_expires", 3600)
+...
+
+3.6. subscription_expires_range (int)
+
+   This parameter specifies that the expiry used for newly created
+   subscriptions are not fixed(when subscription_default_expires applies),
+   but a random value in the interval
+   [subscription_default_expires-subscription_expires_range%,
+   subscription_default_expires+subscription_expires_range%]. The value is
+   between 0 and 100 and represent the maximim percentage from
+   subscription_default_expires that will be substracted or added when
+   computing the value. Default in 0, meaning subscription_default_expires
+   is left unmodified.
+
+   Default value is 0.
+
+   Example 1.6. Set subscription_expires_range parameter
+...
+        modparam("ims_registrar_scscf", "subscription_expires_range", 30) # +- 3
+0% from subscription_expires_range
+...
+
+3.7. subscription_min_expires (int)
+
+   The minimum expires value of a subscription, values lower than this
+   minimum will be automatically set to the minimum. Value 0 disables the
+   checking.
+
+   Default value is 10.
+
+   Example 1.7. Set subscription_min_expiresparameter
+...
+        modparam("subscription_min_expires", "min_expires", 1800)
+...
+
+3.8. subscription_max_expires (int)
+
+   The maximum expires value of a subscription, values higher than this
+   maximum will be automatically set to the maximum. Value 0 disables the
+   checking.
+
+   Default value is 1000000.
+
+   Example 1.8. Set subscription_max_expiresparameter
+...
+        modparam("ims_registrar_scscf", "subscription_max_expires", 3600)
+...
+
+3.9. user_data_dtd (string)
+
+   DTD to check the user data received in SAA (Server Assignment Answer).
+
+   Default value is NULL (none).
+
+   Example 1.9. Set user_data_dtdparameter
+...
+        modparam("ims_registrar_scscf", "user_data_dtd", "/usr/local/etc/kamaili
+o/CxDataType_Rel7.dtd")
+...
+
+3.10. user_data_xsd (string)
+
+   XSD to check the user data received in SAA (Server Assignment Answer).
+
+   Default value is NULL (none).
+
+   Example 1.10. Set user_data_xsdparameter
+...
+        modparam("ims_registrar_scscf", "user_data_xsd", "/usr/local/etc/kamaili
+o/CxDataType_Rel7.xsd")
+...
+
+3.11. support_wildcardPSI (int)
+
+   indicate support for wildcard PSI is subscription profile (SAA)
+
+   Default value is 0.
+
+   Example 1.11. Set support_wildcardPSIparameter
+...
+        modparam("ims_registrar_scscf", "support_wildcardPSI", 1)
+...
+
+3.12. scscf_name (string)
+
+   The name of the S-CSCF
+
+   Default value is sip:scscf.ims.smilecoms.com:6060.
+
+   Example 1.12. Set scscf_nameparameter
+...
+        modparam("ims_registrar_scscf", "scscf_name", "sip:scscf2.ims.smilecoms.
+com:6060")
+...
+
+3.13. store_profile_dereg (int)
+
+   Should the subscription profile be stored on de-registration
+
+   Default value 0.
+
+   Example 1.13. Set store_profile_deregparameter
+...
+        modparam("ims_registrar_scscf", "store_profile_dereg", 1)
+...
+
+3.14. cxdx_dest_realm (string)
+
+   Destination realm to be used in Diameter messages
+
+   Default value "ims.smilecoms.com"
+
+   Example 1.14. Set cxdx_dest_realmparameter
+...
+        modparam("ims_registrar_scscf", "cxdx_dest_realm", "my.domain,org")
+...
+
+3.15. cxdx_forced_peer (string)
+
+   FQDN of Diameter Peer (HSS) to use for communication (SAR). If you use
+   this, the routing defined in your diameter xml configuration file (CDP)
+   will be ignored and as a result you will lose the benefits of load
+   balancing and failover.
+
+   Default value NULL (none)
+
+   Example 1.15. Set cxdx_forced_peerparameter
+...
+        modparam("ims_registrar_scscf", "cxdx_forced_peer", "hss.ims.smilecoms.c
+om")
+...
+
+3.16. append_branches (integer)
+
+   The parameter controls how lookup function processes multiple contacts.
+   If there are multiple contacts for the given username in usrloc and
+   this parameter is set to 1, Request-URI will be overwritten with the
+   highest-q rated contact and the rest will be appended to sip_msg
+   structure and can be later used by tm for forking. If the parameter is
+   set to 0, only Request-URI will be overwritten with the highest-q rated
+   contact and the rest will be left unprocessed. This parameter can be
+   modified via Kamailio config framework.
+
+   Default value is 0 (disabled)
+
+   Example 1.16. Set cxdx_forced_peerparameter
+...
+        modparam("ims_registrar_scscf", "append_branches", 1)
+...
+
+3.17. method_filtering (integer)
+
+   Tells if the contact filtering based on supported methods should be
+   performed during lookup. It's enabled only if it has a non zero value.
+
+   Default value is 0 (disabled)
+
+   Example 1.17. Set cxdx_forced_peerparameter
+...
+        modparam("ims_registrar_scscf", "method_filtering", 1)
+...
+
+3.18. user_data_always (integer)
+
+   If specified this will make the S-CSCF always request user data from
+   HSS.
+
+   Default value is 0 (disabled)
+
+   Example 1.18. Set user_data_alwaysparameter
+...
+        modparam("ims_registrar_scscf", "user_data_always", 1)
+...
+
+4. Functions
+
+   4.1. save(async_reply_route, domain)
+   4.2. lookup(domain)
+   4.3. lookup_path_to_contact(uri)
+   4.4. unregister(domain)
+   4.5. assign_server_unreg(aysnc_reply_route, domain, direction)
+   4.6. impu_registered(domain)
+   4.7. term_impu_registered(domain)
+   4.8. reg_fetch_contacts(domain, uri, profile)
+   4.9. reg_free_contacts(profile)
+   4.10. can_subscribe_to_reg(domain)
+   4.11. subscribe_to_reg(domain)
+   4.12. can_publish_reg(domain)
+   4.13. publish_reg(domain)
+
+4.1. save(async_reply_route, domain)
+
+   The function processes a REGISTER message. It can add, remove or modify
+   usrloc records depending on Contact and Expires HFs in the REGISTER
+   message. On success and when called from the REQUEST_ROUTE, 200 OK will
+   be returned listing all contacts that are currently in usrloc. On an
+   error, error message will be sent with a short description in reason
+   phrase. In case of internal errors the function will return FALSE,
+   otherwise a force to exit the cfg is file is actioned by returning 0
+   (asynchronous processing)
+
+   Meaning of the parameters is as follows:
+     * async_reply_route- the route to execute after the save has
+       completed. This is required because the save function is executed
+       asynchronously (Diameter).
+     * domain- Logical domain within registrar.
+
+   This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE
+
+   Example 1.19. save usage
+...
+if (!impu_registered("location")) {
+   save("PRE_REG_SAR_REPLY","location");
+}
+...
+
+4.2. lookup(domain)
+
+   This function extract the IMPU from the Request-URI and tries to find
+   all registered contacts in usrloc. If there are no such contacts, -1 is
+   returned. If there are, Request-URI will be rewritten with the contact
+   that has the highest q value. The rest of the contacts will be appended
+   to the sip msg structure (if append_branches is set) and can be later
+   used by TM module for forking for example...
+
+   If the method filtering option is enabled, the lookup function will
+   only return contacts that support the method of the request being
+   processed (see allows header)
+
+   Meaning of the parameters is as follows:
+     * domain - Logical domain within registrar.
+
+   Return codes:
+     * -1 - Not found
+     * -2 - Found, but method not allowed (check Allows header for INVITE,
+       MESSAGE, etc).
+     * -3 - Error ocurred internally during processing
+
+   This function can be used from REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.20. lookup usage
+...
+lookup("location");
+switch ($retcode) {
+    case -1:
+    case -3:
+        sl_send_reply("404", "Not Found");
+        exit;
+    case -2:
+        sl_send_reply("405", "Not Found");
+        exit;
+};
+...
+
+4.3. lookup_path_to_contact(uri)
+
+   This function take a URI and tries to find the contact in usrloc. If
+   the contact is found and has a path set, then a path header is added to
+   the SIP message so it can be loose routed.
+
+   Meaning of the parameters is as follows:
+     * uri - URI of contact to lookup
+
+   Return codes:
+     * 1 - Success
+     * -1 - Failure
+
+   This function can be used from REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.21. lookup usage
+...
+lookup_path_to_contact($ruri);
+...
+
+4.4. unregister(domain)
+
+   This function will remove all bindings for the IMPU found in the
+   Request-URI.
+
+   Meaning of the parameters is as follows:
+     * Domain- Logical domain within registrar.
+
+   This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.22. unregister usage
+...
+unregister("location");
+...
+
+4.5. assign_server_unreg(aysnc_reply_route, domain, direction)
+
+   TBD
+
+   used in REQUEST_ROUTE
+
+4.6. impu_registered(domain)
+
+   This function checks if the IMPU in the To header is registered in
+   usrloc.
+
+   Meaning of the parameters is as follows:
+     * domain- Logical domain within registrar.
+
+   Return codes:
+     * 1 - True, IMPU exists in registered state in usrloc
+     * -1 - False, IMPU not registered
+
+   This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.23. impu_registered usage
+...
+impu_registered("location");
+switch ($retcode) {
+    case -1:
+        sl_send_reply("404", "Not Found");
+        exit;
+    case 1:
+        #true, continue with normal processing
+};
+...
+
+4.7. term_impu_registered(domain)
+
+   This function checks if the IMPU in the Request-URI is registered in
+   usrloc.
+
+   Meaning of the parameters is as follows:
+     * domain- Logical domain within registrar.
+
+   Return codes:
+     * 1 - True, IMPU exists in registered state in usrloc
+     * -1 - False, IMPU not registered
+
+   This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.24. term_impu_registered usage
+...
+term_impu_registered("location");
+switch ($retcode) {
+     case -1:
+          sl_send_reply("404", "Not Found");
+          exit;
+     case 1:
+          #true, continue with normal processing
+};
+...
+
+4.8. reg_fetch_contacts(domain, uri, profile)
+
+   The function fetches the contacts for 'uri' from table 'domain' to
+   pseudo-variable $imssulc(profile) [imssulc = ims scscf ulc].
+
+   Meaning of the parameters is as follows:
+     * domain - Name of table that should be used for the lookup of
+       contact addresses.
+     * uri - The SIP URI address of the user which to fetch the contact
+       addresses for. It can contain pseudo-variables that are evaluated
+       at runtime.
+     * profile - Name of $imssulc pseudo-variable profile that will store
+       the fetched contacts. It is a static string.
+
+   This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.25. reg_fetch_contacts usage
+...
+reg_fetch_contacts("location", "$ru", "callee");
+reg_fetch_contacts("location", "sip:[email protected]", "caller");
+...
+
+4.9. reg_free_contacts(profile)
+
+   The function frees the contacts from pseudo-variable $ulc(profile).
+   Should be called to release the content of a profile. Anyhow, fetching
+   a new contact addresses set over a profile will release any existing
+   data in that profile.
+
+   Meaning of the parameters is as follows:
+     * profile - Name of $imssulc pseudo-variable profile that stores the
+       contacts. It is a static string.
+
+   This function can be used in REQUEST_ROUTE, FAILURE_ROUTE
+
+   Example 1.26. reg_free_contacts usage
+...
+reg_free_contacts("callee");
+...
+
+4.10. can_subscribe_to_reg(domain)
+
+   This function checks to see that a SUBSCRIBE request is authorised to
+   subscribe to the particular identity. Only 3 entities can subscribe:
+     * The user agent to it's own state
+     * The P-CSCF specified in the path header for that user
+     * Application Server (AS) not yet implemented
+
+   Meaning of the parameters is as follows:
+     * domain - Logical domain within registrar.
+
+   This function can be used in REQUEST_ROUTE
+
+   Example 1.27. can_subscribe_to_reg usage
+...
+if (can_subscribe_to_reg("location")){
+     $var(ret)= subscribe_to_reg("location");
+}
+...
+
+4.11. subscribe_to_reg(domain)
+
+   Save the subscription to the REG event for the UAC or the appropriate
+   P-CSCF (in the path to the UAC).
+
+   Meaning of the parameters is as follows:
+     * domain - Logical domain within registrar.
+
+   This function can be used in REQUEST_ROUTE
+
+   Example 1.28. subscribe_to_reg usage
+...
+if (can_subscribe_to_reg("location")){
+     $var(ret)= subscribe_to_reg("location");
+}
+...
+
+4.12. can_publish_reg(domain)
+
+   This function checks to see that a PUBLISH request is authorised to
+   publish for a particular identity. Only 3 entities can publish:
+     * The user agent to it's own state
+     * The P-CSCF specified in the path header for that user
+     * Application Server (AS) not yet implemented
+
+   Meaning of the parameters is as follows:
+     * domain - Logical domain within registrar.
+
+   This function can be used in REQUEST_ROUTE
+
+   Example 1.29. can_publish_reg usage
+...
+if (can_publish_reg("location")){
+    $var(ret)= publish_reg("location");
+}
+...
+
+4.13. publish_reg(domain)
+
+   Save the publish to the REG event for the UAC or the appropriate P-CSCF
+   (in the path to the UAC).
+
+   Meaning of the parameters is as follows:
+     * domain - Logical domain within registrar.
+
+   This function can be used in REQUEST_ROUTE
+
+   Example 1.30. publish_reg usage
+...
+if (can_publish_reg("location")){
+    $var(ret)= publish_reg("location");
+}
+...
+
+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.