Browse Source

registrar Minor doc updates, adding section ID's

Olle E. Johansson 11 years ago
parent
commit
b5c5090cc9

+ 98 - 90
modules/registrar/README

@@ -242,7 +242,7 @@ Chapter 1. Admin Guide
 
    GRUU (RFC5627) is supported with both public and temporary addresses.
 
-   The public GRUU is build based on '+sip.instance' parameter as
+   The public GRUU is build based on the '+sip.instance' UUID parameter as
    recommended by RFC.
 
    The temporary GRUU is built based on internal SRUID (unique id
@@ -316,13 +316,12 @@ modparam("registrar", "default_expires", 1800)
 3.2. default_expires_range (integer)
 
    This parameter specifies that the expiry used for newly created usrloc
-   records are not fixed(when "default_expires" applies), but a random
-   value in the interval "[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.
+   records are not fixed, but a random value in the interval
+   "[default_expires-default_expires_range%, default_expires]". The value
+   is between 0 and 100 and represent the maximim percentage from expires
+   that will be substracted when computing the value. Default is 0,
+   meaning default_expires is left unmodified. This parameter can be
+   modified via the Kamailio config framework.
 
    Default value is 0.
 
@@ -334,9 +333,8 @@ modparam("registrar", "default_expires_range", 30) # +- 30% from default_expires
 3.3. expires_range (integer)
 
    Similar to default_expires_range, but it applies to the incoming
-   expires value and it only lowers the value. Default in 0, meaning the
-   expires is left unmodified. This parameter can be modified via config
-   framework.
+   expires value. Default in 0, meaning the expires is left unmodified.
+   This parameter can be modified via the Kamailio config framework.
 
    Default value is 0.
 
@@ -348,9 +346,10 @@ res]
 
 3.4. min_expires (integer)
 
-   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.
+   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 the Kamailio config
+   framework.
 
    Default value is 60.
 
@@ -361,9 +360,10 @@ modparam("registrar", "min_expires", 60)
 
 3.5. max_expires (integer)
 
-   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.
+   The maximum accepted 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 the Kamailio config
+   framework.
 
    Default value is 0.
 
@@ -374,11 +374,11 @@ modparam("registrar", "max_expires", 120)
 
 3.6. default_q (integer)
 
-   The parameter represents default q value for new contacts. Because
+   The parameter represents default "q" value for new contacts. Because
    Kamailio doesn't support float parameter types, the value in the
    parameter is divided by 1000 and stored as float. For example, if you
    want default_q to be 0.38, use value 380 here. This parameter can be
-   modified via ser config framework.
+   modified via the Kamailio config framework.
 
    Default value is 0.
 
@@ -394,7 +394,7 @@ modparam("registrar", "default_q", 1000)
    the master domain can be defined for SIP purposes (like
    sip.mydomain.net pointing to same IP address as the SRV record for
    mydomain.net). By ignoring the realm_prefix "sip.", at registration,
-   sip.mydomain.net will be equivalent to mydomain.net.This parameter can
+   sip.mydomain.net will be equivalent to mydomain.net. This parameter can
    be modified via the Kamailio config framework.
 
    Default value is NULL (none).
@@ -431,7 +431,7 @@ modparam("registrar", "append_branches", 0)
 
    If set to 1 then AOR comparison and also storing will be case
    sensitive, if set to 0 then AOR comparison and storing will be case
-   insensitive--This is recommended. This parameter can be modified via
+   insensitive. This is recommended. This parameter can be modified via
    Kamailio config framework.
 
    Default value is 0.
@@ -446,8 +446,8 @@ modparam("registrar", "case_sensitive", 1)
    Registrar will store the value of the AVP configured by this parameter
    in the received column in the user location database. It will leave the
    column empty if the AVP is empty. The AVP should contain a SIP URI
-   consisting of the source IP, port, and protocol of the REGISTER message
-   being processed.
+   consisting of the source IP, port, and transport protocol of the
+   REGISTER message being processed.
 
 Note
 
@@ -463,9 +463,9 @@ modparam("registrar", "received_avp", "$avp(s:rcv)")
 
 3.12. received_param (string)
 
-   The name of the parameter that will be appended to Contacts of 200 OK
-   when the received URI was set by nathelper module. If the value is
-   empty string, then the parameter is not appended anymore.
+   The name of the parameter that will be appended to Contact URI's of 200
+   OK when the received URI was set by the "nathelper" module. If the
+   value is an empty string, then the parameter is not appended anymore.
 
    Default value is "received".
 
@@ -491,11 +491,12 @@ modparam("registrar", "max_contacts", 10)
 
 3.14. retry_after (integer)
 
