CMPP错误码说明

与中国移动代码的对应关系。 
MI::zzzz
SMSC返回状态报告的状态值为EXPIRED
MJ:zzzz
SMSC返回状态报告的状态值为DELETED
MK:zzzz
SMSC返回状态报告的状态值为UNDELIV
ML:zzzz
SMSC返回状态报告的状态值为ACCEPTD
MM:zzzz
SMSC返回状态报告的状态值为UNKNOWN
MN:zzzz
SMSC返回状态报告的状态值为REJECTD 
回页首 
CMPP发送失败代码对照表 
值(4位,不足4位前面补0) 含义
1 消息结构错
2 命令字错误
3 消息序列号重复
4 消息长度错
5 资费代码错
6 超过最大信息长
7 业务代码错
8 流量控制错
9 本网关不负责此计费号码
10 Src_ID错
11 Msg_src错
12 计费地址错
13 目的地址错
14~49 扩展

51 尚未建立连接
52 尚未成功登录
53 发送消息失败
54 超时未接收到响应消息
55 等待状态报告超时

60 保留
61 有效时间已经过期
62 定时发送时间已经过期
63 不能识别的FeeType
64 发送服务源地址鉴权失败
65 发送服务目的地址鉴权失败
66 接收服务源地址鉴权失败
67 接收服务目的地址鉴权失败
68 用户鉴权失败
69 此用户为黑名单用户
70 网络断连或目的设备关闭接口
71 超过最大节点数
72 找不到路由
73 等待应答超时
74 送SCP失败
75 送SCP鉴权等待应答超时
76 信息安全鉴权失败
77 超过最大Submit提交数
78 SPID 为空
79 业务类型为空
80 CPCode错误
81 发送接收接口重复
82 循环路由
83 超过接收侧短消息MTU
84 送DSMP重发失败
85 DSMP系统忙重发
86 DSMP系统忙,且缓存满重发
87 DSMP流控重发
88 等DSMP应答超时重发
89 
201~240 SCP错误码
202 非神州行预付费用户
203 数据库操作失败
206 移动用户帐户数据异常
208 用户余额不足
210 超过最高欠费额
215 重复发送消息序列号msgid相同的计费请求消息
218 SCP互联失败
222 未登记的SP
232 月消费超额
241~255 SMC错误码(其中250~255为康为短消息中心错误应答映射,根据smpp3.4协议)
241 未定义
250 消息队列满
300 暂还没有设置定义255号以上错误的,建议SP查一下是否存在

回页首 
华为InfoX——SMPP话单错误码 
错误码 含义
AAAA 网关错误码
1XXXX 消息发往SCP出错时错误码
2BBBB SCP返回错误应答时的错误码,其中BBBB为SCP返回的错误应答消息中的错误码值
3XXXX 消息发往下一级ISMG出错时错误码
4CCCC 下一级ISMG返回错误应答时的错误码,其中CCCC为下一级ISMG返回的错误应答消息中的错误码值
5XXXX 消息发往SP出错时错误码
6DDDD SP返回错误应答时的错误码,其中DDDD为SP返回的错误应答消息中的错误码值
7XXXX 消息发往DSMP出错时错误码
8EEEE DSMP返回错误应答时的错误码,其中EEEE为DSMP返回的错误应答消息中的错误码值
9XXXX 消息发往SMC出错时错误码
10FFFF SMC返回错误应答时的错误码,其中FFFF为SMC返回的错误应答消息中的错误码值
11XXXX 消息发往SPACE出错时错误码
12GGGG SPACE返回错误应答时的错误码,其中FFFF为SPACE返回的错误应答消息中的错误码值

回页首 
华为InfoX——CMPP状态报告错误stat含义 
Message State Final Message States Description
DELIVERED DELIVRD Message is delivered to destination
EXPIRED EXPIRED Message validity period has
expired
DELETED DELETED Message has been deleted.
UNDELIVERABLE UNDELIV Message is undeliverable
ACCEPTED ACCEPTD Message is in accepted state(i.e. has been manually read on behalf of the subscriber by customer service)
UNKNOWN UNKNOWN Message is in invalid state
REJECTED REJECTD Message is in a rejected state
NOROUTE NOROUTE 查找路由失败
MA:xxxx MA:xxxx SMSC不返回响应消息时的状态报告
MB:xxxx MB:xxxx SMSC返回错误响应消息时的状态报告
MC:xxxx MC:xxxx 没有从SMSC处接收到状态报告时的状态报告
CA:xxxx CA:xxxx SCP不返回响应消息时的状态报告
CB:xxxx CB:xxxx SCP返回错误响应消息时的状态报告
DA:xxxx DA:xxxx DSMP不返回响应消息时的状态报告
DB:xxxx DB:xxxx DSMP返回错误响应消息时的状态报告
SA:xxxx SA:xxxx SP不返回响应消息时的状态报告
SB:xxxx SB:xxxx SP返回错误响应消息时的状态报告
IA:xxxx IA:xxxx 下一级ISMG不返回响应消息时的状态报告
IB:xxxx IB:xxxx 下一级ISMG返回错误响应消息时的状态报告
IC:xxxx IC:xxxx 没有从下一级ISMG处接收到状态报告时的状态报告
ID:xxxx ID:xxxx 网关ISMG内部检测错误码
ID:0020 ID:0020 SPACE用户鉴权模块鉴权用户停机或欠费错误
ID:0021 ID:0021 SPACE用户鉴权模块:用户销户错误
MI::zzzz MI::zzzz SMSC返回状态报告的状态值为EXPIRED
MJ:zzzz MJ:zzzz SMSC返回状态报告的状态值为DELETED
MK:zzzz MK:zzzz SMSC返回状态报告的状态值为UNDELIV
ML:zzzz ML:zzzz SMSC返回状态报告的状态值为ACCEPTD
MM:zzzz MM:zzzz SMSC返回状态报告的状态值为UNKNOWN
MN:zzzz MN:zzzz SMSC返回状态报告的状态值为REJECTD
MH:zzzz MH:zzzz 其它值

回页首 
华为InfoX——接口断连错误码说明 
4.1 infoX接口断连的原因概述
接口断连的原因一般可分为三类,分别为:
A、握手超时(Enquire Link)
B、业务模块发送的消息协议错误
C、TCP/IP的SOCKET关闭或产生异常。
以下将对各情况进行描述。
4.2 业务模块发送的消息协议错误
此情况由于客户模块发送了结构错误的消息,或者消息错位,导致infoX读取消息错误。由于infoX与客户模块采用消息流格式,为防止由于消息错位造成以后的消息都不能正确取得,此时,对于基中的某些消息,infoX将断连接口。原因分别为:
错误码 原因分析 后续操作
97001 缺省解码失败 为防止以后消息错位,接口将断连
97002 消息头错误 为防止以后消息错位,接口将断连
97003 源缓冲区不够,不处理 继续接收消息
97004 目的缓冲区不够 为防止以后消息错位,接口将断连
97005 严重协议错误 为防止以后消息错位,接口将断连
97006 协议中某字段一般性错误 只删除此消息,不断开接口
97007 接收到NACK消息 为防止以后消息错位,接口将断连
97008 接收太多的握手 接口将断连
97009 地址错误,NPI、TON不支持 只删除此消息,不断开接口
97010 时间格式错误 只删除此消息,不断开接口
97011 DCS错误 只删除此消息,不断开接口
97012 协议不支持 只删除此消息,不断开接口
97013~97999 保留

例:
2001/05/28 15:31:03 2 ID为32的接口产生接口断连信息,对端地址:10.10.2.1 ErrCode:97001,ErrorType:0

4.3 握手或接收异常错误
错误码 原因分析 后续操作
19000 保留 
19001 接收消息的Buff出了问题 接口将断连
19002 解码返回的值不对(只能是0/-1/>0) 接口将断连
19003 握手超时 接口将断连
19004 对端主动关闭Socket 
19005 连接对方服务器的间隔时间,到时重连 
19006 发送Login请求后,等待对方服务器的应答消息超时 
19007 进行Socket底层的连接建立,等待connect函数的时间 
19008 Dsmpfep read消息错误

4.4 TCP/IP的SOCKET关闭或产生异常
此情况是由于客户端主动关闭退出产生的提示信息,错误代码为“0”;
例:
2001/05/28 15:32:14 2 ID为32的接口产生接口断连信息,对端地址:10.10.2.1 ErrCode:0,ErrorType:0
或者由于SOCKET底层的其它异常错误,导致接口断连,此时的错误码将有多种多样,详细描述请见WINDOWS平台SOCKET错误码说明及UNIX平台错误码说明。
例:
2001/05/30 15:49:32 2 ID为32的接口产生接口断连信息,对端地址:10.10.2.1 ErrCode:10054,ErrorType:0

4.5 WINDOWS平台SOCKET错误码说明
MSDN对于SOCKET异常ID的描述
错误码值 错误码标识 含义
10004 WSAEINTR Interrupted function call. 
A blocking operation was interrupted by a call to WSACancelBlockingCall.
10013 WSAEACCES Permission denied. 
An attempt was made to access a socket in a way forbidden by its access permissions. An example is using a broadcast address for sendto without broadcast permission being set using setsockopt(SO_BROADCAST). 
10014 WSAEFAULT Bad address. 
The system detected an invalid pointer address in attempting to use a pointer argument of a call. This error occurs if an application passes an invalid pointer value, or if the length of the buffer is too small. For instance, if the length of an argument which is a struct sockaddr is smaller than sizeof(struct sockaddr). 
10022 WSAEINVAL Invalid argument. 
Some invalid argument was supplied (for example, specifying an invalid level to the setsockopt function). In some instances, it also refers to the current state of the socket - for instance, calling accept on a socket that is not listening. 
10024 WSAEMFILE Too many open files. 
Too many open sockets. Each implementation may have a maximum number of socket handles available, either globally, per process or per thread. 
10035 WSAEWOULDBLOCK Resource temporarily unavailable. 
This error is returned from operations on non-blocking sockets that cannot be completed immediately, for example recv when no data is queued to be read from the socket. It is a non-fatal error, and the operation should be retried later. It is normal for WSAEWOULDBLOCK to be reported as the result from calling connect on a non-blocking SOCK_STREAM socket, since some time must elapse for the connection to be established.
10036 WSAEINPROGRESS Operation now in progress. 
A blocking operation is currently executing. Windows Sockets only allows a single blocking operation to be outstanding per task (or thread), and if any other function call is made (whether or not it references that or any other socket) the function fails with the WSAEINPROGRESS error. 
10037 WSAEALREADY Operation already in progress. 
An operation was attempted on a non-blocking socket that already had an operation in progress - i.e. calling connect a second time on a non-blocking socket that is already connecting, or canceling an asynchronous request (WSAAsyncGetXbyY) that has already been canceled or completed.
10038 WSAENOTSOCK Socket operation on non-socket. 
An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid. 
10039 WSAEDESTADDRREQ Destination address required. 
A required address was omitted from an operation on a socket. For example, this error will be returned if sendto is called with the remote address of ADDR_ANY. 
10040 WSAEMSGSIZE Message too long. 
A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself. 
10041 WSAEPROTOTYPE Protocol wrong type for socket. 
A protocol was specified in the socket function call that does not support the semantics of the socket type requested. For example, the ARPA Internet UDP protocol cannot be specified with a socket type of SOCK_STREAM. 
10042 WSAENOPROTOOPT Bad protocol option. 
An unknown, invalid or unsupported option or level was specified in a getsockopt or setsockopt call.
10043 WSAEPROTONOSUPPORT Protocol not supported. 
The requested protocol has not been configured into the system, or no implementation for it exists. For example, a socket call requests a SOCK_DGRAM socket, but specifies a stream protocol. 
10044 WSAESOCKTNOSUPPORT Socket type not supported. 
The support for the specified socket type does not exist in this address family. For example, the optional type SOCK_RAW might be selected in a socket call, and the implementation does not support SOCK_RAW sockets at all. 
10045 WSAEOPNOTSUPP Operation not supported. 
The attempted operation is not supported for the type of object referenced. Usually this occurs when a socket descriptor to a socket that cannot support this operation, for example, trying to accept a connection on a datagram socket.
10046 WSAEPFNOSUPPORT Protocol family not supported. 
The protocol family has not been configured into the system or no implementation for it exists. Has a slightly different meaning to WSAEAFNOSUPPORT, but is interchangeable in most cases, and all Windows Sockets functions that return one of these specify WSAEAFNOSUPPORT. 
10047 WSAEAFNOSUPPORT Address family not supported by protocol family. 
An address incompatible with the requested protocol was used. All sockets are created with an associated "address family" (i.e. AF_INET for Internet Protocols) and a generic protocol type (i.e. SOCK_STREAM). This error will be returned if an incorrect protocol is explicitly requested in the socket call, or if an address of the wrong family is used for a socket, e.g. in sendto. 
10048 WSAEADDRINUSE Address already in use. 
Only one usage of each socket address (protocol/IP address/port) is normally permitted. This error occurs if an application attempts to bind a socket to an IP address/port that has already been used for an existing socket, or a socket that wasn‘t closed properly, or one that is still in the process of closing. For server applications that need to bind multiple sockets to the same port number, consider using setsockopt(SO_REUSEADDR). Client applications usually need not call bind at all - connect will choose an unused port automatically. When bind is called with a wild-card address (involving ADDR_ANY), a WSAEADDRINUSE error could be delayed until the specific address is "committed." This could happen with a call to other function later, including connect, listen, WSAConnect or WSAJoinLeaf.
10049 WSAEADDRNOTAVAIL Cannot assign requested address. 
The requested address is not valid in its context. Normally results from an attempt to bind to an address that is not valid for the local machine. This can also result from connect, sendto, WSAConnect, WSAJoinLeaf, or WSASendTo when the remote address or port is not valid for a remote machine (e.g. address or port 0).

10050 WSAENETDOWN Network is down. 
A socket operation encountered a dead network. This could indicate a serious failure of the network system (i.e. the protocol stack that the WinSock DLL runs over), the network interface, or the local network itself. 
10051 WSAENETUNREACH Network is unreachable. 
A socket operation was attempted to an unreachable network. This usually means the local software knows no route to reach the remote host.
10052 WSAENETRESET Network dropped connection on reset. 
The connection has been broken due to "keep-alive" activity detecting a failure while the operation was in progress. It can also be returned by setsockopt if an attempt is made to set SO_KEEPALIVE on a connection that has already failed. 
10053 WSAECONNABORTED Software caused connection abort. 
An established connection was aborted by the software in your host machine, possibly due to a data transmission timeout or protocol error. 
10054 WSAECONNRESET Connection reset by peer. 
A existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host used a "hard close" (see setsockopt for more information on the SO_LINGER option on the remote socket.) This error may also result if a connection was broken due to "keep-alive" activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET.
10055 WSAENOBUFS No buffer space available. 
An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

