78{
80 char *cut, *opts[0];
83 int lenmatch;
87 );
89
92 return 0;
93 }
94
97
100 lenmatch = strlen(
args.channel);
101
103 return -1;
104 }
105
110
112 cut = strrchr(
name,
'/');
113
114 } else {
115
116 cut = strrchr(
name,
'-');
117 }
118
119 if (cut)
120 *cut = 0;
121 }
122 if (!strcasecmp(
name,
args.channel)) {
128 break;
129 }
130 }
133 }
134
136
137 return 0;
138}
static const struct ast_app_option app_opts[128]
#define ast_strdupa(s)
duplicate a string in memory from the stack
const char * ast_channel_name(const struct ast_channel *chan)
struct ast_channel_iterator * ast_channel_iterator_by_name_new(const char *name, size_t name_len)
Create a new channel iterator based on name.
struct ast_channel_iterator * ast_channel_iterator_destroy(struct ast_channel_iterator *i)
Destroy a channel iterator.
#define ast_channel_lock(chan)
struct ast_channel * ast_channel_iterator_next(struct ast_channel_iterator *i)
Get the next channel for a channel iterator.
int ast_softhangup(struct ast_channel *chan, int cause)
Softly hangup up a channel.
#define ast_channel_unref(c)
Decrease channel reference count.
const struct ast_channel_tech * ast_channel_tech(const struct ast_channel *chan)
#define ast_channel_unlock(chan)
@ AST_SOFTHANGUP_EXPLICIT
#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.
int ast_app_parse_options(const struct ast_app_option *options, struct ast_flags *flags, char **args, char *optstr)
Parses a string containing application options and sets flags/arguments.
#define ast_verb(level,...)
static force_inline int attribute_pure ast_strlen_zero(const char *s)
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
Main Channel structure associated with a channel.
Structure used to handle boolean flags.
#define ast_test_flag(p, flag)