mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-22 12:52:33 +00:00
Merge "res_pjsip: Added "subscribe_context" to endpoint" into 13
This commit is contained in:
@@ -897,6 +897,15 @@
|
||||
mask with a slash ('/')
|
||||
</para></description>
|
||||
</configOption>
|
||||
<configOption name="subscribe_context">
|
||||
<synopsis>Context for incoming MESSAGE requests.</synopsis>
|
||||
<description><para>
|
||||
If specified, incoming SUBSCRIBE requests will be searched for the matching
|
||||
extension in the indicated context.
|
||||
If no <replaceable>subscribe_context</replaceable> is specified,
|
||||
then the <replaceable>context</replaceable> setting is used.
|
||||
</para></description>
|
||||
</configOption>
|
||||
</configObject>
|
||||
<configObject name="auth">
|
||||
<synopsis>Authentication type</synopsis>
|
||||
@@ -1958,6 +1967,9 @@
|
||||
<parameter name="ActiveChannels">
|
||||
<para>The number of active channels associated with this endpoint.</para>
|
||||
</parameter>
|
||||
<parameter name="SubscribeContext">
|
||||
<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='subscribe_context']/synopsis/node())"/></para>
|
||||
</parameter>
|
||||
</syntax>
|
||||
</managerEventInstance>
|
||||
</managerEvent>
|
||||
|
@@ -1861,6 +1861,7 @@ int ast_res_pjsip_initialize_configuration(const struct ast_module_info *ast_mod
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "contact_deny", "", endpoint_acl_handler, NULL, NULL, 0, 0);
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "contact_permit", "", endpoint_acl_handler, NULL, NULL, 0, 0);
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "contact_acl", "", endpoint_acl_handler, contact_acl_to_str, NULL, 0, 0);
|
||||
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "subscribe_context", "", OPT_CHAR_ARRAY_T, 0, CHARFLDSET(struct ast_sip_endpoint, subscription.context));
|
||||
|
||||
if (ast_sip_initialize_sorcery_transport()) {
|
||||
ast_log(LOG_ERROR, "Failed to register SIP transport support with sorcery\n");
|
||||
|
@@ -352,9 +352,11 @@ static void subscription_shutdown(struct ast_sip_subscription *sub)
|
||||
static int new_subscribe(struct ast_sip_endpoint *endpoint,
|
||||
const char *resource)
|
||||
{
|
||||
if (!ast_exists_extension(NULL, endpoint->context, resource, PRIORITY_HINT, NULL)) {
|
||||
const char *context = S_OR(endpoint->subscription.context, endpoint->context);
|
||||
|
||||
if (!ast_exists_extension(NULL, context, resource, PRIORITY_HINT, NULL)) {
|
||||
ast_log(LOG_NOTICE, "Extension state subscription failed: Extension %s does not exist in context '%s' or has no associated hint\n",
|
||||
resource, endpoint->context);
|
||||
resource, context);
|
||||
return 404;
|
||||
}
|
||||
|
||||
@@ -372,7 +374,9 @@ static int subscription_established(struct ast_sip_subscription *sip_sub)
|
||||
return -1;
|
||||
}
|
||||
|
||||
ast_copy_string(exten_state_sub->context, endpoint->context, sizeof(exten_state_sub->context));
|
||||
ast_copy_string(exten_state_sub->context,
|
||||
S_OR(endpoint->subscription.context, endpoint->context),
|
||||
sizeof(exten_state_sub->context));
|
||||
ast_copy_string(exten_state_sub->exten, resource, sizeof(exten_state_sub->exten));
|
||||
|
||||
if ((exten_state_sub->id = ast_extension_state_add_destroy_extended(
|
||||
|
Reference in New Issue
Block a user