10056 WSAEISCONN Socket is already connected. 
A connect request was made on an already connected socket. Some implementations also return this error if sendto is called on a connected SOCK_DGRAM socket (For SOCK_STREAM sockets, the to parameter in sendto is ignored), although other implementations treat this as a legal occurrence. 
10057 WSAENOTCONN Socket is not connected. 
A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using sendto) no address was supplied. Any other type of operation might also return this error - for example, setsockopt setting SO_KEEPALIVE if the connection has been reset.
10058 WSAESHUTDOWN Cannot send after socket shutdown. 
A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. By calling shutdown a partial close of a socket is requested, which is a signal that sending or receiving or both has been discontinued. 
10060 WSAETIMEDOUT Connection timed out. 
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
10061 WSAECONNREFUSED Connection refused. 
No connection could be made because the target machine actively refused it. This usually results from trying to connect to a service that is inactive on the foreign host - i.e. one with no server application running. 
10064 WSAEHOSTDOWN Host is down. 
A socket operation failed because the destination host was down. A socket operation encountered a dead host. Networking activity on the local host has not been initiated. These conditions are more likely to be indicated by the error WSAETIMEDOUT. 
10065 WSAEHOSTUNREACH No route to host. 
A socket operation was attempted to an unreachable host. See WSAENETUNREACH
10067 WSAEPROCLIM Too many processes. 
A Windows Sockets implementation may have a limit on the number of applications that may use it simultaneously. WSAStartup may fail with this error if the limit has been reached. 
10091 WSASYSNOTREADY Network subsystem is unavailable. 
This error is returned by WSAStartup if the Windows Sockets implementation cannot function at this time because the underlying system it uses to provide network services is currently unavailable. Users should check: 
that the appropriate Windows Sockets DLL file is in the current path, 
that they are not trying to use more than one Windows Sockets implementation simultaneously. If there is more than one WINSOCK DLL on your system, be sure the first one in the path is appropriate for the network subsystem currently loaded. 
the Windows Sockets implementation documentation to be sure all necessary components are currently installed and configured correctly. 
10092 WSAVERNOTSUPPORTED WINSOCK.DLL version out of range. 
The current Windows Sockets implementation does not support the Windows Sockets specification version requested by the application. Check that no old Windows Sockets DLL files are being accessed. 
10093 WSANOTINITIALISED Successful WSAStartup not yet performed. 
Either the application hasn‘t called WSAStartup or WSAStartup failed. The application may be accessing a socket which the current active task does not own (i.e. trying to share a socket between tasks), or WSACleanup has been called too many times. 
10094 WSAEDISCON Graceful shutdown in progress. 
Returned by WSARecv and WSARecvFrom to indicate the remote party has initiated a graceful shutdown sequence.
10109 WSATYPE_NOT_FOUND Class type not found. 
The specified class was not found. 
11001 WSAHOST_NOT_FOUND Host not found. 
No such host is known. The name is not an official hostname or alias, or it cannot be found in the database(s) being queried. This error may also be returned for protocol and service queries, and means the specified name could not be found in the relevant database.
11002 WSATRY_AGAIN Non-authoritative host not found. 
This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritative server. A retry at some time later may be successful. 
11003 WSANO_RECOVERY This is a non-recoverable error. 
This indicates some sort of non-recoverable error occurred during a database lookup. This may be because the database files (e.g. BSD-compatible HOSTS, SERVICES or PROTOCOLS files) could not be found, or a DNS request was returned by the server with a severe error.
11004 WSANO_DATA Valid name, no data record of requested type. 
The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. The usual example for this is a hostname -> address translation attempt (using gethostbyname or WSAAsyncGetHostByName) which uses the DNS (Domain Name Server), and an MX record is returned but no A record - indicating the host itself exists, but is not directly reachable.

4.6 UNIX平台SOCKET错误码说明
错误码值 错误码标识 含义
HP平台 
10001 EPERM Not super-user
10002 ENOENT No such file or directory
10003 ESRCH No such process
10004 EINTR interrupted system call
10005 EIO I/O error
10006 ENXIO No such device or address
10007 E2BIG Arg list too long
10008 ENOEXEC Exec format error 
10009 EBADF Bad file number 
10010 ECHILD No children 
10011 EAGAIN No more processes 
10012 ENOMEM Not enough core
10013 EACCES Permission denied
10014 EFAULT Bad address 
10015 ENOTBLK Block device required
10016 EBUSY Mount device busy 
10017 EEXIST File exists 
10018 EXDEV Cross-device link 
10019 ENODEV No such device 
10020 ENOTDIR Not a directory 
10021 EISDIR Is a directory 
10022 EINVAL Invalid argument 
10023 ENFILE File table overflow 
10024 EMFILE Too many open files 
10025 ENOTTY Not a typewriter 
10026 ETXTBSY Text file busy
10027 EFBIG File too large
10028 ENOSPC No space left on device
10029 ESPIPE Illegal seek
10030 EROFS Read only file system
10031 EMLINK Too many links
10032 EPIPE Broken pipe
10033 
10034 
10035 ENOMSG No message of desired type
10036 EIDRM Identifier removed
10037 ECHRNG Channel number out of range
10038 EL2NSYNC Level 2 not synchronized
10039 EL3HLT Level 3 halted
10040 EL3RST Level 3 reset
10041 ELNRNG Link number out of range
10042 EUNATCH Protocol driver not attached
10043 ENOCSI No CSI structure available
10044 EL2HLT Level 2 halted
10045 EDEADLK A deadlock would occur
10046 ENOLCK System record lock table was full
10047 EILSEQ Illegal byte sequence
10048 
10049 
10050 ENONET Machine is not on the network
10051 ENODATA no data (for no delay io)
10052 ETIME timer expired
10053 ENOSR out of streams resources
10054 ENOSTR Device not a stream
10055 ENOPKG Package not installed
10056 
10057 ENOLINK the link has been severed
10058 EADV advertise error
10059 ESRMNT srmount error
10060 ECOMM Communication error on send
10061 EPROTO Protocol error
10064 EMULTIHOP multihop attempted
10066 EDOTDOT Cross mount point (not really error) 
10067 EBADMSG trying to read unreadable message
10068 EUSERS For Sun compatibilty, will not occur.
10069 EDQUOT Disc quota exceeded
10070 ESTALE Stale NFS file handle
10071 EREMOTE Too many levels of remote in path
10072 EOVERFLOW Value too large to be stored in data type
10152 ENOLOAD Cannot load required kernel module
10153 ERELOC Object file error in loading kernel module
10154 ENOMATCH Symbol matching given spec not found
10155 ENOUNLD Cannot unload kernel module
10156 EBADVER Version number mismatch for loadable kernel module
10157 ECONFIG Configured kernle resource exhausted
10158 ENOREG Cannot register required kernel module
10159 ENOUNREG Cannot unregister kernel module
10215 ENOSYM symbol does not exist in executable
10216 ENOTSOCK Socket operation on non-socket
10217 EDESTADDRREQ Destination address required
10218 EMSGSIZE Message too long
10219 EPROTOTYPE Protocol wrong type for socket
10220 ENOPROTOOPT Protocol not available
10221 EPROTONOSUPPORT Protocol not supported
10222 ESOCKTNOSUPPORT Socket type not supported
10223 EOPNOTSUPP Operation not supported
10224 EPFNOSUPPORT Protocol family not supported
10225 EAFNOSUPPORT Address family not supported by protocol family
10226 EADDRINUSE Address already in use
10227 EADDRNOTAVAIL Can‘t assign requested address
10228 ENETDOWN Network is down
10229 ENETUNREACH Network is unreachable
10230 ENETRESET Network dropped connection on
10231 ECONNABORTED Software caused connection abort 
10232 ECONNRESET Connection reset by peer
10233 ENOBUFS No buffer space available 
10234 EISCONN Socket is already connected 
10235 ENOTCONN Socket is not connected 
10236 ESHUTDOWN Can‘t send after socket shutdown
10237 ETOOMANYREFS Too many references: can‘t splice
ECONNREFUSED EREFUSED Double define for NFS
10238 ETIMEDOUT Connection timed out
10239 ECONNREFUSED Connection refused
10240 EREMOTERELEASE Remote peer released connection 
10241 EHOSTDOWN Host is down
10242 EHOSTUNREACH No route to host 
10244 EALREADY Operation already in progress
10245 EINPROGRESS Operation now in progress
10246 EWOULDBLOCK Operation would block
10247 ENOTEMPTY Directory not empty
10248 ENAMETOOLONG File name too long 
10249 ELOOP Too many levels of symbolic links
10251 ENOSYS Function not implemented
10252 ENOTSUP Function not implemented
10253 ECANCELED aio request was canceled before complete

IBM平台 
10001 EPERM Operation not permitted
10002 ENOENT No such file or directory
10003 ESRCH No such process
10004 EINTR interrupted system call
10005 EIO I/O error
10006 ENXIO No such device or address 
10007 E2BIG Arg list too long
10008 ENOEXEC Exec format error
10009 EBADF Bad file descriptor 
10010 ECHILD No child processes 
10011 EAGAIN Resource temporarily unavailable 
10012 ENOMEM Not enough space 
10013 EACCES Permission denied
10014 EFAULT Bad address
10015 ENOTBLK Block device required
10016 EBUSY Resource busy
10017 EEXIST File exists
10018 EXDEV Improper link
10019 ENODEV No such device
10020 ENOTDIR Not a directory
10021 EISDIR Is a directory
10022 EINVAL Invalid argument
10023 ENFILE Too many open files in system
10024 EMFILE Too many open files
10025 ENOTTY Inappropriate I/O control operation
10026 ETXTBSY Text file busy
10027 EFBIG File too large
10028 ENOSPC No space left on device
10029 ESPIPE Invalid seek
10030 EROFS Read only file system
10031 EMLINK Too many links
10032 EPIPE Broken pipe
10033 EDOM Domain error within math function
10034 ERANGE Result too large
10035 ENOMSG No message of desired type
10036 EIDRM Identifier removed
10037 ECHRNG Channel number out of range
10038 EL2NSYNC Level 2 not synchronized
10039 EL3HLT Level 3 halted
10040 EL3RST Level 3 reset
10041 ELNRNG Link number out of range
10042 EUNATCH Protocol driver not attached
10043 ENOCSI No CSI structure available
10044 EL2HLT Level 2 halted
10045 EDEADLK Resource deadlock avoided
10046 ENOTREADY Device not ready
10047 EWRPROTECT Write-protected media
10048 EFORMAT Unformatted media
10049 ENOLCK No locks available
10050 ENOCONNECT no connection
10052 ESTALE no filesystem
10053 EDIST old, currently unused AIX errno
10054 EWOULDBLOCK 
10055 EINPROGRESS Operation now in progress
10056 EALREADY Operation already in progress
10057 ENOTSOCK Socket operation on non-socket
10058 EDESTADDRREQ Destination address required
10059 EMSGSIZE Message too long
10060 EPROTOTYPE Protocol wrong type for socket
10061 ENOPROTOOPT Protocol not available
10062 EPROTONOSUPPORT Protocol not supported
10063 ESOCKTNOSUPPORT Socket type not supported
10064 EOPNOTSUPP Operation not supported on socket
10065 EPFNOSUPPORT Protocol family not supported
10066 EAFNOSUPPORT Address family not supported by protocol family
10067 EADDRINUSE Address already in use
10068 EADDRNOTAVAIL Can‘t assign requested address
10069 ENETDOWN Network is down
10070 ENETUNREACH Network is unreachable
10071 ENETRESET Network dropped connection on reset
10072 ECONNABORTED Software caused connection abort
10073 ECONNRESET Connection reset by peer
10074 ENOBUFS No buffer space available
10075 EISCONN Socket is already connected
10076 ENOTCONN Socket is not connected
10077 ESHUTDOWN Can‘t send after socket shutdown
10078 ETIMEDOUT Connection timed out
10079 ECONNREFUSED Connection refused
10080 EHOSTDOWN Host is down
10081 EHOSTUNREACH No route to host
10082 ERESTART restart the system call
10083 EPROCLIM Too many processes
10084 EUSERS Too many users
10085 ELOOP Too many levels of symbolic links
10086 ENAMETOOLONG File name too long
10087 Directory not empty
10088 EDQUOT Disc quota exceeded
10089 ECORRUPT Invalid file system control data
10093 EREMOTE Item is not local to host
10109 ENOSYS Function not implemented POSIX
10110 EMEDIA media surface error
10111 ESOFT I/O completed, but needs relocation
10112 ENOATTR no attribute found
10113 ESAD security authentication denied
10114 ENOTRUST not a trusted program
10115 ETOOMANYREFS Too many references: can‘t splice
10116 EILSEQ Invalid wide character
10117 ECANCELED asynchronous i/o cancelled
10118 ENOSR temp out of streams resources
10119 ETIME I_STR ioctl timed out
10120 EBADMSG wrong message type at stream head
10121 EPROTO STREAMS protocol error
10122 ENODATA no message ready at stream head
10123 ENOSTR fd is not a stream
10124 ENOTSUP POSIX threads unsupported value
10125 EMULTIHOP multihop is not allowed
10126 ENOLINK the link has been severed
10127 EOVERFLOW value too large to be stored in data type

回页首 
华为InfoX——维测及网管错误码说明 
infoX网关回送给维测台及网管的错误码说明

维测错误码 网管错误码 含义
99000 4000 保留
99001 4001 用户没有查询权限
99002 4002 用户没有修改权限
99003 4003 收到的维测协议错误(版本错误)
99004 4004 输入要操作的帐号名为空
99005 4005 帐号名错误
99006 4006 不能对高级管理帐号sa进行操作
99007 4007 输入相关帐号名不合法
99008 4008 输入帐号优先级的值不合法
99009 4009 由于系统原因添加帐号失败
99010 4010 由于系统原因添加接口失败
99011 4011 添加接口的对端地址信息输入格式错误
99012 4012 添加接口的接口类型无效(维测台版本错误)
99013 4013 用户不能删除sa下的维测接口
99014 4014 用户输入的接口ID无效
99015 4015 由于系统原因查询接口失败
99016 4016 由于系统原因,查询号段鉴权信息失败
99017 4017 号段鉴权信息所在帐号的鉴权类型无效
99018 4018 号段鉴权信息所在帐号的鉴权类型为用户鉴权
99019 4019 号段鉴权信息输入的服务类型无效
99020 4020 号段鉴权信息输入的地址类型无效
99021 4021 增加号段鉴权信息已经存在或输入号段无效
99022 4022 删除号段鉴权信息不存在
99023 4023 路由信息和帐号名不匹配
99024 4024 路由信息操作系统错误
99025 4025 删除路由的地址信息错误
99026 4026 添加路由的地址信息错误
99027 4027 添加PPS路由信息输入用户类型错误
99028 4028 接入码错误
99029 4029 SETPARAM输入服务类型为SERVICE_SMS时,没有接口
99030 4030 加载数据中心地址信息失败
99031 4031 加载错误提示信息失败
99032 4032 加载费率表失败
99033 4033 加载IP信息失败
99034 4034 加载存储转发信息失败
99035 4035 加载SP拦截信息失败
99036 4036 加载DSMP相关信息失败
99037 4037 SETPARAM输入特征字符串无效
99038 4038 GETPARAM输入服务类型为SERVICE_SMS时,没有接口
99039 4039 GETPARAM输入服务类型为SERVICE_REVERSE1
99040 4040 GETPARAM输入特征字符串无效
99041 4041 查询ServiceID时文件打开操作失败
99042 4042 查询ServiceID时文件文件长度错误
99043 4043 查询ServiceID时文件时申请内存错误
99044 4044 查询ServiceID时文件时取到的长度不是实际文件的长度
99045 4045 设置性能阀值的消息类型参数错误
99046 4046 系统非双机模式不能切换
99047 4047 动态加载不送scp的号段表失败
99048 4048 加载SP信息参数错
99049 4049 加载SP信息读取配置文件错误
99050 4050 增加跟踪失败
99051 4051 终止跟踪失败
99052 4052 增加统计任务失败
99053 4053 统计类型错误
99054 4054 统计记录错误
99055 4055 统计ID错误
99056 4056 设置网关属性错误
99057 4057 GNS路由消息空
99058 4058 获取GNS路由失败
99059 4059 错误码转换文件不存在
99060 4060 错误码转换文件格式错误
99061 4061 查询所有接口失败
99062 4062 GNS发送接口类型错误
99063 4063 非法的SPTypeID,SPTypeCfg.dat中不存在
99064 4064 非法的PROXYID
99065 4065 不能进行PROXYID的修改
99066 4066 PROXY进行数据同步失败
99067 4067 等待PROXY应答超时
99068 4068 帐号接口数据同步类型错误
99069 4069 帐号接口数据同步网关错误
99070 4070 帐号接口数据同步PROXY未激活
99071 4071 帐号接口数据同步,没有需要同步的数据
99072 4072 APP进行数据同步失败,主要指服务端接口数据和客户端接口状态同步错
99073 4073 添加内部连接接口,帐号的服务类型(或编码类型)不正确
99074~99999 保留

