diff --git a/apps/app_queue.c b/apps/app_queue.c index 1642cf6f196b0f3a6fbdecc09260ad51b21180a9..f6f12f7401e0b705c2895db1c2960cf55506f42f 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -1035,11 +1035,12 @@ static int join_queue(char *queuename, struct queue_ent *qe, enum queue_result * ast_copy_string(qe->context, q->context, sizeof(qe->context)); q->count++; res = 0; + /* XXX missing CalledIDnum ? */ manager_event(EVENT_FLAG_CALL, "Join", "Channel: %s\r\nCallerID: %s\r\nCallerIDName: %s\r\nQueue: %s\r\nPosition: %d\r\nCount: %d\r\nUniqueid: %s\r\n", qe->chan->name, - qe->chan->cid.cid_num ? qe->chan->cid.cid_num : "unknown", - qe->chan->cid.cid_name ? qe->chan->cid.cid_name : "unknown", + S_OR(qe->chan->cid.cid_num, "unknown"), /* XXX somewhere else it is <unknown> */ + S_OR(qe->chan->cid.cid_name, "unknown"), q->name, qe->pos, q->count, qe->chan->uniqueid ); #if 0 ast_log(LOG_NOTICE, "Queue '%s' Join, Channel '%s', Position '%d'\n", q->name, qe->chan->name, qe->pos ); @@ -1433,15 +1434,12 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies tmp->chan->whentohangup = 0; if (tmp->chan->cid.cid_num) free(tmp->chan->cid.cid_num); - tmp->chan->cid.cid_num = NULL; + tmp->chan->cid.cid_num = ast_strdup(qe->chan->cid.cid_num); if (tmp->chan->cid.cid_name) free(tmp->chan->cid.cid_name); - tmp->chan->cid.cid_name = NULL; + tmp->chan->cid.cid_name = ast_strdup(qe->chan->cid.cid_name); if (tmp->chan->cid.cid_ani) free(tmp->chan->cid.cid_ani); - tmp->chan->cid.cid_ani = NULL; - tmp->chan->cid.cid_num = ast_strdup(qe->chan->cid.cid_num); - tmp->chan->cid.cid_name = ast_strdup(qe->chan->cid.cid_name); tmp->chan->cid.cid_ani = ast_strdup(qe->chan->cid.cid_ani); /* Inherit specially named variables from parent channel */ @@ -1472,8 +1470,8 @@ static int ring_entry(struct queue_ent *qe, struct callattempt *tmp, int *busies "Extension: %s\r\n" "Priority: %d\r\n", tmp->interface, qe->chan->name, - tmp->chan->cid.cid_num ? tmp->chan->cid.cid_num : "unknown", - tmp->chan->cid.cid_name ? tmp->chan->cid.cid_name : "unknown", + S_OR(tmp->chan->cid.cid_num, "unknown"), + S_OR(tmp->chan->cid.cid_name, "unknown"), qe->chan->context, qe->chan->exten, qe->chan->priority); } if (option_verbose > 2) @@ -1737,8 +1735,7 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte } if (o->chan->cid.cid_rdnis) free(o->chan->cid.cid_rdnis); - o->chan->cid.cid_rdnis = - ast_strdup(S_OR(in->macroexten, in->exten)); + o->chan->cid.cid_rdnis = ast_strdup(S_OR(in->macroexten, in->exten)); if (ast_call(o->chan, tmpchan, 0)) { ast_log(LOG_NOTICE, "Failed to dial on local channel for call forward to '%s'\n", tmpchan); do_hang(o); @@ -2929,8 +2926,8 @@ static int queue_exec(struct ast_channel *chan, void *data) qe.last_periodic_announce_time = time(NULL); qe.last_periodic_announce_sound = 0; if (!join_queue(args.queuename, &qe, &reason)) { - ast_queue_log(args.queuename, chan->uniqueid, "NONE", "ENTERQUEUE", "%s|%s", args.url ? args.url : "", - chan->cid.cid_num ? chan->cid.cid_num : ""); + ast_queue_log(args.queuename, chan->uniqueid, "NONE", "ENTERQUEUE", "%s|%s", S_OR(args.url, ""), + S_OR(chan->cid.cid_num, "")); check_turns: if (ringing) { ast_indicate(chan, AST_CONTROL_RINGING); @@ -3568,10 +3565,10 @@ static int manager_queues_status( struct mansession *s, struct message *m ) "Wait: %ld\r\n" "%s" "\r\n", - q->name, pos++, qe->chan->name, - qe->chan->cid.cid_num ? qe->chan->cid.cid_num : "unknown", - qe->chan->cid.cid_name ? qe->chan->cid.cid_name : "unknown", - (long)(now - qe->start), idText); + q->name, pos++, qe->chan->name, + S_OR(qe->chan->cid.cid_num, "unknown"), + S_OR(qe->chan->cid.cid_name, "unknown"), + (long)(now - qe->start), idText); } } ast_mutex_unlock(&q->lock);