res_pjsip_mwi: remove unneeded check on endpoint's contacts.
authorAlexei Gradinari <alex2grad@gmail.com>
Mon, 18 Jul 2016 14:22:57 +0000 (10:22 -0400)
committerAlexei Gradinari <alex2grad@gmail.com>
Mon, 18 Jul 2016 14:24:05 +0000 (10:24 -0400)
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

res/res_pjsip_mwi.c

index 9eba335..d86c96c 100644 (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) {