回页首 
华为InfoX——错误码说明 
1.1.1 AAAA网关错误码
AAAA的值(4位,不足4位前面补0) 含义
1 消息结构错
2 命令字错误
3 消息序列号重复
4 消息长度错
5 资费代码错
6 超过最大信息长
7 业务代码错
8 流量控制错
9 本网关不负责此计费号码
10 Src_ID错
11 Msg_src错
12 计费地址错
13 目的地址错
14~49 扩展

51 尚未建立连接
52 尚未成功登录
53 发送消息失败
54 超时未接收到响应消息
55 等待状态报告超时
56 用户鉴权时用户状态不正常

60 保留
61 有效时间已经过期
62 定时发送时间已经过期
63 不能识别的FeeType
64 发送服务源地址鉴权失败
65 发送服务目的地址鉴权失败
66 接收服务源地址鉴权失败
67 接收服务目的地址鉴权失败
68 用户鉴权失败
69 此用户为黑名单用户
70 网络断连或目的设备关闭接口
71 超过最大节点数
72 找不到路由
73 等待应答超时
74 送SCP失败
75 送SCP鉴权等待应答超时
76 信息安全鉴权失败
77 超过最大Submit提交数
78 SPID 为空
79 业务类型为空
80 CPCode错误
81 发送接收接口重复
82 循环路由
83 超过接收侧短消息MTU
84 送DSMP重发失败
85 DSMP系统忙重发
86 DSMP系统忙,且缓存满重发
87 DSMP流控重发
88 等DSMP应答超时重发
89 
90 SGIP消息等待处理
91 SGIP协议状态报告请求标识错误
92 SGIP协议MT标识错
93 SGIP协议SP节点编号错
94 没有配置帐号

1.1.2 BBBB SCP返回的错误码
操作结果
BBBB的值(4位,不足4位前面补0) 含义 备注
0 成功 
1 非神州行预付费用户 指的是计费号码在SCP中不存在,比如发送一个全球通号码到SCP
2 数据库操作失败 因数据库异常、被操作表不存在、被操作字段不存在等导致SQL语句执行失败的状态。
3 鉴权失败 保留未用
4 超过最大错误次数 保留未用
5 移动用户帐户数据异常 PPS状态异常(包括未头次使用、储值卡被封锁、储值卡进入保留期、储值卡挂失)
6 服务没有激活 指的是monet_service表的servicestate状态为未激活。
7 用户余额不足 用户余额不足扣减此次费用
8 超过包月费用上限 保留未用
9 超过最高欠费额 保留未用
10 用户已注册该项服务 保留未用
11 用户没有注册该项服务 保留未用
14 未登记的网关 只有注册的网关ID才允许登录鉴权,未注册的网关登录鉴权失败。
15 网关登录摘要错误 网关登录认证时候根据密码生成摘要与业务根据密码生成摘要不一致,大部分原因是网关的密码与SCP的配置不对
16 参数错误 保留未用
17 服务器端数据未传完 保留未用
18 重复发送消息序列号msgid相同的计费请求消息 认为重复单条扣费,则返回该状态码。SCP记录一定时间(大概48小时)的消息,如果此时间段中重复则拒绝
20 未知错误 保留未用
21 数据库错误 保留未用
22 SCP互联失败 消息发给非用户归属SCP,需要通过互联转发消息,由于信令网故障等缘故可能导致互联失败
23 数值越界 折扣>100,费率<0等
24 字段超长 保留未用
25 无相关数据 保留未用
26 数据重复 保留未用
40 未登记的SP 业务可设定对SP鉴权,未登记的SP则拒绝
41 SP帐户状态异常 SP未激活,SP状态为激活和未激活两种
42 SP无权限 保留未用
43 SP帐户已存在 保留未用
44 未登记的SP业务类型 业务可设定对SP的业务鉴权,未登记的SP的业务则拒绝
45 SP业务类型数据异常 SP的业务类型数据未激活,实际业务类型状态有激活和未激活两种。
46 SP业务类型已存在 保留未用
52 梦网用户已存在 保留未用
53 梦网用户不存在 计费号码不是梦网用户,没有进行梦网开户
54 梦网用户状态异常 梦网用户没有激活
55 签约信息已存在 保留未用
56 签约信息不存在 保留未用
57 签约数据异常 用户与SP的签约信息数据未激活等
61 月消费超额 业务可设定月消费限额,如果超额则拒绝新的扣费请求
62 单笔消费超额 业务可设定单笔消费限额,如果超额则拒绝
63 用户拒绝 保留未用
64 短消息编号已存在 网关生成的短消息编号msgid重复
65 对应扣费请求不存在 收到状态报告消息时,根据msgid查询monet_smrecord表没有找到对应的扣费记录
66 扣费请求已被确认 收到状态报告消息时,根据msgid查询monet_smrecord表的扣费记录,发现该扣费记录前面已收到过状态报告。
67 未定义的计费类型 计费消息参数type非法,不是协议定义的类型
68 未定义的编码方式 保留未用
69 包月控制计费请求失败 
70 动感地带用户的月租方式不正确 用户模板表中的月租方式不是固定月结日

1.1.3 CCCC ISMG返回的错误码
CCCC的值(4位,不足4位前面补0) 含义
infoX网关返回错误码值 
1 消息结构错
2 命令字错
3 消息序号重复
4 消息长度错
5 资费代码错
6 超过最大信息长
7 业务代码错
8 流量控制错
其它(参看AAAA网关内部错误码表) 
其他厂家错误码:参看各厂家ISMG返回错误码表

1.1.4 DDDD SP返回的错误码
DDDD的值(4位,不足4位前面补0) 含义
参看各SP返回错误码表

1.1.5 EEEE DSMP返回的错误码
EEEE的值(4位,不足4位前面补0) 含义
1 未知错误
100-999为业务网关和DSMP之间的接口消息中的错误代码 
100 手机号码不存在
101 手机号码错误
102 用户停机
103 用户欠费
104 用户没有使用该业务的权限
105 业务代码错误
106 服务代码错误
107 业务不存在
108 该业务暂停服务
109 该服务种类不存在
110 该服务种类尚未开通
111 该业务尚未开通
112 SP代码错误
113 SP不存在
114 SP暂停服务
115 用户没有定购该业务
116 用户暂停定购该业务
117 该业务不能对该用户开放
118 用户已经订购了该业务
119 用户不能取消该业务
120 话单格式错误
121 没有该类业务
122 接收异常
123 业务价格为负
124 业务价格格式错误
125 业务价格超出范围
126 该用户不是神州行用户
127 该用户没有足够的余额
128 补款,冲正失败
129 用户已经是梦网用户
130 用户在BOSS中没有相关用户数据
131 BOSS系统数据同步出错
132 相关信息不存在
133 用户数据同步出错
134 SP数据同步出错
135 业务数据同步出错
136 用户密码错误
137 伪码信息错误
138 用户相关信息不存
9000-9999为系统级错误 
9000 系统磁盘读写错误
9001 网络异常
9002 网络错误
9003 业务网关忙,业务网关缓存
9004 业务网关忙,并且业务网关缓冲区满,DSMP缓存,并暂时不要发送消息,等待一段时间重试
9005 DSMP忙,DSMP缓存
9006 DSMP忙,并且DSMP缓冲区满,业务网关缓存,并暂时不要发送消息,等待一段时间重试
9007 业务网关超过限制的流量
9008 DSMP异常,并不可用
9009 业务网关异常,并不可用
9010 该业务网关没有权限调用该接口消息
9011 DSMP没有权限发送该接口消息给业务网关
9012 版本不支持
9013 消息类型不对,系统不支持
9014 验证错误,无法解析SOAP和XML结构、缺少必须存在的字段,或者消息格式不正确
9015 拒绝消息,服务器无法完成请求的服务

1.1.6 FFFF SMC返回的错误码
FFFF的值(4位,不足4位前面补0) 含义
0X00000001 – 0X0000000F 保留给SMSC厂商定义错误
0X00000010 消息长度错误
0X00000011 命令长度错误
0X00000012 消息ID无效
0X00000013 没有执行此命令的权限
0X00000014 – 0X0000001F 保留
0X00000020 无效的SYSTEMID
0X00000021 无效的密码
0X00000022 无效的SYSTEMTYPE
0X00000023 – 0X0000003F 保留
0X00000040 地址错误
0X00000041 超过最大提交数
0X00000042 超过最大下发数
0X00000043 无效的用户
0X00000044 无效的数据格式
0X00000045 创建消息失败
0X00000046 无效的短消息ID
0X00000047 数据库失败
0X00000048 取消消息失败
0X00000049 短消息状态错误
0X0000004A 替换消息失败
0X0000004B 替换消息源地址错误
0X0000004C – 0X0000005F 保留
0X00000060 无效的源地址TON
0X00000061 无效的源地址NPI
0X00000062 源地址错误
0X00000063 无效的目的地址TON
0X00000064 无效的目的地址NPI
0X00000065 目的地址错误
0X00000066 无效的定时时间
0X00000067 无效的超时时间
0X00000068 无效的ESM_CALSS
0X00000069 无效的UDLEN
0X0000006A 无效的PRI
0X0000006B 无效的Registered_delivery_flag
0X0000006C 无效的Replace_if_present_flag
0X0000006D – 0X0000007F 保留
0X00000080 指定用户已经存在
0X00000081 创建用户失败
0X00000082 用户ID错误
0X00000083 指定用户不存在
0X00000084 – 0X0000008F 保留
0X00000090 – 0X00000FFF 保留给SMSC厂商定义错误
其他 保留
1.1.7 GGGG SPACE返回的错误码
XXXX的值(4位,不足4位前面补0) 含义
102 用户停机
103 用户欠费
2004 用户销户

1.1.8 XXXX消息发往SCP、SP、DSMP、SMC出错时错误码
XXXX的值(4位,不足4位前面补0) 含义
0051 尚未建立连接
0052 尚未成功登录
0053 发送消息失败
0054 超时未接收到响应消息
0100-0499 厂家自定义的错误码
0100 向SCP发送消息时失败
0012 发送SCP的过程中目的帐号被删除
0030 没有路由

回页首 
收集到的移动CMPP的错误信息,不知道是否正确,希望对大家有帮助 
1、如何进行登录失败原因分析

ICP登录网关经常会失败,主要有一下原因,如果ICP使用自己的API可以对登录的应答消息中消息状态字段进行分析,下面列出了主要的错误原因:

SMPP协议 CMPP协议 错误码含义
status=0 result=0 登录成功
status=6 result=2 登录帐号名在系统不存在
status=11 result=3 登录效验密码错误
status=9 result=9 超过最大接口数(帐号限制或总数限制)
status=48 result=48 对端设备IP被限制

如果是使用公司提供的动态库(动态库只提供成功与失败两种状态),则也着重按上述情况进行原因分析。
注:前提为初始化接口成功
2、消息发送失败原因分析

ICP提交消息失败,可通过多种方式对其原因进行分析,首先最常见的方法是使用维测台跟踪消息,看其应答消息的返回状态,下面列出了提交消息常见的错误码,可进行参考分析。

SMPP协议 CMPP协议 错误码含义 备注
status=0 result=0 成功 
status=49 result=1 消息结构错 注:这些错误码一般不会在自己的网关出现,只可能此错误是其他网关前转过来。
status=51 result=2 命令字错 
status=52 result=3 MsgID错误 
status=53 result=4 消息长度错 
status=54 result=5 资费代码错误 
status=55 result=6 超过的最大信息长度 
status=56 result=7 业务代码错误 
status=57 result=8 流量控制错 
status=59 result=9 前转判断错 
status=58 result=10 超过了最大网关前传节点 注:网关常见错误码,这些错误码一般是消息在网关被拒绝掉而产生的。
status= 30 result=11 找不到路由 
status=16 result=12 定时发送时间或有效时间错 
status= 12 result=13 各种鉴权失败 
status=27 result=14 应答超时 
status= 19 result=15 接口无效 
status=102 result=16 SCP应答超时 
其它 result=17~255 短消息中心或SCP处出错 
status=60 result=60 黑名单用户 D200版本才支持此特性
常见的SCP出错的错误码(详细内容请参考SCP错误码表) 
status=40 result=40 未登记的SP 注:SCP扣费鉴权常见错误码表,详细
status=44 result=44 未登记的SP业务类型 
status=50 result=50 移动用户不存在 
status=60 result=60 余额不足 
常见短消息中心回错误码(公司内部短消息中心) 
status=19 result=19 无提交权限 注:短消息中心拒绝掉此消息常见错误。
status=64 result=64 地址错误 
status=65 result=65 超过最大提交数 
status=66 result=66 超过最大下发数

另外可根据网关产生的Smpp统计话单来进行分析,Smpp话单中的60话单的第16个字段为消息状态,可根据消息状态来进行分析,其列表如下。

0 成功 
10 无效的接口ID 注:网关常见错误码,这些错误码一般是消息在网关被拒绝掉而产生的。
12 鉴权失败 
16 消息已过有效期 
19 发送的接口无效 
27 应答超时 
30 路由错误,发送不到指定的帐号 
40 未登记的SP 注:SCP扣费鉴权常见错误码表。
44 未登记的SP业务类型 
50 移动用户不存在 
60 余额不足 
100 SCP发送错误 
102 SCP应答超时 
99 消息前转错误 注:其它网关对消息拒绝
19 无提交权限 注:短消息中心拒绝掉此消息常见错误。
64 地址错误 
65 超过最大提交数 
66 超过最大下发数 
一个负数 重发消息错误 启动Msgstore有效
注:此错误码表只作为参考,由于系统连接复杂,各系统的错误码又各成一体,所以会出现错误码冲突的问题。应该具体情况具体分析。

