/protocols/ss7/m3ua/impl/src/main/java/org/mobicents/protocols/ss7/m3ua/impl/TransitionState.java
http://mobicents.googlecode.com/ · Java · 157 lines · 95 code · 29 blank · 33 comment · 2 complexity · 4f48c236174db7063424a3809ce6d12b MD5 · raw file
- /*
- * JBoss, Home of Professional Open Source
- * Copyright 2011, Red Hat, Inc. 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.protocols.ss7.m3ua.impl;
- import java.util.HashMap;
- import org.mobicents.protocols.ss7.m3ua.message.M3UAMessage;
- import org.mobicents.protocols.ss7.m3ua.message.MessageClass;
- import org.mobicents.protocols.ss7.m3ua.message.MessageType;
- import org.mobicents.protocols.ss7.m3ua.message.mgmt.Notify;
- import org.mobicents.protocols.ss7.m3ua.parameter.ErrorCode;
- import org.mobicents.protocols.ss7.m3ua.parameter.Status;
- /**
- *
- * @author amit bhayani
- *
- */
- public class TransitionState {
- public static final String COMM_UP = "commup";
- public static final String COMM_DOWN = "commdown";
- public static final String PAYLOAD = "payload";
- public static final String DUNA = "duna";
- public static final String DAVA = "dava";
- public static final String DAUD = "daud";
- public static final String SCON = "scon";
- public static final String DUPU = "dupu";
- public static final String DRST = "drst";
- public static final String ASP_UP_SENT = "aspupsent";
- public static final String ASP_UP = "aspup";
- public static final String ASP_UP_ACK = "aspupack";
-
- public static final String ASP_DOWN_SENT = "aspdownsent";
- public static final String ASP_DOWN = "aspdown";
- public static final String ASP_DOWN_ACK = "aspdownack";
-
- public static final String HEARTBEAT = "heartbeat";
- public static final String HEARTBEAT_ACK = "heartbeatack";
- public static final String ASP_INACTIVE_SENT = "aspinactivesent";
- public static final String ASP_INACTIVE = "aspinactive";
- public static final String ASP_INACTIVE_ACK = "aspinactiveack";
-
- public static final String ASP_ACTIVE = "aspactive";
- public static final String ASP_ACTIVE_SENT = "aspactivesent";
- public static final String ASP_ACTIVE_ACK = "aspactiveack";
- public static final String AS_DOWN = "asdown";
- public static final String AS_INACTIVE = "asinactive";
- public static final String AS_STATE_CHANGE_RESERVE = "ntfyreserve";
- public static final String AS_STATE_CHANGE_INACTIVE = "ntfyasinactive";
- public static final String AS_STATE_CHANGE_ACTIVE = "ntfyasactive";
- public static final String AS_STATE_CHANGE_PENDING = "ntfyaspending";
- public static final String OTHER_INSUFFICIENT_ASP = "ntfyinsuffasp";
- public static final String OTHER_ALTERNATE_ASP_ACTIVE = "ntfyaltaspact";
- public static final String OTHER_ALTERNATE_ASP_FAILURE = "ntfyaltaspfail";
- public static final String INVALID_RC = "invalidrc";
- private static HashMap<Integer, HashMap<Integer, String>> transContainer = new HashMap<Integer, HashMap<Integer, String>>();
- static {
- // Transfer
- HashMap<Integer, String> trfrTransCont = new HashMap<Integer, String>();
- trfrTransCont.put(MessageType.PAYLOAD, PAYLOAD);
- transContainer.put(MessageClass.TRANSFER_MESSAGES, trfrTransCont);
- // SSNM
- HashMap<Integer, String> ssnmTransCont = new HashMap<Integer, String>();
- ssnmTransCont.put(MessageType.DESTINATION_UNAVAILABLE, DUNA);
- ssnmTransCont.put(MessageType.DESTINATION_AVAILABLE, DAVA);
- ssnmTransCont.put(MessageType.DESTINATION_STATE_AUDIT, DAUD);
- ssnmTransCont.put(MessageType.SIGNALING_CONGESTION, SCON);
- ssnmTransCont.put(MessageType.DESTINATION_USER_PART_UNAVAILABLE, DUPU);
- ssnmTransCont.put(MessageType.DESTINATION_RESTRICTED, DRST);
- transContainer.put(MessageClass.SIGNALING_NETWORK_MANAGEMENT, ssnmTransCont);
- // ASPSM
- HashMap<Integer, String> aspsmTransCont = new HashMap<Integer, String>();
- aspsmTransCont.put(MessageType.ASP_UP, ASP_UP);
- aspsmTransCont.put(MessageType.ASP_UP_ACK, ASP_UP_ACK);
- aspsmTransCont.put(MessageType.ASP_DOWN, ASP_DOWN);
- aspsmTransCont.put(MessageType.ASP_DOWN_ACK, ASP_DOWN_ACK);
- aspsmTransCont.put(MessageType.HEARTBEAT, HEARTBEAT);
- aspsmTransCont.put(MessageType.HEARTBEAT_ACK, HEARTBEAT_ACK);
- transContainer.put(MessageClass.ASP_STATE_MAINTENANCE, aspsmTransCont);
- // ASPTM
- HashMap<Integer, String> asptmTransCont = new HashMap<Integer, String>();
- asptmTransCont.put(MessageType.ASP_ACTIVE, ASP_ACTIVE);
- asptmTransCont.put(MessageType.ASP_ACTIVE_ACK, ASP_ACTIVE_ACK);
- asptmTransCont.put(MessageType.ASP_INACTIVE, ASP_INACTIVE);
- asptmTransCont.put(MessageType.ASP_INACTIVE_ACK, ASP_INACTIVE_ACK);
- transContainer.put(MessageClass.ASP_TRAFFIC_MAINTENANCE, asptmTransCont);
- // MGMT
- HashMap<Integer, String> mgmtTransCont = new HashMap<Integer, String>();
- // NTFY
- mgmtTransCont.put((Status.STATUS_AS_State_Change << 16 | Status.INFO_Reserved), AS_STATE_CHANGE_RESERVE);
- mgmtTransCont.put((Status.STATUS_AS_State_Change << 16 | Status.INFO_AS_INACTIVE), AS_STATE_CHANGE_INACTIVE);
- mgmtTransCont.put((Status.STATUS_AS_State_Change << 16 | Status.INFO_AS_ACTIVE), AS_STATE_CHANGE_ACTIVE);
- mgmtTransCont.put((Status.STATUS_AS_State_Change << 16 | Status.INFO_AS_PENDING), AS_STATE_CHANGE_PENDING);
- mgmtTransCont.put((Status.STATUS_Other << 16 | Status.INFO_Insufficient_ASP_Resources_Active),
- OTHER_INSUFFICIENT_ASP);
- mgmtTransCont.put((Status.STATUS_Other << 16 | Status.INFO_Alternate_ASP_Active), OTHER_ALTERNATE_ASP_ACTIVE);
- mgmtTransCont.put((Status.STATUS_Other << 16 | Status.INFO_Alternate_ASP_Failure), OTHER_ALTERNATE_ASP_FAILURE);
- // Err cde
- mgmtTransCont.put(ErrorCode.Invalid_Routing_Context, INVALID_RC);
- transContainer.put(MessageClass.MANAGEMENT, mgmtTransCont);
- }
- public static String getTransition(M3UAMessage message) {
- switch (message.getMessageClass()) {
- case MessageClass.MANAGEMENT:
- switch (message.getMessageType()) {
- case MessageType.ERROR:
- case MessageType.NOTIFY:
- Status status = ((Notify) message).getStatus();
- return transContainer.get(message.getMessageClass()).get((status.getType() << 16 | status.getInfo()));
- }
- default:
- return transContainer.get(message.getMessageClass()).get(message.getMessageType());
- }
- }
- }