All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mobicents.smsc.library.ErrorCode Maven / Gradle / Ivy

There is a newer version: 7.4.179
Show newest version
/*
 * TeleStax, Open Source Cloud Communications  Copyright 2012. 
 * and individual contributors
 * by the @authors tag. See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this software; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
 */
package org.mobicents.smsc.library;

import java.util.EnumSet;

/**
 * Type of SMS to indicate Mo/Mt procedure.
 * 
 * @author baranowb
 * 
 */
public enum ErrorCode {

    SUCCESS(0),

    UNKNOWN_SUBSCRIBER(1),
    UNDEFINED_SUBSCRIBER(2),
    ILLEGAL_SUBSCRIBER(3),
    TELESERVICE_NOT_PROVISIONED(4),
    CALL_BARRED(5),
    CUG_REJECTED(6),
    FACILITY_NOT_SUPPORTED(7),
    ABSENT_SUBSCRIBER(8),
    ABSENT_SUBSCRIBER_MWDSET(9),
    SENDING_SM_FAILED(10),
    MESSAGE_QUEUE_FULL(11),
    SYSTEM_FAILURE(12),
    DATA_MISSING(13),
    UNEXPECTED_DATA(14),

    ERROR_IN_MS(15),
    MS_NOT_EQUIPPED(16),
    MEMORY_FULL(17),
    SC_CONGESTION(18),
    MS_NOT_REG_IN_SC(19),
    INVALID_SME_ADDRESS(20),
    UNKNOWN_SMC(21),
    ILLEGAL_EQUIPMENT(22),
    USER_BUSY(23),
    // TODO XXX: table is weird 
    //Power off (24–47: CDMA network reserved). 24-27
    //Reserved.   25-29
    //
    HLR_MESSAGE_DECODING_ERROR(30),
    MSC_MESSAGE_DECODIG_ERROR(31),
    INFORM_SC_MESSAGE_DECODING_ERROR(32),
    //'Not obtain enough routing information' ??? what?
    NOT_ENOUGH_ROUTING_INFORMATION(33),
    UNEXPECTED_DATA_FROM_HLR(34),
    UNEXPECTED_DATA_FROM_MSC(35),
    UNKNOWN_ERROR_FROM_MSC(36),
    UNKNOWN_ERROR_FROM_HLR(37),
    //Reserved(38-39),
    BAD_TYPE_OF_NUMBER(38),
    RESERVED_39(39),
    /**
     * HLR does not send acknowledgment after routing request is sent(40),
     */
    HLR_REJECT_AFTER_ROUTING_INFO(40),
    /**
    * HLR does not send acknowledgment after the message of setting flag bit is sent(41),
    */
    HLR_REJECT_AFTER_FLAG_BIT(41),
    //Reserved(42-44),
    RESERVED_42(42),
    RESERVED_43(43),
    RESERVED_44(44),
    
    MAP_SERVER_VERSION_ERROR(45),
    HLR_VERSION_NEGOTIATION_ERROR(46),
    RESERVED_47(47),
    /**
     * MSC does not send acknowledgment(48),
     */
    MSC_NO_ACK(48),
    /**
     * HLR does not send acknowledgment(49),
     */
    HLR_NO_ACK(49),
    /**
     * GIW does not send acknowledgment(50),
     */
    GIW_NO_ACK(50),
    MSC_REFUSES_SM(51),
    HLR_REFUSES_SM(52),
    GIW_REFUSES_SM(53),
    //TODO: XXX table is weird here again
    //No response from the SGSN (54–63),
    NO_RESPONSE_FROM_SGSN(54),

