diff --git a/main/channel.c b/main/channel.c index d6c22cd74a..c644dbe42d 100644 --- a/main/channel.c +++ b/main/channel.c @@ -831,22 +831,6 @@ struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_ ast_string_field_build_va(tmp, name, name_fmt, ap1, ap2); va_end(ap1); va_end(ap2); - - /* and now, since the channel structure is built, and has its name, let's call the - * manager event generator with this Newchannel event. This is the proper and correct - * place to make this call, but you sure do have to pass a lot of data into this func - * to do it here! - */ - manager_event(EVENT_FLAG_CALL, "Newchannel", - "Channel: %s\r\n" - "State: %s\r\n" - "CallerIDNum: %s\r\n" - "CallerIDName: %s\r\n" - "Uniqueid: %s\r\n", - tmp->name, ast_state2str(state), - S_OR(cid_num, ""), - S_OR(cid_name, ""), - tmp->uniqueid); } /* Reminder for the future: under what conditions do we NOT want to track cdrs on channels? */ @@ -893,6 +877,25 @@ struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_ AST_LIST_INSERT_HEAD(&channels, tmp, chan_list); AST_LIST_UNLOCK(&channels); + /*\!note + * and now, since the channel structure is built, and has its name, let's + * call the manager event generator with this Newchannel event. This is the + * proper and correct place to make this call, but you sure do have to pass + * a lot of data into this func to do it here! + */ + if (!ast_strlen_zero(name_fmt)) { + manager_event(EVENT_FLAG_CALL, "Newchannel", + "Channel: %s\r\n" + "State: %s\r\n" + "CallerIDNum: %s\r\n" + "CallerIDName: %s\r\n" + "Uniqueid: %s\r\n", + tmp->name, ast_state2str(state), + S_OR(cid_num, ""), + S_OR(cid_name, ""), + tmp->uniqueid); + } + return tmp; }