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
| Parámetro | Tipo | Descripció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) |
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(
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
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
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
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
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)
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)
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)
4.10. reg_free_contacts(profile) 4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)
4.11. reg_send_reply() 4.12. reg_from_user(ultable, uri, mode)
4.12. reg_from_user(ultable, uri, mode)
4.1. 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
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
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
The function performs lookup(domain) on r-uri and additional branches (only branches that have no other attributes set than uri).
Similar to lookup(...), but store the location record attributes in XAVPs. Note that not all contact record fields are stored
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,
Adds a new header to the current REGISTER request with “hdr_name” which contains the description of the received socket (proto:ip:port)
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
The function fetches the contacts for 'uri' from table 'domain' to pseudo-variable $ulc(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.
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
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.
Copyright © 2003 FhG FOKUS