[asterisk-bugs] [JIRA] (ASTERISK-25575) res_pjsip: Dynamic outbound registrations created via ARI are not loaded into memory on Asterisk start/restart

Matt Jordan (JIRA) noreply at issues.asterisk.org
Thu Nov 19 09:41:33 CST 2015


Matt Jordan created ASTERISK-25575:
--------------------------------------

             Summary: res_pjsip: Dynamic outbound registrations created via ARI are not loaded into memory on Asterisk start/restart
                 Key: ASTERISK-25575
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25575
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Resources/res_pjsip_outbound_registration
    Affects Versions: 13.6.0
            Reporter: Matt Jordan
            Severity: Minor


Consider a system where {{sorcery.conf}} is configured to store/retrieve outbound registrations through the AstDB - such as in the snippet below:
{code}
[res_pjsip_outbound_registration]
registration=astdb,ps_registrations
{code}

When an outbound registration is created through ARI and persisted to the AstDB, this creates the necessary outbound registration objects in {{res_pjsip_outbound_registration}} and {{REGISTER}} requests being to fire. An example of a registration stored in the AstDB is shown below:

{code}
/ps_registrations/registration/foo                : {"auth_rejection_permanent":"true","transport":"","support_path":"false","expiration":"3600","forbidden_retry_interval":"0","endpoint":"","contact_user":"","server_uri":"sip:bar at 127.0.0.1:5061","line":"false","outbound_proxy":"","client_uri":"sip:foo at 127.0.0.1:5060","retry_interval":"60","fatal_retry_interval":"0","max_retries":"10"}
{code}

This works because the creation of the object causes the object's sorcery apply handler to be called, which in turn creates the registration state. However, when Asterisk is started or restarted, this does not occur.

Interestingly, if one queries the objects at any time - such as using the CLI command {{pjsip show registrations}} - the state will be created (again, because the apply handler is called) and REGISTER requests will being to fire again.

One way of solving this is to simply query for all objects in the existing sorcery observer's {{loaded}} callback. This has the effect during load/reload of asking the backend for all objects and applying the configuration to the runtime.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list