res_pjsip_mwi: remove unneeded check on endpoint's contacts.

The function create_mwi_subscriptions_for_endpoint checks
if there is active contacts by retrieving aors and contacts.

This function is used to create all unsolicited mwi subscriptions
on startup and is used when contact added.

In both cases it's not necessary to check if there are contacts.
The contacts are needed when asterisk sends mwi.

ASTERISK-26200 #close

Change-Id: I98e43bdc97f3c0829951cd9bf5f3c6348c6ac1fa
This commit is contained in:
Alexei Gradinari
2016-07-14 19:06:34 -04:00
parent 714ceb88df
commit cb58f853e1

View File

@@ -976,38 +976,12 @@ static int create_mwi_subscriptions_for_endpoint(void *obj, void *arg, int flags
{
RAII_VAR(struct mwi_subscription *, aggregate_sub, NULL, ao2_cleanup);
struct ast_sip_endpoint *endpoint = obj;
char *endpoint_aors, *aor_name, *mailboxes, *mailbox;
struct ao2_container *contacts = NULL;
char *mailboxes, *mailbox;
if (ast_strlen_zero(endpoint->subscription.mwi.mailboxes)) {
return 0;
}
endpoint_aors = ast_strdupa(endpoint->aors);
while ((aor_name = ast_strip(strsep(&endpoint_aors, ",")))) {
RAII_VAR(struct ast_sip_aor *, aor, ast_sip_location_retrieve_aor(aor_name), ao2_cleanup);
if (!aor) {
continue;
}
contacts = ast_sip_location_retrieve_aor_contacts(aor);
if (!contacts || (ao2_container_count(contacts) == 0)) {
ao2_cleanup(contacts);
contacts = NULL;
continue;
}
break;
}
if (!contacts) {
return 0;
}
ao2_ref(contacts, -1);
if (endpoint->subscription.mwi.aggregate) {
aggregate_sub = mwi_subscription_alloc(endpoint, 0, NULL);
if (!aggregate_sub) {