94{
   98    int res = 0;
   99 
  103    );
  104 
  105    
  108        return -1;
  109    }
  110 
  112 
  115        return -1;
  116    }
  117 
  120        return -1;
  121    }
  122 
  124    if (!pjsip_sorcery) {
  126        return -1;
  127    }
  128 
  130    if (!aor_obj) {
  132        return -1;
  133    }
  134 
  135    if (!strcmp(
args.field_name, 
"contact")) {
 
  136        
  137
  138
  143 
  145        if (!contacts) {
  147            return -1;
  148        }
  149 
  154            }
  155 
  158 
  160        }
  162    } else {
  165 
  167        if (!change_set) {
  169            return -1;
  170        }
  171 
  172        for (it_change_set = change_set; it_change_set; it_change_set = it_change_set->
next) {
 
  173            if (!strcmp(it_change_set->
name, 
args.field_name)) {
 
  175                break;
  176            }
  177        }
  178 
  179        if (!it_change_set) {
  181            res = 1;
  182        }
  183 
  185    }
  186 
  187    return res;
  188}
struct sla_ringing_trunk * first
#define ast_strdupa(s)
duplicate a string in memory from the stack
#define ao2_iterator_next(iter)
struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags) attribute_warn_unused_result
Create an iterator for a container.
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
void ao2_iterator_destroy(struct ao2_iterator *iter)
Destroy a container iterator.
static int len(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t buflen)
#define AST_APP_ARG(name)
Define an application argument.
#define AST_DECLARE_APP_ARGS(name, arglist)
Declare a structure to hold an application's arguments.
#define AST_STANDARD_APP_ARGS(args, parse)
Performs the 'standard' argument separation process for an application.
void ast_variables_destroy(struct ast_variable *var)
Free variable list.
struct ast_sorcery * ast_sip_get_sorcery(void)
Get a pointer to the SIP sorcery structure.
struct ao2_container * ast_sip_location_retrieve_aor_contacts(const struct ast_sip_aor *aor)
Retrieve all contacts currently available for an AOR.
const char * ast_sorcery_object_get_id(const void *object)
Get the unique identifier of a sorcery object.
#define ast_sorcery_objectset_create(sorcery, object)
Create an object set (KVP list) for an object.
void * ast_sorcery_retrieve_by_id(const struct ast_sorcery *sorcery, const char *type, const char *id)
Retrieve an object using its unique identifier.
int ast_str_append(struct ast_str **buf, ssize_t max_len, const char *fmt,...)
Append to a thread local dynamic string.
static force_inline int attribute_pure ast_strlen_zero(const char *s)
int ast_str_set(struct ast_str **buf, ssize_t max_len, const char *fmt,...)
Set a dynamic string using variable arguments.
When we need to walk through a container, we use an ao2_iterator to keep track of the current positio...
Full structure for sorcery.
Structure for variables, used for configurations and for channel variables.
struct ast_variable * next
#define RAII_VAR(vartype, varname, initval, dtor)
Declare a variable that will call a destructor function when it goes out of scope.