|
|
|
@ -16,8 +16,11 @@
|
|
|
|
|
* at the top of the source tree.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*! \file
|
|
|
|
|
/*!
|
|
|
|
|
* \file
|
|
|
|
|
* \brief Call Detail Record API
|
|
|
|
|
*
|
|
|
|
|
* \author Mark Spencer <markster@digium.com>
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef _ASTERISK_CDR_H
|
|
|
|
@ -25,47 +28,55 @@
|
|
|
|
|
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
|
|
|
|
|
|
/*! \name CDR Flags */
|
|
|
|
|
/*@{ */
|
|
|
|
|
#define AST_CDR_FLAG_KEEP_VARS (1 << 0)
|
|
|
|
|
#define AST_CDR_FLAG_POSTED (1 << 1)
|
|
|
|
|
#define AST_CDR_FLAG_LOCKED (1 << 2)
|
|
|
|
|
#define AST_CDR_FLAG_CHILD (1 << 3)
|
|
|
|
|
#define AST_CDR_FLAG_POST_DISABLED (1 << 4)
|
|
|
|
|
#define AST_CDR_FLAG_BRIDGED (1 << 5)
|
|
|
|
|
#define AST_CDR_FLAG_MAIN (1 << 6)
|
|
|
|
|
#define AST_CDR_FLAG_ENABLE (1 << 7)
|
|
|
|
|
#define AST_CDR_FLAG_ANSLOCKED (1 << 8)
|
|
|
|
|
#define AST_CDR_FLAG_DONT_TOUCH (1 << 9)
|
|
|
|
|
#define AST_CDR_FLAG_POST_ENABLE (1 << 10)
|
|
|
|
|
#define AST_CDR_FLAG_DIALED (1 << 11)
|
|
|
|
|
#define AST_CDR_FLAG_ORIGINATED (1 << 12)
|
|
|
|
|
/*@} */
|
|
|
|
|
|
|
|
|
|
/*! \name CDR Flags - Disposition */
|
|
|
|
|
/*@{ */
|
|
|
|
|
#define AST_CDR_NOANSWER 0
|
|
|
|
|
#define AST_CDR_NULL (1 << 0)
|
|
|
|
|
#define AST_CDR_FAILED (1 << 1)
|
|
|
|
|
#define AST_CDR_BUSY (1 << 2)
|
|
|
|
|
#define AST_CDR_ANSWERED (1 << 3)
|
|
|
|
|
/*@} */
|
|
|
|
|
|
|
|
|
|
/*! \name CDR AMA Flags */
|
|
|
|
|
/*@{ */
|
|
|
|
|
#define AST_CDR_OMIT (1)
|
|
|
|
|
#define AST_CDR_BILLING (2)
|
|
|
|
|
#define AST_CDR_DOCUMENTATION (3)
|
|
|
|
|
/*@} */
|
|
|
|
|
|
|
|
|
|
#define AST_MAX_USER_FIELD 256
|
|
|
|
|
#define AST_MAX_ACCOUNT_CODE 20
|
|
|
|
|
/*!
|
|
|
|
|
* \brief CDR Flags
|
|
|
|
|
*/
|
|
|
|
|
enum {
|
|
|
|
|
AST_CDR_FLAG_KEEP_VARS = (1 << 0),
|
|
|
|
|
AST_CDR_FLAG_POSTED = (1 << 1),
|
|
|
|
|
AST_CDR_FLAG_LOCKED = (1 << 2),
|
|
|
|
|
AST_CDR_FLAG_CHILD = (1 << 3),
|
|
|
|
|
AST_CDR_FLAG_POST_DISABLED = (1 << 4),
|
|
|
|
|
AST_CDR_FLAG_BRIDGED = (1 << 5),
|
|
|
|
|
AST_CDR_FLAG_MAIN = (1 << 6),
|
|
|
|
|
AST_CDR_FLAG_ENABLE = (1 << 7),
|
|
|
|
|
AST_CDR_FLAG_ANSLOCKED = (1 << 8),
|
|
|
|
|
AST_CDR_FLAG_DONT_TOUCH = (1 << 9),
|
|
|
|
|
AST_CDR_FLAG_POST_ENABLE = (1 << 10),
|
|
|
|
|
AST_CDR_FLAG_DIALED = (1 << 11),
|
|
|
|
|
AST_CDR_FLAG_ORIGINATED = (1 << 12),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief CDR Flags - Disposition
|
|
|
|
|
*/
|
|
|
|
|
enum {
|
|
|
|
|
AST_CDR_NOANSWER = 0,
|
|
|
|
|
AST_CDR_NULL = (1 << 0),
|
|
|
|
|
AST_CDR_FAILED = (1 << 1),
|
|
|
|
|
AST_CDR_BUSY = (1 << 2),
|
|
|
|
|
AST_CDR_ANSWERED = (1 << 3),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \brief CDR AMA Flags
|
|
|
|
|
*/
|
|
|
|
|
enum {
|
|
|
|
|
AST_CDR_OMIT = 1,
|
|
|
|
|
AST_CDR_BILLING = 2,
|
|
|
|
|
AST_CDR_DOCUMENTATION = 3,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define AST_MAX_USER_FIELD 256
|
|
|
|
|
#define AST_MAX_ACCOUNT_CODE 20
|
|
|
|
|
|
|
|
|
|
/* Include channel.h after relevant declarations it will need */
|
|
|
|
|
#include "asterisk/channel.h"
|
|
|
|
|
#include "asterisk/utils.h"
|
|
|
|
|
|
|
|
|
|
/*! \brief Responsible for call detail data */
|
|
|
|
|
/*!
|
|
|
|
|
* \brief Responsible for call detail data
|
|
|
|
|
*/
|
|
|
|
|
struct ast_cdr {
|
|
|
|
|
/*! Caller*ID with text */
|
|
|
|
|
char clid[AST_MAX_EXTENSION];
|
|
|
|
|