-   The registrar can generate 5xx reply to REGISTER in various situations.
-   It can, for example, happen when the max_contacts parameter is set and
-   the processing of REGISTER request would exceed the limit. In this case
-   the registrar would generate "503 Service Unavailable" response. This
-   parameter can be modified via the Kamailio config framework.
+   The registrar can generate a 5xx reply to REGISTER requests in various
+   situations. It can, for example, happen when the max_contacts parameter
+   is set and the processing of REGISTER request would exceed the limit.
+   In this case the registrar would generate "503 Service Unavailable"
+   response. This parameter can be modified via the Kamailio config
+   framework.
 
    If you want to add the Retry-After header field in 5xx replies, set
    this parameter to a value grater than zero (0 means do not add the
@@ -510,9 +511,10 @@ modparam("registrar", "retry_after", 30)
 
 3.15. sock_flag (integer)
 
-   Message flag to signal to register module to look into REGISTER request
-   for a header which contains a socket description (IP:port). This socket
-   info will be stored by register instead of the received socket info.
+   Message flag to signal to the registrar module to look into REGISTER
+   request for a header which contains a socket description (IP:port).
+   This socket info will be stored by registrar instead of the received
+   socket info.
 
    This makes sense only in multiple replicated servers scenarios.
 
@@ -542,6 +544,8 @@ modparam("registrar", "sock_hdr_name", "Sock-Info")
 
    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.
+   Supported methods are listed in the "Allow:" header in the REGISTER
+   message and stored in the location database.
 
    Default value is 0 (disabled).
 
@@ -552,8 +556,9 @@ modparam("registrar", "method_filtering", 1)
 
 3.18. use_path (integer)
 
-   If set to 1, the Path header is handled according to the parameter This
-   parameter can be modified via ser config framework. "path_mode".
+   If set to 1, the "Path:" header is handled according to the parameter
+   This parameter can be modified via Kamailio config framework.
+   "path_mode".
 
    Default value is 0 (disabled).
 
@@ -570,7 +575,7 @@ modparam("registrar", "use_path", 1)
        the reply.
      * 1 - The Path header is saved into usrloc, but is only included in
        the reply if path support is indicated in the registration request
-       by the "path" option of the "Supported" header.
+       by the "path" option in the "Supported:" header.
      * 2 - The path header is only saved into usrloc, if path support is
        indicated in the registration request by the "path" option of the
        "Supported" header. If no path support is indicated, the request is
@@ -602,7 +607,7 @@ modparam("registrar", "path_use_received", 1)
 
 3.21. reg_callid_avp (string)
 
-   If reg_callid_avp is defined and populated when registered() is
+   If reg_callid_avp is defined and populated when the registered() is
    invoked, the result is TRUE only if an active registration with the
    specified callID is found.
 
@@ -618,7 +623,7 @@ modparam("registrar", "reg_callid_avp", "$avp(s:avp)")
    Defines the name of XAVP class to store runtime module config values.
    The values are stored as inner XAVPs, like $xavp(class=>attribute).
    Valid inner XAVP names:
-     * max_contacts - the number of maximum contacts to be stored for
+     * max_contacts - the number of maximum contacts to be stored for the
        current registration AoR. It overwrites the 'max_contacts' module
        parameter value.
      * socket - the string representing the socket on which the register
@@ -653,7 +658,7 @@ modparam("registrar", "xavp_rcd", "ulrcd")
 
 3.24. gruu_enabled (integer)
 
-   If set to 1 and GRUU "+sip.instance" parameter to Contact header of
+   If set to 1 and the "+sip.instance" parameter to Contact header of
    REGISTER is present, then the value of the parameter is saved to
    location and pub-gruu and temp-gruu addresses are generated.
 
@@ -669,20 +674,21 @@ modparam("registrar", "gruu_enabled", 0)
 3.25. outbound_mode (integer)
 
    If set to 0 this module will accept REGISTER requests that do not
-   contain a Supported: header with the outbound options-tag. The 200 OK
+   contain a "Supported:" header with the outbound options-tag. The 200 OK
    response to REGISTER requests that this module generates will not
-   contain Require: or Supported: headers with the outbound options-tag.
-   If the client has a Require: header with the outbound options tag the
-   REGISTER will be rejected with a 420 Bad Extension response.
+   contain "Require:" or "Supported:" headers with the outbound
+   options-tag. If the client has a "Require:" header with the outbound
+   options tag the REGISTER will be rejected with a "420 Bad Extension"
+   response.
 
    If set to 1 this module will accept REGISTER requests that do not
-   contain a Supported: header with the outbound options-tag and REGISTER
-   requests that do contain a Supported: or Requires: header with the
-   outbound options-tag. When the client supports outbound the appropriate
-   RFC5626 procedures will be followed.
+   contain a "Supported:" header with the outbound options-tag and
+   REGISTER requests that do contain a Supported: or Requires: header with
+   the outbound options-tag. When the client supports outbound the
+   appropriate RFC5626 procedures will be followed.
 
    If set to 2 this module will reject REGISTER requests that do not
-   contain a Supported: header with the outbound options-tag. When the
+   contain a "Supported:" header with the outbound options-tag. When the
    client supports outbound the appropriate RFC5626 procedures will be
    followed.
 
@@ -695,12 +701,12 @@ modparam("registrar", "outbound_mode", 2)
 
 3.26. regid_mode (integer)
 
-   If set to 0 this module will ignore regid contact param when saving
-   REGISTER request if REGISTER request does not indicate support for
+   If set to 0 this module will ignore the "regid" contact param when
+   saving REGISTER request if the request does not indicate support for
    outbound.
 
-   If set to 1 this module will use regid contact param (if present) when
-   saving REGISTER request even if REGISTER request does not indicate
+   If set to 1 this module will use "regid" contact param (if present)
+   when saving REGISTER request even if REGISTER request does not indicate
    support for outbound.
 
    Default value is 0.
@@ -712,22 +718,23 @@ modparam("registrar", "regid_mode", 1)
 
 3.27. flow_timer (integer)
 
-   If set to 0 then this module will not add a Flow-Timer: header to 200
+   If set to 0 then this module will not add a "Flow-Timer:" header to 200
    OK responses to REGISTER requests.
 
-   If set to > 0 then this module will add a Flow-Timer: header containing
-   this value to 200 OK responses to REGISTER requests. This parameter may
-   only be set to a value > 0 when outbound_mode is set to 1 or 2.
-
-   When set to a value > 0 this parameter should be set to slightly less
-   than the connection timeout value between the UAC and the network (this
-   corresponds to the core tcp_connection_lifetime option and websocket
-   keepalive_timeout modparam). This parameter is most useful when you
-   have a single edge proxy/registrar or if you have an edge proxy that
-   cannot modify responses. If you are using a separate edge proxy you
-   should consider leaving this parameter set to 0 and adding the
-   Flow-Timer: header on the edge proxy as this allows you to keep all of
-   the timer values for a specific flow in one configuration.
+   If set to > 0 then this module will add a "Flow-Timer:" header
+   containing this value to 200 OK responses to REGISTER requests. This
+   parameter may only be set to a value > 0 when outbound_mode is set to 1
+   or 2.
+
+   When set to a value greater than 0 this parameter should be set to
+   slightly less than the connection timeout value between the UAC and the
+   network (this corresponds to the core tcp_connection_lifetime option
+   and websocket keepalive_timeout modparam). This parameter is most
+   useful when you have a single edge proxy/registrar or if you have an
+   edge proxy that cannot modify responses. If you are using a separate
+   edge proxy you should consider leaving this parameter set to 0 and
+   adding the "Flow-Timer:" header on the edge proxy as this allows you to
+   keep all of the timer values for a specific flow in one configuration.
 
    Default value is 0.
 
@@ -750,15 +757,15 @@ modparam("registrar", "flow_timer", 25)
 4.1. save(domain, [, flags [, uri]])
 
    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 send with a short description in reason
-   phrase.
+   location records (in usrloc) 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 the location database. On an error, an error message will
+   be sent with a short description in reason phrase.
 
    Meaning of the parameters is as follows:
-     * domain - Logical domain within registrar. If database is used then
-       this must be name of the table which stores the contacts.
+     * domain - Logical domain within the registrar. If a database is used
+       then this must be name of the table which stores the contacts.
      * flags (optional) - the value may be a bitwise OR of the following
        flags:
           + 0x01 - save the contacts only in memory cache without no DB
@@ -794,12 +801,12 @@ save("location", "0x00", "sip:[email protected]");
 
 4.2. lookup(domain [, uri])
 
-   The function extracts username from Request-URI and tries to find all
-   contacts for the username in usrloc. If there are no such contacts, -1
-   will be returned. If there are such contacts, Request-URI will be
-   overwritten with the contact that has the highest q value and
-   optionally the rest will be appended to the message (depending on
-   append_branches parameter value).
+   The lookup function extracts username and/or domain from Request-URI
+   and tries to find all contacts for the username in usrloc. If there are
+   no such contacts, -1 will be returned. If there are such contacts,
+   Request-URI will be overwritten with the contact that has the highest q
+   value and optionally the rest will be appended to the message
+   (depending on append_branches parameter value).
 
    If the method_filtering option is enabled, the lookup function will
    return only the contacts that support the method of the processed
@@ -840,7 +847,7 @@ switch ($retcode) {
    Meaning of the parameters is as follows:
      * domain - Name of table that should be used for the lookup.
 
-   Return codes are propagated from lookup(domain).
+   Return codes are propagated from the lookup(domain) function.
 
    This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
 
@@ -853,7 +860,7 @@ lookup_branches("location");
 
    The function returns true if the AOR in the Request-URI is registered,
    false otherwise. The function does not modify the message being
-   process, it neither rewrites the Request-URI if a contact is found not
+   process, it neither rewrites the Request-URI if a contact is found nor
    append branches.
 
    Meaning of the parameters is as follows:
@@ -873,10 +880,10 @@ if (registered("location")) {
 
 4.5. add_sock_hdr(hdr_name)
 
-   Adds to the current REGISTER request a new header with "hdr_name" which
+   Adds a new header to the current REGISTER request with "hdr_name" which
    contains the description of the received socket (proto:ip:port)
 
-   This make sens only in multiple replicated servers scenarios.
+   This makes sense only in multiple replicated servers scenarios.
 
    Meaning of the parameters is as follows:
      * hdr_name - header name to be used.
@@ -890,10 +897,11 @@ add_sock_hdr("Sock-Info");
 
 4.6. unregister(domain, uri[, ruid])
 
-   The function removes contacts associated with 'uri'. If 'ruid' is
-   provided a specific contact is removed, if 'ruid' is not provided all
-   contacts are removed. If 'ruid' is provided and usrloc is using
-   db_mode=3, 'uri' does not need to be given and can be empty string.
+   The function removes contacts associated with 'uri' from the location
+   database. If 'ruid' is provided a specific contact is removed, if
+   'ruid' is not provided all the current contacts are removed. If 'ruid'
+   is provided and the "usrloc" module is using "db_mode=3", 'uri' does
+   not need to be given and can be empty string.
 
    Meaning of the parameters is as follows:
      * domain - Name of table that should be used for the lookup or
@@ -1069,7 +1077,7 @@ Chapter 2. Frequently Asked Questions
 
    2.1. What happend with the old "nat_flag" module parameter?
    2.2. What happend with the old "use_domain" module parameter?
-   2.3. What happend with the old "save_noreply" and "save_memory"
+   2.3. What happened with the old "save_noreply" and "save_memory"
           functions?
 
    2.4. Where can I find more about Kamailio?
@@ -1093,7 +1101,7 @@ Chapter 2. Frequently Asked Questions
 
    2.3.
 
-   What happend with the old "save_noreply" and "save_memory" functions?
+   What happened with the old "save_noreply" and "save_memory" functions?
 
    There functions were merged into the new "save(domain,flags)"
    functions. If a reply should be sent or if the DB should be updated

+ 102 - 95
modules/registrar/doc/registrar_admin.xml

@@ -13,7 +13,7 @@
 	
 	<title>&adminguide;</title>
 	
-	<section>
+	<section id="rergistrar.overview">
 	<title>Overview</title>
 	<para>The module contains REGISTER processing logic. The actual location
 		database is managed by the USRLOC module.
@@ -77,8 +77,8 @@
 			addresses.
 		</para>
 		<para>
-			The public GRUU is build based on '+sip.instance'
-			parameter as recommended by RFC.
+			The public GRUU is build based on the '+sip.instance'
+			UUID parameter as recommended by RFC.
 		</para>
 		<para>
 			The temporary GRUU is built based on internal SRUID (unique
@@ -127,7 +127,7 @@
 	</section>
 	<section>
 	<title>Parameters</title>
-	<section>
+	<section id="registrar.p.default_expires">
 		<title><varname>default_expires</varname> (integer)</title>
 		<para>
 		If the processed message contains neither Expires 
@@ -153,14 +153,14 @@ modparam("registrar", "default_expires", 1800)
 </programlisting>
 		</example>
 	</section>
-	<section>
+	<section id="registrar.p.default_expires_range">
 		<title><varname>default_expires_range</varname> (integer)</title>
 		<para>
 		This parameter specifies that the expiry used for newly created usrloc records
 		are not fixed, but a random value in the interval <quote>[default_expires-default_expires_range%, default_expires]</quote>.
 		The value is between 0 and 100 and represent the maximim percentage from expires that
-		will be substracted when computing the value. Default in 0, meaning default_expires
-		is left unmodified. This parameter can be modified via ser config framework.
+		will be substracted when computing the value. Default is 0, meaning default_expires
+		is left unmodified. This parameter can be modified via the &kamailio; config framework.
 		</para>
 		<para>
 		<emphasis>
@@ -176,12 +176,12 @@ modparam("registrar", "default_expires_range", 30) # +- 30% from default_expires
 </programlisting>
 		</example>
 	</section>
-	<section>
+	<section id="registrar.p.expires_range">
 		<title><varname>expires_range</varname> (integer)</title>
 		<para>
 		Similar to default_expires_range, but it applies to the incoming expires
 		value. Default in 0, meaning the expires is left unmodified. 
-		This parameter can be modified via config framework.
+		This parameter can be modified via the &kamailio; config framework.
 		</para>
 		<para>
 		<emphasis>
@@ -198,12 +198,12 @@ modparam("registrar", "expires_range", 30) # expires within [0.7*expires .. expi
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.min_expires">
 		<title><varname>min_expires</varname> (integer)</title>
 		<para>
-		The minimum expires value of a Contact, values lower than this 
+		The minimum expires value of a <quote>Contact</quote>. 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.
+		the checking. This parameter can be modified via the &kamailio; config framework.
 		</para>
 		<para>
 		<emphasis>
@@ -219,12 +219,12 @@ modparam("registrar", "min_expires", 60)
 </programlisting>
 		</example>
 	</section>
-	<section>
+	<section id="registrar.p.max_expires">
 		<title><varname>max_expires</varname> (integer)</title>
 		<para>
-		The maximum expires value of a Contact, values higher than this 
+		The maximum accepted expires value of a <quote>Contact</quote>, 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.
+		the checking. This parameter can be modified via the &kamailio; config framework.
 		</para>
 		<para>
 		<emphasis>
@@ -241,13 +241,14 @@ modparam("registrar", "max_expires", 120)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.default_q">
 		<title><varname>default_q</varname> (integer)</title>
 		<para>
-		The parameter represents default q value for new contacts. Because 
+		The parameter represents default <quote>q</quote> value for new contacts. Because 
 		&kamailio; doesn't support float parameter types, the value in the parameter 
 		is divided by 1000 and stored as float. For example, if you want 
-		default_q to be 0.38, use value 380 here. This parameter can be modified via ser config framework.
+		default_q to be 0.38, use value 380 here. This parameter can be modified via 
+		the &kamailio; config framework.
 		</para>
 		<para>
 		<emphasis>
@@ -264,7 +265,7 @@ modparam("registrar", "default_q", 1000)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.realm_prefix">
 		<title><varname>realm_prefix</varname> (string)</title>
 		<para>
 		 Prefix to be automatically stripped from realm. As an alternative to 
@@ -272,7 +273,7 @@ modparam("registrar", "default_q", 1000)
 		 the master domain can be defined for SIP purposes (like 
 		 sip.mydomain.net pointing to same IP address as the SRV record for 
 		 mydomain.net). By ignoring the realm_prefix "sip.", at registration,
-		 sip.mydomain.net will be equivalent to mydomain.net.This parameter 
+		 sip.mydomain.net will be equivalent to mydomain.net. This parameter 
 		 can be modified via the &kamailio; config framework.
 		</para>
 		<para>
@@ -318,7 +319,7 @@ modparam("registrar", "append_branches", 0)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.aor_avp">
 		<title><varname>aor_avp</varname> (str)</title>
 		<para>
 		This module parameter has been removed. Use the 'uri' parameter from
@@ -326,12 +327,12 @@ modparam("registrar", "append_branches", 0)
 		</para>
 	</section>
 
-	<section>
+	<section id="registrar.p.case_sensitive">
 		<title><varname>case_sensitive</varname> (integer)</title>
 		<para>
 		If set to 1 then <acronym>AOR</acronym> comparison and also
 		storing will be case sensitive, if set to 0 then <acronym>AOR</acronym>
-		comparison and storing will be case insensitive--This is recommended.
+		comparison and storing will be case insensitive. This is recommended.
 		This parameter can be modified via &kamailio; config framework.
 		</para>
 		<para>
@@ -349,14 +350,14 @@ modparam("registrar", "case_sensitive", 1)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.received_avp">
 		<title><varname>received_avp</varname> (str)</title>
 		<para>
 		Registrar will store the value of the AVP configured by this 
 		parameter in the received column in the user location database. 
 		It will leave the column empty if the AVP is empty. The AVP should 
 		contain a SIP URI consisting of the source IP, port,
-		and protocol of the REGISTER message being processed.
+		and transport protocol of the REGISTER message being processed.
 		</para>
 		<note>
 		<para>
@@ -379,12 +380,12 @@ modparam("registrar", "received_avp", "$avp(s:rcv)")
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.received_param">
 		<title><varname>received_param</varname> (string)</title>
 		<para>
-		The name of the parameter that will be appended to Contacts of 
-		200 OK when the received URI was set by nathelper module. If the
-		value is empty string, then the parameter is not appended anymore.
+		The name of the parameter that will be appended to Contact URI's of 
+		200 OK when the received URI was set by the <quote>nathelper</quote> module. If the
+		value is an empty string, then the parameter is not appended anymore.
 		</para>
 		<para>
 		<emphasis>
@@ -401,7 +402,7 @@ modparam("registrar", "received_param", "rcv")
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.max_contacts">
 		<title><varname>max_contacts</varname> (integer)</title>
 		<para>
 		The parameter can be used to limit the number of contacts per 
@@ -425,10 +426,10 @@ modparam("registrar", "max_contacts", 10)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.retry_after">
 		<title><varname>retry_after</varname> (integer)</title>
 		<para>
-		The registrar can generate 5xx reply to REGISTER in various 
+		The registrar can generate a 5xx reply to REGISTER requests in various 
 		situations. It can, for example, happen when the 
 		<varname>max_contacts</varname> parameter is set and the
 		processing of REGISTER request would exceed the limit. In this case 
@@ -455,12 +456,12 @@ modparam("registrar", "retry_after", 30)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.sock_flag">
 		<title><varname>sock_flag</varname> (integer)</title>
 		<para>
-		Message flag to signal to register module to look into REGISTER 
+		Message flag to signal to the registrar module to look into REGISTER 
 		request for a header which contains a socket description (IP:port). 
-		This socket info will be stored by register instead of the received 
+		This socket info will be stored by registrar instead of the received 
 		socket info.
 		</para>
 		<para>
@@ -481,7 +482,7 @@ modparam("registrar", "sock_flag", 18)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.sock_hdr_name">
 		<title><varname>sock_hdr_name</varname> (string)</title>
 		<para>
 		Header which contains a socket description (proto:IP:port) to override
@@ -506,12 +507,13 @@ modparam("registrar", "sock_hdr_name", "Sock-Info")
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.method_filtering">
 		<title><varname>method_filtering</varname> (integer)</title>
 		<para>
 		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.
+		value. Supported methods are listed in the <quote>Allow:</quote> 
+		header in the REGISTER message and stored in the location database.
 		</para>
 		<para>
 		<emphasis>
@@ -528,11 +530,11 @@ modparam("registrar", "method_filtering", 1)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.use_path">
 		<title><varname>use_path</varname> (integer)</title>
 		<para>
-		If set to 1, the Path header is handled according to the parameter 
-		This parameter can be modified via ser config framework.
+		If set to 1, the <quote>Path:</quote> header is handled according to the parameter 
+		This parameter can be modified via &kamailio; config framework.
 		<quote>path_mode</quote>.
 		</para>
 		<para>
@@ -550,7 +552,7 @@ modparam("registrar", "use_path", 1)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.path_mode">
 		<title><varname>path_mode</varname> (integer)</title>
 		<para>
 		The registrar module implements three different modes regarding the 
@@ -567,8 +569,8 @@ modparam("registrar", "use_path", 1)
 			<para>
 			1 - The Path header is saved into usrloc, but is only included in 
 			the reply if path support is indicated in the registration request 
-			by the <quote>path</quote> option of the 
-			<quote>Supported</quote> header.
+			by the <quote>path</quote> option in the 
+			<quote>Supported:</quote> header.
 			</para>
 		</listitem>
 		<listitem>
@@ -599,7 +601,7 @@ modparam("registrar", "path_mode", 0)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.path_use_received">
 		<title><varname>path_use_received</varname> (integer)</title>
 		<para>
 		If set to 1, the <quote>received</quote> parameter of the first Path 
@@ -624,11 +626,12 @@ modparam("registrar", "path_use_received", 1)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.reg_callid_avp">
 		<title><varname>reg_callid_avp</varname> (string)</title>
 		<para>
-		If reg_callid_avp is defined and populated when registered() is
-		invoked, the result is TRUE only if an active registration with
+		If reg_callid_avp is defined and populated when the
+		<function>registered()</function> is invoked, the result is 
+		TRUE only if an active registration with
 		the specified callID is found.
 		</para>
 		<para>
@@ -646,7 +649,7 @@ modparam("registrar", "reg_callid_avp", "$avp(s:avp)")
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.xavp_cfg">
 		<title><varname>xavp_cfg</varname> (string)</title>
 		<para>
 			Defines the name of XAVP class to store runtime module config
@@ -657,7 +660,7 @@ modparam("registrar", "reg_callid_avp", "$avp(s:avp)")
 		<listitem>
 			<para>
 				<emphasis>max_contacts</emphasis> - the number of maximum
-				contacts to be stored for current registration AoR. It
+				contacts to be stored for the current registration AoR. It
 				overwrites the 'max_contacts' module parameter value.
 			</para>
 		</listitem>
@@ -688,7 +691,7 @@ modparam("registrar", "xavp_cfg", "reg")
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.xavp_rcd">
 		<title><varname>xavp_rcd</varname> (string)</title>
 		<para>
 			Defines the name of XAVP class to store details from the
@@ -722,10 +725,10 @@ modparam("registrar", "xavp_rcd", "ulrcd")
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.gruu_enabled">
 		<title><varname>gruu_enabled</varname> (integer)</title>
 		<para>
-		If set to 1 and GRUU <quote>+sip.instance</quote> parameter to
+		If set to 1 and the <quote>+sip.instance</quote> parameter to
 		Contact header of REGISTER is present, then the value of the
 		parameter is saved to location and pub-gruu and temp-gruu addresses
 		are generated.
@@ -748,28 +751,29 @@ modparam("registrar", "gruu_enabled", 0)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.outbound_mode">
 		<title><varname>outbound_mode</varname> (integer)</title>
 		<para>
 		If set to 0 this module will accept REGISTER requests that do
-		not contain a Supported: header with the outbound options-tag.
+		not contain a <quote>Supported:</quote> header with the outbound options-tag.
 		The 200 OK response to REGISTER requests that this module
-		generates will not contain Require: or Supported: headers with
-		the outbound options-tag. If the client has a Require: header
+		generates will not contain <quote>Require:</quote> or 
+		<quote>Supported:</quote> headers with
+		the outbound options-tag. If the client has a <quote>Require:</quote> header
 		with the outbound options tag the REGISTER will be rejected
-		with a 420 Bad Extension response.
+		with a <quote>420 Bad Extension</quote> response.
 		</para>
 		<para>
 		If set to 1 this module will accept REGISTER requests that
-		do not contain a Supported: header with the outbound
+		do not contain a <quote>Supported:</quote> header with the outbound
 		options-tag and REGISTER requests that do contain a Supported:
 		or Requires: header with the outbound options-tag. When the
-		client supports outbound the appropriate RFC5626 procedures
-		will be followed.
+		client supports <emphasis>outbound</emphasis> the appropriate
+		RFC5626 procedures will be followed.
 		</para>
 		<para>
 		If set to 2 this module will reject REGISTER requests that
-		do not contain a Supported: header with the outbound
+		do not contain a <quote>Supported:</quote> header with the outbound
 		options-tag. When the client supports outbound the appropriate
 		RFC5626 procedures will be followed.
 		</para>
@@ -788,15 +792,15 @@ modparam("registrar", "outbound_mode", 2)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.regid_mode">
 		<title><varname>regid_mode</varname> (integer)</title>
 		<para>
-		If set to 0 this module will ignore regid contact param
-		when saving REGISTER request if REGISTER request does not
+		If set to 0 this module will ignore the <quote>regid</quote> contact param
+		when saving REGISTER request if the request does not
 		indicate support for outbound.
 		</para>
 		<para>
-		If set to 1 this module will use regid contact param
+		If set to 1 this module will use <quote>regid</quote> contact param
 		(if present) when saving REGISTER request even if 
 		REGISTER request does not indicate support for outbound.
 		</para>
@@ -815,20 +819,20 @@ modparam("registrar", "regid_mode", 1)
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.p.flow_timer">
 		<title><varname>flow_timer</varname> (integer)</title>
 		<para>
-		If set to 0 then this module will not add a Flow-Timer: header
+		If set to 0 then this module will not add a <quote>Flow-Timer:</quote> header
 		to 200 OK responses to REGISTER requests.
 		</para>
 		<para>
-		If set to > 0 then this module will add a Flow-Timer: header
+		If set to > 0 then this module will add a <quote>Flow-Timer:</quote> header
 		containing this value to 200 OK responses to REGISTER requests.
 		This parameter may only be set to a value > 0 when
 		<emphasis>outbound_mode</emphasis> is set to 1 or 2.
 		</para>
 		<para>
-		When set to a value > 0 this parameter should be set to slightly
+		When set to a value greater than 0 this parameter should be set to slightly
 		less than the connection timeout value between the UAC and the
 		network (this corresponds to the core
 		<emphasis>tcp_connection_lifetime</emphasis> option and
@@ -838,7 +842,7 @@ modparam("registrar", "regid_mode", 1)
 		proxy/registrar or if you have an edge proxy that cannot modify
 		responses. If you are using a separate edge proxy you should
 		consider leaving this parameter set to 0 and adding the
-		Flow-Timer: header on the edge proxy as this allows you to
+		<quote>Flow-Timer:</quote> header on the edge proxy as this allows you to
 		keep all of the timer values for a specific flow in one
 		configuration.
 		</para>
@@ -863,24 +867,24 @@ modparam("registrar", "flow_timer", 25)
 	
 	<section>
 	<title>Functions</title>
-	<section>
+	<section id="registrar.f.save">
 		<title>
 		<function moreinfo="none">save(domain, [, flags [, uri]])</function>
 		</title>
 		<para>
-		The function processes a REGISTER message. It can add, remove or 
-		modify usrloc records depending on Contact and Expires HFs in the 
+		The function processes 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. 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 send with a short
+		<quote>200 OK</quote> will be returned listing all contacts that are currently in 
+		the location database. On an error, an error message will be sent with a short
 		description in reason phrase.
 		</para>
 		<para>Meaning of the parameters is as follows:</para>
 		<itemizedlist>
 		<listitem>
 			<para>
-			<emphasis>domain</emphasis> - Logical domain within registrar. 
-			If database is used then this must be name of the table which 
+			<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>
@@ -952,12 +956,12 @@ save("location", "0x00", "sip:[email protected]");
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.f.lookup">
 		<title>
 		<function moreinfo="none">lookup(domain [, uri])</function>
 		</title>
 		<para>
-		The function extracts username from Request-URI and tries to find 
+		The lookup function extracts username and/or domain from Request-URI and tries to find 
 		all contacts for the username in usrloc. If there are no such 
 		contacts, -1 will be returned.  If there are such contacts, 
 		Request-URI will be overwritten with the contact that has
@@ -965,7 +969,8 @@ save("location", "0x00", "sip:[email protected]");
 		the message (depending on append_branches parameter value).
 		</para>
 		<para>
-		If the method_filtering option is enabled, the lookup function
+		If the <varname>method_filtering</varname> option is enabled,
+		the <function>lookup</function> function
 		will return only the contacts that support the method of the
 		processed request.
 		</para>
@@ -1024,7 +1029,7 @@ switch ($retcode) {
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.f.lookup_branches">
 		<title>
 		<function moreinfo="none">lookup_branches(domain)</function>
 		</title>
@@ -1041,7 +1046,8 @@ switch ($retcode) {
 			</para>
 		</listitem>
 		</itemizedlist>
-		<para>Return codes are propagated from lookup(domain).</para>
+		<para>Return codes are propagated from the <function>lookup(domain)</function> function.
+		</para>
 
 		<para>
 		This function can be used from REQUEST_ROUTE, FAILURE_ROUTE.
@@ -1056,7 +1062,7 @@ lookup_branches("location");
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.f.registered">
 		<title>
 		<function moreinfo="none">registered(domain [, uri])</function>
 		</title>
@@ -1064,7 +1070,7 @@ lookup_branches("location");
 		The function returns true if the AOR in the Request-URI is 
 		registered, false otherwise.  The function does not modify the 
 		message being process, it neither rewrites the Request-URI if a 
-		contact is found not append branches.
+		contact is found nor append branches.
 		</para>
 		<para>Meaning of the parameters is as follows:</para>
 		<itemizedlist>
@@ -1097,17 +1103,17 @@ if (registered("location")) {
 		</example>
 	</section>
 
-	<section>
+	<section id="registrar.f.add_sock_hdr">
 		<title>
 		<function moreinfo="none">add_sock_hdr(hdr_name)</function>
 		</title>
 		<para>
-		Adds to the current REGISTER request a new header with 
+		Adds a new header to the current REGISTER request with 
 		<quote>hdr_name</quote> which contains the description of the
 		received socket (proto:ip:port)
 		</para>
 		<para>
-		This make sens only in multiple replicated servers scenarios.
+		This makes sense only in multiple replicated servers scenarios.
 		</para>
 		<para>Meaning of the parameters is as follows:</para>
 		<itemizedlist>
@@ -1129,15 +1135,16 @@ add_sock_hdr("Sock-Info");
 </programlisting>
 		</example>
 	</section>
-	<section>
+	<section id="registrar.f.unregister">
 		<title>
 		<function moreinfo="none">unregister(domain, uri[, ruid])</function>
 		</title>
 		<para>
-		The function removes contacts associated with 'uri'. If 'ruid' is
-		provided a specific contact is removed, if 'ruid' is not provided
-		all contacts are removed.  If 'ruid' is provided and usrloc is
-		using db_mode=3, 'uri' does not need to be given and can be
+		The function removes contacts associated with 'uri' from the location
+		database. If 'ruid' is provided a specific contact is removed,
+		if 'ruid' is not provided all the current contacts are removed. 
+		If 'ruid' is provided and the <quote>usrloc</quote> module is
+		using <quote>db_mode=3</quote>, 'uri' does not need to be given and can be
 		empty string.
 		</para>
 		<para>Meaning of the parameters is as follows:</para>
@@ -1178,7 +1185,7 @@ unregister("location", "", "$ruid");
 </programlisting>
 		</example>
 	</section>
-	<section>
+	<section id="registrar.f.reg_fetch_contacts">
 		<title>
 		<function moreinfo="none">reg_fetch_contacts(domain, uri, profile)</function>
 		</title>
@@ -1221,7 +1228,7 @@ reg_fetch_contacts("location", "sip:[email protected]", "caller");
 </programlisting>
 		</example>
 	</section>
-	<section>
+	<section id="registrar.f.reg_free_contacts">
 		<title>
 		<function moreinfo="none">reg_free_contacts(profile)</function>
 		</title>

+ 1 - 1
modules/registrar/doc/registrar_faq.xml

@@ -42,7 +42,7 @@
 
 	<qandaentry>
 		<question>
-		<para>What happend with the old <quote>save_noreply</quote> and <quote>save_memory</quote> functions?</para>
+		<para>What happened with the old <quote>save_noreply</quote> and <quote>save_memory</quote> functions?</para>
 		</question>
 		<answer>
 		<para>