⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cngpconsts.pas

📁 支持CMPP/SGIP/SMGP/CNGP/SMPP协议的多功能网关模拟器:概述:基于CMPP v3.0 v2.0协议, SGIP v1.2协议...实现了正向订制/退订、反向订制/退订接口。同时提供
💻 PAS
字号:
unit CNGPConsts;

interface

uses
    Windows,
    Messages;

const

    (****************  Socket settings  ***************)
    SECTION_REMOTE: string = 'REMOTE';
    SECTION_LOCAL: string = 'LOCAL';
    SECTION_CONNECT: string = 'CONNECT';
    SECTION_ACTIVE_TEST: string = 'ACTIVE_TEST';
    SECTION_AUTHENTICATION: string = 'AUTHENTICATION';
    SECTION_DATABASE: string = 'DATABASE';
    KEY_HOST: string = 'HOST';
    KEY_PORT: string = 'PORT';
    KEY_TIMEOUT: string = 'TIMEOUT';
    KEY_AUTO_RECONNECT: string = 'AUTO_RECONNECT';
    KEY_AT_INTERVAL: string = 'AT_INTERVAL';
    KEY_AT_TIMEOUT: string = 'AT_TIMEOUT';
    KEY_SP_ID: string = 'SP_ID';
    KEY_SHARED_KEY: string = 'SHARED_KEY';
    KEY_CONNECTION_STRING: string = 'CONNECTION_STRING';
    DEF_PORT: integer = 9890;
    DEF_TIMEOUT: integer = 5000;
    DEF_AUTO_RECONNECT: integer = 120;
    DEF_AT_INTERVAL: integer = 30000;
    DEF_AT_TIMEOUT: integer = 5000;

    (****************  Command IDs  ****************)
    COMMAND_LOGIN: DWord = $00000001;
    COMMAND_LOGIN_RESP: DWord = $80000001;
    COMMAND_SUBMIT: DWord = $00000002;
    COMMAND_SUBMIT_RESP: DWord = $80000002;
    COMMAND_DELIVER: DWord = $00000003;
    COMMAND_DELIVER_RESP: DWord = $80000003;
    COMMAND_ACTIVE_TEST: DWord = $00000004;
    COMMAND_ACTIVE_TEST_RESP: DWord = $80000004;
    COMMAND_EXIT: DWord = $00000006;
    COMMAND_EXIT_RESP: DWord = $80000006;

    (*************  TLV tags  **************)
    TAG_PROTOCOL_ID = $0100;
    TAG_CONGESTION_STATE = $0428;
    TLV_VALUE_LENGTH = 1;

    (**************  Command status values ***************)
    STATUS_SUCCESS: DWord = 0;
    STATUS_SYSTEM_BUSY: DWord = 1;
    STATUS_MAX_CONNECTIONS_EXCEEDED: DWord = 2;
    STATUS_MSG_STRUCT_ERROR: DWord = 10;
    STATUS_COMMAND_ID_ERROR: DWord = 11;
    STATUS_DUPLICATE_SEQUENCE_ID: DWord = 12;
    STATUS_ADDRESS_ERROR: DWord = 20;
    STATUS_AUTHENTICATION_FAILED: DWord = 21;
    STATUS_VERSION_TOO_HIGH: DWord = 22;
    STATUS_ILLEGAL_FEE_USER_TYPE: DWord = 23;
    STATUS_ILLEGAL_SUB_TYPE: DWord = 24;
    STATUS_NODESCOUNT_THRESHOLD_EXCEEDED: DWord = 25;
    STATUS_ILLEGAL_MSG_ID: DWord = 26;
    STATUS_ILLEGAL_MSG_TYPE: DWord = 30;
    STATUS_ILLEGAL_PRIORITY: DWord = 31;
    STATUS_ILLEGAL_FEE_TYPE: DWord = 32;
    STATUS_ILLEGAL_FEE_CODE: DWord = 33;
    STATUS_ILLEGAL_MSG_FORMAT: DWord = 34;
    STATUS_ILLEGAL_TIME_FORMAT: DWord = 35;
    STATUS_ILLEGAL_MSG_LENGTH: DWord = 36;
    STATUS_VALID_TIME_EXCEEDED: DWord = 37;
    STATUS_ILLEGAL_QUERY_TYPE: DWord = 38;
    STATUS_ROUTING_ERROR: DWord = 39;
    STATUS_ACCOUNT_NOT_EXIST: DWord = 40;
    STATUS_NOT_ENOUGH_BALANCE: DWord = 41;
    STATUS_ACCOUNT_UNUSABLE: DWord = 42;
    STATUS_USER_NOT_PRECHARGE: DWord = 43;
    STATUS_VENDER_START: DWord = 128;
    STATUS_VENDER_END: DWord = 255;

    (**************  Login mode  **************)
    LOGIN_SEND = 0;
    LOGIN_RECEIVE = 1;
    LOGIN_SEND_RECEIVE = 2;

    (****************  Message formats  ****************)
    FORMAT_ASCII: Byte = 0;
    FORMAT_RESERVED: Byte = 3;
    FORMAT_BINARY: Byte = 4;
    FORMAT_UCS2: Byte = 8;
    FORMAT_GB2312: Byte = 15;

    (****************  Error messages  ****************)
    ERROR_DELIVERED: string = 'DELIVRD';
    ERROR_EXPIRED: string = 'EXPIRED';
    ERROR_DELETED: string = 'DELETED';
    ERROR_UNDELIVERABLE: string = 'UNDELIV';
    ERROR_ACCEPTED: string = 'ACCEPTD';
    ERROR_UNKNOWN: string = 'UNKNOWN';
    ERROR_REJECTED: string = 'REJECTD';
    ERROR_CAXXXX: string = 'CA:%s';
    ERROR_CBYYYY: string = 'CB:%s';
    ERROR_MAXXXX: string = 'MA:%s';
    ERROR_MBZZZZ: string = 'MB:%s';

    (****************  Error codes  ****************)
    ERROR_ID_XXXX_NOT_CONNECTED: Word = 51;
    ERROR_ID_XXXX_NOT_LOGGEDIN: Word = 52;
    ERROR_ID_XXXX_SEND_FAILED: Word = 53;
    ERROR_ID_XXXX_RESP_TIMEDOUT: Word = 54;
    ERROR_ID_XXXX_VENDER_START: Word = 100;
    ERROR_ID_XXXX_VENDER_END: Word = 499;

    ERROR_ID_YYYY_NOT_PRECHARGE_USER: Word = 1;
    ERROR_ID_YYYY_DATABASE_OPERATION_FAILED: Word = 2;
    ERROR_ID_YYYY_AUTHENTICATION_FAILED: Word = 3;
    ERROR_ID_YYYY_MAX_ERRORS_EXCEEDED: Word = 4;
    ERROR_ID_YYYY_PHS_ACCOUNT_ERROR: Word = 5;
    ERROR_ID_YYYY_SVC_NOT_ACTIVATED: Word = 6;
    ERROR_ID_YYYY_NOT_ENOUGH_BALANCE: Word = 7;
    ERROR_ID_YYYY_MONTH_FEE_MAX_EXCEEDED: Word = 8;
    ERROR_ID_YYYY_MAX_CREDIT_EXCEEDED: Word = 9;
    ERROR_ID_YYYY_SVC_USR_ALREADY_REGISTERED: Word = 10;
    ERROR_ID_YYYY_SVC_USR_NOT_REGISTERED: Word = 11;
    ERROR_ID_YYYY_UNREGISTERED_SMGW: Word = 14;
    ERROR_ID_YYYY_SMGW_LONGIN_DIGEST_ERROR: Word = 15;
    ERROR_ID_YYYY_PARAM_ERROR: Word = 16;
    ERROR_ID_YYYY_SVR_DATA_NOT_TERMINATED: Word = 17;
    ERROR_ID_YYYY_DUPLICATE_CHARGE_MSGID: Word = 18;
    ERROR_ID_YYYY_UNKOWN_ERROR: Word = 20;
    ERROR_ID_YYYY_DATABASE_ERROR: Word = 21;
    ERROR_ID_YYYY_SP_CONNECTION_FAILED: Word = 22;
    ERROR_ID_YYYY_VAR_OVERFLOW: Word = 23;
    ERROR_ID_YYYY_FIELD_TOO_LARGE: Word = 24;
    ERROR_ID_YYYY_NO_SUCH_DATA: Word = 25;
    ERROR_ID_YYYY_DUPLICATE_DATA: Word = 26;
    ERROR_ID_YYYY_UNREGISTERED_SP: Word = 40;
    ERROR_ID_YYYY_SP_ACCOUNT_ABNORMAL: Word = 41;
    ERROR_ID_YYYY_SP_PERMISSION_NOT_GRANTED: Word = 42;
    ERROR_ID_YYYY_SP_ACCOUNT_EXISTS: Word = 43;
    ERROR_ID_YYYY_SP_UNREGISTERED_SVC: Word = 44;
    ERROR_ID_YYYY_SP_SVC_DATA_ABNORMAL: Word = 45;
    ERROR_ID_YYYY_SVC_EXISTS: Word = 46;
    ERROR_ID_YYYY_LICENSE_EXISTS: Word = 55;
    ERROR_ID_YYYY_LICENSE_NOT_EXIST: Word = 56;
    ERROR_ID_YYYY_LICENSE_DATA_ABNORMAL: Word = 57;
    ERROR_ID_YYYY_MONTH_FEE_OVERFLOW: Word = 61;
    ERROR_ID_YYYY_SINGLE_FEE_OVERFLOW: Word = 62;
    ERROR_ID_YYYY_USER_DENIAL: Word = 63;
    ERROR_ID_YYYY_MSG_ID_EXISTS: Word = 64;
    ERROR_ID_YYYY_INVALID_CHARGE_REQUEST: Word = 65;
    ERROR_ID_YYYY_CHARGE_REQUEST_ALREADY_CONFIRMED: Word = 66;
    ERROR_ID_YYYY_CHARGE_TYPE_NOT_DEFINED: Word = 67;
    ERROR_ID_YYYY_MSG_FORMAT_NOT_DEFINED: Word = 68;
    ERROR_ID_YYYY_VENDER_START: Word = 100;
    ERROR_ID_YYYY_VENDER_END: Word = 499;

    ERROR_ID_ZZZZ_VENDER_START_TOP: Word = $0001;
    ERROR_ID_ZZZZ_VENDER_END_TOP: Word = $0002;
    ERROR_ID_ZZZZ_MSG_LEN_ERROR: Word = $0010;
    ERROR_ID_ZZZZ_CMD_LEN_ERROR: Word = $0011;
    ERROR_ID_ZZZZ_INVALID_MESSAGE_ID: Word = $0012;
    ERROR_ID_ZZZZ_CMD_PERMISSION_NOT_GRANTED: Word = $0013;
    ERROR_ID_ZZZZ_INVALID_SYS_ID: Word = $0020;
    ERROR_ID_ZZZZ_INVALID_SHARE_KEY: Word = $0021;
    ERROR_ID_ZZZZ_INVALID_SYS_TYPE: Word = $0022;
    ERROR_ID_ZZZZ_ADDRESS_ERROR: Word = $0040;
    ERROR_ID_ZZZZ_MAX_SUBMIT_EXCEEDED: Word = $0041;
    ERROR_ID_ZZZZ_MAX_DELIVER_EXCEEDED: Word = $0042;
    ERROR_ID_ZZZZ_INVALID_USER: Word = $0043;
    ERROR_ID_ZZZZ_INVALID_DATA_FORMAT: Word = $0044;
    ERROR_ID_ZZZZ_MSG_CREATION_FAILED: Word = $0045;
    ERROR_ID_ZZZZ_INVALID_MSG_ID: Word = $0046;
    ERROR_ID_ZZZZ_DATABASE_FAILED: Word = $0047;
    ERROR_ID_ZZZZ_MSG_CANCEL_FAILED: Word = $0048;
    ERROR_ID_ZZZZ_MSG_STATE_ERROR: Word = $0049;
    ERROR_ID_ZZZZ_MSG_REPLACE_FAILED: Word = $004A;
    ERROR_ID_ZZZZ_MSG_SRC_TERM_REPLACE_ERROR: Word = $004B;
    ERROR_ID_ZZZZ_SRC_TERM_ERROR: Word = $0062;
    ERROR_ID_ZZZZ_DEST_TERM_ERROR: Word = $0065;
    ERROR_ID_ZZZZ_INVALID_AT_TIME: Word = $0066;
    ERROR_ID_ZZZZ_INVALID_VALID_TIME: Word = $0067;
    ERROR_ID_ZZZZ_INVALID_IS_REPORT: Word = $0068;
    ERROR_ID_ZZZZ_INVALID_PRI: Word = $006A;
    ERROR_ID_ZZZZ_INVALID_NEED_REPORT: Word = $006B;
    ERROR_ID_ZZZZ_USER_ALREADY_EXISTS: Word = $0080;
    ERROR_ID_ZZZZ_USER_CREATION_FAILED: Word = $0081;
    ERROR_ID_ZZZZ_USER_ID_ERROR: Word = $0082;
    ERROR_ID_ZZZZ_USER_NOT_EXIST: Word = $0083;
    ERROR_ID_ZZZZ_VENDER_START_BOTTOM: Word = $0090;
    ERROR_ID_ZZZZ_VENDER_END_BOTTOM: Word = $0FFF;

    ERROR_ID_SUCCESS = '000';
    ERROR_ID_USER_UNREACHABLE = '001';
    ERROR_ID_USER_BUSY = '002';
    ERROR_ID_TERM_NO_SUCH_PART_NO = '003';
    ERROR_ID_ILLEGAL_USER = '004';
    ERROR_ID_USER_IN_BLACK_LIST = '005';
    ERROR_ID_SYS_ERR = '006';
    ERROR_ID_USER_MEMORY_FULL = '007';
    ERROR_ID_NOT_TERM = '008';
    ERROR_ID_DATA_ERROR = '009';
    ERROR_ID_DATA_LOSS = '010';

    //todo: Add error message text below
    // Status错误
    STATUS_TEXT_SUCCESS: string = '成功';
    STATUS_TEXT_SYSTEM_BUSY: string = '系统忙';
    STATUS_TEXT_MAX_CONNECTIONS_EXCEEDED: string = '超过最大连接数';
    STATUS_TEXT_MSG_STRUCT_ERROR: string = '消息结构错';
    STATUS_TEXT_COMMAND_ID_ERROR: string = '命令字错';
    STATUS_TEXT_DUPLICATE_SEQUENCE_ID: string = '序列号重复';
    STATUS_TEXT_ADDRESS_ERROR: string = 'IP地址错';
    STATUS_TEXT_AUTHENTICATION_FAILED: string = '认证失败';
    STATUS_TEXT_VERSION_TOO_HIGH: string = '版本太高';
    STATUS_TEXT_ILLEGAL_FEE_USER_TYPE: string = '非法的FeeUserType';
    STATUS_TEXT_ILLEGAL_SUB_TYPE: string = '非法的SubType';
    STATUS_TEXT_NODESCOUNT_THRESHOLD_EXCEEDED: string = '节点数超过阈值';
    STATUS_TEXT_ILLEGAL_MSG_ID: string = '非法的MsgId';
    STATUS_TEXT_ILLEGAL_MSG_TYPE: string = '非法的消息类型';
    STATUS_TEXT_ILLEGAL_PRIORITY: string = '非法的优先级';
    STATUS_TEXT_ILLEGAL_FEE_TYPE: string = '非法的资费类型';
    STATUS_TEXT_ILLEGAL_FEE_CODE: string = '非法的资费代码';
    STATUS_TEXT_ILLEGAL_MSG_FORMAT: string = '非法的短消息格式';
    STATUS_TEXT_ILLEGAL_TIME_FORMAT: string = '非法的时间格式';
    STATUS_TEXT_ILLEGAL_MSG_LENGTH: string = '非法的短消息长度';
    STATUS_TEXT_VALID_TIME_EXCEEDED: string = '有效期已过';
    STATUS_TEXT_ILLEGAL_QUERY_TYPE: string = '非法查询类别';
    STATUS_TEXT_ROUTING_ERROR: string = '路由错误';
    STATUS_TEXT_ACCOUNT_NOT_EXIST: string = '账户不存在';
    STATUS_TEXT_NOT_ENOUGH_BALANCE: string = '余额不足';
    STATUS_TEXT_ACCOUNT_UNUSABLE: string = '账户不可用';
    STATUS_TEXT_USER_NOT_PRECHARGE: string = '非预付费用户';
    STATUS_TEXT_VENDER: string = '厂商定义错误';
    STATUS_TEXT_UNKOWN: string = '未知错误';

