|
@@ -16,7 +16,7 @@ Edited by
|
|
|
|
|
|
Bogdan-Andre Iancu
|
|
|
|
|
|
- Copyright © 2003 FhG FOKUS
|
|
|
+ Copyright © 2003 FhG FOKUS
|
|
|
__________________________________________________________________
|
|
|
|
|
|
Table of Contents
|
|
@@ -72,17 +72,21 @@ Bogdan-Andre Iancu
|
|
|
4.7. reg_fetch_contacts(domain, uri, profile)
|
|
|
4.8. reg_free_contacts(profile)
|
|
|
|
|
|
- 5. Statistics
|
|
|
+ 5. Event Routes
|
|
|
|
|
|
- 5.1. max_expires
|
|
|
- 5.2. max_contacts
|
|
|
- 5.3. defaults_expires
|
|
|
- 5.4. accepted_regs
|
|
|
- 5.5. rejected_regs
|
|
|
+ 5.1. event_route[usrloc:contact-expired]
|
|
|
|
|
|
- 6. Exported pseudo-variables
|
|
|
+ 6. Statistics
|
|
|
|
|
|
- 6.1. $ulc(profile=>attr)
|
|
|
+ 6.1. max_expires
|
|
|
+ 6.2. max_contacts
|
|
|
+ 6.3. defaults_expires
|
|
|
+ 6.4. accepted_regs
|
|
|
+ 6.5. rejected_regs
|
|
|
+
|
|
|
+ 7. Pseudo Variables
|
|
|
+
|
|
|
+ 7.1. $ulc(profile=>attr)
|
|
|
|
|
|
2. Frequently Asked Questions
|
|
|
|
|
@@ -120,7 +124,8 @@ Bogdan-Andre Iancu
|
|
|
1.30. unregister usage
|
|
|
1.31. reg_fetch_contacts usage
|
|
|
1.32. reg_free_contacts usage
|
|
|
- 1.33. $ulc(name) usage
|
|
|
+ 1.33. event_route[usrloc:contact-expired] usage
|
|
|
+ 1.34. $ulc(name) usage
|
|
|
|
|
|
Chapter 1. Admin Guide
|
|
|
|
|
@@ -175,17 +180,21 @@ Chapter 1. Admin Guide
|
|
|
4.7. reg_fetch_contacts(domain, uri, profile)
|
|
|
4.8. reg_free_contacts(profile)
|
|
|
|
|
|
- 5. Statistics
|
|
|
+ 5. Event Routes
|
|
|
+
|
|
|
+ 5.1. event_route[usrloc:contact-expired]
|
|
|
|
|
|
- 5.1. max_expires
|
|
|
- 5.2. max_contacts
|
|
|
- 5.3. defaults_expires
|
|
|
- 5.4. accepted_regs
|
|
|
- 5.5. rejected_regs
|
|
|
+ 6. Statistics
|
|
|
|
|
|
- 6. Exported pseudo-variables
|
|
|
+ 6.1. max_expires
|
|
|
+ 6.2. max_contacts
|
|
|
+ 6.3. defaults_expires
|
|
|
+ 6.4. accepted_regs
|
|
|
+ 6.5. rejected_regs
|
|
|
|
|
|
- 6.1. $ulc(profile=>attr)
|
|
|
+ 7. Pseudo Variables
|
|
|
+
|
|
|
+ 7.1. $ulc(profile=>attr)
|
|
|
|
|
|
1. Overview
|
|
|
|
|
@@ -207,8 +216,8 @@ Chapter 1. Admin Guide
|
|
|
* off - stores the value of the Path headers into usrloc without
|
|
|
passing it back to the UAC in the reply.
|
|
|
* lazy - stores the Path header and passes it back to the UAC if
|
|
|
- Path-support is indicated by the “path� param in the Supported HF.
|
|
|
- * strict - rejects the registration with “420 Bad Extension� if
|
|
|
+ Path-support is indicated by the "path" param in the Supported HF.
|
|
|
+ * strict - rejects the registration with "420 Bad Extension" if
|
|
|
there's a Path header but no support for it is indicated by the
|
|
|
UAC. Otherwise it's stored and passed back to the UAC.
|
|
|
|
|
@@ -220,8 +229,8 @@ Chapter 1. Admin Guide
|
|
|
client's NAT).
|
|
|
|
|
|
The whole process is transparent to the user, so no config changes are
|
|
|
- required beside setting the registrar-parameters “use_path� and
|
|
|
- “path_mode�.
|
|
|
+ required beside setting the registrar-parameters "use_path" and
|
|
|
+ "path_mode".
|
|
|
|
|
|
1.2. GRUU Support
|
|
|
|
|
@@ -285,7 +294,7 @@ Chapter 1. Admin Guide
|
|
|
contact parameters, this value will be used for newly created 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
|
|
|
+ "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
|
|
|
|
|
@@ -299,9 +308,9 @@ 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
|
|
|
+ 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
|
|
@@ -520,7 +529,7 @@ modparam("registrar", "method_filtering", 1)
|
|
|
3.17. 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�.
|
|
|
+ parameter can be modified via ser config framework. "path_mode".
|
|
|
|
|
|
Default value is 0 (disabled).
|
|
|
|
|
@@ -537,12 +546,12 @@ 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 of 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
|
|
|
- rejected with “420 - Bad Extension� and the header “Unsupported:
|
|
|
- path� is included in the reply along with the received “Path�
|
|
|
+ indicated in the registration request by the "path" option of the
|
|
|
+ "Supported" header. If no path support is indicated, the request is
|
|
|
+ rejected with "420 - Bad Extension" and the header "Unsupported:
|
|
|
+ path" is included in the reply along with the received "Path"
|
|
|
header. This mode is the one recommended by RFC-3327.
|
|
|
|
|
|
Default value is 2.
|
|
@@ -554,10 +563,10 @@ modparam("registrar", "path_mode", 0)
|
|
|
|
|
|
3.19. path_use_received (integer)
|
|
|
|
|
|
- If set to 1, the “received� parameter of the first Path URI of a
|
|
|
+ If set to 1, the "received" parameter of the first Path URI of a
|
|
|
registration is set as received-uri and the NAT branch flag is set for
|
|
|
this contact. This is useful if the registrar is placed behind a SIP
|
|
|
- loadbalancer, which passes the nat'ed UAC address as “received�
|
|
|
+ loadbalancer, which passes the nat'ed UAC address as "received"
|
|
|
parameter in it's Path uri.
|
|
|
|
|
|
Default value is 0 (disabled).
|
|
@@ -618,7 +627,7 @@ modparam("registrar", "xavp_cfg", "ulrcd")
|
|
|
|
|
|
3.23. gruu_enabled (integer)
|
|
|
|
|
|
- If set to 1 and GRUU “+sip.instance� parameter to Contact header of
|
|
|
+ If set to 1 and GRUU "+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.
|
|
|
|
|
@@ -696,7 +705,7 @@ modparam("registrar", "flow_timer", 25)
|
|
|
4.7. reg_fetch_contacts(domain, uri, profile)
|
|
|
4.8. reg_free_contacts(profile)
|
|
|
|
|
|
-4.1. save(domain, [, flags [, uri]])
|
|
|
+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
|
|
@@ -740,7 +749,7 @@ save("location", "0x01");
|
|
|
save("location", "0x00", "sip:[email protected]");
|
|
|
...
|
|
|
|
|
|
-4.2. lookup(domain [, uri])
|
|
|
+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
|
|
@@ -780,7 +789,7 @@ switch ($retcode) {
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.3. lookup_branches(domain)
|
|
|
+4.3. lookup_branches(domain)
|
|
|
|
|
|
The function performs lookup(domain) on r-uri and additional branches
|
|
|
(only branches that have no other attributes set than uri).
|
|
@@ -797,7 +806,7 @@ switch ($retcode) {
|
|
|
lookup_branches("location");
|
|
|
...
|
|
|
|
|
|
-4.4. registered(domain [, uri])
|
|
|
+4.4. registered(domain [, uri])
|
|
|
|
|
|
The function returns true if the AOR in the Request-URI is registered,
|
|
|
false otherwise. The function does not modify the message being
|
|
@@ -819,9 +828,9 @@ if (registered("location")) {
|
|
|
};
|
|
|
...
|
|
|
|
|
|
-4.5. add_sock_hdr(hdr_name)
|
|
|
+4.5. add_sock_hdr(hdr_name)
|
|
|
|
|
|
- Adds to the current REGISTER request a new header with “hdr_name� which
|
|
|
+ Adds to the current REGISTER request a new header with "hdr_name" which
|
|
|
contains the description of the received socket (proto:ip:port)
|
|
|
|
|
|
This make sens only in multiple replicated servers scenarios.
|
|
@@ -836,7 +845,7 @@ if (registered("location")) {
|
|
|
add_sock_hdr("Sock-Info");
|
|
|
...
|
|
|
|
|
|
-4.6. unregister(domain, uri)
|
|
|
+4.6. unregister(domain, uri)
|
|
|
|
|
|
The function remove all the contact associated to 'uri'.
|
|
|
|
|
@@ -855,7 +864,7 @@ unregister("location", "$ru");
|
|
|
unregister("location", "sip:[email protected]");
|
|
|
...
|
|
|
|
|
|
-4.7. reg_fetch_contacts(domain, uri, profile)
|
|
|
+4.7. reg_fetch_contacts(domain, uri, profile)
|
|
|
|
|
|
The function fetches the contacts for 'uri' from table 'domain' to
|
|
|
pseudo-variable $ulc(profile).
|
|
@@ -877,7 +886,7 @@ reg_fetch_contacts("location", "$ru", "callee");
|
|
|
reg_fetch_contacts("location", "sip:[email protected]", "caller");
|
|
|
...
|
|
|
|
|
|
-4.8. reg_free_contacts(profile)
|
|
|
+4.8. 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
|
|
@@ -895,47 +904,63 @@ reg_fetch_contacts("location", "sip:[email protected]", "caller");
|
|
|
reg_free_contacts("callee");
|
|
|
...
|
|
|
|
|
|
-5. Statistics
|
|
|
+5. Event Routes
|
|
|
+
|
|
|
+ 5.1. event_route[usrloc:contact-expired]
|
|
|
+
|
|
|
+5.1. event_route[usrloc:contact-expired]
|
|
|
+
|
|
|
+ Executed when a contact in location table has expired. The variable
|
|
|
+ $ulc(exp=>...) is filled with the attributes of the expired contact.
|
|
|
+
|
|
|
+ Example 1.33. event_route[usrloc:contact-expired] usage
|
|
|
+...
|
|
|
+event_route[usrloc:contact-expired] {
|
|
|
+ xlog("expired contact for $ulc(exp->aor)\n");
|
|
|
+}
|
|
|
+...
|
|
|
+
|
|
|
+6. Statistics
|
|
|
|
|
|
- 5.1. max_expires
|
|
|
- 5.2. max_contacts
|
|
|
- 5.3. defaults_expires
|
|
|
- 5.4. accepted_regs
|
|
|
- 5.5. rejected_regs
|
|
|
+ 6.1. max_expires
|
|
|
+ 6.2. max_contacts
|
|
|
+ 6.3. defaults_expires
|
|
|
+ 6.4. accepted_regs
|
|
|
+ 6.5. rejected_regs
|
|
|
|
|
|
-5.1. max_expires
|
|
|
+6.1. max_expires
|
|
|
|
|
|
Value of max_expires parameter.
|
|
|
|
|
|
-5.2. max_contacts
|
|
|
+6.2. max_contacts
|
|
|
|
|
|
The value of max_contacts parameter.
|
|
|
|
|
|
-5.3. defaults_expires
|
|
|
+6.3. defaults_expires
|
|
|
|
|
|
The value of default_expires parameter.
|
|
|
|
|
|
-5.4. accepted_regs
|
|
|
+6.4. accepted_regs
|
|
|
|
|
|
Number of accepted registrations.
|
|
|
|
|
|
-5.5. rejected_regs
|
|
|
+6.5. rejected_regs
|
|
|
|
|
|
Number of rejected registrations.
|
|
|
|
|
|
-6. Exported pseudo-variables
|
|
|
+7. Pseudo Variables
|
|
|
|
|
|
- 6.1. $ulc(profile=>attr)
|
|
|
+ 7.1. $ulc(profile=>attr)
|
|
|
|
|
|
-6.1. $ulc(profile=>attr)
|
|
|
+7.1. $ulc(profile=>attr)
|
|
|
|
|
|
Access the attributes of contact addresses stored in 'profile'. It must
|
|
|
- be used after a call of “reg_fetch_contacts()�.
|
|
|
+ be used after a call of "reg_fetch_contacts()".
|
|
|
|
|
|
- The “profile� has to be one of the values used with
|
|
|
- “reg_fetch_contacts()�.
|
|
|
+ The "profile" has to be one of the values used with
|
|
|
+ "reg_fetch_contacts()".
|
|
|
|
|
|
- The “attr� can be:
|
|
|
+ The "attr" can be:
|
|
|
* aor - address of record
|
|
|
* domain - use location domain name
|
|
|
* aorhash - hash id for the record
|
|
@@ -956,7 +981,7 @@ reg_free_contacts("callee");
|
|
|
The pseudo-variable accepts positive index value to access a specific
|
|
|
contact record.
|
|
|
|
|
|
- Example 1.33. $ulc(name) usage
|
|
|
+ Example 1.34. $ulc(name) usage
|
|
|
...
|
|
|
if(reg_fetch_contacts("location", "$fu", "caller"))
|
|
|
{
|
|
@@ -988,9 +1013,9 @@ if(reg_fetch_contacts("location", "$fu", "caller"))
|
|
|
|
|
|
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.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"
|
|
|
functions?
|
|
|
|
|
|
2.4. Where can I find more about Kamailio?
|
|
@@ -1000,23 +1025,23 @@ Chapter 2. Frequently Asked Questions
|
|
|
|
|
|
2.1.
|
|
|
|
|
|
- What happend with the old “nat_flag� module parameter?
|
|
|
+ What happend with the old "nat_flag" module parameter?
|
|
|
|
|
|
In was removed, as the module internally loads this value from the
|
|
|
- “USRLOC� module (see the “nat_bflag� USRLOC parameter).
|
|
|
+ "USRLOC" module (see the "nat_bflag" USRLOC parameter).
|
|
|
|
|
|
2.2.
|
|
|
|
|
|
- What happend with the old “use_domain� module parameter?
|
|
|
+ What happend with the old "use_domain" module parameter?
|
|
|
|
|
|
In was removed, as the module internally loads this option from the
|
|
|
- “USRLOC� module. This was done in order to simplify the configuration.
|
|
|
+ "USRLOC" module. This was done in order to simplify the configuration.
|
|
|
|
|
|
2.3.
|
|
|
|
|
|
- What happend with the old “save_noreply� and “save_memory� functions?
|
|
|
+ What happend with the old "save_noreply" and "save_memory" functions?
|
|
|
|
|
|
- There functions were merged into the new “save(domain,flags)�
|
|
|
+ There functions were merged into the new "save(domain,flags)"
|
|
|
functions. If a reply should be sent or if the DB should be updated
|
|
|
also is controlled via the flags.
|
|
|
|