This file is indexed.

/usr/include/gsmlib/gsm_error.h is in libgsmme-dev 1.10+20120414.gita5e5ae9a-0.2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
// *************************************************************************
// * GSM TA/ME library
// *
// * File:    gsm_error.h
// *
// * Purpose: Error codes and error handling functions
// *
// * Author:  Peter Hofmann (software@pxh.de)
// *
// * Created: 4.5.1999
// *************************************************************************

#ifndef GSM_ERROR_H
#define GSM_ERROR_H

#include <string>
#include <stdexcept>

namespace gsmlib
{
  // different classes of GSM errors
  enum GsmErrorClass{OSError,   // error caused by OS call (eg. file handling)
                     ParserError, // error when parsing AT response
                     ChatError, // error in chat sequence (ME/TA/SMS error)
                     ParameterError, // gsmlib function called with bad params
                     NotImplementedError, // feature not implemented
                     MeTaCapabilityError, // non-existent capability in ME
                     SMSFormatError, // SMS format error
                     InterruptException, // gsmlib was interrupted()
                     OtherError}; // all other errors

  // all gsmlib exceptions

  class GsmException : public std::runtime_error
  {
  private:
    GsmErrorClass _errorClass;
    int _errorCode;

  public:
    GsmException(std::string errorText, GsmErrorClass errorClass) :
      std::runtime_error(errorText), _errorClass(errorClass), _errorCode(-1) {}

    GsmException(std::string errorText, GsmErrorClass errorClass, int errorCode) :
      std::runtime_error(errorText), _errorClass(errorClass),
      _errorCode(errorCode) {}

    int getErrorCode() const {return _errorCode;}
    
    GsmErrorClass getErrorClass() const {return _errorClass;}
  };

  // error codes returned by TA/ME (+CMEE)

  const int ME_PHONE_FAILURE = 0;
  const int ME_NO_CONNECTION_TO_PHONE = 1;
  const int ME_PHONE_ADAPTOR_LINK_RESERVED = 2;
  const int ME_OPERATION_NOT_ALLOWED = 3;
  const int ME_OPERATION_NOT_SUPPORTED = 4;
  const int ME_PH_SIM_PIN_REQUIRED = 5;
  const int ME_SIM_NOT_INSERTED = 10;
  const int ME_SIM_PIN_REQUIRED = 11;
  const int ME_SIM_PUK_REQUIRED = 12;
  const int ME_SIM_FAILURE = 13;
  const int ME_SIM_BUSY = 14;
  const int ME_SIM_WRONG = 15;
  const int ME_INCORRECT_PASSWORD = 16;
  const int ME_SIM_PIN2_REQUIRED = 17;
  const int ME_SIM_PUK2_REQUIRED = 18;
  const int ME_MEMORY_FULL = 20;
  const int ME_INVALID_INDEX = 21;
  const int ME_NOT_FOUND = 22;
  const int ME_MEMORY_FAILURE = 23;
  const int ME_TEXT_STRING_TOO_LONG = 24;
  const int ME_INVALID_CHARACTERS_IN_TEXT_STRING = 25;
  const int ME_DIAL_STRING_TOO_LONG = 26;
  const int ME_INVALID_CHARACTERS_IN_DIAL_STRING = 27;
  const int ME_NO_NETWORK_SERVICE = 30;
  const int ME_NETWORK_TIMEOUT = 31;
  const int ME_UNKNOWN = 100;

  // return descriptive text for the given error code
  // the text is already translated
  extern std::string getMEErrorText(const int errorCode) throw(GsmException);

  // SMS error codes

  // error codes from ETSI GSM 04.11, Annex E
  const int SMS_UNASSIGNED_OR_UNALLOCATED_NUMBER = 1;
  const int SMS_OPERATOR_DETERMINED_BARRING = 8;
  const int SMS_CALL_BARRED = 10;
  const int SMS_NETWORK_FAILURE = 17;
  const int SMS_SHORT_MESSAGE_TRANSFER_REJECTED = 21;
  const int SMS_CONGESTION = 22;
  const int SMS_DESTINATION_OUT_OF_SERVICE = 27;
  const int SMS_UNIDENTIFIED_SUBSCRIBER = 28;
  const int SMS_FACILITY_REJECTED = 29;
  const int SMS_UNKNOWN_SUBSCRIBER = 30;
  const int SMS_NETWORK_OUT_OF_ORDER = 38;
  const int SMS_TEMPORARY_FAILURE = 41;
  const int SMS_CONGESTION2 = 42;
  const int SMS_RESOURCES_UNAVAILABLE_UNSPECIFIED = 47;
  const int SMS_REQUESTED_FACILITY_NOT_SUBSCRIBED = 50;
  const int SMS_REQUESTED_FACILITY_NOT_IMPLEMENTED = 69;
  const int SMS_INVALID_TRANSACTION_IDENTIFIER = 81;
  const int SMS_SEMANTICALLY_INCORRECT_MESSAGE = 95;
  const int SMS_INVALID_MANDATORY_INFORMATION = 96;
  const int SMS_MESSAGE_TYPE_NONEXISTENT_OR_NOT_IMPLEMENTED = 97;
  const int SMS_MESSAGE_NOT_COMPATIBLE_WITH_SHORT_MESSAGE_PROTOCOL_STATE = 98;
  const int SMS_INFORMATION_ELEMENT_NONEXISTENT_OR_NOT_IMPLEMENTED = 99;
  const int SMS_UNSPECIFIED_PROTOCOL_ERROR = 111;
  const int SMS_UNSPECIFIED_INTERWORKING_ERROR = 127;

