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