if (chan && res <= 0) { ast_verbose("\nchan && res <= 0\n\n"); if (!chan->cdr) { chan->cdr = ast_cdr_alloc(); if (chan->cdr) ast_cdr_init(chan->cdr, chan); } if (chan->cdr) { char tmp[256]; snprintf(tmp, 256, "%s/%s", type, (char *)data); ast_cdr_setapp(chan->cdr,"Dial",tmp); ast_cdr_update(chan); ast_cdr_start(chan->cdr); ast_cdr_end(chan->cdr); /* If the cause wasn't handled properly */ if (ast_cdr_disposition(chan->cdr,chan->hangupcause)) ast_cdr_failed(chan->cdr); } else ast_log(LOG_WARNING, "Unable to create Call Detail Record\n"); ast_hangup(chan); chan = NULL; } return chan;