    SGSN_REGUSES_SM(55),
    HLR_SYSTEM_ERROR(56),
    MSC_SYSTEM_ERROR(57),
    SGSN_SYSTEM_ERROR(58),
    RESERVED_59(59),
    RESERVED_60(60),
    /**
     * Delivery error due to MAP Server flow control(61),
     */
    MAP_SERVER_FLOW_CONTROLL_ERROR(61),
    /**
     * Delivery error due to MTI Server flow control(62),
     */
    MTI_SERVER_FLOW_CONTROLL_ERROR(62),
    /**
     * SCCP of DSP or STP unable to send the message(63),
     */
    SCCP_UNABLE_TO_SEND(63),
    INTERFACE_NO_DELIVERY_AUTHORITY(64),
    /**
     * GW does not send acknowledgment(65),
     * 
     */
    GW_NO_ACK(65),
    /**
     * Temporary interface error (deregistered or not log in)(66),
     */
    TEMPORARY_INTERFACE_ERROR(66),
    INVALID_INTERFACE(67),
    /**
     * Service interface does not send acknowledgment(68),
     */
    SERVICE_INTERFACE_NO_ACK(68),
    RESERVED_69(69),
    /**
     * Exceeding maximum of messages in L2CacheDaemon specified by license(70),
     */
    EXCEEDED_L2CacheDaemon_MAX_MESSAGE(70), // TODO:XXX ???
    /**
     * Deletion of SMs to be imported to the database because of disconnection between the SMSC and L2CacheDaemon(71),
     */
    DELETION_OF_SM_ON_SMSC_L2CacheDaemon_DISCONNECT(71),
    /**
     * Exceeding the maximum L2CacheDaemon capacity specified by license(72),
     */
    EXCEEDED_L2CacheDaemon_CAPACITY(72), // TODO:XXX ??? //TODO: XXX: again ?
    /**
     * Some messages in L2CacheDaemon are the same as the messages in memory(73),
     */
    L2CacheDaemon_MESSAGE_DUPLICATION(73),
    L2CacheDaemon_DB_UNAVAILABLE(74),
    L2CacheDaemon_CONGESTED(75),
    /**
     * Error when exporting SMs from memory to L2CacheDaemon(76),
     */
    ERROR_ON_EXPORTING_SM_FROM_MEMORY_TO_L2CacheDaemon(76),
    /**
     * POOL may be full in message delivery(77),
     */
    POOL_FULL_IN_DELIVERY(77),
    /**
     * MT speed exceeds the License threshold by 120%(78),
     */
    MT_SPEED_EXCEEDED(78),
    /**
     * Number of entities that exceed the maximum submission number(Delivery of the SM failed and the SM is deleted(79),
     */
    MAX_SM_DELIVERY_RETRY_EXCEEDED(79),
    //Reserved(80 - 127),
    RESERVED_80(80),
    RESERVED_81(81),
    RESERVED_82(82),
    RESERVED_83(83),
    RESERVED_84(84),
    RESERVED_85(85),
    RESERVED_86(86),
    RESERVED_87(87),
    RESERVED_88(88),
    RESERVED_89(89),
    RESERVED_90(90),
    RESERVED_91(91),
    RESERVED_92(92),
    RESERVED_93(93),
    RESERVED_94(94),
    RESERVED_95(95),
    RESERVED_96(96),
    RESERVED_97(97),
    RESERVED_98(98),
    RESERVED_99(99),
    RESERVED_100(100),
    RESERVED_101(101),
    RESERVED_102(102),
    RESERVED_103(103),
    RESERVED_104(104),
    RESERVED_105(105),
    RESERVED_106(106),
    RESERVED_107(107),
    RESERVED_108(108),
    RESERVED_109(109),
    RESERVED_110(110),
    RESERVED_111(111),
    RESERVED_112(112),
    RESERVED_113(113),
    RESERVED_114(114),
    RESERVED_115(115),
    RESERVED_116(116),
    RESERVED_117(117),
    RESERVED_118(118),
    RESERVED_119(119),
    RESERVED_120(120),
    RESERVED_121(121),
    RESERVED_122(122),
    RESERVED_123(123),
    RESERVED_124(124),
    RESERVED_125(125),
    RESERVED_126(126),
    RESERVED_127(127),
    
    
    /**
     * Teleservice facility interaction not supported(128),
     */
    TELESERVICE_FACILITY_INTERACTION_NOT_SUPPORTED(128),
    SM_TYPE_0_NOT_SUPPORTED(129),
    CANNOT_REPLACE_SM(128),
    //Reserved(131–142),
    RESERVED_131(131),
    RESERVED_132(132),
    RESERVED_133(133),
    RESERVED_134(134),
    RESERVED_135(135),
    RESERVED_136(136),
    RESERVED_137(137),
    RESERVED_138(138),
    RESERVED_139(139),
    RESERVED_140(140),
    RESERVED_141(141),
    RESERVED_142(142),
    UNSPECIFIED_TP_PID_ERROR(143),
    DCS_NOT_SUPPORTED(144),
    SM_TYPE_NOT_SUPPORTED(145), //TODO: XXX :again? there is SM_TYPE_0_NOT_SUPPORTED />
    //Reserved(146–158),
    RESERVED_146(146),
    RESERVED_147(147),
    RESERVED_148(148),
    RESERVED_149(149),
    RESERVED_150(150),
    RESERVED_151(151),
    RESERVED_152(152),
    RESERVED_153(153),
    RESERVED_154(154),
    RESERVED_155(155),
    RESERVED_156(156),
    RESERVED_157(157),
    RESERVED_158(158),
    UNSPECIFIED_TP_DCS_ERROR(159),
    OPERATION_NOT_EXECUTED(160),
    //Reserved(161–174),
    RESERVED_161(161),
    RESERVED_162(162),
    RESERVED_163(163),
    RESERVED_164(164),
    RESERVED_165(165),
    RESERVED_166(166),
    RESERVED_167(167),
    RESERVED_168(168),
    RESERVED_169(169),
    RESERVED_170(170),
    RESERVED_171(171),
    RESERVED_172(172),
    RESERVED_173(173),
    RESERVED_174(174),
    TPDU_NOT_SUPPORTED(176),
    //Reserved(177–191),
    RESERVED_177(177),
    RESERVED_178(178),
    RESERVED_179(179),
    RESERVED_180(180),
    RESERVED_181(181),
    RESERVED_182(182),
    RESERVED_183(183),
    RESERVED_184(184),
    RESERVED_185(185),
    RESERVED_186(186),
    RESERVED_187(187),
    RESERVED_188(188),
    RESERVED_189(189),
    RESERVED_190(190),
    RESERVED_191(191),
    