infoX内部使用错误码表:
E_ERROR_MSG 
E_SUCCESS 成功
E_ACCESSERR=1 接入码错误
E_CALLERERR=2 主叫错误
E_ACCOUNTERR=3 帐号指针不符
E_SMTYPEERR=4 SmType错误
E_NEWACCOUNTFAIL=5 生成帐号对象失败
E_ACCOUNTNAMEERR=6 帐号名错,查无此帐号
E_CODETYPEERR=7 编码类型错
E_CREATEIFFAIL=8 生成IF对象失败
E_BEYONDMAXIFNUM=9 超过INTERFACEMANAGER的最大IF数
E_INVALIDIFID=10 无效的IF的ID
E_ACCOUNTPASSWORDERR=11 帐号的密码错误
E_NORIGHT=12 没有权限
E_PIDERR=13 PID 错误
E_INVALIDROUTETABLE=14 无效的ROUTETABLE
E_CANNOTFINDIF=15 通过HDRV不能找到IF
E_PARAMERR=16 = 0 参数错
E_STATUSERR=17 状态错误
E_INVALIDACCOUNT =18 无效的ACCOUNT
E_INVALIDIF=19 无效的IF
E_NOSUBMITRIGHT=20 无提交消息权限
E_NODELIVERRIGHT=21 无下发消息权限
E_CHECKTYPEERR=22 鉴权类型错误
E_NUMREPEAT=23 号段重复
E_NOTHISNUM=24 没有指定的号段
E_WATIACK=25 等待应答队列消息错误
E_DCS_ ERROR=26 解码时DCS有错误
E_SUBMIT_TIME_OUT=27 应答超时
E_SUBMIT_ERROR=28 向短消息中心提交消息错误
E_PARSER=29 用户输入消息解析错误
E_SERVICE_NOT_OPEN=30 指定服务未启动
E_IF_STYLE=31 接口类型错误
E_ADDR_FOMRAT=32 地址格式错误
E_PARAM_NO=33 错误的参数类型
E_BIND_SERVICEERR=34 连接时服务类型错误
E_BUFFERERR=35 缓区错误
E_ADD_TRACEERR=36 增加跟踪失败
E_CANCEL_TRACEERR=37 终止跟踪失败
E_ADD_STATERR=38 增加统计任务失败
E_STAT_TYPEERR=39 统计类型错误
E_STAT_NUMERR=40 统计记录错误
E_STAT_IDERR=41 统计ID错误
E_USER_SEND_FAIL=42 user manager send error
E_USER_STATUS=43 用户管理状态转换错误
E_USER_TOMANY=44 用户过多
E_NO_PROMPT=45 无需要应答用户的消息
E_FAILED=46 一般的错误
E_RESOURCE_LIMITED=47 资源不足
E_IP_ERROR=48 连接设备的IP错误
E_SCP_SEND_FAIL = 100 向SCP发送消息时失败
E_SCP_SEND_TIME_OUT = 101 发送消息超时
E_SCP_WAITACK_TIME_OUT = 102 等待SCP的应答超时
E_STATUS_REPORT_TIME_OUT = 103 等待状态报告超时
E_STATUS_REPORT_OVER_FLOW = 104 等待状态报告超时
E_GW_RESEND_ERROR = 160 从备份进程发
E_STORE_TIME_OUT= 0x80000150 在重发进程中超时
E_STORE_BACK_UP = 0x80000151 在重发进程中备份超时
E_STORE_ALREADY_EXIST = 0x80000152 备份时,ID已存在
E_STORE_NOIDLE_ENTITY = 0x80000153 查询时,ID非法
E_STORE_EXPIRE_TIMEOUT = 0x80000154 超过有效期
E_STORE_ENTITY_END = 0x80000155 短消息备份的消息处理结束
E_STORE_ALREADY_WORKING = 0x80000156 消息处在工作态,不能删除
E_STORE_CANCEL= 0x80000157 消息被Cancel
CMPP接口错误码对照表
CMPP_CONNECT_STATUS 
E_CMPP_SUCCESS =0 成功
E_CMPP_CONNECT_MSGSTRUCTURE_ERR = 1 消息结构错
E_CMPP_CONNECT_SPID_ERR=2 非法SP_ID
E_CMPP_CONNECT_SPAUTH_ERR=3 SP认证错
E_CMPP_CONNECT_VERSION_ERR=4 版本太高
E_CMPP_CONNECT_OTHER_ERR=5 其他错误
CMPP_SUBMIT_ACK_STATUS 
E_CMPP_SUBMIT_MSGSTRUCTURE_ERR = 1 消息结构错
E_CMPP_SUBMIT_COMMANDID_ERR=2 命令字错
E_CMPP_SUBMIT_MSGID_ERR=3 消息序号重复
E_CMPP_SUBMIT_MSG_LEN_ERR=4 消息长度错
E_CMPP_SUBMIT_FEECODE_ERR=5 资费代码错
E_CMPP_SUBMIT_EXCEED_MAX_MSG_LEN=6 超过最大信息长
E_CMPP_SUBMIT_SERVICEID_ERR=7 业务代码错
E_CMPP_SUBMIT_FLOWCONTROL_ERR=8 流量控制错
E_CMPP_SUBMIT_FWD_ESTIMATE_ERR =9 前传判断错
E_CMPP_NODE_NUM=10 超过了最大网关前传节点
E_CMPP_SERVICE_NOT_OPEN=11 找不到路由
E_CMPP_PARAMERR=12 定时发送时间或有效时间错
E_CMPP_NORIGHT=13 各种鉴权失败
E_CMPP_SUBMIT_TIME_OUT=14 应答超时
E_CMPP_INVALIDIF=15 接口无效
E_CMPP_SCP_WAITACK_TIME_OUT=16 SCP应答超时
E_CMPP_SUBMIT_ERR=17~255 其他错误

SCP鉴权扣费错误码表
状态码 含义 备注
-1 状态码错误,未定义的状态码 
0 成功 
以前使用的错误代码,仍保留,但不使用 
1 非神州行预付费用户 
2 数据库操作失败 
3 鉴权失败 暂不使用
4 超过最大错误次数 暂不使用
5 移动用户帐户数据异常 PPS状态异常
6 服务没有激活 
7 用户余额不足 
8 超过包月费用上限 暂不使用
9 超过最高欠费额 暂不使用
10 用户已注册该项服务 暂不使用
11 用户没有注册该项服务 暂不使用
12 移动用户已存在 
13 网关向SMC提交短消息失败 
14 未登记的网关 
15 网关登录摘要错误 网关生成摘要与SCP摘要不一致。
16 参数错误 
17 服务器端数据未传完 暂不使用
18 重复发送消息序列号msgid相同的单条计费请求消息 新增加(MNET2.1.D5)

系统错误,后面的几类错误代码无法说明的才用系统错误代码 
20 未知错误 
21 数据库错误 
22 SCP互联失败 
23 数值越界 折扣>100,费率<0等
24 字段超长 字符串字段长度超长
25 无相关数据 在数据库充查询不到数据
26 数据重复 表中已经存在相同关键字的数据

网关检查 
30 未登记的网关 
31 网关登录摘要错误 
32 网关已存在 
33 网关帐户状态异常 网关未激活
34 不支持的摘要算法 目前仅支持MD5

SP检查 
40 未登记的SP 
41 SP帐户状态异常 SP未激活
42 SP无权限 
43 SP帐户已存在 
44 未登记的SP业务类型 
45 SP业务类型数据异常 SP的业务类型数据未激活
46 SP业务类型已存在

手机用户检查 
50 移动用户不存在 不存在此手机号码
51 移动用户状态异常 PPS状态异常
52 梦网用户已存在 
53 梦网用户不存在 
54 梦网用户状态异常 
55 签约信息已存在 
56 签约信息不存在 
57 签约数据异常 用户与SP的签约信息数据未激活等。

业务逻辑检查 
60 余额不足 
61 月消费超额 
62 单笔消费超额 
63 用户拒绝 用户拒绝付费,保留为扩展。
64 短消息编号已存在 网关生成的短消息编号重复
65 对应扣费请求不存在 
66 扣费请求已被确认 收到网关重复的状态报告
67 未定义的计费类型 
68 未定义的编码方式

只MGW需要错误代码,内部使用,不对外。 
200 未定义用户操作代码 
201 未定义用户个性参数

回页首 
东软诺基亚新增错误码分类定义 
1.1 错误码分类定义
错误类别 新增加的错误码取值 新增加的错误码含义详细解释
aaaa n1n1n1n1 
n2n2n2n2 
… … 
mbmbmbmb n1n1n1n1 
n2n2n2n2 
… … 
cccc 0151 等待状态报告超时
cbcbcbcb n1n1n1n1 
n2n2n2n2 
… … 
dbdbdbdb n1n1n1n1 
n2n2n2n2 
… … 
sbsbsbsb n1n1n1n1 
n2n2n2n2 
… … 
ibibibib n1n1n1n1 
n2n2n2n2 
… … 
idididid 0005 DSMP发送队列满(在尝试提交该消息多次后,均得到DSMP返回的DSMP忙类型应答)
0009 计费用户无权限(SP拦截功能。限制本地接入SP向省外转发消息;限制镜像接入SP向主接入SP省份转发消息。)
1240 SMMC校验失败(其他原因被SMWC过滤)
1241 SMMC校验失败(被用户屏蔽 因用户已经设置不接收来自该SP的短信而被过滤)
1242 SMMC校验失败(SMMC返回错误应答,消息内容非法)
1243 SMWC 校验失败(SMWC发现消息内容非法)
1244 SMWC 校验失败(此用户为申请停机状态)
1245 SMWC 校验失败(此用户已欠费停机状态)
1246 SMWC 校验失败(此用户已申请预销号)
1247 SMWC 校验失败(此用户已欠费预销号)
1248 SMWC 校验失败(号码禁用,禁止该用户)
1250 SMWC 校验失败(非在网用户,因用户不在白名单中而被过滤)
1251 SMWC 校验失败(缺乏订购关系,因没有该包月业务订购关系而被过滤)
给SP返回的错误代码值定义(CMPP_SUBMIT_RESP中的结果) 100 同步错误(包序号不连续)
101 尚未正确BIND(没有登录成功,就发送消息)
102 不合法的消息模式(Registered_Delivery填写非法,包月消息不允许群发)
103 不合法的数据编码(Msg_Fmt填写不符合协议规范)
104 不合法的计费类型(FeeType 填写不符合协议规范)
105 不合法的日期格式
106 目标地址数量过多
107 不合法的手机号码
108 不合法的参数
109 无路由
110 定时发送时间过大(超过系统的默认过期时间范围)
112 过期时间非法
128 不合法的计费用户类型
129 包序号越界
130 不合法的ISMG标识
131 不合法的目的网关
132 不合法的状态报告
133 未知 SMSC
134 未知 LOCAL
144 信息费填写非法
145 发送速度过快
146 目的用户重复
147 pk_number值大于pk_total
148 以CMPP3.0协议转发过来的MT消息的目的SP,在本网关配置以CMPP2.0协议接入,非法。
255 系统错误
给SMSC返回的错误代码值定义 无 
给DSMP返回的错误代码值定义 100 手机号码不存在(DSMP推送过来的包月消息中的计费用户所处号段在本网关没有配置)
107 SP类型非法(DSMP推送过来的包月消息中的SP在本网关配置为以2.0协议接入)
113 SP不存在(DSMP推送的包月消息中的SP在本网关没有配置)
9003 业务网关忙(该消息等一段时间在发送给网关)
9004 业务网关缓存满
给省外ISMG返回的错误代码值定义(ibibibib) 100 同步错误(包序号不连续)
101 尚未正确BIND(没有登录成功,就发送消息)
102 不合法的消息模式(Registered_Delivery填写非法)
103 不合法的数据编码(Msg_Fmt填写问题)
104 不合法的计费类型(FeeType 填写问题)
105 不合法的日期格式
106 目标地址数量过
107 不合法的手机号码
108 不合法的参数
109 无路由
110 定时发送时间过大(超过系统的默认过期时间范围)
112 过期时间非法
128 不合法的计费用户类型
129 包序号越界
130 不合法的ISMG标识
131 不合法的目的网关
132 不合法的状态报告
133 未知 SMSC
134 未知 LOCAL
144 信息费非法
145 发送速度过快
146 目的用户重复
147 pk_number值大于pk_total
148 以CMPP3.0协议转发过来的MT消息的目的SP,在本网关配置以CMPP2.0协议接入,非法。
255 系统错误
给SCP返回的错误代码值定义 无

1.2 实现说明
我们会在升级GNS功能和1340~1348号段功能的同时,按照本次提供的错误代码文档
改进错误代码。

1.3 特殊实现
东软诺基亚ISMG为SP提供了实现的API,该API中定义的错误代码有特定的实现,如下:
应答值(十六进制) 含义 备注
0 成功 只针对使用东软API接入的本地ICP 
1 系统错误 
2 不合法的消息长度 
3 不能识别的命令 
4 同步错误 
5 不合法的消息结构 
10 不合法的ICP_ID SP ID填写问题
11 不合法的ICP密码 
12 不合法的绑定类型 
13 已经正确BIND 
14 超过最大允许的连接数 
15 尚未正确BIND 
16 不正确的版本 
20 不合法的消息模式 Message mode填写问题
21 不合法的数据编码 Data coding填写问题
22 不合法的服务类型 Service type填写问题
23 不合法的计费类型 Fee type填写问题
24 不合法的日期格式 
25 目标地址数量过多 
26 短消息过长 
27 不合法的手机号码 
28 不合法的参数 
29 没有目的地址 
2A 没有权限 目的号码、计费号码为禁止号码或者省外号码或者
2B 找不到路由 
2C 内部错误 
2D 信息费过大 Info fee填写问题
2E 定时发送时间太大 
2F 不合法的信息费设置 
30 不合法的源地址 Source address填写问题
31 不合法的计费用户类型 Fee user type填写问题
32 不合法的计费用户 
33 群发目的用户重复 
34 发送队列满 
40 不合法的消息标识 
41 包序号重复 
42 包序号越界 
43 找不到对应的MSGID 
44 超过速度限制 
50 不合法的ISMG标识 
51 不合法的目的网关 
52 不合法的状态报告 
53 不合法的服务ID 
54 不合法的源网关 
55 未知SMSC 
56 未知LOCAL 
57 未知ICP 
58 本网关不负责该计费号码

