← Volver al índice de módulos

ims_registrar_scscf

This module contains REGISTER processing logic for the S-CSCF. The 'storage engine' of this module is provided by the ims_usrloc_scscf module:
📱 IMS / LTE / 4G Kamailio 6.1 30 parámetros 25 funciones

Descripción general

This module contains REGISTER processing logic for the S-CSCF. The 'storage engine' of this module is provided by the ims_usrloc_scscf module:

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

Parámetros de configuración

ParámetroTipoDescripción
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. su
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.
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. ue_unsubscribe_on_dere
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. ue_unsubscribe_on_dereg (int) 3.10. user_data
subscription_default_expires int 3.6. subscription_expires_range (int) 3.7. subscription_min_expires (int) 3.8. subscription_max_expires (int) 3.9. ue_unsubscribe_on_dereg (int) 3.10. user_data_dtd (string) 3.11. user_data_xsd (strin
subscription_expires_range int 3.7. subscription_min_expires (int) 3.8. subscription_max_expires (int) 3.9. ue_unsubscribe_on_dereg (int) 3.10. user_data_dtd (string) 3.11. user_data_xsd (string) 3.12. support_wildcardPSI (int) 3.1
subscription_min_expires int 3.8. subscription_max_expires (int) 3.9. ue_unsubscribe_on_dereg (int) 3.10. user_data_dtd (string) 3.11. user_data_xsd (string) 3.12. support_wildcardPSI (int) 3.13. scscf_name (string) 3.14. store_p
subscription_max_expires int 3.9. ue_unsubscribe_on_dereg (int) 3.10. user_data_dtd (string) 3.11. user_data_xsd (string) 3.12. support_wildcardPSI (int) 3.13. scscf_name (string) 3.14. store_profile_dereg (int) 3.15. cxdx_dest_r
ue_unsubscribe_on_dereg int 3.10. user_data_dtd (string) 3.11. user_data_xsd (string) 3.12. support_wildcardPSI (int) 3.13. scscf_name (string) 3.14. store_profile_dereg (int) 3.15. cxdx_dest_realm (string) 3.16. cxdx_forced_pee
user_data_dtd string 3.11. user_data_xsd (string) 3.12. support_wildcardPSI (int) 3.13. scscf_name (string) 3.14. store_profile_dereg (int) 3.15. cxdx_dest_realm (string) 3.16. cxdx_forced_peer (string) 3.17. append_branc
user_data_xsd string 3.12. support_wildcardPSI (int) 3.13. scscf_name (string) 3.14. store_profile_dereg (int) 3.15. cxdx_dest_realm (string) 3.16. cxdx_forced_peer (string) 3.17. append_branches (integer) 3.18. method_fi
support_wildcardPSI int 3.13. scscf_name (string) 3.14. store_profile_dereg (int) 3.15. cxdx_dest_realm (string) 3.16. cxdx_forced_peer (string) 3.17. append_branches (integer) 3.18. method_filtering (integer) 3.19. user_dat
scscf_name string 3.14. store_profile_dereg (int) 3.15. cxdx_dest_realm (string) 3.16. cxdx_forced_peer (string) 3.17. append_branches (integer) 3.18. method_filtering (integer) 3.19. user_data_always (integer) 3.20. e
store_profile_dereg int 3.15. cxdx_dest_realm (string) 3.16. cxdx_forced_peer (string) 3.17. append_branches (integer) 3.18. method_filtering (integer) 3.19. user_data_always (integer) 3.20. error_reply_code (int) 3.21. skip
cxdx_dest_realm string 3.16. cxdx_forced_peer (string) 3.17. append_branches (integer) 3.18. method_filtering (integer) 3.19. user_data_always (integer) 3.20. error_reply_code (int) 3.21. skip_multiple_bindings_on_reg_resp
cxdx_forced_peer string 3.17. append_branches (integer) 3.18. method_filtering (integer) 3.19. user_data_always (integer) 3.20. error_reply_code (int) 3.21. skip_multiple_bindings_on_reg_resp (int)
append_branches integer 3.18. method_filtering (integer) 3.19. user_data_always (integer) 3.20. error_reply_code (int) 3.21. skip_multiple_bindings_on_reg_resp (int)
method_filtering integer 3.19. user_data_always (integer) 3.20. error_reply_code (int) 3.21. skip_multiple_bindings_on_reg_resp (int)
user_data_always integer 3.20. error_reply_code (int) 3.21. skip_multiple_bindings_on_reg_resp (int)
error_reply_code int 3.21. skip_multiple_bindings_on_reg_resp (int)
skip_multiple_bindings_on_reg_resp int 3.1. default_expires (int)
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
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_expire
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.
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
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 ex
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_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.
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.
ue_unsubscribe_on_dereg int Many UEs do not unsubscribe on de-register, therefor if the parameter is set to 0, the default, any subscription of that subscriber will be removed and NOTIFY will be not sent. To disable this behavio

Funciones exportadas

save(async_reply_route, domain, mode, flags)

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

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_contact

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

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. subsc

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

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)

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)

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)

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)

can_subscribe_to_reg(domain)

4.11. subscribe_to_reg(domain) 4.12. can_publish_reg(domain) 4.13. publish_reg(domain)

subscribe_to_reg(domain)

4.12. can_publish_reg(domain) 4.13. publish_reg(domain)

can_publish_reg(domain)

4.13. publish_reg(domain)

publish_reg(domain)

4.1. save(async_reply_route, domain, mode, flags)

save(async_reply_route, domain, mode, flags)

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

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 res

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.

unregister(domain)

This function will remove all bindings for the IMPU found in the Request-URI.

assign_server_unreg(aysnc_reply_route, domain, direction)

TBD

impu_registered(domain)

This function checks if the IMPU in the To header is registered in usrloc.

term_impu_registered(domain)

This function checks if the IMPU in the Request-URI is registered in usrloc.

reg_fetch_contacts(domain, uri, profile)

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

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.

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 its own state * The P-CSCF specified in the path header for that user * Application Server

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).

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 its own state * The P-CSCF specified in the path header for that user * Application Server (AS) no

Autores y contribuidores

Jason PentonSmile CommunicationsRichard Good

Copyright © 2012 Smile Communications

Módulos relacionados

cdp cdp_avp ims_auth ims_charging ims_dialog ims_diameter_server ims_icscf ims_isc