70 #define DLR_UNDEFINED       -1    71 #define DLR_NOTHING         0x00    72 #define DLR_SUCCESS         0x01    74 #define DLR_BUFFERED        0x04    75 #define DLR_SMSC_SUCCESS    0x08    76 #define DLR_SMSC_FAIL       0x10    77 #define DLR_EXPIRED         0x20|DLR_FAIL    78 #define DLR_UNKNOWN         0x40|DLR_FAIL    80 #define DLR_IS_DEFINED(dlr)          (dlr != DLR_UNDEFINED)    81 #define DLR_IS_ENABLED(dlr)          (DLR_IS_DEFINED(dlr) && (dlr & (DLR_SUCCESS | DLR_FAIL | DLR_BUFFERED | DLR_SMSC_SUCCESS | DLR_SMSC_FAIL | DLR_EXPIRED | DLR_UNKNOWN)))    82 #define DLR_IS_ENABLED_DEVICE(dlr)   (DLR_IS_DEFINED(dlr) && (dlr & (DLR_SUCCESS | DLR_FAIL | DLR_BUFFERED | DLR_EXPIRED | DLR_UNKNOWN)))    83 #define DLR_IS_ENABLED_SMSC(dlr)     (DLR_IS_DEFINED(dlr) && (dlr & (DLR_SMSC_SUCCESS | DLR_SMSC_FAIL)))    84 #define DLR_IS_NOT_FINAL(dlr)        (DLR_IS_DEFINED(dlr) && (dlr & (DLR_BUFFERED | DLR_SMSC_SUCCESS)))    85 #define DLR_IS_SUCCESS_OR_FAIL(dlr)  (DLR_IS_DEFINED(dlr) && (dlr & (DLR_SUCCESS | DLR_FAIL | DLR_EXPIRED | DLR_UNKNOWN)))    86 #define DLR_IS_SUCCESS(dlr)          (DLR_IS_DEFINED(dlr) && (dlr & DLR_SUCCESS))    87 #define DLR_IS_FAIL(dlr)             (DLR_IS_DEFINED(dlr) && (dlr & (DLR_FAIL|DLR_EXPIRED|DLR_UNKNOWN)))    88 #define DLR_IS_BUFFERED(dlr)         (DLR_IS_DEFINED(dlr) && (dlr & DLR_BUFFERED))    89 #define DLR_IS_SMSC_SUCCESS(dlr)     (DLR_IS_DEFINED(dlr) && (dlr & DLR_SMSC_SUCCESS))    90 #define DLR_IS_SMSC_FAIL(dlr)        (DLR_IS_DEFINED(dlr) && (dlr & DLR_SMSC_FAIL)) Msg * dlr_find(const Octstr *smsc, const Octstr *ts, const Octstr *dst, int type, int use_dst)
Msg * create_dlr_from_msg(const Octstr *smsc, const Msg *msg, const Octstr *reply, long stat)
void dlr_save(const char *filename)
void dlr_add(const Octstr *smsc, const Octstr *ts, Msg *msg, int use_dst)
char filename[FILENAME_MAX+1]
const char * dlr_type(void)
static XMLRPCDocument * msg
void dlr_load(const char *filename)
static void reply(HTTPClient *c, List *push_headers)