mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
Merged revisions 168561 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r168561 | russell | 2009-01-13 13:13:05 -0600 (Tue, 13 Jan 2009) | 2 lines Revert unnecessary indications API change from rev 122314 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168562 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -124,7 +124,7 @@ AST_APP_OPTIONS(app_opts, {
|
||||
|
||||
static void play_dialtone(struct ast_channel *chan, char *mailbox)
|
||||
{
|
||||
const struct ind_tone_zone_sound *ts = NULL;
|
||||
const struct tone_zone_sound *ts = NULL;
|
||||
if(ast_app_has_voicemail(mailbox, NULL))
|
||||
ts = ast_get_indication_tone(chan->zone, "dialrecall");
|
||||
else
|
||||
|
@@ -132,7 +132,7 @@ static int read_exec(struct ast_channel *chan, void *data)
|
||||
int tries = 1, to = 0, x = 0;
|
||||
double tosec;
|
||||
char *argcopy = NULL;
|
||||
struct ind_tone_zone_sound *ts = NULL;
|
||||
struct tone_zone_sound *ts = NULL;
|
||||
struct ast_flags flags = {0};
|
||||
const char *status = "ERROR";
|
||||
|
||||
|
@@ -132,7 +132,7 @@ static int readexten_exec(struct ast_channel *chan, void *data)
|
||||
int maxdigits = sizeof(exten) - 1;
|
||||
int timeout = 0, digit_timeout = 0, x = 0;
|
||||
char *argcopy = NULL, *status = "";
|
||||
struct ind_tone_zone_sound *ts = NULL;
|
||||
struct tone_zone_sound *ts = NULL;
|
||||
struct ast_flags flags = {0};
|
||||
|
||||
AST_DECLARE_APP_ARGS(arglist,
|
||||
|
@@ -377,7 +377,7 @@ struct chan_list {
|
||||
* \brief Tone zone sound used for dialtone generation.
|
||||
* \note Used as a boolean. Non-NULL to prod generation if enabled.
|
||||
*/
|
||||
const struct ind_tone_zone_sound *ts;
|
||||
const struct tone_zone_sound *ts;
|
||||
|
||||
/*!
|
||||
* \brief Enables overlap dialing for the set amount of seconds. (0 = Disabled)
|
||||
@@ -3280,7 +3280,7 @@ static enum ast_bridge_result misdn_bridge (struct ast_channel *c0,
|
||||
|
||||
static int dialtone_indicate(struct chan_list *cl)
|
||||
{
|
||||
const struct ind_tone_zone_sound *ts = NULL;
|
||||
const struct tone_zone_sound *ts = NULL;
|
||||
struct ast_channel *ast = cl->ast;
|
||||
int nd = 0;
|
||||
|
||||
|
@@ -3767,7 +3767,7 @@ static int skinny_transfer(struct skinny_subchannel *sub)
|
||||
{
|
||||
struct skinny_subchannel *xferor; /* the sub doing the transferring */
|
||||
struct skinny_subchannel *xferee; /* the sub being transferred */
|
||||
const struct ind_tone_zone_sound *ts = NULL;
|
||||
const struct tone_zone_sound *ts = NULL;
|
||||
|
||||
if (ast_bridged_channel(sub->owner) || ast_bridged_channel(sub->related->owner)) {
|
||||
if (sub->xferor) {
|
||||
|
@@ -439,7 +439,7 @@ static struct unistim_device {
|
||||
char datetimeformat; /*!< format used for displaying time/date */
|
||||
char contrast; /*!< contrast */
|
||||
char country[3]; /*!< country used for dial tone frequency */
|
||||
struct ind_tone_zone *tz; /*!< Tone zone for res_indications (ring, busy, congestion) */
|
||||
struct tone_zone *tz; /*!< Tone zone for res_indications (ring, busy, congestion) */
|
||||
char ringvolume; /*!< Ring volume */
|
||||
char ringstyle; /*!< Ring melody */
|
||||
int rtp_port; /*!< RTP port used by the phone */
|
||||
@@ -4057,10 +4057,10 @@ static char *control2str(int ind)
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
static void in_band_indication(struct ast_channel *ast, const struct ind_tone_zone *tz,
|
||||
static void in_band_indication(struct ast_channel *ast, const struct tone_zone *tz,
|
||||
const char *indication)
|
||||
{
|
||||
const struct ind_tone_zone_sound *ts = NULL;
|
||||
const struct tone_zone_sound *ts = NULL;
|
||||
|
||||
ts = ast_get_indication_tone(tz, indication);
|
||||
|
||||
|
@@ -296,7 +296,7 @@ static int func_channel_write(struct ast_channel *chan, const char *function,
|
||||
}
|
||||
#endif
|
||||
else if (!strcasecmp(data, "tonezone")) {
|
||||
struct ind_tone_zone *new_zone;
|
||||
struct tone_zone *new_zone;
|
||||
if (!(new_zone = ast_get_indication_zone(value))) {
|
||||
ast_log(LOG_ERROR, "Unknown country code '%s' for tonezone. Check indications.conf for available country codes.\n", value);
|
||||
ret = -1;
|
||||
|
@@ -424,7 +424,7 @@ struct ast_channel {
|
||||
struct ast_trans_pvt *readtrans; /*!< Read translation path */
|
||||
struct ast_audiohook_list *audiohooks;
|
||||
struct ast_cdr *cdr; /*!< Call Detail Record */
|
||||
struct ind_tone_zone *zone; /*!< Tone zone as set in indications.conf or
|
||||
struct tone_zone *zone; /*!< Tone zone as set in indications.conf or
|
||||
in the CHANNEL dialplan function */
|
||||
struct ast_channel_monitor *monitor; /*!< Channel monitoring */
|
||||
#ifdef HAVE_EPOLL
|
||||
|
@@ -39,41 +39,41 @@
|
||||
are no spaces. The sequence is repeated back to the
|
||||
first tone description not preceeded by !. Duration is
|
||||
specified in milliseconds */
|
||||
struct ind_tone_zone_sound {
|
||||
struct tone_zone_sound {
|
||||
const char *name; /*!< Identifing name */
|
||||
const char *data; /*!< Actual zone description */
|
||||
AST_LIST_ENTRY(ind_tone_zone_sound) list;
|
||||
AST_LIST_ENTRY(tone_zone_sound) list;
|
||||
};
|
||||
|
||||
struct ind_tone_zone {
|
||||
AST_RWLIST_ENTRY(ind_tone_zone) list;
|
||||
struct tone_zone {
|
||||
AST_RWLIST_ENTRY(tone_zone) list;
|
||||
char country[5]; /*!< Country code */
|
||||
char alias[5]; /*!< is this an alias? */
|
||||
char description[40]; /*!< Description */
|
||||
int nrringcadence; /*!< # registered ringcadence elements */
|
||||
int *ringcadence; /*!< Ring cadence */
|
||||
AST_LIST_HEAD_NOLOCK(, ind_tone_zone_sound) tones; /*!< The known tones for this zone */
|
||||
AST_LIST_HEAD_NOLOCK(, tone_zone_sound) tones; /*!< The known tones for this zone */
|
||||
};
|
||||
|
||||
/*! \brief set the default tone country */
|
||||
int ast_set_indication_country(const char *country);
|
||||
|
||||
/*! \brief locate tone_zone, given the country. if country == NULL, use the default country */
|
||||
struct ind_tone_zone *ast_get_indication_zone(const char *country);
|
||||
struct tone_zone *ast_get_indication_zone(const char *country);
|
||||
/*! \brief locate a tone_zone_sound, given the tone_zone. if tone_zone == NULL, use the default tone_zone */
|
||||
struct ind_tone_zone_sound *ast_get_indication_tone(const struct ind_tone_zone *zone, const char *indication);
|
||||
struct tone_zone_sound *ast_get_indication_tone(const struct tone_zone *zone, const char *indication);
|
||||
/*! \brief deallocate the passed tone zone */
|
||||
void ast_destroy_indication_zone(struct ind_tone_zone *zone);
|
||||
void ast_destroy_indication_zone(struct tone_zone *zone);
|
||||
|
||||
/*! \brief add a new country, if country exists, it will be replaced. */
|
||||
int ast_register_indication_country(struct ind_tone_zone *country);
|
||||
int ast_register_indication_country(struct tone_zone *country);
|
||||
/*! \brief remove an existing country and all its indications, country must exist */
|
||||
int ast_unregister_indication_country(const char *country);
|
||||
/*! \brief add a new indication to a tone_zone. tone_zone must exist. if the indication already
|
||||
* exists, it will be replaced. */
|
||||
int ast_register_indication(struct ind_tone_zone *zone, const char *indication, const char *tonelist);
|
||||
int ast_register_indication(struct tone_zone *zone, const char *indication, const char *tonelist);
|
||||
/*! \brief remove an existing tone_zone's indication. tone_zone must exist */
|
||||
int ast_unregister_indication(struct ind_tone_zone *zone, const char *indication);
|
||||
int ast_unregister_indication(struct tone_zone *zone, const char *indication);
|
||||
|
||||
/*! \brief Start a tone-list going */
|
||||
int ast_playtones_start(struct ast_channel *chan, int vol, const char* tonelist, int interruptible);
|
||||
@@ -81,10 +81,10 @@ int ast_playtones_start(struct ast_channel *chan, int vol, const char* tonelist,
|
||||
void ast_playtones_stop(struct ast_channel *chan);
|
||||
|
||||
/*! \brief support for walking through a list of indications */
|
||||
struct ind_tone_zone *ast_walk_indications(const struct ind_tone_zone *cur);
|
||||
struct tone_zone *ast_walk_indications(const struct tone_zone *cur);
|
||||
|
||||
#if 0
|
||||
extern struct ind_tone_zone *tone_zones;
|
||||
extern struct tone_zone *tone_zones;
|
||||
extern ast_mutex_t tzlock;
|
||||
#endif
|
||||
|
||||
|
@@ -72,7 +72,7 @@ static AST_RWLIST_HEAD_STATIC(groups, ast_group_info);
|
||||
*/
|
||||
int ast_app_dtget(struct ast_channel *chan, const char *context, char *collect, size_t size, int maxlen, int timeout)
|
||||
{
|
||||
struct ind_tone_zone_sound *ts;
|
||||
struct tone_zone_sound *ts;
|
||||
int res = 0, x = 0;
|
||||
|
||||
if (maxlen > size)
|
||||
|
@@ -2894,7 +2894,7 @@ int ast_indicate_data(struct ast_channel *chan, int _condition,
|
||||
/* By using an enum, we'll get compiler warnings for values not handled
|
||||
* in switch statements. */
|
||||
enum ast_control_frame_type condition = _condition;
|
||||
const struct ind_tone_zone_sound *ts = NULL;
|
||||
const struct tone_zone_sound *ts = NULL;
|
||||
int res = -1;
|
||||
|
||||
ast_channel_lock(chan);
|
||||
|
@@ -332,12 +332,12 @@ void ast_playtones_stop(struct ast_channel *chan)
|
||||
|
||||
/*--------------------------------------------*/
|
||||
|
||||
static AST_RWLIST_HEAD_STATIC(tone_zones, ind_tone_zone);
|
||||
static struct ind_tone_zone *current_tonezone;
|
||||
static AST_RWLIST_HEAD_STATIC(tone_zones, tone_zone);
|
||||
static struct tone_zone *current_tonezone;
|
||||
|
||||
struct ind_tone_zone *ast_walk_indications(const struct ind_tone_zone *cur)
|
||||
struct tone_zone *ast_walk_indications(const struct tone_zone *cur)
|
||||
{
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
|
||||
AST_RWLIST_RDLOCK(&tone_zones);
|
||||
/* If cur is not NULL, then we have to iterate through - otherwise just return the first entry */
|
||||
@@ -358,7 +358,7 @@ struct ind_tone_zone *ast_walk_indications(const struct ind_tone_zone *cur)
|
||||
/* Set global indication country */
|
||||
int ast_set_indication_country(const char *country)
|
||||
{
|
||||
struct ind_tone_zone *zone = NULL;
|
||||
struct tone_zone *zone = NULL;
|
||||
|
||||
/* If no country is specified or we are unable to find the zone, then return not found */
|
||||
if (!country || !(zone = ast_get_indication_zone(country)))
|
||||
@@ -376,9 +376,9 @@ int ast_set_indication_country(const char *country)
|
||||
}
|
||||
|
||||
/* locate tone_zone, given the country. if country == NULL, use the default country */
|
||||
struct ind_tone_zone *ast_get_indication_zone(const char *country)
|
||||
struct tone_zone *ast_get_indication_zone(const char *country)
|
||||
{
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
int alias_loop = 0;
|
||||
|
||||
AST_RWLIST_RDLOCK(&tone_zones);
|
||||
@@ -411,9 +411,9 @@ struct ind_tone_zone *ast_get_indication_zone(const char *country)
|
||||
}
|
||||
|
||||
/* locate a tone_zone_sound, given the tone_zone. if tone_zone == NULL, use the default tone_zone */
|
||||
struct ind_tone_zone_sound *ast_get_indication_tone(const struct ind_tone_zone *zone, const char *indication)
|
||||
struct tone_zone_sound *ast_get_indication_tone(const struct tone_zone *zone, const char *indication)
|
||||
{
|
||||
struct ind_tone_zone_sound *ts = NULL;
|
||||
struct tone_zone_sound *ts = NULL;
|
||||
|
||||
AST_RWLIST_RDLOCK(&tone_zones);
|
||||
|
||||
@@ -439,7 +439,7 @@ struct ind_tone_zone_sound *ast_get_indication_tone(const struct ind_tone_zone *
|
||||
return ts;
|
||||
}
|
||||
|
||||
static inline void clear_zone_sound(struct ind_tone_zone_sound *ts)
|
||||
static inline void clear_zone_sound(struct tone_zone_sound *ts)
|
||||
{
|
||||
/* Deconstify the 'const char *'s so the compiler doesn't complain. (but it's safe) */
|
||||
ast_free((char *) ts->name);
|
||||
@@ -447,9 +447,9 @@ static inline void clear_zone_sound(struct ind_tone_zone_sound *ts)
|
||||
}
|
||||
|
||||
/*! \brief deallocate the passed tone zone */
|
||||
void ast_destroy_indication_zone(struct ind_tone_zone *zone)
|
||||
void ast_destroy_indication_zone(struct tone_zone *zone)
|
||||
{
|
||||
struct ind_tone_zone_sound *current;
|
||||
struct tone_zone_sound *current;
|
||||
|
||||
while ((current = AST_LIST_REMOVE_HEAD(&zone->tones, list))) {
|
||||
clear_zone_sound(current);
|
||||
@@ -465,9 +465,9 @@ void ast_destroy_indication_zone(struct ind_tone_zone *zone)
|
||||
/*--------------------------------------------*/
|
||||
|
||||
/* add a new country, if country exists, it will be replaced. */
|
||||
int ast_register_indication_country(struct ind_tone_zone *zone)
|
||||
int ast_register_indication_country(struct tone_zone *zone)
|
||||
{
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
|
||||
AST_RWLIST_WRLOCK(&tone_zones);
|
||||
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&tone_zones, tz, list) {
|
||||
@@ -500,7 +500,7 @@ int ast_register_indication_country(struct ind_tone_zone *zone)
|
||||
* Also, all countries which are an alias for the specified country are removed. */
|
||||
int ast_unregister_indication_country(const char *country)
|
||||
{
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
int res = -1;
|
||||
|
||||
AST_RWLIST_WRLOCK(&tone_zones);
|
||||
@@ -526,9 +526,9 @@ int ast_unregister_indication_country(const char *country)
|
||||
|
||||
/* add a new indication to a tone_zone. tone_zone must exist. if the indication already
|
||||
* exists, it will be replaced. */
|
||||
int ast_register_indication(struct ind_tone_zone *zone, const char *indication, const char *tonelist)
|
||||
int ast_register_indication(struct tone_zone *zone, const char *indication, const char *tonelist)
|
||||
{
|
||||
struct ind_tone_zone_sound *ts;
|
||||
struct tone_zone_sound *ts;
|
||||
int found = 0;
|
||||
|
||||
/* is it an alias? stop */
|
||||
@@ -566,9 +566,9 @@ int ast_register_indication(struct ind_tone_zone *zone, const char *indication,
|
||||
}
|
||||
|
||||
/* remove an existing country's indication. Both country and indication must exist */
|
||||
int ast_unregister_indication(struct ind_tone_zone *zone, const char *indication)
|
||||
int ast_unregister_indication(struct tone_zone *zone, const char *indication)
|
||||
{
|
||||
struct ind_tone_zone_sound *ts;
|
||||
struct tone_zone_sound *ts;
|
||||
int res = -1;
|
||||
|
||||
/* is it an alias? stop */
|
||||
|
@@ -8531,7 +8531,7 @@ static int pbx_builtin_waitexten(struct ast_channel *chan, void *data)
|
||||
} else if (ast_test_flag(&flags, WAITEXTEN_MOH)) {
|
||||
ast_indicate_data(chan, AST_CONTROL_HOLD, opts[0], strlen(opts[0]));
|
||||
} else if (ast_test_flag(&flags, WAITEXTEN_DIALTONE)) {
|
||||
const struct ind_tone_zone_sound *ts = ast_get_indication_tone(chan->zone, "dial");
|
||||
const struct tone_zone_sound *ts = ast_get_indication_tone(chan->zone, "dial");
|
||||
if (ts)
|
||||
ast_playtones_start(chan, 0, ts->data, 0);
|
||||
else
|
||||
|
@@ -92,7 +92,7 @@ static const char config[] = "indications.conf";
|
||||
*/
|
||||
static char *handle_cli_indication_add(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
|
||||
{
|
||||
struct ind_tone_zone *tz;
|
||||
struct tone_zone *tz;
|
||||
int created_country = 0;
|
||||
|
||||
switch (cmd) {
|
||||
@@ -142,7 +142,7 @@ static char *handle_cli_indication_add(struct ast_cli_entry *e, int cmd, struct
|
||||
*/
|
||||
static char *handle_cli_indication_remove(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
|
||||
{
|
||||
struct ind_tone_zone *tz;
|
||||
struct tone_zone *tz;
|
||||
|
||||
switch (cmd) {
|
||||
case CLI_INIT:
|
||||
@@ -187,7 +187,7 @@ static char *handle_cli_indication_remove(struct ast_cli_entry *e, int cmd, stru
|
||||
*/
|
||||
static char *handle_cli_indication_show(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
|
||||
{
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
char buf[256];
|
||||
int found_country = 0;
|
||||
|
||||
@@ -216,7 +216,7 @@ static char *handle_cli_indication_show(struct ast_cli_entry *e, int cmd, struct
|
||||
int i, j;
|
||||
for (i = 2; i < a->argc; i++) {
|
||||
if (strcasecmp(tz->country, a->argv[i]) == 0 && !tz->alias[0]) {
|
||||
struct ind_tone_zone_sound *ts;
|
||||
struct tone_zone_sound *ts;
|
||||
if (!found_country) {
|
||||
found_country = 1;
|
||||
ast_cli(a->fd, "Country Indication PlayList\n");
|
||||
@@ -249,7 +249,7 @@ static char *handle_cli_indication_show(struct ast_cli_entry *e, int cmd, struct
|
||||
*/
|
||||
static int handle_playtones(struct ast_channel *chan, void *data)
|
||||
{
|
||||
struct ind_tone_zone_sound *ts;
|
||||
struct tone_zone_sound *ts;
|
||||
int res;
|
||||
|
||||
if (!data || !((char*)data)[0]) {
|
||||
@@ -284,7 +284,7 @@ static int ind_load_module(int reload)
|
||||
struct ast_variable *v;
|
||||
char *cxt;
|
||||
char *c;
|
||||
struct ind_tone_zone *tones;
|
||||
struct tone_zone *tones;
|
||||
const char *country = NULL;
|
||||
struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
|
||||
|
||||
@@ -345,7 +345,7 @@ static int ind_load_module(int reload)
|
||||
c = countries;
|
||||
country = strsep(&c,",");
|
||||
while (country) {
|
||||
struct ind_tone_zone* azone;
|
||||
struct tone_zone* azone;
|
||||
if (!(azone = ast_calloc(1, sizeof(*azone)))) {
|
||||
ast_config_destroy(cfg);
|
||||
ast_destroy_indication_zone(tones);
|
||||
@@ -361,7 +361,7 @@ static int ind_load_module(int reload)
|
||||
country = strsep(&c,",");
|
||||
}
|
||||
} else {
|
||||
struct ind_tone_zone_sound *ts;
|
||||
struct tone_zone_sound *ts;
|
||||
|
||||
/* add tone to country */
|
||||
AST_LIST_TRAVERSE(&tones->tones, ts, list) {
|
||||
|
@@ -644,7 +644,7 @@ static u_char *ast_var_indications(struct variable *vp, oid *name, size_t *lengt
|
||||
int exact, size_t *var_len, WriteMethod **write_method)
|
||||
{
|
||||
static unsigned long long_ret;
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
|
||||
if (header_generic(vp, name, length, exact, var_len, write_method))
|
||||
return NULL;
|
||||
@@ -674,7 +674,7 @@ static u_char *ast_var_indications_table(struct variable *vp, oid *name, size_t
|
||||
int exact, size_t *var_len, WriteMethod **write_method)
|
||||
{
|
||||
static unsigned long long_ret;
|
||||
struct ind_tone_zone *tz = NULL;
|
||||
struct tone_zone *tz = NULL;
|
||||
int i;
|
||||
|
||||
if (header_simple_table(vp, name, length, exact, var_len, write_method, -1))
|
||||
|
Reference in New Issue
Block a user