mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 20:04:50 +00:00
res_pjsip: Added "subscribe_context" to endpoint
If specified, incoming SUBSCRIBE requests will be searched for the matching extension in the indicated context. If no "subscribe_context" is specified, then the "context" setting is used. ASTERISK-25471 #close Change-Id: I3fb7a15f5bc154079bd348c08b7ad1cdd2d5e514
This commit is contained in:
@@ -412,9 +412,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;
|
||||
}
|
||||
|
||||
@@ -432,7 +434,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