回页首 
清华深讯新增错误码分类定义 
2.1 错误码分类定义
错误类别 新增加的错误码取值 新增加的错误码含义详细解释
给SP返回的错误代码值定义(CMPP_SUBMIT_RESP中的结果) 11001 消息结构错
11002 命令字错
11003 消息序号重复
11004 消息长度错
11005 资费代码错
11006 超过最大信息长
11007 业务代码错
11008 流量控制错
11009 其他错误
前转错误码定义
(CMPP_FWDRECV_RESP
中的结果) 12001 对方返回的状态为"EXPIRED"
12002 对方返回的状态为"DELETED"
12003 对方返回的状态为"UNDELIV"
12004 对方返回的状态为"UNKNOWN"
12005 对方返回的状态为"REJECTD"
12006 对方返回的状态不正确
12011 对方返回应答结构错
12012 对方返回应答命令字错
12013 对方返回应答系列号错
12014 对方返回应答消息长度错
12015 对方返回应答资费代码错
12016 对方返回应答错超过最大消息长度
12017 对方返回应答服务代码错
12018 对方返回应答流量控制错
12019 对方返回应答前转错
12020 对方返回应答其他错
给SMSC返回的错误代码值定义 13001 底层初始化失败(SMPP)
13002 SMMC接口始化失败
13003 IDMS接口始化失败
13021 读取系统参数失败
13022 读取终端参数失败
13023 读取短信中心信息失败
13031 无指定短信中心信息
13041 无法连接服务器
13042 错误的操作码
13051 尚未建立连接
13052 尚未成功登录
13053 发送消息失败
13054 超时未接收到响应消息
13061 短信中心包长错误
13062 短信中心message_id错(字符中含有NULL)
13063 短信中心状态报告格式错(不含‘:‘)
13071 SMSC返回的Mt Response报错
13072 错误的SMPP命令
13073 此链路无权SMPP命令
13099 未知错误
13200 应答错误码起始值
13265 超过最大提交数
13266 超过最大下发数
13269 创建消息失败
13599 未知应答错误码
13600 状态报告错误码起始值
13999 未知状态报告错误码
给DSMP返回的错误代码值定义
9000: 系统磁盘读写错误
9001: 网络异常
9002: 网络错误
9003: 业务网关忙,业务网关缓存
9004: 业务网关忙,并且业务网关缓冲区满,DSMP缓存,并暂时不要发送消息,等待一段时间重试。
9005: DSMP忙,DSMP缓存
9006: DSMP忙,并且DSMP缓冲区满,业务网关缓存,并暂时不要发送消息,等待一段时间重试。
9007: 业务网关超过限制的流量
9008: DSMP异常,并不可用
9009: 业务网关异常,并不可用
9010: 该业务网关没有权限调用该接口消息
9011: DSMP没有权限发送该接口消息给业务网关
9012: 版本不支持
9013: 消息类型不对,系统不支持
9014: 验证错误,无法解析SOAP和和XML结构、缺少必须存在的字段,或者消息格式不正确
9015: 拒绝消息,服务器无法完成请求的服务
100 : 手机号码不存在
101 : 手机号码错误
102 : 用户停机
103 : 用户欠费
104 : 用户没有使用该业务的权限
105 : 业务代码错误
106 : 服务代码错误
107 : 业务不存在
108 : 该业务暂停服务
109 : 该服务种类不存在
110 : 该服务种类尚未开通
111 : 该业务尚未开通
112 : SP代码错误
113 : SP不存在
114 : SP暂停服务
115 : 用户没有定购该业务
116 : 用户暂停定购该业务
117 : 该业务不能对该用户开放
118: 用户已经订购了该业务
119 : 用户不能取消该业务
120 : 话单格式错误
121 : 没有该类业务
122 : 接收异常
123 : 业务价格为负
124 : 业务价格格式错误
125 : 业务价格超出范围
126 : 该用户不是神州行用户
127 : 该用户没有足够的余额
128 : 补款,冲正失败
给SCP返回的错误代码值定义 15000 状态码错误
15001 CB错误码启始
15002 CB:0001非神州行预付费用户
15003 CB:0002数据库操作失败
15004 CB:0003鉴权失败
15005 CB:0004超过最大错误次数
15006 CB:0005移动用户帐户数据无效
15007 CB:0006服务没有激活
15008 CB:0007用户余额不足
15009 超过包月费用上限
15010 超过最高欠费额
15011 用户已注册该项服务
15012 用户没有注册该项服务
15013 移动用户已存在
15014 GW向SMC提交短消息失败
15015 GW非法
15016 摘要非法
15017 参数错误(SCP)
15018 服务器端数据未传完(SCP)
15019 重复发送msgid相同的单条计费请求
15021 未知错误(SCP)
15022 数据库错误(SCP)
15023 SCP互联失败(SCP)
15024 数值越界(SCP)
15025 字段超长(SCP)
15026 无相关数据(SCP)
15027 数据重复(SCP)
15041 未登记的SP(SCP)
15042 SP帐户状态异常(SCP)
15043 SP无权限(SCP)
15044 SP帐户已存在(SCP)
15045 未登记的SP业务类型(SCP)
15046 SP业务类型数据异常(SCP)
15047 SP业务类型已存在(SCP)
15051 移动用户不存在(SCP)
15052 移动用户状态异常(SCP)
15053 梦网用户已存在(SCP)
15054 梦网用户不存在(SCP)
15055 梦网用户状态异常(SCP)
15056 签约信息已存在(SCP)
15057 签约信息不存在(SCP)
15058 签约数据异常(SCP)
15061 余额不足(SCP)
15062 月消费超额(SCP)
15063 单笔消费超额(SCP)
15064 用户拒绝(SCP)
15065 短消息编号已存在(SCP)
15066 对应扣费请求不存在(SCP)
15067 扣费请求已被确认(SCP)
15068 未定义的计费类型(SCP)
15069 未定义的编码方式(SCP)
15101 CA错误码启始(SCP)
15155 CA:0054超时未接收到响应消息(SCP)
15500 状态码错误(SCP)
15501 CB错误码启始(PP_SCP)
15502 用户帐户数据无效(非神州行预付费用户)
15503 数据库操作失败(SCP)
15504 鉴权失败(SCP)
15505 超过最大错误次数(SCP)
15506 移动用户帐户数据无效(没有激活)
15507 服务没有激活(SCP)
15508 用户余额不足(SCP)
15509 超过包月费用上限(SCP)
15510 超过最高欠费额(SCP)
15511 用户已注册该项服务(SCP)
15512 用户没有注册该项服务(SCP)
15513 移动用户已存在(SCP)
15514 GW向SMC提交短消息失败(SCP)
15515 GW非法(SCP)
15516 摘要非法(SCP)
15517 参数错误(SCP)
15518 服务器端数据未传完(SCP)
15519 重复发送msgid相同的单条计费请求
15521 未知错误(SCP)
15522 数据库错误(SCP)
15523 SCP互联失败(SCP)
15524 数值越界(SCP)
15525 字段超长(SCP)
15526 无相关数据(SCP)
15527 数据重复(SCP)
15541 未登记的SP(SCP)
15542 SP帐户状态异常(SCP)
15543 SP无权限(SCP)
15544 SP帐户已存在(SCP)
15545 未登记的SP业务类型(SCP)
15546 SP业务类型数据异常(SCP)
15547 SP业务类型已存在(SCP)
15551 移动用户不存在(SCP)
15552 移动用户状态异常(SCP)
15553 梦网用户已存在(SCP)
15554 梦网用户不存在(SCP)
15555 梦网用户状态异常(SCP)
15556 签约信息已存在(SCP)
15557 签约信息不存在(SCP)
15558 签约数据异常(SCP)
15561 余额不足(SCP)
15562 月消费超额(SCP)
15563 单笔消费超额(SCP)
15564 用户拒绝(SCP)
15565 短消息编号已存在(SCP)
15566 对应扣费请求不存在(SCP)
15567 扣费请求已被确认(SCP)
15568 未定义的计费类型(SCP)
15569 未定义的编码方式(SCP)
返回给SMMC的错误码 14002 SMMC接口始化失败(SMMC)
14003 IDMS接口始化失败(SMMC)
14021 读取系统参数失败(SMMC)
14022 读取终端参数失败(SMMC)
14023 读取监控中心信息失败(SMMC)
14031 无指定监控中心信息(SMMC)
14041 无法连接服务器(SMMC)
14042 错误的操作码(SMMC)
14051 尚未建立连接(SMMC)
14052 尚未成功登录(SMMC)
14053 发送消息失败(SMMC)
14054 超时未接收到响应消息(SMMC)
14061 监控中心包长错误(SMMC)
14062 监控中心message_id错(字符中含有NULL)
14063 监控中心状态报告格式错(不含‘:‘)
14071 Response报错(SMMC)
14072 错误的SMPP命令(SMMC)
14073 此链路无权SMPP命令(SMMC)
14099 未知错误(SMMC)

回页首 
华为新增错误码分类定义 
3.1 错误码分类定义
错误类别 新增加的错误码取值 新增加的错误码含义详细解释
aaaa 
53 发送消息失败
54 超时未接收到响应消息
75 送SCP鉴权等待应答超时
mbmbmbmb
(收到SMSC的失败应答) 
请参考SMSC的错误码定义

cccc 55 等待状态报告超时

cbcbcbcb
(收到SCP的失败应答) 
请参考SCP错误码定义

dbdbdbdb
(收到DSMP的失败应答) 
请参考DSMP错误码定义

sbsbsbsb
(收到SP的失败应答) 
请参考SP错误码定义

ibibibib
(收到ISMG的失败应答) 
请参考ISMG错误码定义

idididid
(ISMG内部处理失败) 70 网络断连或目的设备关闭接口:与消息要发送的目的网元的连接断连,网关给上一级网元返回此失败状态报告。
71 超过最大节点数:检测到消息途径的网元节点达到了最大值,网关给上一级网关回送失败应答。
72 找不到路由:网关没有消息中指定的路由数据,网关最终返回失败状态报告。
74 送SCP失败:对于预付费用户,网关送SCP失败时,给上一级网元返回失败状态报告。
76 信息安全鉴权失败:网关到SMMC鉴权失败,给上级网元返回失败状态报告。
84 送DSMP重发失败:送DSMP重发后最终还是失败,给上级网元返回失败状态报告。
给SP返回的错误代码值定义(CMPP_SUBMIT_RESP中的结果) 5 资费代码错:提交的消息中的资费代码字段为空或资费代码不是全数字,网关返回此错误。
8 流量控制错:SP提交消息的速度达到了限制值,网关返回此失败错误码。
9 本网关不负责此计费号码:启用SP拦截功能时,若不允许SP向此用户发送消息,网关返回此错误码。
10 Src_ID错:启用SP拦截功能时,此字段填写不是SP自己的SPID值,网关拒绝此消息。
11 Msg_src错:启用SP拦截功能时,此字段的值不是全数字,网关拒绝此类消息。
12 计费地址错:启用SP拦截功能时,SP指定对计费地址计费,但计费地址字段为空或不是合法的手机号,网关拒绝此消息。
13 目的地址错:启用SP拦截功能时,目的地址字段不是合法手机号,网关拒绝此消息。
61 有效时间已经过期
62 定时发送时间已经过期
63 不能识别的FeeType:启用SP拦截功能时,此字段的取值不在规范规定的范围内,网关拒绝此消息。
64 发送服务源地址鉴权失败:SP提交的消息的源地址不在SP所登录帐号的源地址允许列表中,网关拒绝此消息。
65 发送服务目的地址鉴权失败:SP提交的消息的目的地址不在SP所登录帐号的目的地址允许列表中,网关拒绝此消息。
66 接收服务源地址鉴权失败:SP提交的消息被路由到目的帐号,但源地址不在目的帐号的源地址允许列表中,网关拒绝此消息。
67 接收服务目的地址鉴权失败:SP提交的消息被路由到目的帐号,但目的地址不在目的帐号的目的地址允许列表中,网关拒绝此消息。
68 用户鉴权失败:SP提交的消息中,源地址或目的地址被网关的用户鉴权列表过滤了,网关返回此失败错误,跟69类似。
69 此用户为黑名单用户:SP提交的消息中,源地址或目的地址在网关的黑名单列表中,网关拒绝此消息。
77 超过最大Submit提交数:SP提交消息的总数超过了运营商为其规定的限制值,网关拒绝此消息。
78 SPID 为空:SP提交的消息中,SPID字段填写为空,网关根据配置拒绝此消息。
79 业务类型为空:SP提交的消息中,业务类型字段填写为空,网关根据配置拒绝此消息。
给SMSC返回的错误代码值定义 8 流量控制错:SP提交消息的速度达到了限制值,网关返回此失败错误码。
64 发送服务源地址鉴权失败:SP提交的消息的源地址不在SP所登录帐号的源地址允许列表中,网关拒绝此消息。
65 发送服务目的地址鉴权失败:SP提交的消息的目的地址不在SP所登录帐号的目的地址允许列表中,网关拒绝此消息。
66 接收服务源地址鉴权失败:SP提交的消息被路由到目的帐号,但源地址不在目的帐号的源地址允许列表中,网关拒绝此消息。
67 接收服务目的地址鉴权失败:SP提交的消息被路由到目的帐号,但目的地址不在目的帐号的目的地址允许列表中,网关拒绝此消息。
68 用户鉴权失败:SP提交的消息中,源地址或目的地址被网关的用户鉴权列表过滤了,网关返回此失败错误,跟69类似。
69 此用户为黑名单用户:SP提交的消息中,源地址或目的地址在网关的黑名单列表中,网关拒绝此消息。
给DSMP返回的错误代码值定义 
网关回DSMP都是成功响应

给SCP返回的错误代码值定义 
SCP不会发送请求到网关

回页首 
亚信新增错误码分类定义 
4.1 错误码分类定义
错误类别 新增加的错误码取值 新增加的错误码含义详细解释
aaaa 0191 超过MT的下发等待时间,发送smpp_submit失败

mbmbmbmb 0190 放入SMSProxy模块QUEUE2队列错误
0192 错误的SUBMIT_RESP返回代码,一条短信三次提交submit_resp的错误代码都不相同。
0193 Submit_resp 信息处理失败

cccc 0199 等待短信中心状态报告超时

… … 
cbcbcbcb n1n1n1n1 网关是直接把SCP返回的状态值记录在CB:上,没有自定义错误值
n2n2n2n2 亚信此类没有自定义错误
… … 
dbdbdbdb 网关是直接把DSMP返回的值记录在DB:上,没有自定义错误值
亚信此类没有自定义错误
… … 
sbsbsbsb SA:0102 SP群发MT,网关是先返回正确response再进行目的号码
检查和路由查询,如果失败,则在MT话单中写下该状态

n2n2n2n2 
… … 
ibibibib 100 信息格式错,一般指GB转Unicode失败
101 计费类型(Fee_Type)错误
102 有效时间(Valid_Time)错误
103 At_Time错误
106 Msg_Src错误
110 用户类型(User_Type)错误
111 队列满错误,包括保存本地MT和前转MT失败
113 送SCP失败 
118 用户鉴权失败,用户状态为开机
119 用户鉴权失败,用户状态为单向停机
120 用户鉴权失败,用户状态为停机
121 用户鉴权失败,用户状态为预消号
122 用户鉴权失败,用户状态为消号
123 用户鉴权失败,用户状态为过户
124 用户鉴权失败,用户状态为改号
注:用户状态跟各省的BOSS定义方式相关。
idididid n1n1n1n1 
n2n2n2n2 
… … 
给SP返回的错误代码值定义(CMPP_SUBMIT_RESP中的结果) 100 信息格式错,一般指GB转Unicode失败
101 计费类型(Fee_Type)错误
102 有效时间(Valid_Time)错误
103 At_Time错误
106 Msg_Src错误
110 用户类型(User_Type)错误
111 队列满错误,包括保存本地MT和前转MT失败
113 送SCP失败 
116 SP业务代码或资费检查失败
118 用户鉴权失败,用户状态为开机
119 用户鉴权失败,用户状态为单向停机
120 用户鉴权失败,用户状态为停机
121 用户鉴权失败,用户状态为预消号
122 用户鉴权失败,用户状态为消号
123 用户鉴权失败,用户状态为过户
124 用户鉴权失败,用户状态为改号
注:用户状态跟各省的BOSS定义方式相关。
给SMSC返回的错误代码值定义 0x08 返回给SMSC表明网关系统忙
0x0A 返回给SMSC表明无效源地址
0x0B 返回给SMSC表明无效目的地
0x0C 返回给SMSC表明MO格式错
给DSMP返回的错误代码值定义 DA:aaaa 如果大于100,统一说明为soap协议解析有问题

给SCP返回的错误代码值定义