  // error codes from ETSI GSM 03.40, section 9.2.3.22
  const int SMS_TELEMATIC_INTERWORKING_NOT_SUPPORTED = 0x80;
  const int SMS_SHORT_MESSAGE_TYPE_0_NOT_SUPPORTED = 0x81;
  const int SMS_CANNOT_REPLACE_SHORT_MESSAGE = 0x82;
  const int SMS_UNSPECIFIED_TP_PID_ERROR = 0x8f;
  const int SMS_DATA_CODING_SCHEME_NOT_SUPPORTED = 0x90;
  const int SMS_MESSAGE_CLASS_NOT_SUPPORTED = 0x91;
  const int SMS_UNSPECIFIEC_TP_DCS_ERROR = 0x9f;
  const int SMS_COMMAND_CANNOT_BE_ACTIONED = 0xa0;
  const int SMS_COMMAND_UNSUPPORTED = 0xa1;
  const int SMS_UNSPECIFIED_TP_COMMAND_ERROR = 0xaf;
  const int SMS_TPDU_NOT_SUPPORTED = 0xb0;
  const int SMS_SC_BUSY = 0xc0;
  const int SMS_NO_SC_SUBSCRIPTION = 0xc1;
  const int SMS_SC_SYSTEM_FAILURE = 0xc2;
  const int SMS_INVALID_SME_ADDRESS = 0xc3;
  const int SMS_DESTINATION_SME_BARRED = 0xc4;
  const int SMS_SM_REJECTED_DUPLICATED_SM = 0xc5;
  const int SMS_SIM_SMS_STORAGE_FULL = 0xd0;
  const int SMS_NO_SMS_STORAGE_CAPABILITY_IN_SIM = 0xd1;
  const int SMS_ERROR_IN_MS = 0xd2;
  const int SMS_MEMORY_CAPACITY_EXCEED = 0xd3;
  const int SMS_UNSPECIFIED_ERROR_CAUSE = 0xff;

  // error codes from ETSI GSM 07.05, section 3.2.5
  const int SMS_ME_FAILURE = 300;
  const int SMS_SMS_SERVICE_OF_ME_RESERVED = 301;
  const int SMS_OPERATION_NOT_ALLOWED = 302;
  const int SMS_OPERATION_NOT_SUPPORTED = 303;
  const int SMS_INVALID_PDU_MODE_PARAMETER = 304;
  const int SMS_INVALID_TEXT_MODE_PARAMETER = 305;
  const int SMS_SIM_NOT_INSERTED = 310;
  const int SMS_SIM_PIN_REQUIRED = 311;
  const int SMS_PH_SIM_PIN_REQUIRED = 312;
  const int SMS_SIM_FAILURE = 313;
  const int SMS_SIM_BUSY = 314;
  const int SMS_SIM_WRONG = 315;
  const int SMS_SIM_PUK_REQUIRED = 316;
  const int SMS_SIM_PIN2_REQUIRED = 317;
  const int SMS_SIM_PUK2_REQUIRED = 318;
  const int SMS_MEMORY_FAILURE = 320;
  const int SMS_INVALID_MEMORY_INDEX = 321;
  const int SMS_MEMORY_FULL = 322;
  const int SMS_SMSC_ADDRESS_UNKNOWN = 330;
  const int SMS_NO_NETWORK_SERVICE = 331;
  const int SMS_NETWORK_TIMEOUT = 332;
  const int SMS_NO_CNMA_ACKNOWLEDGEMENT_EXPECTED = 340;
  const int SMS_UNKNOWN_ERROR = 500;

  // return descriptive text for the given error code
  // the text is already translated
  extern std::string getSMSErrorText(const int errorCode) throw(GsmException);

  // SMS status handling
  // success codes
  const int SMS_STATUS_RECEIVED = 0;
  const int SMS_STATUS_FORWARDED = 1;
  const int SMS_STATUS_SM_REPLACES = 2;

  // if this bit is set, the error is only temporary and
  // the SC is still trying to transfer the SM
  const int SMS_STATUS_TEMPORARY_BIT = 32;

  // if this bit is set, the error is only temporary and
  // the SC is still trying to transfer the SM
  const int SMS_STATUS_PERMANENT_BIT = 64;
  // both bits may be set at once

  // temporary errors (both bits may be set)
  const int SMS_STATUS_CONGESTION = 0;
  const int SMS_STATUS_SME_BUSY = 1;
  const int SMS_STATUS_NO_RESPONSE_FROM_SME = 2;
  const int SMS_STATUS_SERVICE_REJECTED = 3;
  const int SMS_STATUS_QUALITY_OF_SERVICE_UNAVAILABLE = 4;
  const int SMS_STATUS_ERROR_IN_SME = 5;

  // permanent errors (SMS_STATUS_PERMANENT_BIT is set)
  const int SMS_STATUS_REMOTE_PROCECURE_ERROR = 0;
  const int SMS_STATUS_INCOMPATIBLE_DESTINATION = 1;
  const int SMS_STATUS_CONNECTION_REJECTED_BY_SME = 2;
  const int SMS_STATUS_NOT_OBTAINABLE = 3;
  // const int SMS_STATUS_QUALITY_OF_SERVICE_UNAVAILABLE = 4;
  const int SMS_STATUS_NO_INTERWORKING_AVAILABLE = 5;
  const int SMS_STATUS_SM_VALIDITY_PERDIOD_EXPIRED = 6;
  const int SMS_STATUS_SM_DELETED_BY_ORIGINATING_SME = 7;
  const int SMS_STATUS_SM_DELETED_BY_ADMINISTRATION = 8;
  const int SMS_STATUS_SM_DOES_NOT_EXIST = 9;

  // return text for SMS status code
  // the text is already translated
  std::string getSMSStatusString(unsigned char status);
};

#endif // GSM_ERROR_H