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)