回页首 
CMPP3.0 状态报告出现的错误代码 
CB:0001 非神州行预付费用户 
CB:0005 PPS用户状态异常(包括未头次使用、储值卡被封锁、储值卡进入保留期、储值卡挂失) 
CB:0007 用户余额不足
CA:0054 发送消息失败
CB:0001 非神州行预付费用户(用户已经被销号)
CB:0002 数据库操作失败
CB:0053 梦网用户不存在
CB:0005 移动用户帐户数据异常
CB:0007 用户余额不足 
DELIVRD 消息发送成功 
EXPIRED 表示因为用户长时间关机或者不在服务区等导致的短信息超时没有递交到用户手机上 
REJECTD 消息因为某些原因被拒绝 
UNDELIV 表示全球通用户因为状态不正确如处于停机、挂起等状态而导致的用户无法享受服务 
MC:xxxx 系统未从短信中心接收到状态报告 
MC:xxxx 没有从SMSC处接收到状态报告时的状态报告 
MI:xxxx 同“EXPIRED” 
MN:xxxx 同“REJECTD” 
MB:0066 短信中心回的,超作最大发送次数 可能是手机满了。 
MK:0015 可能是手机满了。 
MK:xxxx 同“UNDELIV”
网关返回大量的DA:0054错误
原因分析:
出现这个问题是由于网关发送鉴权批价请求到MISC时,MISC不给响应或者网关和MISC连接阻塞引起;
DB:0100 手机号码不存在 
DB:0101 手机号码错误 
DB:0102 用户停机 用户冲值后,要主动上行一条信息到SP,才能激活用户的短信接收服务
DB:0103 用户欠费 
DB:0104 用户没有使用该业务的权限 
DB:0105 业务代码错误 
DB:0106 服务代码错误 
DB:0107 业务不存在 
DB:0108 该业务暂停服务 
DB:0109 该服务种类不存在 
DB:0110 该服务种类尚未开通 
DB:0111 该业务尚未开通 
DB:0112 SP代码错误 
DB:0113 SP不存在 
DB:0114 SP暂停服务 
DB:0115 用户没有定购该业务 
DB:0116 用户暂停定购该业务 
DB:0117 该业务不能对该用户开放 
DB:0118 用户已经订购了该业务 
DB:0119 用户不能取消该业务 
DB:0120 话单格式错误 
DB:0121 没有该类业务 
DB:0122 接收异常 
DB:0123 业务价格为负 
DB:0124 业务价格格式错误 
DB:0125 业务价格超出范围 
DB:0126 该用户不是神州行用户 
DB:0127 该用户没有足够的余额 
DB:0128 补款,冲正失败 
DB:0129 用户已经是梦网用户 
DB:0130 用户在BOSS中没有相关用户数据 
DB:0131 BOSS系统数据同步出错 
DB:0132 相关信息不存在 
DB:0133 用户数据同步出错 
DB:0134 SP数据同步出错 
DB:0135 业务数据同步出错 
DB:0136 用户密码错误 
DB:0137 伪码信息错误 
DB:0138 用户相关信息不存在 
DB:0140 用户未点播该业务 
DB:9001 网络异常 
DB:9007 业务网关超过限制的流量

回页首 
北京移动直接返回200号错误是啥意思? 
由于今天下午到神州行鉴权响应回复比较慢(20和30网关共用一套scp鉴权系统和后台系统),引起了smsAgent队列有些积压,当某些SP刚好下发的消息经过这个smsAgent进行下发时,会出现较大的延时,或是200错误:发送MT到smsAgent失败。 
回页首 
业务上常见的一些错误代码。 
>>MI:0000 1721
表示因为用户长时间关机或者不在服务区等导致的短信息超时没有递交到用户手机上
>>CB:0001 1065
非神州行预付费用户
>>CB:0053 855
神州行帐户销号停机等
>>CB:0005 557
PPS用户状态异常(包括未头次使用、储值卡被封锁、储值卡进入保留期、储值卡挂失)
>>CB:0007 405
用户余额不足
>>MK:0000 161
表示全球通用户因为状态不正确如处于停机、挂起等状态而导致的用户无法享受服务
>>MC:0015 112
系统未从短信中心接收到状态报告

回页首 
各个地区SSO系统的URL 
‘sso.bj.monternet.com‘,‘北京‘
‘sso.ha.monternet.com‘,‘河南‘
‘sso.zj.monternet.com‘,‘浙江‘
‘sso.js.monternet.com‘,‘江苏‘
‘sso.fj.monternet.com‘,‘福建‘
‘sso.gd.monternet.com‘,‘广东‘
‘sso.sd.monternet.com‘,‘山东‘
‘sso.sh.monternet.com‘,‘上海‘
‘sso.sc.monternet.com‘,‘四川‘
‘sso.hb.monternet.com‘,‘湖北‘
‘sso.ln.monternet.com‘,‘辽宁‘
‘sso.cq.monternet.com‘,‘重庆‘
‘sso.yn.monternet.com‘,‘云南‘
‘sso.ah.monternet.com‘,‘安徽‘
‘sso.hn.monternet.com‘,‘湖南‘
‘sso.he.monternet.com‘,‘河北‘
‘sso.nm.monternet.com‘,‘内蒙古‘
‘sso.gz.monternet.com‘,‘贵州‘
‘sso.sn.monternet.com‘,‘陕西‘
‘sso.tj.monternet.com‘,‘天津‘
‘sso.gx.monternet.com‘,‘广西‘
‘sso.xj.monternet.com‘,‘新疆‘
‘sso.jx.monternet.com‘,‘江西‘
‘sso.gs.monternet.com‘,‘甘肃‘
‘sso.hi.monternet.com‘,‘海南‘
‘sso.hl.monternet.com‘,‘黑龙江‘
‘sso.jl.monternet.com‘,‘吉林‘
‘sso.nx.monternet.com‘,‘宁夏‘
‘sso.qh.monternet.com‘,‘青海‘
‘sso.sx.monternet.com‘,‘山西‘
‘sso.xz.monternet.com‘,‘西藏‘

回页首 
CB:0047错误是什么原因? 
CB:0047 用户帐户有误,预付费用户(智能网即神州行,大众卡等)扣费不成功。 
回页首 
MB:0066的错误以及原因分析 
1. 短消息中心发送短消息被显著延迟(具体原因不详)。延迟时间从2小时、4小时到6小时不等。
2. 短消息中心存储短信息的能力以及等待时间都强于网关。
3. 虽然短信息下发延迟,但是都基本已经发送给了客户。但是在短信息中心返回状态报告时,网关的原始发送信息已经找不到(因为网关已经提前返回了其他错误的状态报告MB:0066)。
4. 计费这边只要看到错误单,就算不成功发送。
5. 如果要说明用户的确收到了短信息,但是仅仅是因为短信息中心的问题,那么需要提交手机号码等相关的一系列证明。处理起来非常的棘手。

回页首 
发送00000,MISC会如何处理? 
系统的Provision接口会收到多个退定Provision动作。 
回页首 
定购和退定怎么老是不成功? 
MISC系统对XML文件有比较严格的显示。
1) 请将XML文件中无关的\r\n\t等字符全部去掉。
2) 请不要使用<...></...>表示空,而要使用<..../>表示空。

回页首 
好像消除不了多余的空行。 
JSP/ASP都会产生多余的空行,一般是由开头部分的声明引起的。

ASP可以使用Response.Write顶头写来解决这个问题。
<%Response.Write(".......

JSP可能要使用Servlet作为替代,否则由于开头的<@page声明,将总是两行。 
回页首 
播测表是不是要测试两遍? 
是的,第一次是正常测试,然后全部退订再测试一遍。 
回页首 
刚才我们试了,发00000后,它没提示取消的是哪个业务?是不是一交全部取消了? 
是的,全部取消。 
回页首 
网关返回大量的DA:0054错误 
出现这个问题是由于网关发送鉴权批价请求到MISC时,MISC不给响应或者网关和MISC连接阻塞引起;
处理办法:
请联系移动网关人员解决;

回页首 
定购业务的那条短信提醒是MISC直接发的吧,我们的流程里面不需要另外加了吧。 
应该如此。 
回页首 
填写取消定购的XML结构需要注意哪些问题? 
SendAddess表示是SP这方。
Type应该是400
ID应该是SP的企业代码。
DestAddress表示是MISC这方。
Type应该是0
ID应该是MISC的号码。这个可以通过对方的同步信息里面的ID来确定。 
回页首 
用户的定制短信息会MO上来吗? 
首次定购的时候,定购的MO会流转成PROV的同步,所以首次定购不会有MO上行到SP的短信网关 
回页首 
link_id的有效期一般是多少? 
一般是3-5分钟。具体可以通过测试来检查。 
回页首 
下发帮助信息怎么收不到啊? 
1) 首先要检查service_id是否为帮助类别。
2) 检查费率是否为免费模式。
3) 不要携带link_id。只有点播才使用link_id。
4) 检查下发号码是否为测试手机号码。
5) 检查网关是否应答,应答是否有错误。
6) 设置报告标志,看看具体的原因。
7) 检查企业代码是否为正确的测试代码。
8) 检查下行src_id是否正确。
9) 如果以上都没有问题,则需要寻求卓望工程师的协助。 
回页首 
什么是全量业务? 
全量就是指在割接前,SP所有的用户业务定购列表。 
回页首 
什么是增量业务? 
增量就是从全量业务提交开始到正式割接之前的用户业务增加记录。 
回页首 
请问一下,定制的业务短信提醒如果有几条的话怎么办呢?我们这边还可以加别的定制流程和提醒吗? 
对于定制业务,下行的MT是有一个上限的,其上限值在业务申请中可以体现 。 
回页首 
ACTIONREASONID这个这段是做什么的呀? 
1:用户发起行为;2:Admin & 1860发起行为;3:Boss停机;4:Boss开机;5:Boss过户;6:Boss销号;7:Boss改号;8:扣费失败导致的服务取消;9:其他。 
回页首 
ActionID是什么意思? 
1 > 定购
2 > 退定
3 > 激活
4 > 暂停 
回页首 
现在MT和MO都有些偏慢!怎么回事情? 
的确目前网关的还不是十分稳定。一般从下午5点开始到晚上7点都会出现一个堵塞的时刻。这个不是SP系统的问题。 
回页首 
link_id怎么用? 
link_id仅在点播的时候有用。包括手机点播,或者SSo点播。
手机点播的时候。MO里面有一个link_id,下发的时候一定要带上。 
回页首 
点播业务要注意哪些问题? 
点播业务要注意MT的信息的Service_id,Link_id要与上行MO的保持一致。
另外,费率要填写正确了。否则可能会导致下发失败。 
回页首 
定购关系的时间,有些用户是我们的签约用户没有定购时间,就用今天的时间可以吗? 
这个我得跟计费的确认一下,理论是这肯定是有问题的,今天一天有这么人订购你们的业务么,不知道移动什么怎么看这个问题。建议使用随机函数生成时间,否则一天过多的定购会引起移动的注意。 
回页首 
能帮我把917410SPOA上的点播业务"短信邮政贺卡"里的点播指令HK(模糊匹配)到034101(精确匹配),改成(模糊匹配)到034101(精确匹配)吗,这样我的问题就解决了(不好意思,是我们业务输理时填错了) 
对指令是可以进行小范围的修改的,但对资费,业务代码,业务类型等修改起来将会十分复杂。请尽量不要出现类似的错误。 
回页首 
SOAP业务管理>>短信业务管理>>业务详情>>业务处理地址怎么改阿,我怎么都改不了 
先在短信合作申请里面点接受,然后再业务详情里面最下面点修改。 
回页首 
中午要交现网业务测试表,那里面是填写正式服务代码呢还是测试服务代码? 
测试的。 
回页首 
文件名格式:qdz+SP特符号+时间.txt,例如qdz335520041020.txt 
内容格式要求:手机号码 + “,” + 业务代码 + “,” + 定购时间
比如:
13912345678,XWDB,2003-02-03 12:30:20
13987654321,TPLS,2004-01-30 18:23:04 
回页首 
为什么收不到Provision数据包?! 
1. 检查Provision申报的业务处理地址和实际的程序处理地址是否完全一致。
2. 检查处理程序所在的服务器是否有Firewall限制。
3. 检查手机是否为测试注册手机,非本地测试手机是无法进行测试的。
4. 检查手机的操作指令是否正确。
5. 检查日志文件,看看是否有accepted socket记录。以及IP地址。
6. 检查自己的程序是否有问题。 
回页首 
填写的内容都是正确的,为什么手机收到是乱码? 
MT为乱码一般要检查如下问题:
1. 数据库编码和发送程序之间是否存在转码问题。
2. Submit数据包的msg_fmt或data_coding是否设置错误。
3. tp_pid和tp_udhi必须是0。特别是tp_udhi,很多手机会解析这个数据,导致解析错误。 
回页首 
测试用的SIM卡有什么要求吗? 
必须是本地全球通的SIM卡,千万不要用神州行的进行测试。否则将出现无法上行等奇怪现象。 
回页首 
提交全量定购关系,是只发注册用户的,还是以前退订的也发? 
全量定购只需要还处于定购状态的用户资料。 
回页首 
订购关系样例! 
服务代码,手机号,业务代码,时间
如:1234,13800000001,-XWDZ,2004-10-12 08:30:20

回页首 
时间字段是:2004-11-12 12:22:12.234 有效吗? 
无效 
回页首 
反向定购的XML样例!请各位SP参考! 
<?xml version=‘1.0‘ encoding=‘UTF-8‘ ?>
<SOAP-ENV:Envelope 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
xmlns:xsd="http://www.w3.org/2001/XMLSchema
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/
xmlns="http://www.monternet.com/dsmp/schemas/">
<SOAP-ENV:Header>
<TransactionID xmlns="http://www.monternet.com/dsmp/schemas/" xsi:type="xsd:string">9170220011111</TransactionID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<UnSubscribeServiceReq xmlns="http://www.monternet.com/dsmp/schemas/">
<Version>1.5.0</Version>
<MsgType>UnSubscribeServiceReq</MsgType>
<Send_Address>
<DeviceType>400</DeviceType>
<DeviceID>XXXXXX</DeviceID> <!--填写自己的企业代码-->
</Send_Address>
<Dest_Address>
<DeviceType>0</DeviceType>
<DeviceID>0012</DeviceID> <!--湖北MISC ID-->
</Dest_Address>
<FeeUser_ID>
<UserIDType>1</UserIDType>
<MSISDN>xxxxxxxxxxx</MSISDN><!--填写手机号码-->
<PseudoCode />
</FeeUser_ID>
<DestUser_ID>
<UserIDType>1</UserIDType>
<MSISDN>xxxxxxxxxxx</MSISDN><!--填写一样的手机号码-->
<PseudoCode />
</DestUser_ID>
<Service_ID>
<ServiceIDType>1</ServiceIDType>
<SPID>917011</SPID>
<SPServiceID>-KXSK</SPServiceID>
<AccessNo />
<FeatureStr />
</Service_ID>
</UnSubscribeServiceReq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