    SC_BUSY(192),
    NO_SC_SPECIFIED(193),
    SC_SYSTEM_ERROR(194),
    INVALID_SME_ADDRESS_2(195), //TODO: XXX: duplicate!
    DESTINATION_SME_PROHIBITED(196),
    //Reserved(197-207),
    RESERVED_197(197),
    RESERVED_198(198),
    RESERVED_199(199),
    RESERVED_200(200),
    RESERVED_201(201),
    RESERVED_202(202),
    RESERVED_203(203),
    RESERVED_204(204),
    RESERVED_205(205),
    RESERVED_206(206),
    RESERVED_207(207),
    SIM_SMS_STORAGE_IS_FULL(208),
    /**
     * No SMS storage capability in SIM(209),
     */
    SIM_HAS_NO_SMS_STORAGE(209),
    ERROR_IN_MS_2(210),  //TODO: XXX: duplicate!
    ESME_MEMORY_OVERFLOW(211),
    /**
     * Reserved(212-223),
     * 
     */
    RESERVED_212(212),
    RESERVED_213(213),
    RESERVED_214(214),
    RESERVED_215(215),
    RESERVED_216(216),
    RESERVED_217(217),
    RESERVED_218(218),
    RESERVED_219(219),
    RESERVED_220(220),
    RESERVED_221(221),
    RESERVED_222(222),
    RESERVED_223(223),
    /**
     * Values specific to an application(224-254),
     */
    OCS_ACCESS_NOT_GRANTED(224),
    MPROC_ACCESS_NOT_GRANTED(225),
    MPROC_SRI_REQUEST_DROP(226),
    APP_SPECIFIC_227(227),
    APP_SPECIFIC_228(228),
    APP_SPECIFIC_229(229),
    APP_SPECIFIC_230(230),
    APP_SPECIFIC_231(231),
    APP_SPECIFIC_232(232),
    APP_SPECIFIC_233(233),
    APP_SPECIFIC_234(234),
    APP_SPECIFIC_235(235),
    APP_SPECIFIC_236(236),
    APP_SPECIFIC_237(237),
    APP_SPECIFIC_238(238),
    APP_SPECIFIC_239(239),
    APP_SPECIFIC_240(240),
    APP_SPECIFIC_241(241),
    APP_SPECIFIC_242(242),
    APP_SPECIFIC_243(243),
    APP_SPECIFIC_244(244),
    APP_SPECIFIC_245(245),
    APP_SPECIFIC_246(246),
    APP_SPECIFIC_247(247),
    APP_SPECIFIC_248(248),
    APP_SPECIFIC_249(249),
    APP_SPECIFIC_250(250),
    APP_SPECIFIC_251(251),
    APP_SPECIFIC_252(252),
    APP_SPECIFIC_253(253),
    APP_SPECIFIC_254(254),
    UNSPECIFIED_ERROR_CAUSE(255);
    
    private static final EnumSet ENUM_SET = EnumSet.allOf(ErrorCode.class);
    private int code;

    ErrorCode(int v) {
        this.code = v;
    }

    public int getCode() {
        return code;
    }

    public String getCodeText() {
        return String.format("%03d", code);
    }

    public static ErrorCode fromInt(int code) {
        for (ErrorCode el : ENUM_SET) {
            if (el.code == code)
                return el;
        }
        throw new IllegalArgumentException("The '" + code + "' is not a valid value!");

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy