Allow each logging destination and console to have its own notion of the verbosity level.

Review: https://reviewboard.asterisk.org/r/1599


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@346391 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/11.2
Tilghman Lesher 14 years ago
parent d7dec4f14f
commit 77b670c4ab

@ -64,6 +64,16 @@ DUNDi changes
* Allow the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to be * Allow the built in variables ${NUMBER}, ${IPADDR} and ${SECRET} to be
used within the dynamic weight attribute when specifying a mapping. used within the dynamic weight attribute when specifying a mapping.
Core changes
------------
* Each logging destination and console now have an independent notion of the
current verbosity level. Logger.conf now allows an optional argument to
the 'verbose' specifier, indicating the level of verbosity sent to that
particular logging destination. Additionally, remote consoles now each
have their own verbosity level. While 'core set verbose' still works to
affect the core console verbosity, 'remote set verbose' will now set a
separate level for each remote console without affecting any other console.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.8 to Asterisk 10 ------------------- --- Functionality changes from Asterisk 1.8 to Asterisk 10 -------------------
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

@ -20,7 +20,7 @@
=== ===
=========================================================== ===========================================================
From 10 to 12: From 10 to 11:
func_enum: func_enum:
- ENUM query functions now return a count of -1 on lookup error to - ENUM query functions now return a count of -1 on lookup error to
@ -36,6 +36,10 @@ Configuration Files:
- dnsmgr.conf - dnsmgr.conf
- dsp.conf - dsp.conf
- The 'verbose' setting in logger.conf now takes an optional argument,
specifying the verbosity level for each logging destination. The default,
if not otherwise specified, is a verbosity of 3.
AMI: AMI:
- DBDelTree now correctly returns an error when 0 rows are deleted just as - DBDelTree now correctly returns an error when 0 rows are deleted just as
the DBDel action does. the DBDel action does.