回页首 
SP可以定期得到MISC的定购清单吗? 
在数据业务中心登记后,湖北MISC可以在每月10,20号主动将加密(解密密码为登陆密码)的定购关系清单FTP上载登记FTP服务器,并通过邮箱通知到达.
登记内容包括:企业代码,ftp服务器地址,端口号,登陆用户名,登陆密码,邮箱地址。 
回页首 
割接完后做啥?! 
如果有SSO业务,把SSO业务测试做完。
接着做“导入成功率”测试。 
回页首 
SSO点播注意哪些问题? 
1. 注意Link_ID要带到Submit包里面。
2. 注意计费方式要使用第三方付费方式。 
回页首 
站点SSO怎么有两个link_ID? 
是的,如果你向两个手机发送,就有两个link_id,你要拆开一个个发送。 
回页首 
反向取消出现122错误是什么原因? 
一种是你们的定购数据没做进去,定购失败。另外一种是格式错误引起的。 建议下载DSMP常见错误表来核对Provision操作中的各种错误。
对于反向取消SP端请求地址需要对应的MISC做相关关联登记,如未登记,也会有122错误应答或者9017错误应答. 
回页首 
如果发00000,misc会送几条短信到我们系统,tranctionid是否一致 
有变化。 
回页首 
各位我想问一下,填写的短信提醒格式里面的企业ID和服务代码是填公司正式的还填这次分配的测试的号码啊 
填正式的。 
回页首 
反向退定的时候,同一个手机会出现不同的情况,115错误,122错误,110错误等等,有时候又能成功,怎么回事情啊! 
115可能是一个手机号反复取消造成的,第一次取消成功后,如不再次订购,第二次重复取消就会有115错,122,110造成原因很多,得具体查,不过多半是反向取消包的格式有问题 
回页首 
MISC系统的业务代码区分大小写吗? 
业务代码区分大小写。 
回页首 
定制成功,但是我们(03414)给用户下发的业务短信回来的状态报告为:[REJECTD] 
1. 检查service_id的大小写,以及费率是否正确。 
2. link_id千万不要带。不要填写任何数值。 
回页首 
是不是只有报上的手机才可以测试呀? 
是的。 
回页首 
现在MISC发包月话单是不是还按原来的处理方式。如当月内超过72小时发话单,当月内二次定制发话单 
对,还是这样! 
回页首 
假如我们有个点播类按条收费的业务叫姓名玄机!费用是1元/条!用户发姓名上来之后,我们会下行5条,这个是MISC收一元钱,还是收5元钱? 
1块!
须注意,在首条下行时,需要将PK_TOTAL值与PK_NUMBER值一致,否则,这1块钱可能也收不到了. 
回页首 
对于用户发送了错误的定制代码,但是我公司没有免费的下行通道,如何把提示信息发给用户啊? 
申请一个空模糊匹配到根接入号的免费点播就行!申请这样一个免费点播业务,用户发送错误的指令就会匹配到这个业务上。
或者使用手机发送,或者申请企业通道。 
回页首 
linkID编码方式如何? 
LinkID:20位字符串,该字段的值由MISC产生,编码格式为4位MISCID+12位时间+4位序列号。用于点播类业务中MT与MO消息的匹配。
回页首 
什么是包月点播业务? 
比如有一个业务,是给你免费定制的。 但是定制后发一条信息给用户,就收用户0.1元。单条合计最高收费不得高于包月申请的费用。 
回页首 
DB:104是什么错? 
好像是没有link_id。 
回页首 
中国移动通信CMPP2.0错误码整改方案 
前言
根据网上业务开放的需要,研发中心对CMPP传递的错误代码进行了进一步的扩充,以便能够更好地了解网络上产生错误的原因,该文件作为CMPP2.0的补充规定。
该文件的主要起草人:党京、孙若雯

一、目的
为了移动梦网短信业务的顺利开展,针对ISMG、SCP、SMSC这些网元产生的响应消息中的错误码和ISMG产生的状态报告中的状态码进行一番整改。
二、整改方案
1、ISMG向SCP发送计费请求,此时有两种出错情况:
(1) 因为发送失败、网络原因、SCP超时等原因造成的ISMG未接收到SCP响应消息,ISMG生成状态报告,状态报告中的stat字段取值为“CA:xxxx”,其中xxxx为ISMG认定的错误原因代码,其长度为4位,不足4位在前面补0,具体值参见附录中对xxxx的说明;
(2) 接收到SCP的响应消息表明计费失败,ISMG生成状态报告,状态报告中的stat字段取值为“CB:yyyy”,其中yyyy为SCP返回给ISMG的错误码,其长度为4位,不足4位在前面补0,具体值参见附录中对yyyy的说明。
2、ISMG向SMSC发送短信时,此时有两种出错情况:
(1) 因为发送失败、网络原因、SMSC超时等原因造成的ISMG未接收到SMSC响应消息,ISMG生成状态报告,状态报告中的stat字段取值为“MA:xxxx”,其中xxxx为ISMG认定的错误原因代码,其长度为4位,不足4位在前面补0,具体值参见附录中对xxxx的说明;
(2) 接收到SMSC的响应消息表明SMSC处理消息失败,ISMG生成状态报告,状态报告中的stat字段取值为“MB:zzzz”,其中zzzz为SMSC返回给ISMG的错误码,其长度为4位,不足4位在前面补0,具体值参加附录中对zzzz的说明。
3、目前CMPP2.0中定义了响应消息中的10个返回码,其中0表示成功,1-9分别表示各种错误类型,各厂家在返回错误码时应尽可能向这9个错误码靠拢,当然,因为设计的原因或者查错的方便,厂家可以在规定的厂家自定义错误码空间中定义自己的错误码,但是,定义错误码时不允许存在类似与“其它错误”或者“系统错误”这类含义模糊的情况,即各厂家能够对自己返回的每一个错误码给出明确的含义解释,以利于错误发生时的定位工作。0-99为CMPP协议保留的错误码空间,请各厂家在预留的错误码空间范围:100-199内自行定义,并提供详细的编码解释列表。
4、SCP厂家返回错误码一律按照附录中yyyy值,该值是从《移动梦网短信业务信令流程规范(V1.0)》中摘出来的。
5、SMSC厂家返回错误码一律按照附录中zzzz值,该值是从《短消息中心设备技术接口规范(V1.2)》中摘出来的。
6、ISMG上产生的话单的“短信息发送状态”字段有所修改,该字段原来的值如下表:
SMO SP对网关的应答信息
SMO-F 网关1对网关2的状态报告代码转换成数字
SMT 短消息中心反馈的状态报告代码转换成数字
SMA 填空
SMAO 填空
SMAO-F 填空
SMT-F 网关2向网关1回送的状态报告代码转换成数字
SMA-F 填空
SMC 网关成功生成话单的代码
SMC-F 网关2返回的状态代码转换成数字

修改后的该字段的值如下表:
SMO SP对网关的应答信息
SMO-F 网关1对网关2的状态报告代码转换成数字
SMT 短消息中心反馈的状态报告代码转换成数字
SMA 异常情况下当该网关产生的状态报告中的stat字段为以下四种类型时:1、CA:xxxx,在话单中记录值1000+xxxx;2、CB:yyyy,在话单中记录值2000+yyyy;3、MA:xxxx,在话单中记录值3000+xxxx;4、MB:zzzz,在话单中记录值4000+zzzz;
SMAO 填空
SMAO-F 填空
SMT-F 网关2向网关1回送的状态报告代码转换成数字,当异常情况状态报告中的stat字段存在四种类型时:1、CA:xxxx,在话单中记录值1000+xxxx;2、CB:yyyy,在话单中记录值2000+yyyy;3、MA:xxxx,在话单中记录值3000+xxxx;4、MB:zzzz,在话单中记录值4000+zzzz;
SMA-F 填空
SMC 网关成功生成话单的代码,全球通用户不变,神州行用户根据错误类型分为:1、CA:xxxx,在话单中记录值1000+xxxx;2、CB:yyyy,在话单中记录值2000+yyyy;
SMC-F 网关2返回的状态代码转换成数字,全球通用户不变,神州行用户根据错误类型分为:1、CA:xxxx,在话单中记录值1000+xxxx;2、CB:yyyy,在话单中记录值2000+yyyy;

7、目的ISMG在一条短信处理流程中,应该生成一个状态报告而且只能生成一个状态报告,即所生成的状态报告应该表明短信的最终状态,在短信处理的中间状态不应该有状态报告产生。
8、所有在上述整改方案中未涉及的情况仍旧按照以前的业务流程规范执行。
三、附录
1、xxxx的定义:
xxxx的值 含义
0051 尚未建立连接
0052 尚未成功登录
0053 发送消息失败
0054 超时未接收到响应消息
0100-0499 厂家自定义的错误码
其它 保留未用

2、yyyy的定义
yyyy的值 含义
0001 非神州行预付费用户
0002 数据库操作失败
0003 鉴权失败
0004 超过最大错误次数
0005 移动用户帐户数据异常
0006 服务没有激活
0007 用户余额不足
0008 超过包月费用上限
0009 超过最高欠费额
0010 用户已注册该项服务
0011 用户没有注册该项服务
0014 未登记的网关
0015 网关登录摘要错误
0016 参数错误
0017 服务器端数据未传完
0018 重复发送消息序列号msgid相同的计费请求消息
0020 未知错误
0021 数据库错误
0022 SCP互联失败
0023 数值越界
0024 字段超长
0025 无相关数据
0026 数据重复
0040 未登记的SP
0041 SP帐户状态异常
0042 SP无权限
0043 SP帐户已存在
0044 未登记的SP业务类型
0045 SP业务类型数据异常
0046 SP业务类型已存在
0052 梦网用户已存在
0053 梦网用户不存在
0054 梦网用户状态异常
0055 签约信息已存在
0056 签约信息不存在
0057 签约数据异常
0061 月消费超额
0062 单笔消费超额
0063 用户拒绝
0064 短消息编号已存在
0065 对应扣费请求不存在
0066 扣费请求已被确认
0067 未定义的计费类型
0068 未定义的编码方式
0100-0499 厂家自定义的错误码
其它 保留未用

3、zzzz的定义
zzzz的值(4位,不足4位前面补0) 含义
0X00000001 – 0X0000000F 保留给SMSC厂商定义错误
0X00000010 消息长度错误
0X00000011 命令长度错误
0X00000012 消息ID无效
0X00000013 没有执行此命令的权限
0X00000014 – 0X0000001F 保留
0X00000020 无效的SYSTEMID
0X00000021 无效的密码
0X00000022 无效的SYSTEMTYPE
0X00000023 – 0X0000003F 保留
0X00000040 地址错误
0X00000041 超过最大提交数
0X00000042 超过最大下发数
0X00000043 无效的用户
0X00000044 无效的数据格式
0X00000045 创建消息失败
0X00000046 无效的短消息ID
0X00000047 数据库失败
0X00000048 取消消息失败
0X00000049 短消息状态错误
0X0000004A 替换消息失败
0X0000004B 替换消息源地址错误
0X0000004C – 0X0000005F 保留
0X00000060 无效的源地址TON
0X00000061 无效的源地址NPI
0X00000062 源地址错误
0X00000063 无效的目的地址TON
0X00000064 无效的目的地址NPI
0X00000065 目的地址错误
0X00000066 无效的定时时间
0X00000067 无效的超时时间
0X00000068 无效的ESM_CALSS
0X00000069 无效的UDLEN
0X0000006A 无效的PRI
0X0000006B 无效的Registered_delivery_flag
0X0000006C 无效的Replace_if_present_flag
0X0000006D – 0X0000007F 保留
0X00000080 指定用户已经存在
0X00000081 创建用户失败
0X00000082 用户ID错误
0X00000083 指定用户不存在
0X00000084 – 0X0000008F 保留
0X00000090 – 0X00000FFF 保留给SMSC厂商定义错误
其他 保留

4、SP常见的错误情况
(1) 状态报告stat为CB:0005:表示神州行用户因为状态不正确如处于停机、挂起等状态而导致的用户无法享受服务;
(2) 状态报告stat为CB:0007:表示神州行用户因为余额不足而导致用户无法享受服务;
(3) 状态报告stat为EXPIRED:表示因为用户长时间关机或者不在服务区等导致的短信息超时没有递交到用户手机上;
(4) 状态报告stat为UNDELIVERABLE:表示全球通用户因为状态不正确如处于停机、挂起等状态而导致的用户无法享受服务。

注:原测试报告中状态报告为REJECTED的情况现在大部分对应到CB:0005和CB:0007这两种情况。

回页首 
常用错误代码一览表 
在HTTP通信时的状态码请参见HTTP/1.1协议中规定的状态码值,不包含在本规范的返回值统一定义中。
1. 亚信短信网关的SP开发中错误代码对照表

1 非法数据包
4 非法短信长度
5 非法资费代码(FeeCode)
6 短信长度超长
7 非法业务类型(ServiceId)
8 短信发送速度太快
9 短信前转失败
10 非法源号码(SrcTermId)
11 非法ICP编号
12 非法计费号码(FeeTermID)
13 非法目的号码(DestTermId)
27 在API维护的队列中的包超时
28 API发送数据包失败
29 调用API传进去的参数出错
100 非法信息格式(MsgFormat)
101 非法资费类别(FeeType)
102 非法存活有效期(ValidTime)
103 非法定时发送时间(AtTime)
104 不能打开目标号码文件(DestTermIdFile)
105 不能打开短信内容文件(MsgFile)
106 非法短信(MsgContent)
107 连接短信网关失败
108 登录失败
109 接收结果数据包失败
110 非法计费用户类型(FeeUserType)必须是0-3(数字)
111 发送队列满
112 超出系统限制
113 神州行手机号码扣费失败
114 无法通过短信安全检查
115 群发目的号码个数错误
116 SP业务鉴权失败
117 用户手机号码鉴权失败

2. 100-999为业务网关和DSMP之间的接口消息中的错误代码,如下
100 手机号码不存在
101 手机号码错误
102 用户停机
103 用户欠费
104 用户没有使用该业务的权限
105 业务代码错误
106 服务代码错误
107 业务不存在
108 该业务暂停服务
109 该服务种类不存在
110 该服务种类尚未开通
111 该业务尚未开通
112 SP代码错误
113 SP不存在
114 SP暂停服务
115 用户没有定购该业务
116 用户暂停定购该业务
117 该业务不能对该用户开放
118 用户已经订购了该业务
119 用户不能取消该业务
120 话单格式错误
121 没有该类业务
122 接收异常
123 业务价格为负
124 业务价格格式错误
125 业务价格超出范围
126 该用户不是神州行用户
127 该用户没有足够的余额
128 补款,冲正失败
129 用户已经是梦网用户
130 用户在BOSS中没有相关用户数据
131 BOSS系统数据同步出错
132 相关信息不存在
133 用户数据同步出错
134 SP数据同步出错
135 业务数据同步出错
136 用户密码错误
137 伪码信息错误
138 用户相关信息不存在

3. 为业务网关和SCP之间的接口消息中的错误代码,如下
0 执行成功
1 移动用户帐户数据无效(非神州行预付费用户)
2 数据库操作失败
3 鉴权失败
4 超过最大错误次数
5 移动用户帐户数据无效(没有激活)
6 服务没有激活
7 用户余额不足
8 超过包月费用上限
9 超过最高欠费额
10 用户已注册该项服务。
11 用户没有注册该项服务。
12 移动用户已存在
13 GW向SMC提交短消息失败
14 GW非法
15 摘要非法
16 参数错误
17 服务器端数据未传完

4. 4000-4999为DSMP与SP之间的接口消息中的错误代码
4000 无效的msgtype
4001 无效的action_id;
4002 无效的action_reasonid;
4003 无效的SP ID
4004 无效的serviceID
4005 无效的pseudocode
4006 无效的accessmode
4007 MISC同步开通服务,但SP端已存在订购关系,且状态为开通
4008 MISC同步开通服务,且SP端不存在订购关系,但开通服务失败
4009 MISC同步开通服务,但SP端已存在订购关系, 且状态为暂停
4010 MISC同步停止服务, 且SP端存在订购关系, 但取消服务失败
4011 MISC同步停止服务, 但SP端不存在订购关系
4012 MISC同步暂停服务, 且SP端存在订购关系, 但暂停服务失败
4013 MISC同步暂停服务, 但SP端不存在订购关系
4014 MISC同步暂停服务, 但SP端已存在订购关系, 且状态为暂停
4015 MISC同步激活服务, 但SP端已存在订购关系, 且状态为开通
4016 MISC同步激活服务, 但SP端不存在订购关系
4017 MISC同步激活服务, 且SP端存在订购关系, 但激活服务失败

