84{
   87    char tmp[80];
   88 
   89    snprintf(tmp, 
sizeof(tmp), 
"%d", 
priority);
 
   93    }
   96    }
   99    }
  100    
  102    
  106}
  107 
  109{
  110    char *con;
  111    char *pri;
  112    *newpattern = strchr(
buf, 
'/');
 
  113    if (*newpattern)
  114        *(*newpattern)++ = '\0';
  115    con = strchr(
buf, 
'@');
 
  116    if (con) {
  117        *con++ = '\0';
  118        pri = strchr(con, ':');
  119    } else
  120        pri = strchr(
buf, 
':');
 
  124        *newcontext = con;
  127}
  128 
  130{
  133        res = 0;
  134    else
  136    return res;
  137}
  138 
  140{
  143        res = 0;
  144    else
  146    return res;
  147}
  148 
  150{
  151    int found;
  154    return res;
  155}
  156 
  158{
  161        res = 0;
  162    else
  164    return res;
  165}
  166 
  168{
  170    .description        = "Loopback Dialplan Switch",
  175};
  176 
  178{
  180    return 0;
  181}
  182 
  184{
  188}
  189 
#define ast_var_assign(name, value)
void ast_var_delete(struct ast_var_t *var)
#define AST_LIST_HEAD_INIT_NOLOCK(head)
Initializes a list head structure.
#define AST_LIST_INSERT_HEAD(head, elm, field)
Inserts a list entry at the head of a list.
#define AST_LIST_REMOVE_HEAD(head, field)
Removes and returns the head entry from a list.
#define AST_MODULE_INFO_STANDARD(keystr, desc)
#define ASTERISK_GPL_KEY
The text the key() function should return.
@ AST_MODULE_LOAD_FAILURE
Module could not be loaded properly.
@ AST_MODULE_LOAD_SUCCESS
void pbx_substitute_variables_varshead(struct varshead *headp, const char *cp1, char *cp2, int count)
void ast_unregister_switch(struct ast_switch *sw)
Unregister an alternative switch.
int ast_register_switch(struct ast_switch *sw)
Register an alternative dialplan switch.
int ast_exists_extension(struct ast_channel *c, const char *context, const char *exten, int priority, const char *callerid)
Determine whether an extension exists.
int ast_canmatch_extension(struct ast_channel *c, const char *context, const char *exten, int priority, const char *callerid)
Looks for a valid matching extension.
int ast_spawn_extension(struct ast_channel *c, const char *context, const char *exten, int priority, const char *callerid, int *found, int combined_find_spawn)
Launch a new extension (i.e. new stack)
int ast_extension_match(const char *pattern, const char *extension)
Determine if a given extension matches a given pattern (in NXX format)
int ast_matchmore_extension(struct ast_channel *c, const char *context, const char *exten, int priority, const char *callerid)
Looks to see if adding anything to this extension might match something. (exists ^ canmatch)
static void loopback_parse(char **newexten, char **newcontext, int *priority, char **newpattern, char *buf)
static int loopback_exists(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data)
static struct ast_switch loopback_switch
static int loopback_exec(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data)
static int loopback_matchmore(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data)
static int load_module(void)
static int unload_module(void)
static int loopback_canmatch(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data)
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Main Channel structure associated with a channel.