function GetStatusText(statusId: DWord): string;

implementation

function GetStatusText(statusId: DWord): string;
begin
    if statusId = STATUS_SUCCESS then
        Result := STATUS_TEXT_SUCCESS
    else if statusId = STATUS_SYSTEM_BUSY then
        Result := STATUS_TEXT_SYSTEM_BUSY
    else if statusId = STATUS_MAX_CONNECTIONS_EXCEEDED then
        Result := STATUS_TEXT_MAX_CONNECTIONS_EXCEEDED
    else if statusId = STATUS_MSG_STRUCT_ERROR then
        Result := STATUS_TEXT_MSG_STRUCT_ERROR
    else if statusId = STATUS_COMMAND_ID_ERROR then
        Result := STATUS_TEXT_COMMAND_ID_ERROR
    else if statusId = STATUS_DUPLICATE_SEQUENCE_ID then
        Result := STATUS_TEXT_DUPLICATE_SEQUENCE_ID
    else if statusId = STATUS_ADDRESS_ERROR then
        Result := STATUS_TEXT_ADDRESS_ERROR
    else if statusId = STATUS_AUTHENTICATION_FAILED then
        Result := STATUS_TEXT_AUTHENTICATION_FAILED
    else if statusId = STATUS_VERSION_TOO_HIGH then
        Result := STATUS_TEXT_VERSION_TOO_HIGH
    else if statusId = STATUS_ILLEGAL_FEE_USER_TYPE then
        Result := STATUS_TEXT_ILLEGAL_FEE_USER_TYPE
    else if statusId = STATUS_ILLEGAL_SUB_TYPE then
        Result := STATUS_TEXT_ILLEGAL_SUB_TYPE
    else if statusId = STATUS_NODESCOUNT_THRESHOLD_EXCEEDED then
        Result := STATUS_TEXT_NODESCOUNT_THRESHOLD_EXCEEDED
    else if statusId = STATUS_ILLEGAL_MSG_ID then
        Result := STATUS_TEXT_ILLEGAL_MSG_ID
    else if statusId = STATUS_ILLEGAL_MSG_TYPE then
        Result := STATUS_TEXT_ILLEGAL_MSG_TYPE
    else if statusId = STATUS_ILLEGAL_PRIORITY then
        Result := STATUS_TEXT_ILLEGAL_PRIORITY
    else if statusId = STATUS_ILLEGAL_FEE_TYPE then
        Result := STATUS_TEXT_ILLEGAL_FEE_TYPE
    else if statusId = STATUS_ILLEGAL_FEE_CODE then
        Result := STATUS_TEXT_ILLEGAL_FEE_CODE
    else if statusId = STATUS_ILLEGAL_MSG_FORMAT then
        Result := STATUS_TEXT_ILLEGAL_MSG_FORMAT
    else if statusId = STATUS_ILLEGAL_TIME_FORMAT then
        Result := STATUS_TEXT_ILLEGAL_TIME_FORMAT
    else if statusId = STATUS_ILLEGAL_MSG_LENGTH then
        Result := STATUS_TEXT_ILLEGAL_MSG_LENGTH
    else if statusId = STATUS_VALID_TIME_EXCEEDED then
        Result := STATUS_TEXT_VALID_TIME_EXCEEDED
    else if statusId = STATUS_ILLEGAL_QUERY_TYPE then
        Result := STATUS_TEXT_ILLEGAL_QUERY_TYPE
    else if statusId = STATUS_ROUTING_ERROR then
        Result := STATUS_TEXT_ROUTING_ERROR
    else if statusId = STATUS_ACCOUNT_NOT_EXIST then
        Result := STATUS_TEXT_ACCOUNT_NOT_EXIST
    else if statusId = STATUS_NOT_ENOUGH_BALANCE then
        Result := STATUS_TEXT_NOT_ENOUGH_BALANCE
    else if statusId = STATUS_ACCOUNT_UNUSABLE then
        Result := STATUS_TEXT_ACCOUNT_UNUSABLE
    else if statusId = STATUS_USER_NOT_PRECHARGE then
        Result := STATUS_TEXT_USER_NOT_PRECHARGE
    else if statusId in [STATUS_VENDER_START..STATUS_VENDER_END] then
        Result := STATUS_TEXT_VENDER
    else
        Result := STATUS_TEXT_UNKOWN;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -