← Volver al índice de módulos

registrar

1.1. PATH support 1.2.
🔀 Enrutamiento y Proxy SIP Kamailio 6.1 30 parámetros 24 funciones

Descripción general

1.1. PATH support 1.2. GRUU Support The module contains REGISTER processing logic. The actual location database is managed by the USRLOC module. 1.1. PATH support The Register module includes Path support (according to RFC 3327) for usage in registrars and home-proxies. If path support is enabled in the registrar module, a call to save(...) stores the values of the Path Header(s) along with the contact into usrloc. There are three modes regarding the reply to a REGISTER including one or more Path header fields: * 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 header field. * 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. A call to lookup(...) always uses the path header if found, and inserts it as Route header field either in front of the first Route header field, or after the last Via header field if no Route is present. It also sets the destination uri to the first Path uri, thus overwriting the received-uri, because NAT has to be handled at the outbound-proxy of the UAC (the first hop after 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”. 1.2. GRUU

Documentación oficial: https://www.kamailio.org/docs/modules/stable/modules/registrar.html
Código fuente: https://github.com/kamailio/kamailio/tree/master/src/modules/registrar

Parámetros de configuración

ParámetroTipoDescripción
default_expires integer 3.2. default_expires_range (integer) 3.3. expires_range (integer) 3.4. min_expires (integer) 3.5. min_expires_mode (integer) 3.6. max_expires (integer) 3.7. default_q (integer) 3.8. realm_prefix (stri
default_expires_range integer 3.3. expires_range (integer) 3.4. min_expires (integer) 3.5. min_expires_mode (integer) 3.6. max_expires (integer) 3.7. default_q (integer) 3.8. realm_prefix (string) 3.9. append_branches (integer) 3.
expires_range integer 3.4. min_expires (integer) 3.5. min_expires_mode (integer) 3.6. max_expires (integer) 3.7. default_q (integer) 3.8. realm_prefix (string) 3.9. append_branches (integer) 3.10. aor_avp (str) 3.11. case_
min_expires integer 3.5. min_expires_mode (integer) 3.6. max_expires (integer) 3.7. default_q (integer) 3.8. realm_prefix (string) 3.9. append_branches (integer) 3.10. aor_avp (str) 3.11. case_sensitive (integer) 3.12. r
min_expires_mode integer 3.6. max_expires (integer) 3.7. default_q (integer) 3.8. realm_prefix (string) 3.9. append_branches (integer) 3.10. aor_avp (str) 3.11. case_sensitive (integer) 3.12. received_avp (str) 3.13. received
max_expires integer 3.7. default_q (integer) 3.8. realm_prefix (string) 3.9. append_branches (integer) 3.10. aor_avp (str) 3.11. case_sensitive (integer) 3.12. received_avp (str) 3.13. received_param (string) 3.14. max_c
default_q integer 3.8. realm_prefix (string) 3.9. append_branches (integer) 3.10. aor_avp (str) 3.11. case_sensitive (integer) 3.12. received_avp (str) 3.13. received_param (string) 3.14. max_contacts (integer) 3.15. r
realm_prefix string 3.9. append_branches (integer) 3.10. aor_avp (str) 3.11. case_sensitive (integer) 3.12. received_avp (str) 3.13. received_param (string) 3.14. max_contacts (integer) 3.15. retry_after (integer) 3.16.
append_branches integer 3.10. aor_avp (str) 3.11. case_sensitive (integer) 3.12. received_avp (str) 3.13. received_param (string) 3.14. max_contacts (integer) 3.15. retry_after (integer) 3.16. sock_flag (integer) 3.17. sock_
aor_avp str 3.11. case_sensitive (integer) 3.12. received_avp (str) 3.13. received_param (string) 3.14. max_contacts (integer) 3.15. retry_after (integer) 3.16. sock_flag (integer) 3.17. sock_hdr_name (string) 3.
case_sensitive integer 3.12. received_avp (str) 3.13. received_param (string) 3.14. max_contacts (integer) 3.15. retry_after (integer) 3.16. sock_flag (integer) 3.17. sock_hdr_name (string) 3.18. sock_mode (integer) 3.19. m
received_avp str 3.13. received_param (string) 3.14. max_contacts (integer) 3.15. retry_after (integer) 3.16. sock_flag (integer) 3.17. sock_hdr_name (string) 3.18. sock_mode (integer) 3.19. method_filtering (integer)
received_param string 3.14. max_contacts (integer) 3.15. retry_after (integer) 3.16. sock_flag (integer) 3.17. sock_hdr_name (string) 3.18. sock_mode (integer) 3.19. method_filtering (integer) 3.20. use_path (integer) 3.21
max_contacts integer 3.15. retry_after (integer) 3.16. sock_flag (integer) 3.17. sock_hdr_name (string) 3.18. sock_mode (integer) 3.19. method_filtering (integer) 3.20. use_path (integer) 3.21. path_mode (integer) 3.22. p
retry_after integer 3.16. sock_flag (integer) 3.17. sock_hdr_name (string) 3.18. sock_mode (integer) 3.19. method_filtering (integer) 3.20. use_path (integer) 3.21. path_mode (integer) 3.22. path_use_received (integer) 3
sock_flag integer 3.17. sock_hdr_name (string) 3.18. sock_mode (integer) 3.19. method_filtering (integer) 3.20. use_path (integer) 3.21. path_mode (integer) 3.22. path_use_received (integer) 3.23. path_check_local (int
sock_hdr_name string 3.18. sock_mode (integer) 3.19. method_filtering (integer) 3.20. use_path (integer) 3.21. path_mode (integer) 3.22. path_use_received (integer) 3.23. path_check_local (integer) 3.24. reg_callid_avp (s
sock_mode integer 3.19. method_filtering (integer) 3.20. use_path (integer) 3.21. path_mode (integer) 3.22. path_use_received (integer) 3.23. path_check_local (integer) 3.24. reg_callid_avp (string) 3.25. xavp_cfg (str
method_filtering integer 3.20. use_path (integer) 3.21. path_mode (integer) 3.22. path_use_received (integer) 3.23. path_check_local (integer) 3.24. reg_callid_avp (string) 3.25. xavp_cfg (string) 3.26. xavp_rcd (string) 3.27
use_path integer 3.21. path_mode (integer) 3.22. path_use_received (integer) 3.23. path_check_local (integer) 3.24. reg_callid_avp (string) 3.25. xavp_cfg (string) 3.26. xavp_rcd (string) 3.27. xavp_rcd_mask (int) 3.2
path_mode integer 3.22. path_use_received (integer) 3.23. path_check_local (integer) 3.24. reg_callid_avp (string) 3.25. xavp_cfg (string) 3.26. xavp_rcd (string) 3.27. xavp_rcd_mask (int) 3.28. gruu_enabled (integer)
path_use_received integer 3.23. path_check_local (integer) 3.24. reg_callid_avp (string) 3.25. xavp_cfg (string) 3.26. xavp_rcd (string) 3.27. xavp_rcd_mask (int) 3.28. gruu_enabled (integer) 3.29. outbound_mode (integer) 3.30
path_check_local integer 3.24. reg_callid_avp (string) 3.25. xavp_cfg (string) 3.26. xavp_rcd (string) 3.27. xavp_rcd_mask (int) 3.28. gruu_enabled (integer) 3.29. outbound_mode (integer) 3.30. regid_mode (integer) 3.31. flow
reg_callid_avp string 3.25. xavp_cfg (string) 3.26. xavp_rcd (string) 3.27. xavp_rcd_mask (int) 3.28. gruu_enabled (integer) 3.29. outbound_mode (integer) 3.30. regid_mode (integer) 3.31. flow_timer (integer) 3.32. contact
xavp_cfg string 3.26. xavp_rcd (string) 3.27. xavp_rcd_mask (int) 3.28. gruu_enabled (integer) 3.29. outbound_mode (integer) 3.30. regid_mode (integer) 3.31. flow_timer (integer) 3.32. contact_max_size (integer) 3.33
xavp_rcd string 3.27. xavp_rcd_mask (int) 3.28. gruu_enabled (integer) 3.29. outbound_mode (integer) 3.30. regid_mode (integer) 3.31. flow_timer (integer) 3.32. contact_max_size (integer) 3.33. event_callback (str) 3
xavp_rcd_mask int 3.28. gruu_enabled (integer) 3.29. outbound_mode (integer) 3.30. regid_mode (integer) 3.31. flow_timer (integer) 3.32. contact_max_size (integer) 3.33. event_callback (str) 3.34. lookup_filter_mode (i
gruu_enabled integer 3.29. outbound_mode (integer) 3.30. regid_mode (integer) 3.31. flow_timer (integer) 3.32. contact_max_size (integer) 3.33. event_callback (str) 3.34. lookup_filter_mode (int) 3.35. use_expired_contact
outbound_mode integer 3.30. regid_mode (integer) 3.31. flow_timer (integer) 3.32. contact_max_size (integer) 3.33. event_callback (str) 3.34. lookup_filter_mode (int) 3.35. use_expired_contacts (int)
regid_mode integer 3.31. flow_timer (integer) 3.32. contact_max_size (integer) 3.33. event_callback (str) 3.34. lookup_filter_mode (int) 3.35. use_expired_contacts (int)

Funciones exportadas

save(domain, [, flags [, uri]])

4.2. lookup(domain [, uri]) 4.3. lookup_to_dset(domain [, uri]) 4.4. lookup_branches(domain) 4.5. lookup_xavp(ultable, uri, rxname, cxname) 4.6. registered(domain [, uri [, match_option [, match_action]]]) 4.7. add_sock_hdr(hdr_name) 4.8. unregister(

lookup(domain [, uri])

4.3. lookup_to_dset(domain [, uri]) 4.4. lookup_branches(domain) 4.5. lookup_xavp(ultable, uri, rxname, cxname) 4.6. registered(domain [, uri [, match_option [, match_action]]]) 4.7. add_sock_hdr(hdr_name) 4.8. unregister(domain, uri[, ruid]) 4.9. re

lookup_to_dset(domain [, uri])

4.4. lookup_branches(domain) 4.5. lookup_xavp(ultable, uri, rxname, cxname) 4.6. registered(domain [, uri [, match_option [, match_action]]]) 4.7. add_sock_hdr(hdr_name) 4.8. unregister(domain, uri[, ruid]) 4.9. reg_fetch_contacts(domain, uri, profil

lookup_branches(domain)

4.5. lookup_xavp(ultable, uri, rxname, cxname) 4.6. registered(domain [, uri [, match_option [, match_action]]]) 4.7. add_sock_hdr(hdr_name) 4.8. unregister(domain, uri[, ruid]) 4.9. reg_fetch_contacts(domain, uri, profile) 4.10. reg_free_contacts(pr

lookup_xavp(ultable, uri, rxname, cxname)

4.6. registered(domain [, uri [, match_option [, match_action]]]) 4.7. add_sock_hdr(hdr_name) 4.8. unregister(domain, uri[, ruid]) 4.9. reg_fetch_contacts(domain, uri, profile) 4.10. reg_free_contacts(profile) 4.11. reg_send_reply() 4.12. reg_from_us

registered(domain [, uri [, match_option [, match_action]]])

4.7. add_sock_hdr(hdr_name) 4.8. unregister(domain, uri[, ruid]) 4.9. reg_fetch_contacts(domain, uri, profile) 4.10. reg_free_contacts(profile) 4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)

add_sock_hdr(hdr_name)

4.8. unregister(domain, uri[, ruid]) 4.9. reg_fetch_contacts(domain, uri, profile) 4.10. reg_free_contacts(profile) 4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)

unregister(domain, uri[, ruid])

4.9. reg_fetch_contacts(domain, uri, profile) 4.10. reg_free_contacts(profile) 4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)

reg_fetch_contacts(domain, uri, profile)

4.10. reg_free_contacts(profile) 4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)

reg_free_contacts(profile)

4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)

reg_send_reply()

4.12. reg_from_user(ultable, uri, mode)

reg_from_user(ultable, uri, mode)

4.1. save(domain, [, flags [, uri]])

save(domain, [, flags [, uri]])

The function processes a REGISTER message. It can add, remove or modify location records (in usrloc) depending on Contact and Expires header fields in the REGISTER message. On success and when called from the REQUEST_ROUTE, “200 OK” will be returned

lookup(domain [, uri])

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 c

lookup_to_dset(domain [, uri])

Similar to lookup(...), but push the location contacts to destination set, without changing the R-URI (first branch not changed, it creates additional branches). For the meaning of the parameters and the return codes, see the documentation for lookup

lookup_branches(domain)

The function performs lookup(domain) on r-uri and additional branches (only branches that have no other attributes set than uri).

lookup_xavp(ultable, uri, rxname, cxname)

Similar to lookup(...), but store the location record attributes in XAVPs. Note that not all contact record fields are stored

registered(domain [, uri [, match_option [, match_action]]])

The function returns true if the AOR in the URI is registered, false otherwise. The function does not modify the message being processed, it neither rewrites the Request-URI if a contact is found nor append branches. If uri parameter is not provided,

add_sock_hdr(hdr_name)

Adds a new header to the current REGISTER request with “hdr_name” which contains the description of the received socket (proto:ip:port)

unregister(domain, uri[, ruid])

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 usin

reg_fetch_contacts(domain, uri, profile)

The function fetches the contacts for 'uri' from table 'domain' to pseudo-variable $ulc(profile).

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.

reg_send_reply()

The function sends the SIP reply that is normally sent by save(...), but that was skipped due to flag 0x2. It must be used after save(..., "0x2"). Practically it allows saving registration to location table, do other operations and then send the repl

reg_from_user(ultable, uri, mode)

The function returns true if the SIP message comes from the user identified by 'uri' parameter by matching the associated location records. The matching is done with the field 'received' if it is set, otherwise with the contact address.

Autores y contribuidores

Jan JanakFhG FOKUS <jan@iptel.org>Daniel-Constantin Mierla <miconda@gmail.com>Juha Heinanen <jh@tutpro.com>Olle E. JohanssonEdvina AB <oej@edvina.net>Jan Janak <jan@iptel.org>Bogdan-Andre Iancu

Copyright © 2003 FhG FOKUS

Módulos relacionados

acc acc_diameter acc_json acc_radius alias_db app_jsdt carrierroute cfgt