5. 9000-9999为系统级错误
9000 系统磁盘读写错误
9001 网络异常
9002 网络错误
9003 业务网关忙,业务网关缓存
9004 业务网关忙,并且业务网关缓冲区满,DSMP缓存,并暂时不要发送消息,等待一段时间重试。
9005 DSMP忙,DSMP缓存
9006 DSMP忙,并且DSMP缓冲区满,业务网关缓存,并暂时不要发送消息,等待一段时间重试。
9007 业务网关超过限制的流量
9008 DSMP异常,并不可用
9009 业务网关异常,并不可用
9010 该业务网关没有权限调用该接口消息
9011 DSMP没有权限发送该接口消息给业务网关
9012 版本不支持
9013 消息类型不对,系统不支持
9014 验证错误,无法解析SOAP和XML结构、缺少必须存在的字段,或者消息格式不正确
9015 拒绝消息,服务器无法完成请求的服务

6. 其他一些常用错误代码,如下
DA:0054 等待DSMP返回响应超时
DA:0320 发送给DSMP失败
DA:0330 接收DSMP响应失败
DA:0360 与DSMP之间soap连接异常
ID:0007 业务代码错误
ID:0009 计费号码路由判断错误(本网关不负责服务次计费号码)
ID:0100 信息格式错误,一般指GB转Unicode失败
ID:0101 计费类型(Fee_Type)错误
ID:0111 队列满(包括保存本地MT和前转MT失败)
ID:0113 神州行扣费请求失败
ID:0151 MT短信在smsAgent队列中超时
IC:0154 前转到外地网关,外地网关没有响应

回页首 
发送频率如果是1~3次怎么填啊? 
填写最大频率。 
回页首 
HTTP返回值定义 
具体描述如下:
0 : 成功
1 : 未知错误

2-99:保留
4000-4999为DSMP与SP之间的接口消息中的错误代码:
4000: 无效的msgtype
4001: 无效的action_id;
4002: 无效的action_reasonid;
4003: 无效的SP ID
4004: 无效的serviceID
4005: 无效的pseudocode
4006: 无效的accessmode
4007: MISC同步开通服务,但SP端已存在订购关系,且状态为开通
4008: MISC同步开通服务,且SP端不存在订购关系,但开通服务失败
4009: MISC同步开通服务,但SP端已存在订购关系, 且状态为暂停
4010: MISC同步停止服务, 且SP端存在订购关系, 但取消服务失败
4011: MISC同步停止服务, 但SP端不存在订购关系
4012: MISC同步暂停服务, 且SP端存在订购关系, 但暂停服务失败
4013: MISC同步暂停服务, 但SP端不存在订购关系
4014: MISC同步暂停服务, 但SP端已存在订购关系, 且状态为暂停
4015: MISC同步激活服务, 但SP端已存在订购关系, 且状态为开通
4016: MISC同步激活服务, 但SP端不存在订购关系
4017: MISC同步激活服务, 且SP端存在订购关系, 但激活服务失败

9000-9999为系统级错误:

9000: 系统磁盘读写错误
9001: 网络异常
9002: 网络错误
9003: 业务网关忙,业务网关缓存
9004: 业务网关忙,并且业务网关缓冲区满,DSMP缓存,并暂时不要发送消息,等待一段时间重试。
9005: DSMP忙,DSMP缓存
9006: DSMP忙,并且DSMP缓冲区满,业务网关缓存,并暂时不要发送消息,等待一段时间重试。
9007: 业务网关超过限制的流量
9008: DSMP异常,并不可用
9009: 业务网关异常,并不可用
9010: 该业务网关没有权限调用该接口消息
9011: DSMP没有权限发送该接口消息给业务网关
9012: 版本不支持
9013: 消息类型不对,系统不支持
9014: 验证错误,无法解析SOAP和XML结构、缺少必须存在的字段,或者消息格式不正确
9015: 拒绝消息,服务器无法完成请求的服务

回页首 
在MISC割接之际,再次提醒大家业务梳理表的填报事宜。 
一、不许新增业务代码(重要) 
所有业务代码必须是上月产生计费且已经移动审核过的。否则将认为SP虚增业务代码,且移动有权无条件删除。 
二、资费标准 
定制包月 小于等于 15元/月; 
按条点播 小于等于 1元/条; 
特殊高单价业务,请单独附一份说明。 
三、业务类别 
免鉴权类业务,各sp只允许申报一个,具体以帮助类业务体现。 
四、指令匹配及指令数量 
尽量不要填写空指令的模糊匹配指令;只允许聊天类的业务,开放空指令(模糊匹配)到长号码(精确匹配)的方式。 
设置指令时,需要指定指令对应的发送号码(长号码)和指令内容,并可分别指定对发送号码和指令内容是否需要做精确匹配。 
回页首 
电信服务规范--信息服务业务 
6.1信息服务业务经营者进行各种形式的业务宣传时,在宣传业务内容和使用方式的同时应公示相应的收费标准、收费方式和终止服务方法。
6.2信息服务业务经营者向用户提供任何有偿信息服务时,应事先征得用户同意。信息服务业务经营者向用户提供无偿信息服务时,用户予以拒绝的,信息服务业务经营者应停止提供。
信息服务业务经营者在提供短信息服务时,包月类、订阅类短信服务,必须事先向用户请求确认,且请求确认消息中必须包括收费标准。若用户未进行确认反馈,视为用户撤消服务要求。
在用户拨打接入码接入信息服务业务经营者的语音信息服务业务平台后,业务平台应免费向用户说明收费标准,并在得到用户确认后开始计信息服务费。
6.3信息服务业务经营者应遵照与用户的约定向用户提供信息服务,未得到用户许可,信息服务业务经营者不得擅自改变服务内容和服务频次,不得擅自改变收费方式和降低服务质量。对分条计费的信息,如因传输容量等原因需要回送多条信息内容的,只能收取一条相应信息的信息费。
6.4信息服务业务经营者在提供语音信息服务时不得通过故意插播广告性或者宣传性广告信息以延长服务时间,人工信息咨询员不得谈论与用户所提问题无关的话题,不得故意拖延时间。
6.5信息服务业务经营者在采集、开发、处理、发布信息时,应对信息的内容进行审查,信息服务业务经营者不得提供国家明令禁止传播的信息。信息准确率应达到95%以上。
6.6信息服务业务经营者在提供订制类信息服务业务时,应明示方便用户退订的途径,短信息服务业务经营者应开通方便用户选择退订服务的“0000”、“00000”短信退订功能,并保证退订途径的畅通。
用户提出停止服务时,信息服务业务经营者应及时接受并停止计费。
6.7信息服务业务经营者应保存信息服务计费原始数据,短信息服务系统应当自动记录并保存短信息的发送与接收时间、发送端和接收端的电话号码,保存期限至少5个月。在计费原始数据保存期限内,信息服务业务经营者应根据用户需求提供信息服务收费清单。
6.8基础电信业务经营者在向用户提供电话业务收费单据时,若存在为信息服务业务经营者代收的信息费,应同时向用户提供信息服务业务经营者的名称、代码和代收金额,并注明“代收费”字样。
6.9用户对信息费产生异议或对服务质量不满意时,基础电信业务经营者与信息服务业务经营者均应遵循“首问负责”的原则,共同协商处理,不得互相推诿。
6.10信息服务业务经营者应开通客户服务热线电话,并对社会公布。 
回页首 
割接时网关登录失败 
割接时如果出现登录网关失败时,请首先检查登录账号/密码是否是正式的企业代码,同时还需要检查登录服务器地址是否和割接前提供的IP地址相符,从而判断是否在网关或MISC方做了IP地址限制;
处理办法:
检查自身程序配置,修改登录账号及密码,同时和网关及MISC核对IP地址信息;

回页首 
下发MT包时网关返回9、13等等错误 
出现这些错误主要是SP下发的MT包的目的号码格式不正确导致;
处理办法:
请SP检查自身的程序在下发MT包时的目的号码格式是否正确,比如手机号码后面是否带上了空格等等,因为有些网关可能无法去除空格导致下发失败;

回页首 
手机上行后SP无法收到网关的MO包 
原因分析:
出现这个问题主要是网关没有发送MO消息给SP,或者发送失败引起。这个问题比较复杂,涉及到多个网元。可能是SP和网关的MO连接异常一起,也有可能是网关到MISC的MO鉴权失败引起;
处理办法:
首先请SP自行检查和网关的MO连接进程是否正常,如果连接无异常,那么请联系网关人员和卓望公司技术人员解决;

回页首 
发送MT包时产生大量DB:101错误 
原因分析:
出现这个错误大部分的原因是由于订购关系未同步引起,MISC会对MT包中的计费号码的订购关系做校验,如果发现不是梦网用户,那么MISC会直接反馈101用户不存在错误;
解决办法:
请检查发送的MT消息的计费用户是否都存在有效订购关系,并且在割接前已经提交给MISC做订购关系导入;

回页首 
发送MT包是产生大量DB:102错误 
原因分析:
出现这个错误是由于SP发送的MT消息的目的用户在MISC中属于暂停状态;
解决办法:
请SP核查发送的MT消息包中目的号码是否有效、是否是暂停用户,如果都不是那么请联系卓望技术人员解决;

回页首 
发送MT包时出现大量DB:115错误 
原因分析:
出现这个问题是由与MISC和SP之间的订购关系不同步引起;
解决办法:
请确保发送的MT包中的计费号码存在有效订购关系,不能对无订购关系用户做群发操作。如果仍然存在大量错误,那么请联系卓望技术人员解决,建议双方再次核对订购关系记录;

回页首 
MISC 用户状态 
‘A‘:正常; 
‘S‘:暂停; 
‘X‘:管理员停止;
‘P‘:因服务收费暂停; 
‘G‘:赠送者暂停;
‘B‘:Boss暂停
‘C‘:取消

回页首 
还问一个问题,就是每个月下行多少条信息给用户,是怎么换算了,比如我包月有5块,10块的.那我至少给5元包月的下多少条信息,10块钱的要下多少条信息? 
单条不能超过一块钱,被投诉了,就不是多点少点的问题了。 
回页首 
就是无论什么时候定购,包括22号以后的,如果用户在三天内,移动都会给用户下话单了? 
20号以后使用也是免费+72小时免费 
回页首 
那我18号定购的用户,会不会作为本月进行结算? 
18号定购,如果72小时没有退订,都要计费的 
回页首 
湖北移动SSO相关参数。 
嵌入页面地址:http://sso.XX.monternet.com/sp_logon.jsp
SSO地址:http://sso.XX.monternet.com/
用户登录:http://sso.XX.monternet.com/login?ICPCode=xxxx&SeqNo=xxxx&BackURL=xxxx
用户签退:http://sso.XX.monternet.com/logout?ICPCode=xxxx&SeqNo=xxxx&RandomSessionKey=xxxx&BackURL=xxxx
查询用户信息:http://sso.XX.monternet.com/queryuserinfo?ICPCode=xxxx&ICPPassword=xxxx&SeqNo=xxxx&RandomSessionKey=xxxx
用户订购服务:http://sso.XX.monternet.com/order?ICPCode=xxxx&ICPServID=xxxx&SeqNo=xxxx&ActionID=1&BackURL=xxxx
用户点播SMS服务:http://sso.XX.monternet.com/order?ICPCode=xxxx&ICPServID=xxxx&SeqNo=xxxx&ActionID=10&ItemID=xxxx&BackURL=xxxx&DeliverURL=xx
注明:XX为各省简拼,如湖北为hb. 
回页首 
下发帮助信息怎么收不到啊? 
目前对帮助类下行信息进行了流程控制,需要对帮助类下行信息进行空闲控制,否则可能会大量失败.

时间: 2024-10-12 22:28:24

CMPP错误码说明的相关文章

转!!CMPP 网关错误码说明

与中国移动代码的对应关系. MI::zzzzSMSC返回状态报告的状态值为EXPIREDMJ:zzzzSMSC返回状态报告的状态值为DELETEDMK:zzzzSMSC返回状态报告的状态值为UNDELIVML:zzzzSMSC返回状态报告的状态值为ACCEPTDMM:zzzzSMSC返回状态报告的状态值为UNKNOWNMN:zzzzSMSC返回状态报告的状态值为REJECTD 回页首 CMPP发送失败代码对照表 值(4位,不足4位前面补0) 含义1 消息结构错2 命令字错误3 消息序列号重复4

微信支付错误两个问题的解决:curl出错,错误码:60

如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99 Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixinpa

XMPP协议错误码

302 重定向 尽管HTTP规定中包含八种不同代码来表示重定向,Jabber只用了其中一个(用来代替所有的重定向错误).不过Jabber代码302是为以后的功能预留的,目前还没有用到 400 坏请求 Jabber代码400用来通知Jabber客户端,一个请求因为其糟糕的语法不能被识别.例如,当一个Jabber客户端发送一个的订阅请求给它自己活发送一条没有包含"to"属性的消息,Jabber代码400就会产生. 401 未授权的 Jabber代码401用来通知Jabber客户端它们提供的

iOS真机测试友盟碰到错误linker command failed with exit code 1 (use -v to see invocation) 百度地图的检索失败 sqlite 错误码

因为友盟不支持bitcode 在模拟器上运行正常,但是在模拟器上就会报错,这是因为xocde7之后增加了一个bitcode,bitcode是被编译程序的一种中间形式的代 码.包含bitcode配置的程序将会在App store上被编译和链接.bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上. 碰到以上问题,我们有两种解决方式,要么关闭bitcode要么让第三方支持bitcode,我们这里讲第一种,配置bitcode,我们可以 在”Build

Windows错误码解析

阅读目录 Windows API 错误码解析 Windows异常值解析 ErrLook程序 参考资料 C或者C++开发肯定经常会遇到各种错误码,由于每个错误码只是一个枚举或者一个整形数值,调试或者输出日志的时候,无法知道这个错误码的具体含义,这时候就需要将此错误码解释出来.对于自己定义的错误码,可以通过自己的方式进行解析.对于Windows API的错误码,则需要调用Windows的API进行解析,下面来介绍具体的错误码解析方法. 回到顶部 Windows API 错误码解析 调用Windows

安装APK的错误码(PackageManager.java)

安装APK的错误码,定义在android源码中的这个文件中:frameworks\base\core\java\android\content\pm\PackageManager.java /** * if the package is already installed. * 程序已经存在 */ public static final int INSTALL_FAILED_ALREADY_EXISTS = -1; /** * if the package archive file is inv

GetLastError错误码大全

GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置.函数 并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值,也不能 担保函数已成功执行.只有在函数调用返回一个错误结果时,这个函数指出的错误结果 才是有效的.通常,只有在函数返回一个错误结果,而且已知函数会设置GetLastError 变量的前提下,才应访问GetLastError:这时能保证获得有效的结果.SetLastError函 数主要在对api函数

SQLite错误码

在SQLite中,执行SQL语句的sqlite3_exec()和sqlite3_prepare()两个核心方法的返回值都是一个整型数据,因此,当程序执行出现错误时,我们可以根据执行返回的整型数据来判断错误发生的原因.以下就是SQLite的错误码: 1 #define SQLITE_OK 0 /* 成功 | Successful result */ 2 /* 错误码开始 */ 3 #define SQLITE_ERROR 1 /* SQL错误 或 丢失数据库 | SQL error or miss

linux编程中接收主函数返回值以及错误码提示

程序A创建子进程,并调用进程B,根据不调用的不同情况,最后显示结果不同. #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #include <errno.h> int main() { pid_t pid, rpid; int stat; if ((pid = fork()) < 0) { perror("for