asterisk-chan-dongle/error.h

79 lines
1.6 KiB
C

/*
Copyright (C) 2020 Max von Buelow <max@m9x.de>
*/
#ifndef ERROR_H_INCLUDED
#define ERROR_H_INCLUDED
#include "export.h" /* EXPORT_DECL EXPORT_DEF */
#include "mutils.h"
enum error {
E_UNKNOWN = 0,
E_DEVICE_DISABLED,
E_DEVICE_NOT_FOUND,
E_DEVICE_DISCONNECTED,
E_INVALID_USSD,
E_INVALID_PHONE_NUMBER,
E_PARSE_UTF8,
E_PARSE_UCS2,
E_ENCODE_GSM7,
E_PACK_GSM7,
E_DECODE_GSM7, /* 10 */
E_SMSDB,
E_QUEUE,
E_BUILD_PDU,
E_PARSE_CMGR_LINE,
E_DEPRECATED_CMGR_TEXT,
E_INVALID_TPDU_LENGTH,
E_MALFORMED_HEXSTR,
E_INVALID_SCA,
E_INVALID_TPDU_TYPE,
E_PARSE_TPDU, /* 20 */
E_INVALID_TIMESTAMP,
E_INVALID_CHARSET,
E_BUILD_SCA,
E_BUILD_PHONE_NUMBER,
E_2BIG
};
INLINE_DECL const char *error2str(int err)
{
static const char * const errors[] = {
"Unknown error", /* 0 */
"Device disabled",
"Device not found",
"Device disconnected",
"Invalid USSD",
"Invalid phone number",
"Cannot parse UTF-8",
"Cannot parse UCS-2",
"Cannot encode GSM7",
"Cannot pack GSM7",
"Cannot decode GSM7", /* 10 */
"SMSDB error",
"Queue error",
"PDU building error",
"Can't parse +CMGR response line",
("Parsing messages in TEXT mode is not supported anymore; "
"This message should never appear. Nevertheless, if this "
"message appears, please report on GitHub."),
"Invalid TPDU length in CMGR PDU status line",
"Malformed hex string",
"Invalid SCA",
"Invalid TPDU type",
"Cannot parse TPDU", /* 20 */
"Invalid timestamp",
"Invalid charset",
"Cannot build SCA",
"Cannot build phone number",
"Input too large"
};
return enum2str(err,
errors,
ITEMS_OF(errors));
}
EXPORT_DECL __thread int chan_dongle_err;
#endif