diff --git a/channels/chan_zap.c b/channels/chan_zap.c index 9f445a12713d7a497c20e517438de3e0253651e1..ed26bef2c0469d95cd322f648adc55a2b365793a 100755 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -39,6 +39,7 @@ #include <asterisk/manager.h> #include <asterisk/causes.h> #include <asterisk/term.h> +#include <asterisk/utils.h> #include <sys/signal.h> #include <errno.h> #include <stdlib.h> @@ -3039,7 +3040,7 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast) /* Ignore answer if "confirm answer" is enabled */ p->subs[index].f.frametype = AST_FRAME_NULL; p->subs[index].f.subclass = 0; - } else if (strlen(p->dop.dialstr)) { + } else if (!ast_strlen_zero(p->dop.dialstr)) { /* nick@dccinc.com 4/3/03 - fxo should be able to do deferred dialing */ res = ioctl(p->subs[SUB_REAL].zfd, ZT_DIAL, &p->dop); if (res < 0) { @@ -3293,7 +3294,7 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast) case SIG_SF_FEATDMF: case SIG_SF_FEATB: /* FGD MF *Must* wait for wink */ - if (strlen(p->dop.dialstr)) + if (!ast_strlen_zero(p->dop.dialstr)) res = ioctl(p->subs[SUB_REAL].zfd, ZT_DIAL, &p->dop); else if (res < 0) { ast_log(LOG_WARNING, "Unable to initiate dialing on trunk channel %d\n", p->channel); @@ -3321,7 +3322,7 @@ static struct ast_frame *zt_handle_event(struct ast_channel *ast) case SIG_SF: case SIG_SFWINK: case SIG_SF_FEATD: - if (strlen(p->dop.dialstr)) + if (!ast_strlen_zero(p->dop.dialstr)) res = ioctl(p->subs[SUB_REAL].zfd, ZT_DIAL, &p->dop); else if (res < 0) { ast_log(LOG_WARNING, "Unable to initiate dialing on trunk channel %d\n", p->channel); @@ -3555,7 +3556,7 @@ struct ast_frame *zt_read(struct ast_channel *ast) } if (p->subs[index].needcallerid) { - ast_set_callerid(ast, strlen(p->lastcallerid) ? p->lastcallerid : NULL, 1); + ast_set_callerid(ast, !ast_strlen_zero(p->lastcallerid) ? p->lastcallerid : NULL, 1); p->subs[index].needcallerid = 0; } @@ -4046,7 +4047,7 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int if (i->dsp) { ast_dsp_set_features(i->dsp, features); ast_dsp_digitmode(i->dsp, DSP_DIGITMODE_DTMF | i->dtmfrelax); - if (strlen(progzone)) + if (!ast_strlen_zero(progzone)) ast_dsp_set_call_progress_zone(i->dsp, progzone); if (i->busydetect && CANBUSYDETECT(i)) { ast_dsp_set_busy_count(i->dsp, i->busycount); @@ -4075,13 +4076,13 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int tmp->callgroup = i->callgroup; tmp->pickupgroup = i->pickupgroup; } - if (strlen(i->language)) + if (!ast_strlen_zero(i->language)) strncpy(tmp->language, i->language, sizeof(tmp->language)-1); - if (strlen(i->musicclass)) + if (!ast_strlen_zero(i->musicclass)) strncpy(tmp->musicclass, i->musicclass, sizeof(tmp->musicclass)-1); if (!i->owner) i->owner = tmp; - if (strlen(i->accountcode)) + if (!ast_strlen_zero(i->accountcode)) strncpy(tmp->accountcode, i->accountcode, sizeof(tmp->accountcode)-1); if (i->amaflags) tmp->amaflags = i->amaflags; @@ -4095,13 +4096,13 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int /* If we've been told "no ADSI" then enforce it */ if (!i->adsi) tmp->adsicpe = AST_ADSI_UNAVAILABLE; - if (strlen(i->exten)) + if (!ast_strlen_zero(i->exten)) strncpy(tmp->exten, i->exten, sizeof(tmp->exten)-1); - if (strlen(i->rdnis)) + if (!ast_strlen_zero(i->rdnis)) tmp->rdnis = strdup(i->rdnis); - if (strlen(i->dnid)) + if (!ast_strlen_zero(i->dnid)) tmp->dnid = strdup(i->dnid); - if (strlen(i->callerid)) { + if (!ast_strlen_zero(i->callerid)) { tmp->callerid = strdup(i->callerid); tmp->ani = strdup(i->callerid); } @@ -4348,7 +4349,7 @@ static void *ss_thread(void *data) return NULL; } strncpy(exten, dtmfbuf, sizeof(exten)-1); - if (!strlen(exten)) + if (ast_strlen_zero(exten)) strncpy(exten, "s", sizeof(exten)-1); if (p->sig == SIG_FEATD) { if (exten[0] == '*') { @@ -4359,7 +4360,7 @@ static void *ss_thread(void *data) s1 = strsep(&stringp, "*"); s2 = strsep(&stringp, "*"); if (s2) { - if (strlen(p->callerid)) + if (!ast_strlen_zero(p->callerid)) chan->callerid = strdup(p->callerid); else chan->callerid = strdup(s1); @@ -4380,7 +4381,7 @@ static void *ss_thread(void *data) s1 = strsep(&stringp, "#"); s2 = strsep(&stringp, "#"); if (s2) { - if (strlen(p->callerid)) + if (!ast_strlen_zero(p->callerid)) chan->callerid = strdup(p->callerid); else if (*(s1 + 2)) chan->callerid = strdup(s1 + 2); @@ -4499,7 +4500,7 @@ static void *ss_thread(void *data) } else { res = tone_zone_play_tone(p->subs[index].zfd, -1); strncpy(chan->exten, exten, sizeof(chan->exten)-1); - if (strlen(p->callerid)) { + if (!ast_strlen_zero(p->callerid)) { if (!p->hidecallerid) chan->callerid = strdup(p->callerid); chan->ani = strdup(p->callerid); @@ -4585,7 +4586,7 @@ static void *ss_thread(void *data) timeout = firstdigittimeout; } else if (p->callreturn && !strcmp(exten, "*69")) { res = 0; - if (strlen(p->lastcallerid)) { + if (!ast_strlen_zero(p->lastcallerid)) { res = ast_say_digit_str(chan, p->lastcallerid, "", chan->language); } if (!res) @@ -4631,7 +4632,7 @@ static void *ss_thread(void *data) if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Parking call to '%s'\n", chan->name); break; - } else if (strlen(p->lastcallerid) && !strcmp(exten, "*80")) { + } else if (!ast_strlen_zero(p->lastcallerid) && !strcmp(exten, "*80")) { if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Blacklisting number %s\n", p->lastcallerid); res = ast_db_put("blacklist", p->lastcallerid, "1"); @@ -4647,7 +4648,7 @@ static void *ss_thread(void *data) p->hidecallerid = 0; if (chan->callerid) free(chan->callerid); - if (strlen(p->callerid)) + if (!ast_strlen_zero(p->callerid)) chan->callerid = strdup(p->callerid); res = tone_zone_play_tone(p->subs[index].zfd, ZT_TONE_DIALRECALL); if (res) { @@ -4828,7 +4829,7 @@ static void *ss_thread(void *data) } if (cs) callerid_free(cs); - if (strlen(cid)) { + if (!ast_strlen_zero(cid)) { chan->callerid = strdup(cid); chan->ani = strdup(cid); } @@ -5162,7 +5163,7 @@ static void *do_monitor(void *data) #if 0 printf("Checking channel %d\n", last->channel); #endif - if (!last->cidspill && !last->owner && strlen(last->mailbox) && (thispass - last->onhooktime > 3) && + if (!last->cidspill && !last->owner && !ast_strlen_zero(last->mailbox) && (thispass - last->onhooktime > 3) && (last->sig & __ZT_SIG_FXO)) { #if 0 printf("Channel %d has mailbox %s\n", last->channel, last->mailbox); @@ -5515,12 +5516,12 @@ static struct zt_pvt *mkintf(int channel, int signalling, int radio) free(tmp); return NULL; } - if (strlen(pris[span].idledial) && strcmp(pris[span].idledial, idledial)) { + if (!ast_strlen_zero(pris[span].idledial) && strcmp(pris[span].idledial, idledial)) { ast_log(LOG_ERROR, "Span %d already has idledial '%s'.\n", span + 1, idledial); free(tmp); return NULL; } - if (strlen(pris[span].idleext) && strcmp(pris[span].idleext, idleext)) { + if (!ast_strlen_zero(pris[span].idleext) && strcmp(pris[span].idleext, idleext)) { ast_log(LOG_ERROR, "Span %d already has idleext '%s'.\n", span + 1, idleext); free(tmp); return NULL; @@ -6154,7 +6155,7 @@ static void *pri_dchannel(void *vpri) pthread_t threadid; pthread_attr_t attr; gettimeofday(&lastidle, NULL); - if (strlen(pri->idledial) && strlen(pri->idleext)) { + if (!ast_strlen_zero(pri->idledial) && !ast_strlen_zero(pri->idleext)) { /* Need to do idle dialing, check to be sure though */ cc = strchr(pri->idleext, '@'); if (cc) { @@ -6428,7 +6429,7 @@ static void *pri_dchannel(void *vpri) pri->pvt[chan]->call = e->ring.call; /* Get caller ID */ if (pri->pvt[chan]->use_callerid) { - if (strlen(e->ring.callingname)) { + if (!ast_strlen_zero(e->ring.callingname)) { snprintf(pri->pvt[chan]->callerid, sizeof(pri->pvt[chan]->callerid), "\"%s\" <%s>", e->ring.callingname, e->ring.callingnum); } else strncpy(pri->pvt[chan]->callerid, e->ring.callingnum, sizeof(pri->pvt[chan]->callerid)-1); @@ -6442,13 +6443,13 @@ static void *pri_dchannel(void *vpri) strcpy(pri->pvt[chan]->exten, "s"); } /* Get called number */ - else if (strlen(e->ring.callednum)) { + else if (!ast_strlen_zero(e->ring.callednum)) { strncpy(pri->pvt[chan]->exten, e->ring.callednum, sizeof(pri->pvt[chan]->exten)-1); strncpy(pri->pvt[chan]->dnid, e->ring.callednum, sizeof(pri->pvt[chan]->dnid)); } else strcpy(pri->pvt[chan]->exten, ""); /* No number yet, but received "sending complete"? */ - if (e->ring.complete && (!strlen(e->ring.callednum))) { + if (e->ring.complete && (ast_strlen_zero(e->ring.callednum))) { if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Going to extension s|1 because of Complete received\n"); strcpy(pri->pvt[chan]->exten, "s"); @@ -6485,7 +6486,7 @@ static void *pri_dchannel(void *vpri) if (c && !pthread_create(&threadid, &attr, ss_thread, c)) { if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Accepting overlap call from '%s' to '%s' on channel %d, span %d\n", - e->ring.callingnum, strlen(pri->pvt[chan]->exten) ? pri->pvt[chan]->exten : "<unspecified>", chan, pri->span); + e->ring.callingnum, !ast_strlen_zero(pri->pvt[chan]->exten) ? pri->pvt[chan]->exten : "<unspecified>", chan, pri->span); } else { ast_log(LOG_WARNING, "Unable to start PBX on channel %d, span %d\n", chan, pri->span); if (c) @@ -6547,7 +6548,7 @@ static void *pri_dchannel(void *vpri) if (!chan) { ast_log(LOG_WARNING, "Ringing requested on channel %d not in use on span %d\n", e->ringing.channel, pri->span); chan = 0; - } else if (!strlen(pri->pvt[chan]->dop.dialstr)) { + } else if (ast_strlen_zero(pri->pvt[chan]->dop.dialstr)) { zt_enable_ec(pri->pvt[chan]); pri->pvt[chan]->subs[SUB_REAL].needringing =1; #ifdef PRI_EVENT_PROCEEDING @@ -6615,7 +6616,7 @@ static void *pri_dchannel(void *vpri) ast_log(LOG_WARNING, "Answer requested on channel %d not in use on span %d\n", chan, pri->span); chan = 0; } else { - if (strlen(pri->pvt[chan]->dop.dialstr)) { + if (!ast_strlen_zero(pri->pvt[chan]->dop.dialstr)) { pri->pvt[chan]->dialing = 1; /* Send any "w" waited stuff */ res = ioctl(pri->pvt[chan]->subs[SUB_REAL].zfd, ZT_DIAL, &pri->pvt[chan]->dop); @@ -7347,7 +7348,7 @@ static int action_transfer(struct mansession *s, struct message *m) { struct zt_pvt *p = NULL; char *channel = astman_get_header(m, "ZapChannel"); - if (!strlen(channel)) { + if (ast_strlen_zero(channel)) { astman_send_error(s, m, "No channel specified"); return 0; } @@ -7365,7 +7366,7 @@ static int action_transferhangup(struct mansession *s, struct message *m) { struct zt_pvt *p = NULL; char *channel = astman_get_header(m, "ZapChannel"); - if (!strlen(channel)) { + if (ast_strlen_zero(channel)) { astman_send_error(s, m, "No channel specified"); return 0; } @@ -7385,11 +7386,11 @@ static int action_zapdialoffhook(struct mansession *s, struct message *m) char *channel = astman_get_header(m, "ZapChannel"); char *number = astman_get_header(m, "Number"); int i; - if (!strlen(channel)) { + if (ast_strlen_zero(channel)) { astman_send_error(s, m, "No channel specified"); return 0; } - if (!strlen(number)) { + if (ast_strlen_zero(number)) { astman_send_error(s, m, "No number specified"); return 0; } @@ -7626,7 +7627,7 @@ static int setup_zap(void) } else if (!strcasecmp(v->name, "callprogress")) { callprogress = ast_true(v->value); } else if (!strcasecmp(v->name, "echocancel")) { - if (v->value && strlen(v->value)) { + if (v->value && !ast_strlen_zero(v->value)) { y = atoi(v->value); } else y = 0;