static int qualify_and_schedule_aor_contact(void *obj) { struct ast_sip_contact *contact = obj; struct ast_sip_aor *aor; if (!contact || ast_strlen_zero(contact->aor) || !(aor = ast_sip_location_retrieve_aor(contact->aor))) { ao2_ref(contact, -1); return -1; } contact->qualify_frequency = aor->qualify_frequency; contact->qualify_timeout = aor->qualify_timeout; contact->authenticate_qualify = aor->authenticate_qualify; ao2_ref(aor, -1); qualify_and_schedule(contact); ao2_ref(contact, -1); return 0; }
/*! * \internal * \brief A new contact has been created make sure it is available. */ static void contact_created(const void *obj) { qualify_and_schedule((struct ast_sip_contact *) obj); }