@ -361,8 +361,9 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
struct ast_format tmpfmt; struct ast_format tmpfmt;
int features = 0; int features = 0;
if (gH323Debug) if (gH323Debug) {
ast_verbose("--- ooh323_new - %s\n", host); ast_verb(0, "--- ooh323_new - %s\n", host);
}
ast_format_clear(&tmpfmt); ast_format_clear(&tmpfmt);
/* Don't hold a h323 pvt lock while we allocate a channel */ /* Don't hold a h323 pvt lock while we allocate a channel */
@ -480,8 +481,9 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
if(ch) ast_channel_unlock(ch); if(ch) ast_channel_unlock(ch);
if (gH323Debug) if (gH323Debug) {
ast_verbose("+++ h323_new\n"); ast_verb(0, "+++ h323_new\n");
}
return ch; return ch;
} }
@ -492,8 +494,9 @@ static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
{ {
struct ooh323_pvt *pvt = NULL; struct ooh323_pvt *pvt = NULL;
if (gH323Debug) if (gH323Debug) {
ast_verbose("--- ooh323_alloc\n"); ast_verb(0, "--- ooh323_alloc\n");
}
if (!(pvt = ast_calloc(1, sizeof(*pvt)))) { if (!(pvt = ast_calloc(1, sizeof(*pvt)))) {
ast_log(LOG_ERROR, "Couldn't allocate private ooh323 structure\n"); ast_log(LOG_ERROR, "Couldn't allocate private ooh323 structure\n");
@ -542,8 +545,9 @@ static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
iflist = pvt; iflist = pvt;
ast_mutex_unlock(&iflock); ast_mutex_unlock(&iflock);
if (gH323Debug) if (gH323Debug) {
ast_verbose("+++ ooh323_alloc\n"); ast_verb(0, "+++ ooh323_alloc\n");
}
return pvt; return pvt;
} }
@ -566,7 +570,7 @@ static struct ast_channel *ooh323_request(const char *type, struct ast_format_ca
int port = 0; int port = 0;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_request - data %s format %s\n", (char*)data, ast_verb(0, "--- ooh323_request - data %s format %s\n", (char*)data,
ast_getformatname_multiple(formats,FORMAT_STRING_SIZE,cap)); ast_getformatname_multiple(formats,FORMAT_STRING_SIZE,cap));
if (!(ast_format_cap_has_type(cap, AST_FORMAT_TYPE_AUDIO))) { if (!(ast_format_cap_has_type(cap, AST_FORMAT_TYPE_AUDIO))) {
@ -719,7 +723,7 @@ static struct ast_channel *ooh323_request(const char *type, struct ast_format_ca
restart_monitor(); restart_monitor();
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_request\n"); ast_verb(0, "+++ ooh323_request\n");
return chan; return chan;
@ -731,7 +735,7 @@ static struct ooh323_pvt* find_call(ooCallData *call)
struct ooh323_pvt *p; struct ooh323_pvt *p;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- find_call\n"); ast_verb(0, "--- find_call\n");
ast_mutex_lock(&iflock); ast_mutex_lock(&iflock);
@ -743,7 +747,7 @@ static struct ooh323_pvt* find_call(ooCallData *call)
ast_mutex_unlock(&iflock); ast_mutex_unlock(&iflock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ find_call\n"); ast_verb(0, "+++ find_call\n");
return p; return p;
} }
@ -753,7 +757,7 @@ struct ooh323_user *find_user(const char * name, const char* ip)
struct ooh323_user *user; struct ooh323_user *user;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- find_user: %s, %s\n",name,ip); ast_verb(0, "--- find_user: %s, %s\n",name,ip);
ast_mutex_lock(&userl.lock); ast_mutex_lock(&userl.lock);
@ -769,7 +773,7 @@ struct ooh323_user *find_user(const char * name, const char* ip)
ast_mutex_unlock(&userl.lock); ast_mutex_unlock(&userl.lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ find_user\n"); ast_verb(0, "+++ find_user\n");
return user; return user;
} }
@ -779,13 +783,13 @@ struct ooh323_peer *find_friend(const char *name, int port)
struct ooh323_peer *peer; struct ooh323_peer *peer;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- find_friend \"%s\"\n", name); ast_verb(0, "--- find_friend \"%s\"\n", name);
ast_mutex_lock(&peerl.lock); ast_mutex_lock(&peerl.lock);
for (peer = peerl.peers; peer; peer = peer->next) { for (peer = peerl.peers; peer; peer = peer->next) {
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" comparing with \"%s\"\n", peer->ip); ast_verb(0, " comparing with \"%s\"\n", peer->ip);
} }
if (!strcmp(peer->ip, name)) { if (!strcmp(peer->ip, name)) {
if (port <= 0 || (port > 0 && peer->port == port)) { if (port <= 0 || (port > 0 && peer->port == port)) {
@ -797,9 +801,9 @@ struct ooh323_peer *find_friend(const char *name, int port)
if (gH323Debug) { if (gH323Debug) {
if (peer) { if (peer) {
ast_verbose(" found matching friend\n"); ast_verb(0, " found matching friend\n");
} }
ast_verbose("+++ find_friend \"%s\"\n", name); ast_verb(0, "+++ find_friend \"%s\"\n", name);
} }
return peer; return peer;
@ -811,13 +815,13 @@ struct ooh323_peer *find_peer(const char * name, int port)
struct ooh323_peer *peer; struct ooh323_peer *peer;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- find_peer \"%s\"\n", name); ast_verb(0, "--- find_peer \"%s\"\n", name);
ast_mutex_lock(&peerl.lock); ast_mutex_lock(&peerl.lock);
for (peer = peerl.peers; peer; peer = peer->next) { for (peer = peerl.peers; peer; peer = peer->next) {
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" comparing with \"%s\"\n", peer->ip); ast_verb(0, " comparing with \"%s\"\n", peer->ip);
} }
if (!strcasecmp(peer->name, name)) if (!strcasecmp(peer->name, name))
break; break;
@ -836,9 +840,9 @@ struct ooh323_peer *find_peer(const char * name, int port)
if (gH323Debug) { if (gH323Debug) {
if (peer) { if (peer) {
ast_verbose(" found matching peer\n"); ast_verb(0, " found matching peer\n");
} }
ast_verbose("+++ find_peer \"%s\"\n", name); ast_verb(0, "+++ find_peer \"%s\"\n", name);
} }
return peer; return peer;
@ -850,7 +854,7 @@ static int ooh323_digit_begin(struct ast_channel *chan, char digit)
struct ooh323_pvt *p = (struct ooh323_pvt *) chan->tech_pvt; struct ooh323_pvt *p = (struct ooh323_pvt *) chan->tech_pvt;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_digit_begin\n"); ast_verb(0, "--- ooh323_digit_begin\n");
if (!p) { if (!p) {
ast_log(LOG_ERROR, "No private structure for call\n"); ast_log(LOG_ERROR, "No private structure for call\n");
@ -869,7 +873,7 @@ static int ooh323_digit_begin(struct ast_channel *chan, char digit)
} }
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_digit_begin\n"); ast_verb(0, "+++ ooh323_digit_begin\n");
return 0; return 0;
} }
@ -879,7 +883,7 @@ static int ooh323_digit_end(struct ast_channel *chan, char digit, unsigned int d
struct ooh323_pvt *p = (struct ooh323_pvt *) chan->tech_pvt; struct ooh323_pvt *p = (struct ooh323_pvt *) chan->tech_pvt;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_digit_end\n"); ast_verb(0, "--- ooh323_digit_end\n");
if (!p) { if (!p) {
ast_log(LOG_ERROR, "No private structure for call\n"); ast_log(LOG_ERROR, "No private structure for call\n");
@ -891,7 +895,7 @@ static int ooh323_digit_end(struct ast_channel *chan, char digit, unsigned int d
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_digit_end\n"); ast_verb(0, "+++ ooh323_digit_end\n");
return 0; return 0;
} }
@ -912,7 +916,7 @@ static int ooh323_call(struct ast_channel *ast, char *dest, int timeout)
}; };
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_call- %s\n", dest); ast_verb(0, "--- ooh323_call- %s\n", dest);
if ((ast->_state != AST_STATE_DOWN) && (ast->_state != AST_STATE_RESERVED)) { if ((ast->_state != AST_STATE_DOWN) && (ast->_state != AST_STATE_RESERVED)) {
@ -989,7 +993,7 @@ static int ooh323_call(struct ast_channel *ast, char *dest, int timeout)
return -1; /* ToDO: cleanup */ return -1; /* ToDO: cleanup */
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_call\n"); ast_verb(0, "+++ ooh323_call\n");
return 0; return 0;
} }
@ -1000,7 +1004,7 @@ static int ooh323_hangup(struct ast_channel *ast)
int q931cause = AST_CAUSE_NORMAL_CLEARING; int q931cause = AST_CAUSE_NORMAL_CLEARING;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_hangup\n"); ast_verb(0, "--- ooh323_hangup\n");
if (p) { if (p) {
ast_mutex_lock(&p->lock); ast_mutex_lock(&p->lock);
@ -1027,7 +1031,7 @@ static int ooh323_hangup(struct ast_channel *ast)
if (gH323Debug) if (gH323Debug)
ast_verbose(" hanging %s with cause: %d\n", p->username, q931cause); ast_verb(0, " hanging %s with cause: %d\n", p->username, q931cause);
ast->tech_pvt = NULL; ast->tech_pvt = NULL;
if (!ast_test_flag(p, H323_ALREADYGONE)) { if (!ast_test_flag(p, H323_ALREADYGONE)) {
ooHangCall(p->callToken, ooHangCall(p->callToken,
@ -1056,7 +1060,7 @@ static int ooh323_hangup(struct ast_channel *ast)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_hangup\n"); ast_verb(0, "+++ ooh323_hangup\n");
return 0; return 0;
} }
@ -1067,7 +1071,7 @@ static int ooh323_answer(struct ast_channel *ast)
char *callToken = (char *)NULL; char *callToken = (char *)NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_answer\n"); ast_verb(0, "--- ooh323_answer\n");
if (p) { if (p) {
@ -1097,7 +1101,7 @@ static int ooh323_answer(struct ast_channel *ast)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_answer\n"); ast_verb(0, "+++ ooh323_answer\n");
return 0; return 0;
} }
@ -1201,12 +1205,12 @@ static int ooh323_indicate(struct ast_channel *ast, int condition, const void *d
if (!callToken) { if (!callToken) {
if (gH323Debug) if (gH323Debug)
ast_verbose(" ooh323_indicate - No callToken\n"); ast_verb(0, " ooh323_indicate - No callToken\n");
return -1; return -1;
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("----- ooh323_indicate %d on call %s\n", condition, callToken); ast_verb(0, "----- ooh323_indicate %d on call %s\n", condition, callToken);
ast_mutex_lock(&p->lock); ast_mutex_lock(&p->lock);
switch (condition) { switch (condition) {
@ -1359,7 +1363,7 @@ static int ooh323_indicate(struct ast_channel *ast, int condition, const void *d
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("++++ ooh323_indicate %d on %s\n", condition, callToken); ast_verb(0, "++++ ooh323_indicate %d on %s\n", condition, callToken);
free(callToken); free(callToken);
return res; return res;
@ -1378,7 +1382,7 @@ static int ooh323_queryoption(struct ast_channel *ast, int option, void *data, i
ast_mutex_lock(&p->lock); ast_mutex_lock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("----- ooh323_queryoption %d on channel %s\n", option, ast->name); ast_verb(0, "----- ooh323_queryoption %d on channel %s\n", option, ast->name);
switch (option) { switch (option) {
@ -1418,7 +1422,7 @@ static int ooh323_queryoption(struct ast_channel *ast, int option, void *data, i
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++++ ooh323_queryoption %d on channel %s\n", option, ast->name); ast_verb(0, "+++++ ooh323_queryoption %d on channel %s\n", option, ast->name);
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
@ -1434,7 +1438,7 @@ static int ooh323_fixup(struct ast_channel *oldchan, struct ast_channel *newchan
if (!p) return -1; if (!p) return -1;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323c ooh323_fixup\n"); ast_verb(0, "--- ooh323c ooh323_fixup\n");
ast_mutex_lock(&p->lock); ast_mutex_lock(&p->lock);
if (p->owner != oldchan) { if (p->owner != oldchan) {
@ -1452,7 +1456,7 @@ static int ooh323_fixup(struct ast_channel *oldchan, struct ast_channel *newchan
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323c ooh323_fixup \n"); ast_verb(0, "+++ ooh323c ooh323_fixup \n");
return 0; return 0;
} }
@ -1464,7 +1468,7 @@ void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txfra
char formats[FORMAT_STRING_SIZE]; char formats[FORMAT_STRING_SIZE];
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_update_writeformat %s/%d\n", ast_verb(0, "--- ooh323_update_writeformat %s/%d\n",
ast_getformatname(fmt), txframes); ast_getformatname(fmt), txframes);
p = find_call(call); p = find_call(call);
@ -1488,7 +1492,7 @@ void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txfra
return; return;
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("Writeformat before update %s/%s\n", ast_verb(0, "Writeformat before update %s/%s\n",
ast_getformatname(&p->owner->writeformat), ast_getformatname(&p->owner->writeformat),
ast_getformatname_multiple(formats, sizeof(formats), p->owner->nativeformats)); ast_getformatname_multiple(formats, sizeof(formats), p->owner->nativeformats));
if (txframes) if (txframes)
@ -1514,7 +1518,7 @@ void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txfra
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_update_writeformat\n"); ast_verb(0, "+++ ooh323_update_writeformat\n");
} }
void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt) void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
@ -1522,7 +1526,7 @@ void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
struct ooh323_pvt *p = NULL; struct ooh323_pvt *p = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_update_readformat %s\n", ast_verb(0, "--- ooh323_update_readformat %s\n",
ast_getformatname(fmt)); ast_getformatname(fmt));
p = find_call(call); p = find_call(call);
@ -1547,7 +1551,7 @@ void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("Readformat before update %s\n", ast_verb(0, "Readformat before update %s\n",
ast_getformatname(&p->owner->readformat)); ast_getformatname(&p->owner->readformat));
ast_format_cap_set(p->owner->nativeformats, fmt); ast_format_cap_set(p->owner->nativeformats, fmt);
ast_set_read_format(p->owner, &p->owner->readformat); ast_set_read_format(p->owner, &p->owner->readformat);
@ -1558,7 +1562,7 @@ void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_update_readformat\n"); ast_verb(0, "+++ ooh323_update_readformat\n");
} }
@ -1568,7 +1572,7 @@ int onAlerting(ooCallData *call)
struct ast_channel *c = NULL; struct ast_channel *c = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- onAlerting %s\n", call->callToken); ast_verb(0, "--- onAlerting %s\n", call->callToken);
p = find_call(call); p = find_call(call);
@ -1613,7 +1617,7 @@ int onAlerting(ooCallData *call)
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ onAlerting %s\n", call->callToken); ast_verb(0, "+++ onAlerting %s\n", call->callToken);
return OO_OK; return OO_OK;
} }
@ -1624,7 +1628,7 @@ int onProgress(ooCallData *call)
struct ast_channel *c = NULL; struct ast_channel *c = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- onProgress %s\n", call->callToken); ast_verb(0, "--- onProgress %s\n", call->callToken);
p = find_call(call); p = find_call(call);
@ -1669,7 +1673,7 @@ int onProgress(ooCallData *call)
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ onProgress %s\n", call->callToken); ast_verb(0, "+++ onProgress %s\n", call->callToken);
return OO_OK; return OO_OK;
} }
@ -1730,7 +1734,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
char number [OO_MAX_NUMBER_LENGTH]; char number [OO_MAX_NUMBER_LENGTH];
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_onReceivedSetup %s\n", call->callToken); ast_verb(0, "--- ooh323_onReceivedSetup %s\n", call->callToken);
if (!(p = ooh323_alloc(call->callReference, call->callToken))) { if (!(p = ooh323_alloc(call->callReference, call->callToken))) {
@ -1877,7 +1881,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_onReceivedSetup - Determined context %s, " ast_verb(0, "+++ ooh323_onReceivedSetup - Determined context %s, "
"extension %s\n", p->context, p->exten); "extension %s\n", p->context, p->exten);
return OO_OK; return OO_OK;
@ -1891,7 +1895,7 @@ int onOutgoingCall(ooCallData *call)
int i = 0; int i = 0;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- onOutgoingCall %lx: %s\n", (long unsigned int) call, call->callToken); ast_verb(0, "--- onOutgoingCall %lx: %s\n", (long unsigned int) call, call->callToken);
if (!strcmp(call->callType, "outgoing")) { if (!strcmp(call->callType, "outgoing")) {
p = find_call(call); p = find_call(call);
@ -1923,13 +1927,13 @@ int onOutgoingCall(ooCallData *call)
if (!ast_strlen_zero(p->caller_dialedDigits)) { if (!ast_strlen_zero(p->caller_dialedDigits)) {
if (gH323Debug) { if (gH323Debug) {
ast_verbose("Setting dialed digits %s\n", p->caller_dialedDigits); ast_verb(0, "Setting dialed digits %s\n", p->caller_dialedDigits);
} }
ooCallAddAliasDialedDigits(call, p->caller_dialedDigits); ooCallAddAliasDialedDigits(call, p->caller_dialedDigits);
} else if (!ast_strlen_zero(p->callerid_num)) { } else if (!ast_strlen_zero(p->callerid_num)) {
if (ooIsDailedDigit(p->callerid_num)) { if (ooIsDailedDigit(p->callerid_num)) {
if (gH323Debug) { if (gH323Debug) {
ast_verbose("setting callid number %s\n", p->callerid_num); ast_verb(0, "setting callid number %s\n", p->callerid_num);
} }
ooCallAddAliasDialedDigits(call, p->callerid_num); ooCallAddAliasDialedDigits(call, p->callerid_num);
} else if (ast_strlen_zero(p->caller_h323id)) { } else if (ast_strlen_zero(p->caller_h323id)) {
@ -1953,7 +1957,7 @@ int onOutgoingCall(ooCallData *call)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ onOutgoingCall %s\n", call->callToken); ast_verb(0, "+++ onOutgoingCall %s\n", call->callToken);
return OO_OK; return OO_OK;
} }
@ -1964,7 +1968,7 @@ int onNewCallCreated(ooCallData *call)
int i = 0; int i = 0;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- onNewCallCreated %lx: %s\n", (long unsigned int) call, call->callToken); ast_verb(0, "--- onNewCallCreated %lx: %s\n", (long unsigned int) call, call->callToken);
ast_mutex_lock(&call->Lock); ast_mutex_lock(&call->Lock);
if (ooh323c_start_call_thread(call)) { if (ooh323c_start_call_thread(call)) {
@ -2004,13 +2008,13 @@ int onNewCallCreated(ooCallData *call)
if (!ast_strlen_zero(p->caller_dialedDigits)) { if (!ast_strlen_zero(p->caller_dialedDigits)) {
if (gH323Debug) { if (gH323Debug) {
ast_verbose("Setting dialed digits %s\n", p->caller_dialedDigits); ast_verb(0, "Setting dialed digits %s\n", p->caller_dialedDigits);
} }
ooCallAddAliasDialedDigits(call, p->caller_dialedDigits); ooCallAddAliasDialedDigits(call, p->caller_dialedDigits);
} else if (!ast_strlen_zero(p->callerid_num)) { } else if (!ast_strlen_zero(p->callerid_num)) {
if (ooIsDailedDigit(p->callerid_num)) { if (ooIsDailedDigit(p->callerid_num)) {
if (gH323Debug) { if (gH323Debug) {
ast_verbose("setting callid number %s\n", p->callerid_num); ast_verb(0, "setting callid number %s\n", p->callerid_num);
} }
ooCallAddAliasDialedDigits(call, p->callerid_num); ooCallAddAliasDialedDigits(call, p->callerid_num);
} else if (ast_strlen_zero(p->caller_h323id)) { } else if (ast_strlen_zero(p->caller_h323id)) {
@ -2031,7 +2035,7 @@ int onNewCallCreated(ooCallData *call)
if (gH323Debug) { if (gH323Debug) {
char prefsBuf[256]; char prefsBuf[256];
ast_codec_pref_string(&p->prefs, prefsBuf, sizeof(prefsBuf)); ast_codec_pref_string(&p->prefs, prefsBuf, sizeof(prefsBuf));
ast_verbose(" Outgoing call %s(%s) - Codec prefs - %s\n", ast_verb(0, " Outgoing call %s(%s) - Codec prefs - %s\n",
p->username?p->username:"NULL", call->callToken, prefsBuf); p->username?p->username:"NULL", call->callToken, prefsBuf);
} }
@ -2044,7 +2048,7 @@ int onNewCallCreated(ooCallData *call)
ast_mutex_unlock(&call->Lock); ast_mutex_unlock(&call->Lock);
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ onNewCallCreated %s\n", call->callToken); ast_verb(0, "+++ onNewCallCreated %s\n", call->callToken);
return OO_OK; return OO_OK;
} }
@ -2053,7 +2057,7 @@ int onCallEstablished(ooCallData *call)
struct ooh323_pvt *p = NULL; struct ooh323_pvt *p = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- onCallEstablished %s\n", call->callToken); ast_verb(0, "--- onCallEstablished %s\n", call->callToken);
if (!(p = find_call(call))) { if (!(p = find_call(call))) {
@ -2099,7 +2103,7 @@ int onCallEstablished(ooCallData *call)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ onCallEstablished %s\n", call->callToken); ast_verb(0, "+++ onCallEstablished %s\n", call->callToken);
return OO_OK; return OO_OK;
} }
@ -2110,7 +2114,7 @@ int onCallCleared(ooCallData *call)
int ownerLock = 0; int ownerLock = 0;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- onCallCleared %s \n", call->callToken); ast_verb(0, "--- onCallCleared %s \n", call->callToken);
if ((p = find_call(call))) { if ((p = find_call(call))) {
@ -2155,7 +2159,7 @@ int onCallCleared(ooCallData *call)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ onCallCleared\n"); ast_verb(0, "+++ onCallCleared\n");
return OO_OK; return OO_OK;
} }
@ -2165,7 +2169,7 @@ int onCallCleared(ooCallData *call)
struct ooh323_user *prev = NULL, *cur = NULL; struct ooh323_user *prev = NULL, *cur = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_delete_user\n"); ast_verb(0, "--- ooh323_delete_user\n");
if (user) { if (user) {
cur = userl.users; cur = userl.users;
@ -2188,7 +2192,7 @@ int onCallCleared(ooCallData *call)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_delete_user\n"); ast_verb(0, "+++ ooh323_delete_user\n");
} */ } */
@ -2197,7 +2201,7 @@ void ooh323_delete_peer(struct ooh323_peer *peer)
struct ooh323_peer *prev = NULL, *cur = NULL; struct ooh323_peer *prev = NULL, *cur = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_delete_peer\n"); ast_verb(0, "--- ooh323_delete_peer\n");
if (peer) { if (peer) {
cur = peerl.peers; cur = peerl.peers;
@ -2226,7 +2230,7 @@ void ooh323_delete_peer(struct ooh323_peer *peer)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_delete_peer\n"); ast_verb(0, "+++ ooh323_delete_peer\n");
} }
@ -2237,7 +2241,7 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v)
struct ooh323_user *user = NULL; struct ooh323_user *user = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- build_user\n"); ast_verb(0, "--- build_user\n");
user = ast_calloc(1,sizeof(struct ooh323_user)); user = ast_calloc(1,sizeof(struct ooh323_user));
if (user) { if (user) {
@ -2366,7 +2370,7 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ build_user\n"); ast_verb(0, "+++ build_user\n");
return user; return user;
} }
@ -2376,7 +2380,7 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
struct ooh323_peer *peer = NULL; struct ooh323_peer *peer = NULL;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- build_peer\n"); ast_verb(0, "--- build_peer\n");
peer = ast_calloc(1, sizeof(*peer)); peer = ast_calloc(1, sizeof(*peer));
if (peer) { if (peer) {
@ -2534,7 +2538,7 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ build_peer\n"); ast_verb(0, "+++ build_peer\n");
return peer; return peer;
} }
@ -2542,13 +2546,13 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
static int ooh323_do_reload(void) static int ooh323_do_reload(void)
{ {
if (gH323Debug) { if (gH323Debug) {
ast_verbose("--- ooh323_do_reload\n"); ast_verb(0, "--- ooh323_do_reload\n");
} }
reload_config(1); reload_config(1);
if (gH323Debug) { if (gH323Debug) {
ast_verbose("+++ ooh323_do_reload\n"); ast_verb(0, "+++ ooh323_do_reload\n");
} }
return 0; return 0;
@ -2574,11 +2578,11 @@ char *handle_cli_ooh323_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_
return CLI_SHOWUSAGE; return CLI_SHOWUSAGE;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_reload\n"); ast_verb(0, "--- ooh323_reload\n");
ast_mutex_lock(&h323_reload_lock); ast_mutex_lock(&h323_reload_lock);
if (h323_reloading) { if (h323_reloading) {
ast_verbose("Previous OOH323 reload not yet done\n"); ast_verb(0, "Previous OOH323 reload not yet done\n");
} else { } else {
h323_reloading = 1; h323_reloading = 1;
} }
@ -2586,7 +2590,7 @@ char *handle_cli_ooh323_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_
restart_monitor(); restart_monitor();
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_reload\n"); ast_verb(0, "+++ ooh323_reload\n");
return 0; return 0;
} }
@ -2605,7 +2609,7 @@ int reload_config(int reload)
struct ast_format tmpfmt; struct ast_format tmpfmt;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- reload_config\n"); ast_verb(0, "--- reload_config\n");
cfg = ast_config_load((char*)config, config_flags); cfg = ast_config_load((char*)config, config_flags);
@ -2620,7 +2624,7 @@ int reload_config(int reload)
delete_users(); delete_users();
delete_peers(); delete_peers();
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" reload_config - Freeing up alias list\n"); ast_verb(0, " reload_config - Freeing up alias list\n");
} }
cur = gAliasList; cur = gAliasList;
while (cur) { while (cur) {
@ -2788,8 +2792,7 @@ int reload_config(int reload)
strncpy(gLogFile, v->value, sizeof(gLogFile)-1); strncpy(gLogFile, v->value, sizeof(gLogFile)-1);
} else if (!strcasecmp(v->name, "context")) { } else if (!strcasecmp(v->name, "context")) {
strncpy(gContext, v->value, sizeof(gContext)-1); strncpy(gContext, v->value, sizeof(gContext)-1);
ast_verbose(VERBOSE_PREFIX_3 " == Setting default context to %s\n", ast_verb(3, " == Setting default context to %s\n", gContext);
gContext);
} else if (!strcasecmp(v->name, "rtptimeout")) { } else if (!strcasecmp(v->name, "rtptimeout")) {
gRTPTimeout = atoi(v->value); gRTPTimeout = atoi(v->value);
if (gRTPTimeout <= 0) if (gRTPTimeout <= 0)
@ -2926,7 +2929,7 @@ int reload_config(int reload)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ reload_config\n"); ast_verb(0, "+++ reload_config\n");
return 0; return 0;
@ -3760,10 +3763,10 @@ int ooh323_destroy(struct ooh323_pvt *p)
struct ooh323_user *user = NULL; struct ooh323_user *user = NULL;
if (gH323Debug) { if (gH323Debug) {
ast_verbose("--- ooh323_destroy \n"); ast_verb(0, "--- ooh323_destroy \n");
if (p) if (p)
ast_verbose(" Destroying %s\n", p->username); ast_verb(0, " Destroying %s\n", p->username);
} }
cur = iflist; cur = iflist;
@ -3782,7 +3785,7 @@ int ooh323_destroy(struct ooh323_pvt *p)
if (cur->callToken) { if (cur->callToken) {
if (gH323Debug) if (gH323Debug)
ast_verbose(" Destroying %s\n", cur->callToken); ast_verb(0, " Destroying %s\n", cur->callToken);
ast_free(cur->callToken); ast_free(cur->callToken);
cur->callToken = 0; cur->callToken = 0;
} }
@ -3858,7 +3861,7 @@ int ooh323_destroy(struct ooh323_pvt *p)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ ooh323_destroy\n"); ast_verb(0, "+++ ooh323_destroy\n");
return 0; return 0;
} }
@ -3935,7 +3938,7 @@ static int unload_module(void)
struct ooAliases *cur = NULL, *prev = NULL; struct ooAliases *cur = NULL, *prev = NULL;
if (gH323Debug) { if (gH323Debug) {
ast_verbose("--- ooh323 unload_module \n"); ast_verb(0, "--- ooh323 unload_module \n");
} }
/* First, take us out of the channel loop */ /* First, take us out of the channel loop */
ast_cli_unregister_multiple(cli_ooh323, sizeof(cli_ooh323) / sizeof(struct ast_cli_entry)); ast_cli_unregister_multiple(cli_ooh323, sizeof(cli_ooh323) / sizeof(struct ast_cli_entry));
@ -3947,7 +3950,7 @@ static int unload_module(void)
#endif #endif
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - hanging up all interfaces\n"); ast_verb(0, " unload_module - hanging up all interfaces\n");
} }
if (!ast_mutex_lock(&iflock)) { if (!ast_mutex_lock(&iflock)) {
/* Hangup all interfaces if they have an owner */ /* Hangup all interfaces if they have an owner */
@ -3967,7 +3970,7 @@ static int unload_module(void)
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - stopping monitor thread\n"); ast_verb(0, " unload_module - stopping monitor thread\n");
} }
if (monitor_thread != AST_PTHREADT_NULL) { if (monitor_thread != AST_PTHREADT_NULL) {
if (!ast_mutex_lock(&monlock)) { if (!ast_mutex_lock(&monlock)) {
@ -3986,13 +3989,13 @@ static int unload_module(void)
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - stopping stack thread\n"); ast_verb(0, " unload_module - stopping stack thread\n");
} }
ooh323c_stop_stack_thread(); ooh323c_stop_stack_thread();
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - freeing up memory used by interfaces\n"); ast_verb(0, " unload_module - freeing up memory used by interfaces\n");
} }
if (!ast_mutex_lock(&iflock)) { if (!ast_mutex_lock(&iflock)) {
struct ooh323_pvt *pl; struct ooh323_pvt *pl;
@ -4014,19 +4017,19 @@ static int unload_module(void)
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - deleting users\n"); ast_verb(0, " unload_module - deleting users\n");
} }
delete_users(); delete_users();
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - deleting peers\n"); ast_verb(0, " unload_module - deleting peers\n");
} }
delete_peers(); delete_peers();
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module - Freeing up alias list\n"); ast_verb(0, " unload_module - Freeing up alias list\n");
} }
cur = gAliasList; cur = gAliasList;
while (cur) { while (cur) {
@ -4039,12 +4042,12 @@ static int unload_module(void)
if (gH323Debug) { if (gH323Debug) {
ast_verbose(" unload_module- destroying OOH323 endpoint \n"); ast_verb(0, " unload_module- destroying OOH323 endpoint \n");
} }
ooH323EpDestroy(); ooH323EpDestroy();
if (gH323Debug) { if (gH323Debug) {
ast_verbose("+++ ooh323 unload_module \n"); ast_verb(0, "+++ ooh323 unload_module \n");
} }
gCap = ast_format_cap_destroy(gCap); gCap = ast_format_cap_destroy(gCap);
@ -4158,7 +4161,7 @@ static int ooh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp_instance
int mode; int mode;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- ooh323_set_peer - %s\n", chan->name); ast_verb(0, "--- ooh323_set_peer - %s\n", chan->name);
if (!rtp) { if (!rtp) {
return 0; return 0;
@ -4194,7 +4197,7 @@ int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call)
ast_format_clear(&tmpfmt); ast_format_clear(&tmpfmt);
if (gH323Debug) if (gH323Debug)
ast_verbose("--- configure_local_rtp\n"); ast_verb(0, "--- configure_local_rtp\n");
if (ast_parse_arg(call->localIP, PARSE_ADDR, &tmp)) { if (ast_parse_arg(call->localIP, PARSE_ADDR, &tmp)) {
@ -4262,7 +4265,7 @@ int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call)
if (p->rtdrcount) { if (p->rtdrcount) {
if (gH323Debug) if (gH323Debug)
ast_verbose("Setup RTDR info: %d, %d\n", p->rtdrinterval, p->rtdrcount); ast_verb(0, "Setup RTDR info: %d, %d\n", p->rtdrinterval, p->rtdrcount);
call->rtdrInterval = p->rtdrinterval; call->rtdrInterval = p->rtdrinterval;
call->rtdrCount = p->rtdrcount; call->rtdrCount = p->rtdrcount;
} }
@ -4307,7 +4310,7 @@ int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call)
} }
if (gH323Debug) if (gH323Debug)
ast_verbose("+++ configure_local_rtp\n"); ast_verb(0, "+++ configure_local_rtp\n");
return 1; return 1;
} }
@ -4319,7 +4322,7 @@ void setup_rtp_connection(ooCallData *call, const char *remoteIp,
struct ast_sockaddr tmp; struct ast_sockaddr tmp;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- setup_rtp_connection %s:%d\n", remoteIp, remotePort); ast_verb(0, "--- setup_rtp_connection %s:%d\n", remoteIp, remotePort);
/* Find the call or allocate a private structure if call not found */ /* Find the call or allocate a private structure if call not found */
p = find_call(call); p = find_call(call);
@ -4338,7 +4341,7 @@ void setup_rtp_connection(ooCallData *call, const char *remoteIp,
"audio", "G726-32", AST_RTP_OPT_G726_NONSTANDARD); "audio", "G726-32", AST_RTP_OPT_G726_NONSTANDARD);
if(gH323Debug) if(gH323Debug)
ast_verbose("+++ setup_rtp_connection\n"); ast_verb(0, "+++ setup_rtp_connection\n");
return; return;
} }
@ -4348,7 +4351,7 @@ void close_rtp_connection(ooCallData *call)
struct ooh323_pvt *p = NULL; struct ooh323_pvt *p = NULL;
if(gH323Debug) if(gH323Debug)
ast_verbose("--- close_rtp_connection\n"); ast_verb(0, "--- close_rtp_connection\n");
p = find_call(call); p = find_call(call);
if (!p) { if (!p) {
@ -4363,7 +4366,7 @@ void close_rtp_connection(ooCallData *call)
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if(gH323Debug) if(gH323Debug)
ast_verbose("+++ close_rtp_connection\n"); ast_verb(0, "+++ close_rtp_connection\n");
return; return;
} }
@ -4414,7 +4417,7 @@ void setup_udptl_connection(ooCallData *call, const char *remoteIp,
struct ast_sockaddr them; struct ast_sockaddr them;
if (gH323Debug) if (gH323Debug)
ast_verbose("--- setup_udptl_connection\n"); ast_verb(0, "--- setup_udptl_connection\n");
/* Find the call or allocate a private structure if call not found */ /* Find the call or allocate a private structure if call not found */
p = find_call(call); p = find_call(call);
@ -4463,7 +4466,7 @@ void setup_udptl_connection(ooCallData *call, const char *remoteIp,
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if(gH323Debug) if(gH323Debug)
ast_verbose("+++ setup_udptl_connection\n"); ast_verb(0, "+++ setup_udptl_connection\n");
return; return;
} }
@ -4473,7 +4476,7 @@ void close_udptl_connection(ooCallData *call)
struct ooh323_pvt *p = NULL; struct ooh323_pvt *p = NULL;
if(gH323Debug) if(gH323Debug)
ast_verbose("--- close_udptl_connection\n"); ast_verb(0, "--- close_udptl_connection\n");
p = find_call(call); p = find_call(call);
if (!p) { if (!p) {
@ -4509,7 +4512,7 @@ void close_udptl_connection(ooCallData *call)
ast_mutex_unlock(&p->lock); ast_mutex_unlock(&p->lock);
if(gH323Debug) if(gH323Debug)
ast_verbose("+++ close_udptl_connection\n"); ast_verb(0, "+++ close_udptl_connection\n");
return; return;
} }
@ -4600,7 +4603,7 @@ struct ast_frame *ooh323_rtp_read(struct ast_channel *ast, struct ooh323_pvt *p)
/* Switch to T.38 ON CED*/ /* Switch to T.38 ON CED*/
if (!p->faxmode && !p->chmodepend && (dfr->subclass.integer == 'e') && (p->t38support != T38_DISABLED)) { if (!p->faxmode && !p->chmodepend && (dfr->subclass.integer == 'e') && (p->t38support != T38_DISABLED)) {
if (gH323Debug) if (gH323Debug)
ast_verbose("request to change %s to t.38 because fax ced\n", p->callToken); ast_verb(0, "request to change %s to t.38 because fax ced\n", p->callToken);
p->chmodepend = 1; p->chmodepend = 1;
p->faxdetected = 1; p->faxdetected = 1;
ooRequestChangeMode(p->callToken, 1); ooRequestChangeMode(p->callToken, 1);

@ -1379,8 +1379,7 @@ static int load_module(void)
parse_config(0); parse_config(0);
ast_config_engine_register(&mysql_engine); ast_config_engine_register(&mysql_engine);
if (option_verbose > 1) ast_verb(2, "MySQL RealTime driver loaded.\n");
ast_verbose(VERBOSE_PREFIX_2 "MySQL RealTime driver loaded.\n");
ast_cli_register_multiple(cli_realtime_mysql_status, sizeof(cli_realtime_mysql_status) / sizeof(struct ast_cli_entry)); ast_cli_register_multiple(cli_realtime_mysql_status, sizeof(cli_realtime_mysql_status) / sizeof(struct ast_cli_entry));
return 0; return 0;
} }
@ -1392,8 +1391,7 @@ static int unload_module(void)
ast_cli_unregister_multiple(cli_realtime_mysql_status, sizeof(cli_realtime_mysql_status) / sizeof(struct ast_cli_entry)); ast_cli_unregister_multiple(cli_realtime_mysql_status, sizeof(cli_realtime_mysql_status) / sizeof(struct ast_cli_entry));
ast_config_engine_deregister(&mysql_engine); ast_config_engine_deregister(&mysql_engine);
if (option_verbose > 1) ast_verb(2, "MySQL RealTime unloaded.\n");
ast_verbose(VERBOSE_PREFIX_2 "MySQL RealTime unloaded.\n");
ast_module_user_hangup_all(); ast_module_user_hangup_all();

