1 /*
2  * Copyright (C) 2006 Raul Tremsal
3  * File  : smpp34.h
4  * Author: Raul Tremsal <ultraismo@yahoo.com>
5  *
6  * This file is part of libsmpp34 (c-open-smpp3.4 library).
7  *
8  * The libsmpp34 library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License as
10  * published by the Free Software Foundation; either version 2.1 of the
11  * License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16  * License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21  *
22  */
23 #ifndef _SMPP_H_
24 #define _SMPP_H_
25 
26 /* SMPP Version ***************************************************************/
27 #define SMPP_VERSION 0x34
28 /* Command Id *****************************************************************/
29 #define GENERIC_NACK 0x80000000
30 #define BIND_RECEIVER 0x00000001
31 #define BIND_RECEIVER_RESP 0x80000001
32 #define BIND_TRANSMITTER 0x00000002
33 #define BIND_TRANSMITTER_RESP 0x80000002
34 #define QUERY_SM 0x00000003
35 #define QUERY_SM_RESP 0x80000003
36 #define SUBMIT_SM 0x00000004
37 #define SUBMIT_SM_RESP 0x80000004
38 #define DELIVER_SM 0x00000005
39 #define DELIVER_SM_RESP 0x80000005
40 #define UNBIND 0x00000006
41 #define UNBIND_RESP 0x80000006
42 #define REPLACE_SM 0x00000007
43 #define REPLACE_SM_RESP 0x80000007
44 #define CANCEL_SM 0x00000008
45 #define CANCEL_SM_RESP 0x80000008
46 #define BIND_TRANSCEIVER 0x00000009
47 #define BIND_TRANSCEIVER_RESP 0x80000009
48 /* Reserved 0x0000000A 0x8000000A */
49 #define OUTBIND 0x0000000B
50 /* Reserved 0x0000000C - 0x00000014 0x8000000B - 0x80000014 */
51 #define ENQUIRE_LINK 0x00000015
52 #define ENQUIRE_LINK_RESP 0x80000015
53 /* Reserved 0x00000016 - 0x00000020 0x80000016 - 0x80000020*/
54 #define SUBMIT_MULTI 0x00000021
55 #define SUBMIT_MULTI_RESP 0x80000021
56 /* Reserved 0x00000022 - 0x000000FF 0x80000022 - 0x800000FF */
57 /* Reserved 0x00000100 */
58 #define Reserved 0x80000100
59 /* Reserved 0x00000101 0x80000101 */
60 #define ALERT_NOTIFICATION 0x00000102
61 /* Reserved 0x80000102 */
62 #define DATA_SM 0x00000103
63 #define DATA_SM_RESP 0x80000103
64 /* Reserved for SMPP extension 0x00000104 - 0x0000FFFF 0x80000104 - 0x8000FFFF */
65 /* Reserved 0x00010000 - 0x000101FF 0x80010000 - 0x800101FF */
66 /* Reserved for SMSC Vendor 0x00010200 - 0x000102FF 0x80010200 - 0x800102FF */
67 /* Reserved 0x00010300 - 0xFFFFFFFF*/
68 
69 
70 /* Command status *************************************************************/
71 #define ESME_ROK 0x00000000 /* No Error */
72 #define ESME_RINVMSGLEN 0x00000001 /* Message Length is invalid */
73 #define ESME_RINVCMDLEN 0x00000002 /* Command Length is invalid */
74 #define ESME_RINVCMDID 0x00000003 /* Invalid Command ID */
75 #define ESME_RINVBNDSTS 0x00000004 /* Incorrect BIND Status for given command */
76 #define ESME_RALYBND 0x00000005 /* ESME Already in Bound State */
77 #define ESME_RINVPRTFLG 0x00000006 /* Invalid Priority Flag */
78 #define ESME_RINVREGDLVFLG 0x00000007 /* Invalid Registered Delivery Flag */
79 #define ESME_RSYSERR 0x00000008 /* System Error */
80 /* Reserved 0x00000009 Reserved */
81 #define ESME_RINVSRCADR 0x0000000A /* Invalid Source Address */
82 #define ESME_RINVDSTADR 0x0000000B /* Invalid Dest Addr */
83 #define ESME_RINVMSGID 0x0000000C /* Message ID is invalid */
84 #define ESME_RBINDFAIL 0x0000000D /* Bind Failed */
85 #define ESME_RINVPASWD 0x0000000E /* Invalid Password */
86 #define ESME_RINVSYSID 0x0000000F /* Invalid System ID */
87 /* Reserved 0x00000010 Reserved */
88 #define ESME_RCANCELFAIL 0x00000011 /* Cancel SM Failed */
89 /* Reserved 0x00000012 Reserved */
90 #define ESME_RREPLACEFAIL 0x00000013 /* Replace SM Failed*/
91 #define ESME_RMSGQFUL 0x00000014 /* Message Queue Full */
92 #define ESME_RINVSERTYP 0x00000015 /* Invalid Service Type */
93 /* Reserved 0x00000016- 0x00000032 Reserved */
94 #define ESME_RINVNUMDESTS 0x00000033 /* Invalid number of destinations */
95 #define ESME_RINVDLNAME 0x00000034 /* Invalid Distribution List name */
96 /* Reserved 0x00000035- 0x0000003F Reserved */
97 #define ESME_RINVDESTFLAG 0x00000040 /* Destination flag is invalid (submit_multi) */
98 /* Reserved 0x00000041 Reserved */
99 #define ESME_RINVSUBREP 0x00000042 /* Invalid  submit with replace  request (i.e. submit_sm with replace_if_present_flag set) */
100 #define ESME_RINVESMCLASS 0x00000043 /* Invalid esm_class field data */
101 #define ESME_RCNTSUBDL 0x00000044 /* Cannot Submit to Distribution List */
102 #define ESME_RSUBMITFAIL 0x00000045 /* submit_sm or submit_multi failed */
103 /* Reserved 0x00000046- 0x00000047 Reserved */
104 #define ESME_RINVSRCTON 0x00000048 /* Invalid Source address TON */
105 #define ESME_RINVSRCNPI 0x00000049 /* Invalid Source address NPI */
106 #define ESME_RINVDSTTON 0x00000050 /* Invalid Destination address TON */
107 #define ESME_RINVDSTNPI 0x00000051 /* Invalid Destination address NPI */
108 /* Reserved 0x00000052 Reserved */
109 #define ESME_RINVSYSTYP 0x00000053 /* Invalid system_type field */
110 #define ESME_RINVREPFLAG 0x00000054 /* Invalid replace_if_present flag */
111 #define ESME_RINVNUMMSGS 0x00000055 /* Invalid number of messages */
112 /* Reserved 0x00000056- 0x00000057 Reserved */
113 #define ESME_RTHROTTLED 0x00000058 /* Throttling error (ESME has exceeded allowed message limits) */
114 /* Reserved 0x00000059- 0x00000060 Reserved*/
115 #define ESME_RINVSCHED 0x00000061 /* Invalid Scheduled Delivery Time */
116 #define ESME_RINVEXPIRY 0x00000062 /* Invalid message validity period (Expiry time) */
117 #define ESME_RINVDFTMSGID 0x00000063 /* Predefined Message Invalid or Not Found */
118 #define ESME_RX_T_APPN 0x00000064 /* ESME Receiver Temporary App Error Code */
119 #define ESME_RX_P_APPN 0x00000065 /* ESME Receiver Permanent App Error Code */
120 #define ESME_RX_R_APPN 0x00000066 /* ESME Receiver Reject Message Error Code */
121 #define ESME_RQUERYFAIL 0x00000067 /* query_sm request failed */
122 /* Reserved 0x00000068 - 0x000000BF Reserved */
123 #define ESME_RINVOPTPARSTREAM 0x000000C0 /* Error in the optional part of the PDU Body. */
124 #define ESME_ROPTPARNOTALLWD 0x000000C1 /* Optional Parameter not allowed */
125 #define ESME_RINVPARLEN 0x000000C2 /* Invalid Parameter Length. */
126 #define ESME_RMISSINGOPTPARAM 0x000000C3 /* Expected Optional Parameter missing */
127 #define ESME_RINVOPTPARAMVAL 0x000000C4 /* Invalid Optional Parameter Value */
128 /* Reserved 0x000000C5 - 0x000000FD Reserved */
129 #define ESME_RDELIVERYFAILURE 0x000000FE /* Delivery Failure (used for data_sm_resp) */
130 #define ESME_RUNKNOWNERR 0x000000FF /* Unknown Error */
131 /* Reserved for SMPP extension 0x00000100- 0x000003FF Reserved for SMPP extension */
132 /* Reserved for SMSC vendor specific errors 0x00000400- 0x000004FF Reserved for SMSC vendor specific errors */
133 /* Reserved 0x00000500- 0xFFFFFFFF Reserved */
134 
135 /* ADDR_TON Values ************************************************************/
136 #define TON_Unknown           0
137 #define TON_International     1
138 #define TON_National          2
139 #define TON_Network_Specific  3
140 #define TON_Subscriber_Number 4
141 #define TON_Alphanumeric      5
142 #define TON_Abbreviated       6
143 
144 /* ADDR_NPI Values ************************************************************/
145 #define NPI_Unknown             0
146 #define NPI_ISDN_E163_E164      1
147 #define NPI_Data_X121           3
148 #define NPI_Telex_F69           4
149 #define NPI_Land_Mobile_E212    6
150 #define NPI_National            8
151 #define NPI_Private             9
152 #define NPI_ERMES               10
153 #define NPI_Internet_IP         14
154 #define NPI_WAP_Client_Id       18
155 
156 
157 /* Flag which will identify whether destination address is a DL or SME Addr ***/
158 #define DFID_SME_Address            1
159 #define DFID_Distribution_List_Name 2
160 
161 /* SMPP Optional Parameter Tag definitions ************************************/
162 #define TLVID_dest_addr_subunit           0x0005 /* GSM */
163 #define TLVID_dest_network_type           0x0006 /* Generic */
164 #define TLVID_dest_bearer_type            0x0007 /* Generic */
165 #define TLVID_dest_telematics_id          0x0008 /* GSM */
166 #define TLVID_source_addr_subunit         0x000D /* GSM */
167 #define TLVID_source_network_type         0x000E /* Generic */
168 #define TLVID_source_bearer_type          0x000F /* Generic */
169 #define TLVID_source_telematics_id        0x0010 /* GSM */
170 #define TLVID_qos_time_to_live            0x0017 /* Generic */
171 #define TLVID_payload_type                0x0019 /* Generic */
172 #define TLVID_additional_status_info_text 0x001D /* Generic */
173 #define TLVID_receipted_message_id        0x001E /* Generic */
174 #define TLVID_ms_msg_wait_facilities      0x0030 /* GSM */
175 #define TLVID_privacy_indicator           0x0201 /* CDMA, TDMA */
176 #define TLVID_source_subaddress           0x0202 /* CDMA, TDMA */
177 #define TLVID_dest_subaddress             0x0203 /* CDMA, TDMA */
178 #define TLVID_user_message_reference      0x0204 /* Generic */
179 #define TLVID_user_response_code          0x0205 /* CDMA, TDMA */
180 #define TLVID_source_port                 0x020A /* Generic */
181 #define TLVID_destination_port            0x020B /* Generic */
182 #define TLVID_sar_msg_ref_num             0x020C /* Generic */
183 #define TLVID_language_indicator          0x020D /* CDMA, TDMA */
184 #define TLVID_sar_total_segments          0x020E /* Generic */
185 #define TLVID_sar_segment_seqnum          0x020F /* Generic */
186 #define TLVID_sc_interface_version        0x0210 /* Generic */
187 #define TLVID_callback_num_pres_ind       0x0302 /* TDMA */
188 #define TLVID_callback_num_atag           0x0303 /* TDMA */
189 #define TLVID_number_of_messages          0x0304 /* CDMA */
190 #define TLVID_callback_num                0x0381 /* CDMA, TDMA, GSM, iDEN */
191 #define TLVID_dpf_result                  0x0420 /* Generic */
192 #define TLVID_set_dpf                     0x0421 /* Generic */
193 #define TLVID_ms_availability_status      0x0422 /* Generic */
194 #define TLVID_network_error_code          0x0423 /* Generic */
195 #define TLVID_message_payload             0x0424 /* Generic */
196 #define TLVID_delivery_failure_reason     0x0425 /* Generic */
197 #define TLVID_more_messages_to_send       0x0426 /* GSM */
198 #define TLVID_message_state               0x0427 /* Generic */
199 #define TLVID_ussd_service_op             0x0501 /* GSM (USSD) */
200 #define TLVID_display_time                0x1201 /* CDMA, TDMA */
201 #define TLVID_sms_signal                  0x1203 /* TDMA */
202 #define TLVID_ms_validity                 0x1204 /* CDMA, TDMA */
203 #define TLVID_alert_on_message_delivery   0x130C /* CDMA */
204 #define TLVID_its_reply_type              0x1380 /* CDMA */
205 #define TLVID_its_session_info            0x1383 /* CDMA */
206 
207 #endif
208