@ -2254,8 +2254,7 @@ char s1[256];
static char *cs_keywords[] = {"rptena","rptdis","apena","apdis","lnkena","lnkdis","totena","totdis","skena","skdis", static char *cs_keywords[] = {"rptena","rptdis","apena","apdis","lnkena","lnkdis","totena","totdis","skena","skdis",
"ufena","ufdis","atena","atdis",NULL}; "ufena","ufdis","atena","atdis",NULL};
if (option_verbose > 2) ast_verb(3, "%s config for repeater %s\n",
ast_verbose(VERBOSE_PREFIX_3 "%s config for repeater %s\n",
(init) ? "Loading initial" : "Re-Loading",rpt_vars[n].name); (init) ? "Loading initial" : "Re-Loading",rpt_vars[n].name);
ast_mutex_lock(&rpt_vars[n].lock); ast_mutex_lock(&rpt_vars[n].lock);
if (rpt_vars[n].cfg) ast_config_destroy(rpt_vars[n].cfg); if (rpt_vars[n].cfg) ast_config_destroy(rpt_vars[n].cfg);
@ -10411,8 +10410,7 @@ static int attempt_reconnect(struct rpt *myrpt, struct rpt_link *l)
#endif #endif
l->chan->appl = "Apprpt"; l->chan->appl = "Apprpt";
l->chan->data = "(Remote Rx)"; l->chan->data = "(Remote Rx)";
if (option_verbose > 2) ast_verb(3, "rpt (attempt_reconnect) initiating call to %s/%s on %s\n",
ast_verbose(VERBOSE_PREFIX_3 "rpt (attempt_reconnect) initiating call to %s/%s on %s\n",
deststr, tele, l->chan->name); deststr, tele, l->chan->name);
l->chan->caller.id.number.valid = 1; l->chan->caller.id.number.valid = 1;
ast_free(l->chan->caller.id.number.str); ast_free(l->chan->caller.id.number.str);
@ -10422,8 +10420,7 @@ static int attempt_reconnect(struct rpt *myrpt, struct rpt_link *l)
} }
else else
{ {
if (option_verbose > 2) ast_verb(3, "Unable to place call to %s/%s on %s\n",
ast_verbose(VERBOSE_PREFIX_3 "Unable to place call to %s/%s on %s\n",
deststr,tele,l->chan->name); deststr,tele,l->chan->name);
return -1; return -1;
} }
@ -10848,8 +10845,7 @@ struct ast_format_cap *cap = NULL;
#endif #endif
myrpt->rxchannel->appl = "Apprpt"; myrpt->rxchannel->appl = "Apprpt";
myrpt->rxchannel->data = "(Repeater Rx)"; myrpt->rxchannel->data = "(Repeater Rx)";
if (option_verbose > 2) ast_verb(3, "rpt (Rx) initiating call to %s/%s on %s\n",
ast_verbose(VERBOSE_PREFIX_3 "rpt (Rx) initiating call to %s/%s on %s\n",
tmpstr,tele,myrpt->rxchannel->name); tmpstr,tele,myrpt->rxchannel->name);
ast_call(myrpt->rxchannel,tele,999); ast_call(myrpt->rxchannel,tele,999);
if (myrpt->rxchannel->_state != AST_STATE_UP) if (myrpt->rxchannel->_state != AST_STATE_UP)
@ -10907,8 +10903,7 @@ struct ast_format_cap *cap = NULL;
#endif #endif
myrpt->txchannel->appl = "Apprpt"; myrpt->txchannel->appl = "Apprpt";
myrpt->txchannel->data = "(Repeater Tx)"; myrpt->txchannel->data = "(Repeater Tx)";
if (option_verbose > 2) ast_verb(3, "rpt (Tx) initiating call to %s/%s on %s\n",
ast_verbose(VERBOSE_PREFIX_3 "rpt (Tx) initiating call to %s/%s on %s\n",
tmpstr,tele,myrpt->txchannel->name); tmpstr,tele,myrpt->txchannel->name);
ast_call(myrpt->txchannel,tele,999); ast_call(myrpt->txchannel,tele,999);
if (myrpt->rxchannel->_state != AST_STATE_UP) if (myrpt->rxchannel->_state != AST_STATE_UP)
@ -13447,14 +13442,12 @@ static int rpt_exec(struct ast_channel *chan, const char *data)
chan->priority++; chan->priority++;
} }
if(option_verbose > 2) { ast_verb(3, "Return Context: (%s,%s,%d) ID: %s\n",
ast_verbose(VERBOSE_PREFIX_3 "Return Context: (%s,%s,%d) ID: %s\n",
chan->context, chan->exten, chan->priority, chan->context, chan->exten, chan->priority,
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, "")); S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, ""));
if(!ast_exists_extension(chan, chan->context, chan->exten, chan->priority, if (!ast_exists_extension(chan, chan->context, chan->exten, chan->priority,
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL))) { S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL))) {
ast_verbose( VERBOSE_PREFIX_3 "Warning: Return Context Invalid, call will return to default|s\n"); ast_verb(3, "Warning: Return Context Invalid, call will return to default|s\n");
}
} }
/* we are using masq_park here to protect * from touching the channel once we park it. If the channel comes out of timeout /* we are using masq_park here to protect * from touching the channel once we park it. If the channel comes out of timeout
@ -13462,7 +13455,7 @@ static int rpt_exec(struct ast_channel *chan, const char *data)
ast_masq_park_call(chan, NULL, timeout, &lot); ast_masq_park_call(chan, NULL, timeout, &lot);
if (option_verbose > 2) ast_verbose( VERBOSE_PREFIX_3 "Call Parking Called, lot: %d, timeout: %d, context: %s\n", lot, timeout, return_context); ast_verb(3, "Call Parking Called, lot: %d, timeout: %d, context: %s\n", lot, timeout, return_context);
snprintf(buffer, sizeof(buffer) - 1, "%d,%s", lot, template + 1); snprintf(buffer, sizeof(buffer) - 1, "%d,%s", lot, template + 1);
@ -13833,8 +13826,7 @@ static int rpt_exec(struct ast_channel *chan, const char *data)
#endif #endif
myrpt->rxchannel->appl = "Apprpt"; myrpt->rxchannel->appl = "Apprpt";
myrpt->rxchannel->data = "(Link Rx)"; myrpt->rxchannel->data = "(Link Rx)";
if (option_verbose > 2) ast_verb(3, "rpt (Rx) initiating call to %s/%s on %s\n",
ast_verbose(VERBOSE_PREFIX_3 "rpt (Rx) initiating call to %s/%s on %s\n",
myrpt->rxchanname,tele,myrpt->rxchannel->name); myrpt->rxchanname,tele,myrpt->rxchannel->name);
rpt_mutex_unlock(&myrpt->lock); rpt_mutex_unlock(&myrpt->lock);
ast_call(myrpt->rxchannel,tele,999); ast_call(myrpt->rxchannel,tele,999);
@ -13876,8 +13868,7 @@ static int rpt_exec(struct ast_channel *chan, const char *data)
#endif #endif
myrpt->txchannel->appl = "Apprpt"; myrpt->txchannel->appl = "Apprpt";
myrpt->txchannel->data = "(Link Tx)"; myrpt->txchannel->data = "(Link Tx)";
if (option_verbose > 2) ast_verb(3, "rpt (Tx) initiating call to %s/%s on %s\n",
ast_verbose(VERBOSE_PREFIX_3 "rpt (Tx) initiating call to %s/%s on %s\n",
myrpt->txchanname,tele,myrpt->txchannel->name); myrpt->txchanname,tele,myrpt->txchannel->name);
rpt_mutex_unlock(&myrpt->lock); rpt_mutex_unlock(&myrpt->lock);
ast_call(myrpt->txchannel,tele,999); ast_call(myrpt->txchannel,tele,999);

@ -103,19 +103,19 @@ static int verbose_exec(struct ast_channel *chan, const char *data)
if (option_verbose >= vsize) { if (option_verbose >= vsize) {
switch (vsize) { switch (vsize) {
case 0: case 0:
ast_verbose("%s\n", args.msg); ast_verb(0, "%s\n", args.msg);
break; break;
case 1: case 1:
ast_verbose(VERBOSE_PREFIX_1 "%s\n", args.msg); ast_verb(1, "%s\n", args.msg);
break; break;
case 2: case 2:
ast_verbose(VERBOSE_PREFIX_2 "%s\n", args.msg); ast_verb(2, "%s\n", args.msg);
break; break;
case 3: case 3:
ast_verbose(VERBOSE_PREFIX_3 "%s\n", args.msg); ast_verb(3, "%s\n", args.msg);
break; break;
default: default:
ast_verbose(VERBOSE_PREFIX_4 "%s\n", args.msg); ast_verb(4, "%s\n", args.msg);
} }
} }

@ -13044,16 +13044,14 @@ static int dialout(struct ast_channel *chan, struct ast_vm_user *vmu, char *num,
} }
} else { } else {
if (option_verbose > 2) ast_verb(3, "Destination number is CID number '%s'\n", num);
ast_verbose( VERBOSE_PREFIX_3 "Destination number is CID number '%s'\n", num);
ast_copy_string(destination, num, sizeof(destination)); ast_copy_string(destination, num, sizeof(destination));
} }
if (!ast_strlen_zero(destination)) { if (!ast_strlen_zero(destination)) {
if (destination[strlen(destination) -1 ] == '*') if (destination[strlen(destination) -1 ] == '*')
return 0; return 0;
if (option_verbose > 2) ast_verb(3, "Placing outgoing call to extension '%s' in context '%s' from context '%s'\n", destination, outgoing_context, chan->context);
ast_verbose( VERBOSE_PREFIX_3 "Placing outgoing call to extension '%s' in context '%s' from context '%s'\n", destination, outgoing_context, chan->context);
ast_copy_string(chan->exten, destination, sizeof(chan->exten)); ast_copy_string(chan->exten, destination, sizeof(chan->exten));
ast_copy_string(chan->context, outgoing_context, sizeof(chan->context)); ast_copy_string(chan->context, outgoing_context, sizeof(chan->context));
chan->priority = 0; chan->priority = 0;
@ -13388,11 +13386,11 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re
if (outsidecaller) { /* only mark vm messages */ if (outsidecaller) { /* only mark vm messages */
/* Mark Urgent */ /* Mark Urgent */
if ((flag && ast_strlen_zero(flag)) || (!ast_strlen_zero(flag) && strcmp(flag, "Urgent"))) { if ((flag && ast_strlen_zero(flag)) || (!ast_strlen_zero(flag) && strcmp(flag, "Urgent"))) {
ast_verbose(VERBOSE_PREFIX_3 "marking message as Urgent\n"); ast_verb(3, "marking message as Urgent\n");
res = ast_play_and_wait(chan, "vm-marked-urgent"); res = ast_play_and_wait(chan, "vm-marked-urgent");
strcpy(flag, "Urgent"); strcpy(flag, "Urgent");
} else if (flag) { } else if (flag) {
ast_verbose(VERBOSE_PREFIX_3 "UNmarking message as Urgent\n"); ast_verb(3, "UNmarking message as Urgent\n");
res = ast_play_and_wait(chan, "vm-urgent-removed"); res = ast_play_and_wait(chan, "vm-urgent-removed");
strcpy(flag, ""); strcpy(flag, "");
} else { } else {

@ -7471,7 +7471,7 @@ static struct ast_frame *sip_read(struct ast_channel *ast)
S_COR(ast->caller.id.number.valid, ast->caller.id.number.str, NULL))) { S_COR(ast->caller.id.number.valid, ast->caller.id.number.str, NULL))) {
ast_channel_lock(ast); ast_channel_lock(ast);
sip_pvt_lock(p); sip_pvt_lock(p);
ast_verbose(VERBOSE_PREFIX_2 "Redirecting '%s' to fax extension due to CNG detection\n", ast->name); ast_verb(2, "Redirecting '%s' to fax extension due to CNG detection\n", ast->name);
pbx_builtin_setvar_helper(ast, "FAXEXTEN", ast->exten); pbx_builtin_setvar_helper(ast, "FAXEXTEN", ast->exten);
if (ast_async_goto(ast, target_context, "fax", 1)) { if (ast_async_goto(ast, target_context, "fax", 1)) {
ast_log(LOG_NOTICE, "Failed to async goto '%s' into fax of '%s'\n", ast->name, target_context); ast_log(LOG_NOTICE, "Failed to async goto '%s' into fax of '%s'\n", ast->name, target_context);
@ -9426,7 +9426,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_channel_unlock(p->owner); ast_channel_unlock(p->owner);
if (ast_exists_extension(p->owner, target_context, "fax", 1, if (ast_exists_extension(p->owner, target_context, "fax", 1,
S_COR(p->owner->caller.id.number.valid, p->owner->caller.id.number.str, NULL))) { S_COR(p->owner->caller.id.number.valid, p->owner->caller.id.number.str, NULL))) {
ast_verbose(VERBOSE_PREFIX_2 "Redirecting '%s' to fax extension due to peer T.38 re-INVITE\n", p->owner->name); ast_verb(2, "Redirecting '%s' to fax extension due to peer T.38 re-INVITE\n", p->owner->name);
pbx_builtin_setvar_helper(p->owner, "FAXEXTEN", p->owner->exten); pbx_builtin_setvar_helper(p->owner, "FAXEXTEN", p->owner->exten);
if (ast_async_goto(p->owner, target_context, "fax", 1)) { if (ast_async_goto(p->owner, target_context, "fax", 1)) {
ast_log(LOG_NOTICE, "Failed to async goto '%s' into fax of '%s'\n", p->owner->name, target_context); ast_log(LOG_NOTICE, "Failed to async goto '%s' into fax of '%s'\n", p->owner->name, target_context);
@ -14260,8 +14260,8 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st
manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Registered\r\nAddress: %s\r\n", peer->name, ast_sockaddr_stringify(&peer->addr)); manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Registered\r\nAddress: %s\r\n", peer->name, ast_sockaddr_stringify(&peer->addr));
/* Is this a new IP address for us? */ /* Is this a new IP address for us? */
if (VERBOSITY_ATLEAST(2) && ast_sockaddr_cmp(&peer->addr, &oldsin)) { if (ast_sockaddr_cmp(&peer->addr, &oldsin)) {
ast_verbose(VERBOSE_PREFIX_3 "Registered SIP '%s' at %s\n", peer->name, ast_verb(3, "Registered SIP '%s' at %s\n", peer->name,
ast_sockaddr_stringify(&peer->addr)); ast_sockaddr_stringify(&peer->addr));
} }
sip_poke_peer(peer, 0); sip_poke_peer(peer, 0);

@ -5929,7 +5929,7 @@ static int handle_offhook_message(struct skinny_req *req, struct skinnysession *
}) })
if (d->hookstate == SKINNY_OFFHOOK) { if (d->hookstate == SKINNY_OFFHOOK) {
ast_verbose(VERBOSE_PREFIX_3 "Got offhook message when device (%s) already offhook\n", d->name); ast_verb(3, "Got offhook message when device (%s) already offhook\n", d->name);
return 0; return 0;
} }

@ -1546,8 +1546,7 @@ static int setformat(struct chan_usbradio_pvt *o, int mode)
/* Check to see if duplex set (FreeBSD Bug) */ /* Check to see if duplex set (FreeBSD Bug) */
res = ioctl(fd, SNDCTL_DSP_GETCAPS, &fmt); res = ioctl(fd, SNDCTL_DSP_GETCAPS, &fmt);
if (res == 0 && (fmt & DSP_CAP_DUPLEX)) { if (res == 0 && (fmt & DSP_CAP_DUPLEX)) {
if (option_verbose > 1) ast_verb(2, "Console is full duplex\n");
ast_verbose(VERBOSE_PREFIX_2 "Console is full duplex\n");
o->duplex = M_FULL; o->duplex = M_FULL;
}; };
break; break;

@ -603,8 +603,7 @@ static int find_transcoders(void)
} }
for (info.tcnum = 0; !(res = ioctl(fd, DAHDI_TC_GETINFO, &info)); info.tcnum++) { for (info.tcnum = 0; !(res = ioctl(fd, DAHDI_TC_GETINFO, &info)); info.tcnum++) {
if (option_verbose > 1) ast_verb(2, "Found transcoder '%s'.\n", info.name);
ast_verbose(VERBOSE_PREFIX_2 "Found transcoder '%s'.\n", info.name);
/* Complex codecs need to support signed linear. If the /* Complex codecs need to support signed linear. If the
* hardware transcoder does not natively support signed linear * hardware transcoder does not natively support signed linear
@ -628,8 +627,9 @@ static int find_transcoders(void)
close(fd); close(fd);
if (!info.tcnum && (option_verbose > 1)) if (!info.tcnum) {
ast_verbose(VERBOSE_PREFIX_2 "No hardware transcoders found.\n"); ast_verb(2, "No hardware transcoders found.\n");
}
for (x = 0; x < 32; x++) { for (x = 0; x < 32; x++) {
for (y = 0; y < 32; y++) { for (y = 0; y < 32; y++) {

@ -73,7 +73,7 @@
; notice ; notice
; warning ; warning
; error ; error
; verbose ; verbose(<level>)
; dtmf ; dtmf
; fax ; fax
; security ; security
@ -93,6 +93,10 @@
; a filename; the "*" level means all levels, and the remaining level names ; a filename; the "*" level means all levels, and the remaining level names
; will be ignored. ; will be ignored.
; ;
; Verbose takes an additional argument, in the form of an integer level.
; Messages with higher levels will be ignored. If verbose is specified at
; all, it will default to 3.
;
; We highly recommend that you DO NOT turn on debug mode if you are simply ; We highly recommend that you DO NOT turn on debug mode if you are simply
; running a production system. Debug mode turns on a LOT of extra messages, ; running a production system. Debug mode turns on a LOT of extra messages,
; most of which you are unlikely to understand without an understanding of ; most of which you are unlikely to understand without an understanding of

@ -68,19 +68,20 @@ int logger_reload(void);
void __attribute__((format(printf, 5, 6))) ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...); void __attribute__((format(printf, 5, 6))) ast_queue_log(const char *queuename, const char *callid, const char *agent, const char *event, const char *fmt, ...);
/*! Send a verbose message (based on verbose level) /*! Send a verbose message (based on verbose level)
\brief This works like ast_log, but prints verbose messages to the console depending on verbosity level set. * \brief This works like ast_log, but prints verbose messages to the console depending on verbosity level set.
ast_verbose(VERBOSE_PREFIX_3 "Whatever %s is happening\n", "nothing"); * ast_verbose(VERBOSE_PREFIX_3 "Whatever %s is happening\n", "nothing");
This will print the message to the console if the verbose level is set to a level >= 3 * This will print the message to the console if the verbose level is set to a level >= 3
Note the abscence of a comma after the VERBOSE_PREFIX_3. This is important. * Note the absence of a comma after the VERBOSE_PREFIX_3. This is important.
VERBOSE_PREFIX_1 through VERBOSE_PREFIX_3 are defined. * VERBOSE_PREFIX_1 through VERBOSE_PREFIX_4 are defined.
* \version 11 added level parameter
*/ */
void __attribute__((format(printf, 4, 5))) __ast_verbose(const char *file, int line, const char *func, const char *fmt, ...); void __attribute__((format(printf, 5, 6))) __ast_verbose(const char *file, int line, const char *func, int level, const char *fmt, ...);
#define ast_verbose(...) __ast_verbose(__FILE__, __LINE__, __PRETTY_FUNCTION__, __VA_ARGS__) #define ast_verbose(...) __ast_verbose(__FILE__, __LINE__, __PRETTY_FUNCTION__, -1, __VA_ARGS__)
void __attribute__((format(printf, 4, 0))) __ast_verbose_ap(const char *file, int line, const char *func, const char *fmt, va_list ap); void __attribute__((format(printf, 5, 0))) __ast_verbose_ap(const char *file, int line, const char *func, int level, const char *fmt, va_list ap);
#define ast_verbose_ap(fmt, ap) __ast_verbose_ap(__FILE__, __LINE__, __PRETTY_FUNCTION__, fmt, ap) #define ast_verbose_ap(fmt, ap) __ast_verbose_ap(__FILE__, __LINE__, __PRETTY_FUNCTION__, -1, fmt, ap)
void __attribute__((format(printf, 2, 3))) ast_child_verbose(int level, const char *fmt, ...); void __attribute__((format(printf, 2, 3))) ast_child_verbose(int level, const char *fmt, ...);
@ -240,20 +241,7 @@ void ast_logger_unregister_level(const char *name);
#define VERBOSITY_ATLEAST(level) (option_verbose >= (level) || (ast_opt_verb_module && ast_verbose_get_by_module(AST_MODULE) >= (level))) #define VERBOSITY_ATLEAST(level) (option_verbose >= (level) || (ast_opt_verb_module && ast_verbose_get_by_module(AST_MODULE) >= (level)))
#define ast_verb(level, ...) do { \ #define ast_verb(level, ...) __ast_verbose(__FILE__, __LINE__, __PRETTY_FUNCTION__, level, __VA_ARGS__)
if (VERBOSITY_ATLEAST((level)) ) { \
if (level >= 4) \
ast_verbose(VERBOSE_PREFIX_4 __VA_ARGS__); \
else if (level == 3) \
ast_verbose(VERBOSE_PREFIX_3 __VA_ARGS__); \
else if (level == 2) \
ast_verbose(VERBOSE_PREFIX_2 __VA_ARGS__); \
else if (level == 1) \
ast_verbose(VERBOSE_PREFIX_1 __VA_ARGS__); \
else \
ast_verbose(__VA_ARGS__); \
} \
} while (0)
#ifndef _LOGGER_BACKTRACE_H #ifndef _LOGGER_BACKTRACE_H
#define _LOGGER_BACKTRACE_H #define _LOGGER_BACKTRACE_H

@ -1749,11 +1749,6 @@ static const char *fix_header(char *outbuf, int maxout, const char *s, char *cmp
{ {
const char *c; const char *c;
/* Check for verboser preamble */
if (*s == 127) {
s++;
}
if (!strncmp(s, cmp, strlen(cmp))) { if (!strncmp(s, cmp, strlen(cmp))) {
c = s + strlen(cmp); c = s + strlen(cmp);
term_color(outbuf, cmp, COLOR_GRAY, 0, maxout); term_color(outbuf, cmp, COLOR_GRAY, 0, maxout);
@ -1762,10 +1757,25 @@ static const char *fix_header(char *outbuf, int maxout, const char *s, char *cmp
return NULL; return NULL;
} }
/* These gymnastics are due to platforms which designate char as unsigned by
* default. Level is the negative character -- offset by 1, because \0 is the
* EOS delimiter. */
#define VERBOSE_MAGIC2LEVEL(x) (((char) -*(signed char *) (x)) - 1)
#define VERBOSE_HASMAGIC(x) (*(signed char *) (x) < 0)
static void console_verboser(const char *s) static void console_verboser(const char *s)
{ {
char tmp[80]; char tmp[80];
const char *c = NULL; const char *c = NULL;
char level = 0;
if (VERBOSE_HASMAGIC(s)) {
level = VERBOSE_MAGIC2LEVEL(s);
s++;
if (level > option_verbose) {
return;
}
}
if ((c = fix_header(tmp, sizeof(tmp), s, VERBOSE_PREFIX_4)) || if ((c = fix_header(tmp, sizeof(tmp), s, VERBOSE_PREFIX_4)) ||
(c = fix_header(tmp, sizeof(tmp), s, VERBOSE_PREFIX_3)) || (c = fix_header(tmp, sizeof(tmp), s, VERBOSE_PREFIX_3)) ||
@ -1774,17 +1784,15 @@ static void console_verboser(const char *s)
fputs(tmp, stdout); fputs(tmp, stdout);
fputs(c, stdout); fputs(c, stdout);
} else { } else {
if (*s == 127) {
s++;
}
fputs(s, stdout); fputs(s, stdout);
} }
fflush(stdout); fflush(stdout);
/* Wake up a poll()ing console */ /* Wake up a poll()ing console */
if (ast_opt_console && consolethread != AST_PTHREADT_NULL) if (ast_opt_console && consolethread != AST_PTHREADT_NULL) {
pthread_kill(consolethread, SIGURG); pthread_kill(consolethread, SIGURG);
}
} }
static int ast_all_zeros(char *s) static int ast_all_zeros(char *s)
@ -1829,8 +1837,26 @@ static int remoteconsolehandler(char *s)
else else
ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh"); ast_safe_system(getenv("SHELL") ? getenv("SHELL") : "/bin/sh");
ret = 1; ret = 1;
} else if (strncasecmp(s, "remote set verbose ", 19) == 0) {
if (strncasecmp(s + 19, "atleast ", 8) == 0) {
int tmp;
if (sscanf(s + 27, "%d", &tmp) != 1) {
fprintf(stderr, "Usage: remote set verbose [atleast] <level>\n");
} else {
if (tmp > option_verbose) {
option_verbose = tmp;
}
fprintf(stdout, "Set remote console verbosity to %d\n", option_verbose);
} }
if ((strncasecmp(s, "quit", 4) == 0 || strncasecmp(s, "exit", 4) == 0) && } else {
if (sscanf(s + 19, "%d", &option_verbose) != 1) {
fprintf(stderr, "Usage: remote set verbose [atleast] <level>\n");
} else {
fprintf(stdout, "Set remote console verbosity to %d\n", option_verbose);
}
}
ret = 1;
} else if ((strncasecmp(s, "quit", 4) == 0 || strncasecmp(s, "exit", 4) == 0) &&
(s[4] == '\0' || isspace(s[4]))) { (s[4] == '\0' || isspace(s[4]))) {
quit_handler(0, 0, 0, 0); quit_handler(0, 0, 0, 0);
ret = 1; ret = 1;
@ -2133,6 +2159,23 @@ static struct ast_cli_entry cli_asterisk[] = {
#endif /* ! LOW_MEMORY */ #endif /* ! LOW_MEMORY */
}; };
struct el_read_char_state_struct {
unsigned int line_full:1;
unsigned int prev_line_full:1;
char prev_line_verbosity;
};
static int el_read_char_state_init(void *ptr)
{
struct el_read_char_state_struct *state = ptr;
state->line_full = 1;
state->prev_line_full = 1;
state->prev_line_verbosity = 0;
return 0;
}
AST_THREADSTORAGE_CUSTOM(el_read_char_state, el_read_char_state_init, ast_free_ptr);
static int ast_el_read_char(EditLine *editline, char *cp) static int ast_el_read_char(EditLine *editline, char *cp)
{ {
int num_read = 0; int num_read = 0;
@ -2142,6 +2185,7 @@ static int ast_el_read_char(EditLine *editline, char *cp)
int max; int max;
#define EL_BUF_SIZE 512 #define EL_BUF_SIZE 512
char buf[EL_BUF_SIZE]; char buf[EL_BUF_SIZE];
struct el_read_char_state_struct *state = ast_threadstorage_get(&el_read_char_state, sizeof(*state));
for (;;) { for (;;) {
max = 1; max = 1;
@ -2166,11 +2210,13 @@ static int ast_el_read_char(EditLine *editline, char *cp)
num_read = read(STDIN_FILENO, cp, 1); num_read = read(STDIN_FILENO, cp, 1);
if (num_read < 1) { if (num_read < 1) {
break; break;
} else } else {
return (num_read); return (num_read);
} }
}
if (fds[0].revents) { if (fds[0].revents) {
char *tmp; char level = 0;
char *curline = buf, *nextline;
res = read(ast_consock, buf, sizeof(buf) - 1); res = read(ast_consock, buf, sizeof(buf) - 1);
/* if the remote side disappears exit */ /* if the remote side disappears exit */
if (res < 1) { if (res < 1) {
@ -2203,22 +2249,35 @@ static int ast_el_read_char(EditLine *editline, char *cp)
buf[res] = '\0'; buf[res] = '\0';
/* Strip preamble from asynchronous events, too */
for (tmp = buf; *tmp; tmp++) {
if (*tmp == 127) {
memmove(tmp, tmp + 1, strlen(tmp));
tmp--;
res--;
}
}
/* Write over the CLI prompt */ /* Write over the CLI prompt */
if (!ast_opt_exec && !lastpos) { if (!ast_opt_exec && !lastpos) {
if (write(STDOUT_FILENO, "\r", 5) < 0) { if (write(STDOUT_FILENO, "\r", 5) < 0) {
} }
} }
if (write(STDOUT_FILENO, buf, res) < 0) {
do {
state->prev_line_full = state->line_full;
if ((nextline = strchr(curline, '\n'))) {
state->line_full = 1;
nextline++;
} else {
state->line_full = 0;
nextline = strchr(curline, '\0');
}
if (state->prev_line_full && VERBOSE_HASMAGIC(curline)) {
level = VERBOSE_MAGIC2LEVEL(curline);
curline++;
}
if ((!state->prev_line_full && state->prev_line_verbosity <= option_verbose) || (state->prev_line_full && level <= option_verbose)) {
if (write(STDOUT_FILENO, curline, nextline - curline) < 0) {
}
} }
state->prev_line_verbosity = level;
curline = nextline;
} while (!ast_strlen_zero(curline));
if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (buf[res-2] == '\n'))) { if ((res < EL_BUF_SIZE - 1) && ((buf[res-1] == '\n') || (buf[res-2] == '\n'))) {
*cp = CC_REFRESH; *cp = CC_REFRESH;
return(1); return(1);
@ -2729,22 +2788,20 @@ static void ast_remotecontrol(char *data)
else else
pid = -1; pid = -1;
if (!data) { if (!data) {
char tmp[80]; if (!ast_opt_mute) {
snprintf(tmp, sizeof(tmp), "core set verbose atleast %d", option_verbose);
fdsend(ast_consock, tmp);
snprintf(tmp, sizeof(tmp), "core set debug atleast %d", option_debug);
fdsend(ast_consock, tmp);
if (!ast_opt_mute)
fdsend(ast_consock, "logger mute silent"); fdsend(ast_consock, "logger mute silent");
else } else {
printf("log and verbose output currently muted ('logger mute' to unmute)\n"); printf("log and verbose output currently muted ('logger mute' to unmute)\n");
} }
}
if (ast_opt_exec && data) { /* hack to print output then exit if asterisk -rx is used */ if (ast_opt_exec && data) { /* hack to print output then exit if asterisk -rx is used */
int linefull = 1, prev_linefull = 1, prev_line_verbose = 0;
struct pollfd fds; struct pollfd fds;
fds.fd = ast_consock; fds.fd = ast_consock;
fds.events = POLLIN; fds.events = POLLIN;
fds.revents = 0; fds.revents = 0;
while (ast_poll(&fds, 1, 60000) > 0) { while (ast_poll(&fds, 1, 60000) > 0) {
char buffer[512] = "", *curline = buffer, *nextline; char buffer[512] = "", *curline = buffer, *nextline;
int not_written = 1; int not_written = 1;
@ -2758,18 +2815,34 @@ static void ast_remotecontrol(char *data)
} }
do { do {
prev_linefull = linefull;
if ((nextline = strchr(curline, '\n'))) { if ((nextline = strchr(curline, '\n'))) {
linefull = 1;
nextline++; nextline++;
} else { } else {
linefull = 0;
nextline = strchr(curline, '\0'); nextline = strchr(curline, '\0');
} }
/* Skip verbose lines */ /* Skip verbose lines */
if (*curline != 127) { /* Prev line full? | Line is verbose | Last line verbose? | Print
* TRUE | TRUE* | TRUE | FALSE
* TRUE | TRUE* | FALSE | FALSE
* TRUE | FALSE* | TRUE | TRUE
* TRUE | FALSE* | FALSE | TRUE
* FALSE | TRUE | TRUE* | FALSE
* FALSE | TRUE | FALSE* | TRUE
* FALSE | FALSE | TRUE* | FALSE
* FALSE | FALSE | FALSE* | TRUE
*/
if ((!prev_linefull && !prev_line_verbose) || (prev_linefull && *curline > 0)) {
prev_line_verbose = 0;
not_written = 0; not_written = 0;
if (write(STDOUT_FILENO, curline, nextline - curline) < 0) { if (write(STDOUT_FILENO, curline, nextline - curline) < 0) {
ast_log(LOG_WARNING, "write() failed: %s\n", strerror(errno)); ast_log(LOG_WARNING, "write() failed: %s\n", strerror(errno));
} }
} else {
prev_line_verbose = 1;
} }
curline = nextline; curline = nextline;
} while (!ast_strlen_zero(curline)); } while (!ast_strlen_zero(curline));
@ -2808,14 +2881,6 @@ static void ast_remotecontrol(char *data)
if (ebuf[strlen(ebuf)-1] == '\n') if (ebuf[strlen(ebuf)-1] == '\n')
ebuf[strlen(ebuf)-1] = '\0'; ebuf[strlen(ebuf)-1] = '\0';
if (!remoteconsolehandler(ebuf)) { if (!remoteconsolehandler(ebuf)) {
/* Strip preamble from output */
char *temp;
for (temp = ebuf; *temp; temp++) {
if (*temp == 127) {
memmove(temp, temp + 1, strlen(temp));
temp--;
}
}
res = write(ast_consock, ebuf, strlen(ebuf) + 1); res = write(ast_consock, ebuf, strlen(ebuf) + 1);
if (res < 1) { if (res < 1) {
ast_log(LOG_WARNING, "Unable to write: %s\n", strerror(errno)); ast_log(LOG_WARNING, "Unable to write: %s\n", strerror(errno));

@ -87,9 +87,7 @@ int __ast_bridge_technology_register(struct ast_bridge_technology *technology, s
AST_RWLIST_UNLOCK(&bridge_technologies); AST_RWLIST_UNLOCK(&bridge_technologies);
if (option_verbose > 1) { ast_verb(2, "Registered bridge technology %s\n", technology->name);
ast_verbose(VERBOSE_PREFIX_2 "Registered bridge technology %s\n", technology->name);
}
return 0; return 0;
} }
@ -104,9 +102,7 @@ int ast_bridge_technology_unregister(struct ast_bridge_technology *technology)
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&bridge_technologies, current, entry) { AST_RWLIST_TRAVERSE_SAFE_BEGIN(&bridge_technologies, current, entry) {
if (current == technology) { if (current == technology) {
AST_RWLIST_REMOVE_CURRENT(entry); AST_RWLIST_REMOVE_CURRENT(entry);
if (option_verbose > 1) { ast_verb(2, "Unregistered bridge technology %s\n", technology->name);
ast_verbose(VERBOSE_PREFIX_2 "Unregistered bridge technology %s\n", technology->name);
}
break; break;
} }
} }

@ -382,6 +382,20 @@ static char *complete_number(const char *partial, unsigned int min, unsigned int
return NULL; return NULL;
} }
static char *handle_localverbose(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
switch (cmd) {
case CLI_INIT:
e->command = "remote set verbose";
e->usage = "Usage: remote set verbose <level>\n";
return NULL;
case CLI_GENERATE:
return NULL;
}
ast_cli(a->fd, "This is the main console. Use 'core set verbose' instead.\n");
return CLI_FAILURE;
}
static char *handle_verbose(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) static char *handle_verbose(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{ {
int oldval; int oldval;
@ -1668,6 +1682,8 @@ static struct ast_cli_entry cli_cli[] = {
AST_CLI_DEFINE(handle_showchan, "Display information on a specific channel"), AST_CLI_DEFINE(handle_showchan, "Display information on a specific channel"),
AST_CLI_DEFINE(handle_localverbose, "Set level of remote console verbosity"),
AST_CLI_DEFINE(handle_core_set_debug_channel, "Enable/disable debugging on a channel"), AST_CLI_DEFINE(handle_core_set_debug_channel, "Enable/disable debugging on a channel"),
AST_CLI_DEFINE(handle_verbose, "Set level of debug/verbose chattiness"), AST_CLI_DEFINE(handle_verbose, "Set level of debug/verbose chattiness"),

@ -432,8 +432,7 @@ static void handle_frame(struct ast_dial *dial, struct ast_dial_channel *channel
ast_indicate(chan, AST_CONTROL_VIDUPDATE); ast_indicate(chan, AST_CONTROL_VIDUPDATE);
break; break;
case AST_CONTROL_SRCUPDATE: case AST_CONTROL_SRCUPDATE:
if (option_verbose > 2) ast_verb(3, "%s requested a source update, passing it to %s\n", channel->owner->name, chan->name);
ast_verbose (VERBOSE_PREFIX_3 "%s requested a source update, passing it to %s\n", channel->owner->name, chan->name);
ast_indicate(chan, AST_CONTROL_SRCUPDATE); ast_indicate(chan, AST_CONTROL_SRCUPDATE);
break; break;
case AST_CONTROL_CONNECTED_LINE: case AST_CONTROL_CONNECTED_LINE:

@ -101,6 +101,8 @@ struct logchannel {
int disabled; int disabled;
/*! syslog facility */ /*! syslog facility */
int facility; int facility;
/*! Verbosity level */
int verbosity;
/*! Type of log channel */ /*! Type of log channel */
enum logtypes type; enum logtypes type;
/*! logfile logging file pointer */ /*! logfile logging file pointer */
@ -209,19 +211,24 @@ AST_THREADSTORAGE(log_buf);
static void logger_queue_init(void); static void logger_queue_init(void);
static unsigned int make_components(const char *s, int lineno) static unsigned int make_components(const char *s, int lineno, int *verbosity)
{ {
char *w; char *w;
unsigned int res = 0; unsigned int res = 0;
char *stringp = ast_strdupa(s); char *stringp = ast_strdupa(s);
unsigned int x; unsigned int x;
*verbosity = 3;
while ((w = strsep(&stringp, ","))) { while ((w = strsep(&stringp, ","))) {
w = ast_skip_blanks(w); w = ast_skip_blanks(w);
if (!strcmp(w, "*")) { if (!strcmp(w, "*")) {
res = 0xFFFFFFFF; res = 0xFFFFFFFF;
break; break;
} else if (!strncasecmp(w, "verbose(", 8) && sscanf(w + 8, "%d)", verbosity) == 1) {
res |= (1 << __LOG_VERBOSE);
break;
} else for (x = 0; x < ARRAY_LEN(levels); x++) { } else for (x = 0; x < ARRAY_LEN(levels); x++) {
if (levels[x] && !strcasecmp(w, levels[x])) { if (levels[x] && !strcasecmp(w, levels[x])) {
res |= (1 << x); res |= (1 << x);
@ -300,7 +307,7 @@ static struct logchannel *make_logchannel(const char *channel, const char *compo
} }
chan->type = LOGTYPE_FILE; chan->type = LOGTYPE_FILE;
} }
chan->logmask = make_components(chan->components, lineno); chan->logmask = make_components(chan->components, lineno, &chan->verbosity);
return chan; return chan;
} }
@ -434,11 +441,6 @@ void ast_child_verbose(int level, const char *fmt, ...)
va_list ap, aq; va_list ap, aq;
int size; int size;
/* Don't bother, if the level isn't that high */
if (option_verbose < level) {
return;
}
va_start(ap, fmt); va_start(ap, fmt);
va_copy(aq, ap); va_copy(aq, ap);
if ((size = vsnprintf(msg, 0, fmt, ap)) < 0) { if ((size = vsnprintf(msg, 0, fmt, ap)) < 0) {
@ -968,15 +970,23 @@ static void ast_log_vsyslog(struct logmsg *msg)
syslog(syslog_level, "%s", buf); syslog(syslog_level, "%s", buf);
} }
/* These gymnastics are due to platforms which designate char as unsigned by
* default. Level is the negative character -- offset by 1, because \0 is the
* EOS delimiter. */
#define VERBOSE_MAGIC2LEVEL(x) (((char) -*(signed char *) (x)) - 1)
#define VERBOSE_HASMAGIC(x) (*(signed char *) (x) < 0)
/*! \brief Print a normal log message to the channels */ /*! \brief Print a normal log message to the channels */
static void logger_print_normal(struct logmsg *logmsg) static void logger_print_normal(struct logmsg *logmsg)
{ {
struct logchannel *chan = NULL; struct logchannel *chan = NULL;
char buf[BUFSIZ]; char buf[BUFSIZ];
struct verb *v = NULL; struct verb *v = NULL;
int level = 0;
if (logmsg->level == __LOG_VERBOSE) { if (logmsg->level == __LOG_VERBOSE) {
char *tmpmsg = ast_strdupa(logmsg->message + 1); char *tmpmsg = ast_strdupa(logmsg->message + 1);
level = VERBOSE_MAGIC2LEVEL(logmsg->message);
/* Iterate through the list of verbosers and pass them the log message string */ /* Iterate through the list of verbosers and pass them the log message string */
AST_RWLIST_RDLOCK(&verbosers); AST_RWLIST_RDLOCK(&verbosers);
AST_RWLIST_TRAVERSE(&verbosers, v, list) AST_RWLIST_TRAVERSE(&verbosers, v, list)
@ -990,8 +1000,13 @@ static void logger_print_normal(struct logmsg *logmsg)
if (!AST_RWLIST_EMPTY(&logchannels)) { if (!AST_RWLIST_EMPTY(&logchannels)) {
AST_RWLIST_TRAVERSE(&logchannels, chan, list) { AST_RWLIST_TRAVERSE(&logchannels, chan, list) {
/* If the channel is disabled, then move on to the next one */ /* If the channel is disabled, then move on to the next one */
if (chan->disabled) if (chan->disabled) {
continue;
}
if (logmsg->level == __LOG_VERBOSE && level > chan->verbosity) {
continue; continue;
}
/* Check syslog channels */ /* Check syslog channels */
if (chan->type == LOGTYPE_SYSLOG && (chan->logmask & (1 << logmsg->level))) { if (chan->type == LOGTYPE_SYSLOG && (chan->logmask & (1 << logmsg->level))) {
ast_log_vsyslog(logmsg); ast_log_vsyslog(logmsg);
@ -1220,15 +1235,6 @@ void ast_log(int level, const char *file, int line, const char *function, const
return; return;
} }
/* don't display LOG_DEBUG messages unless option_verbose _or_ option_debug
are non-zero; LOG_DEBUG messages can still be displayed if option_debug
is zero, if option_verbose is non-zero (this allows for 'level zero'
LOG_DEBUG messages to be displayed, if the logmask on any channel
allows it)
*/
if (!option_verbose && !option_debug && (level == __LOG_DEBUG))
return;
/* Ignore anything that never gets logged anywhere */ /* Ignore anything that never gets logged anywhere */
if (level != __LOG_VERBOSE && !(global_logmask & (1 << level))) if (level != __LOG_VERBOSE && !(global_logmask & (1 << level)))
return; return;
@ -1492,13 +1498,31 @@ void ast_backtrace(void)
#endif /* defined(HAVE_BKTR) */ #endif /* defined(HAVE_BKTR) */
} }
void __ast_verbose_ap(const char *file, int line, const char *func, const char *fmt, va_list ap) void __ast_verbose_ap(const char *file, int line, const char *func, int level, const char *fmt, va_list ap)
{ {
struct ast_str *buf = NULL; struct ast_str *buf = NULL;
int res = 0; int res = 0;
const char *prefix = level >= 4 ? VERBOSE_PREFIX_4 : level == 3 ? VERBOSE_PREFIX_3 : level == 2 ? VERBOSE_PREFIX_2 : level == 1 ? VERBOSE_PREFIX_1 : "";
signed char magic = level > 127 ? -128 : -level - 1; /* 0 => -1, 1 => -2, etc. Can't pass NUL, as it is EOS-delimiter */
/* For compatibility with modules still calling ast_verbose() directly instead of using ast_verb() */
if (level < 0) {
if (!strncmp(fmt, VERBOSE_PREFIX_4, strlen(VERBOSE_PREFIX_4))) {
magic = -5;
} else if (!strncmp(fmt, VERBOSE_PREFIX_3, strlen(VERBOSE_PREFIX_3))) {
magic = -4;
} else if (!strncmp(fmt, VERBOSE_PREFIX_2, strlen(VERBOSE_PREFIX_2))) {
magic = -3;
} else if (!strncmp(fmt, VERBOSE_PREFIX_1, strlen(VERBOSE_PREFIX_1))) {
magic = -2;
} else {
magic = -1;
}
}
if (!(buf = ast_str_thread_get(&verbose_buf, VERBOSE_BUF_INIT_SIZE))) if (!(buf = ast_str_thread_get(&verbose_buf, VERBOSE_BUF_INIT_SIZE))) {
return; return;
}
if (ast_opt_timestamp) { if (ast_opt_timestamp) {
struct timeval now; struct timeval now;
@ -1509,12 +1533,12 @@ void __ast_verbose_ap(const char *file, int line, const char *func, const char *
now = ast_tvnow(); now = ast_tvnow();
ast_localtime(&now, &tm, NULL); ast_localtime(&now, &tm, NULL);
ast_strftime(date, sizeof(date), dateformat, &tm); ast_strftime(date, sizeof(date), dateformat, &tm);
datefmt = alloca(strlen(date) + 3 + strlen(fmt) + 1); datefmt = alloca(strlen(date) + 3 + strlen(prefix) + strlen(fmt) + 1);
sprintf(datefmt, "%c[%s] %s", 127, date, fmt); sprintf(datefmt, "%c[%s] %s%s", (char) magic, date, prefix, fmt);
fmt = datefmt; fmt = datefmt;
} else { } else {
char *tmp = alloca(strlen(fmt) + 2); char *tmp = alloca(strlen(prefix) + strlen(fmt) + 2);
sprintf(tmp, "%c%s", 127, fmt); sprintf(tmp, "%c%s%s", (char) magic, prefix, fmt);
fmt = tmp; fmt = tmp;
} }
@ -1522,18 +1546,19 @@ void __ast_verbose_ap(const char *file, int line, const char *func, const char *
res = ast_str_set_va(&buf, 0, fmt, ap); res = ast_str_set_va(&buf, 0, fmt, ap);
/* If the build failed then we can drop this allocated message */ /* If the build failed then we can drop this allocated message */
if (res == AST_DYNSTR_BUILD_FAILED) if (res == AST_DYNSTR_BUILD_FAILED) {
return; return;
}
ast_log(__LOG_VERBOSE, file, line, func, "%s", ast_str_buffer(buf)); ast_log(__LOG_VERBOSE, file, line, func, "%s", ast_str_buffer(buf));
} }
void __ast_verbose(const char *file, int line, const char *func, const char *fmt, ...) void __ast_verbose(const char *file, int line, const char *func, int level, const char *fmt, ...)
{ {
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
__ast_verbose_ap(file, line, func, fmt, ap); __ast_verbose_ap(file, line, func, level, fmt, ap);
va_end(ap); va_end(ap);
} }
@ -1545,7 +1570,7 @@ void ast_verbose(const char *fmt, ...)
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
__ast_verbose_ap("", 0, "", fmt, ap); __ast_verbose_ap("", 0, "", 0, fmt, ap);
va_end(ap); va_end(ap);
} }
@ -1592,7 +1617,7 @@ static void update_logchannels(void)
global_logmask = 0; global_logmask = 0;
AST_RWLIST_TRAVERSE(&logchannels, cur, list) { AST_RWLIST_TRAVERSE(&logchannels, cur, list) {
cur->logmask = make_components(cur->components, cur->lineno); cur->logmask = make_components(cur->components, cur->lineno, &cur->verbosity);
global_logmask |= cur->logmask; global_logmask |= cur->logmask;
} }

@ -1233,7 +1233,7 @@ static int ast_say_number_full_he(struct ast_channel *chan, int num, const char
char fn[SAY_NUM_BUF_SIZE] = ""; char fn[SAY_NUM_BUF_SIZE] = "";
ast_verbose(VERBOSE_PREFIX_3 "ast_say_digits_full: started. num: %d, options=\"%s\"\n", num, options); ast_verb(3, "ast_say_digits_full: started. num: %d, options=\"%s\"\n", num, options);
if (!num) { if (!num) {
return ast_say_digits_full(chan, 0, ints, language, audiofd, ctrlfd); return ast_say_digits_full(chan, 0, ints, language, audiofd, ctrlfd);
@ -1241,7 +1241,7 @@ static int ast_say_number_full_he(struct ast_channel *chan, int num, const char
if (options && !strncasecmp(options, "m", 1)) { if (options && !strncasecmp(options, "m", 1)) {
mf = 1; mf = 1;
} }
ast_verbose(VERBOSE_PREFIX_3 "ast_say_digits_full: num: %d, state=%d, options=\"%s\", mf=%d\n", num, state, options, mf); ast_verb(3, "ast_say_digits_full: num: %d, state=%d, options=\"%s\", mf=%d\n", num, state, options, mf);
/* Do we have work to do? */ /* Do we have work to do? */
while (!res && (num || (state > 0))) { while (!res && (num || (state > 0))) {
@ -1252,7 +1252,7 @@ static int ast_say_number_full_he(struct ast_channel *chan, int num, const char
* state==0 is the normal mode and it means that we continue * state==0 is the normal mode and it means that we continue
* to check if the number num has yet anything left. * to check if the number num has yet anything left.
*/ */
ast_verbose(VERBOSE_PREFIX_3 "ast_say_digits_full: num: %d, state=%d, options=\"%s\", mf=%d, tmpnum=%d\n", num, state, options, mf, tmpnum); ast_verb(3, "ast_say_digits_full: num: %d, state=%d, options=\"%s\", mf=%d, tmpnum=%d\n", num, state, options, mf, tmpnum);
if (state == 1) { if (state == 1) {
state = 0; state = 0;
@ -3200,13 +3200,13 @@ static int ast_say_enumeration_full_he(struct ast_channel *chan, int num, const
int res = 0; int res = 0;
char fn[256] = ""; char fn[256] = "";
int mf = -1; /* +1 = Masculin; -1 = Feminin */ int mf = -1; /* +1 = Masculin; -1 = Feminin */
ast_verbose(VERBOSE_PREFIX_3 "ast_say_digits_full: started. num: %d, options=\"%s\"\n", num, options); ast_verb(3, "ast_say_digits_full: started. num: %d, options=\"%s\"\n", num, options);
if (options && !strncasecmp(options, "m", 1)) { if (options && !strncasecmp(options, "m", 1)) {
mf = -1; mf = -1;
} }
ast_verbose(VERBOSE_PREFIX_3 "ast_say_digits_full: num: %d, options=\"%s\", mf=%d\n", num, options, mf); ast_verb(3, "ast_say_digits_full: num: %d, options=\"%s\", mf=%d\n", num, options, mf);
while (!res && num) { while (!res && num) {
if (num < 0) { if (num < 0) {

@ -211,7 +211,7 @@ static void load_config(int reload)
ast_cli_register(&alias->cli_entry); ast_cli_register(&alias->cli_entry);
ao2_link(cli_aliases, alias); ao2_link(cli_aliases, alias);
ast_verbose(VERBOSE_PREFIX_2 "Aliased CLI command '%s' to '%s'\n", v1->name, v1->value); ast_verb(2, "Aliased CLI command '%s' to '%s'\n", v1->name, v1->value);
ao2_ref(alias, -1); ao2_ref(alias, -1);
} }
} }

@ -3322,7 +3322,7 @@ static struct ast_frame *fax_detect_framehook(struct ast_channel *chan, struct a
if (ast_exists_extension(chan, target_context, "fax", 1, if (ast_exists_extension(chan, target_context, "fax", 1,
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL))) { S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, NULL))) {
ast_channel_lock(chan); ast_channel_lock(chan);
ast_verbose(VERBOSE_PREFIX_2 "Redirecting '%s' to fax extension due to %s detection\n", ast_verb(2, "Redirecting '%s' to fax extension due to %s detection\n",
chan->name, (result == 'f') ? "CNG" : "T38"); chan->name, (result == 'f') ? "CNG" : "T38");
pbx_builtin_setvar_helper(chan, "FAXEXTEN", chan->exten); pbx_builtin_setvar_helper(chan, "FAXEXTEN", chan->exten);
if (ast_async_goto(chan, target_context, "fax", 1)) { if (ast_async_goto(chan, target_context, "fax", 1)) {

@ -2615,9 +2615,7 @@ static void aji_handle_subscribe(struct aji_client *client, ikspak *pak)
ASTOBJ_UNREF(buddy, ast_aji_buddy_destroy); ASTOBJ_UNREF(buddy, ast_aji_buddy_destroy);
} }
default: default:
if (option_verbose > 4) { ast_verb(5, "JABBER: This is a subcription of type %i\n", pak->subtype);
ast_verbose(VERBOSE_PREFIX_3 "JABBER: This is a subcription of type %i\n", pak->subtype);
}
} }
} }

@ -268,9 +268,7 @@ static void moh_files_release(struct ast_channel *chan, void *data)
chan->stream = NULL; chan->stream = NULL;
} }
if (option_verbose > 2) { ast_verb(3, "Stopped music on hold on %s\n", chan->name);
ast_verbose(VERBOSE_PREFIX_3 "Stopped music on hold on %s\n", chan->name);
}
ast_format_clear(&state->mohwfmt); /* make sure to clear this format before restoring the original format. */ ast_format_clear(&state->mohwfmt); /* make sure to clear this format before restoring the original format. */
if (state->origwfmt.id && ast_set_write_format(chan, &state->origwfmt)) { if (state->origwfmt.id && ast_set_write_format(chan, &state->origwfmt)) {
@ -1154,10 +1152,8 @@ static int init_files_class(struct mohclass *class)
} }
if (!res) { if (!res) {
if (option_verbose > 2) { ast_verb(3, "Files not found in %s for moh class:%s\n",
ast_verbose(VERBOSE_PREFIX_3 "Files not found in %s for moh class:%s\n",
class->dir, class->name); class->dir, class->name);
}
return -1; return -1;
} }

Loading…
Cancel
Save