All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
org.restcomm.protocols.ss7.cap.api.CAPApplicationContext Maven / Gradle / Ivy
/*
* TeleStax, Open Source Cloud Communications
* Copyright 2012, Telestax 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.restcomm.protocols.ss7.cap.api;
import java.util.Arrays;
/**
*
* @author sergey vetyutnev
*
*/
public enum CAPApplicationContext {
CapV1_gsmSSF_to_gsmSCF(11),
CapV2_gsmSSF_to_gsmSCF(21), CapV2_assistGsmSSF_to_gsmSCF(22), CapV2_gsmSRF_to_gsmSCF(24),
CapV3_gsmSSF_scfGeneric(31), CapV3_gsmSSF_scfAssistHandoff(32), CapV3_gsmSRF_gsmSCF(34), CapV3_gprsSSF_gsmSCF(35), CapV3_gsmSCF_gprsSSF(
36), CapV3_cap3_sms(37),
CapV4_gsmSSF_scfGeneric(41), CapV4_gsmSSF_scfAssistHandoff(42), CapV4_scf_gsmSSFGeneric(43), CapV4_gsmSRF_gsmSCF(44), CapV4_cap4_sms(
48);
private static long[] oidTemplate = new long[] { 0, 4, 0, 0, 1, 0, 0, 0 };
private int code;
private CAPApplicationContextVersion applicationContextVersion;
private CAPApplicationContext(int code) {
this.code = code;
if (code == 11) {
this.applicationContextVersion = CAPApplicationContextVersion.version1;
} else if (code < 30) {
this.applicationContextVersion = CAPApplicationContextVersion.version2;
} else if (code < 40) {
this.applicationContextVersion = CAPApplicationContextVersion.version3;
} else {
this.applicationContextVersion = CAPApplicationContextVersion.version4;
}
}
public static CAPApplicationContext getInstance(long[] oid) {
if (oid == null || oid.length != oidTemplate.length)
return null;
for (int i1 = 0; i1 < oidTemplate.length - 3; i1++) {
if (oid[i1] != oidTemplate[i1])
return null;
}
if (oid[5] == 0 && oid[6] == 50 && oid[7] == 0) {
return CAPApplicationContext.CapV1_gsmSSF_to_gsmSCF;
}
if (oid[5] == 0 && oid[6] == 50 && oid[7] == 1) {
return CAPApplicationContext.CapV2_gsmSSF_to_gsmSCF;
}
if (oid[5] == 0 && oid[6] == 51 && oid[7] == 1) {
return CAPApplicationContext.CapV2_assistGsmSSF_to_gsmSCF;
}
if (oid[5] == 0 && oid[6] == 52 && oid[7] == 1) {
return CAPApplicationContext.CapV2_gsmSRF_to_gsmSCF;
}
if (oid[5] == 21 && oid[6] == 3 && oid[7] == 4) {
return CAPApplicationContext.CapV3_gsmSSF_scfGeneric;
}
if (oid[5] == 21 && oid[6] == 3 && oid[7] == 6) {
return CAPApplicationContext.CapV3_gsmSSF_scfAssistHandoff;
}
if (oid[5] == 20 && oid[6] == 3 && oid[7] == 14) {
return CAPApplicationContext.CapV3_gsmSRF_gsmSCF;
}
if (oid[5] == 21 && oid[6] == 3 && oid[7] == 50) {
return CAPApplicationContext.CapV3_gprsSSF_gsmSCF;
}
if (oid[5] == 21 && oid[6] == 3 && oid[7] == 51) {
return CAPApplicationContext.CapV3_gsmSCF_gprsSSF;
}
if (oid[5] == 21 && oid[6] == 3 && oid[7] == 61) {
return CAPApplicationContext.CapV3_cap3_sms;
}
if (oid[5] == 23 && oid[6] == 3 && oid[7] == 4) {
return CAPApplicationContext.CapV4_gsmSSF_scfGeneric;
}
if (oid[5] == 23 && oid[6] == 3 && oid[7] == 6) {
return CAPApplicationContext.CapV4_gsmSSF_scfAssistHandoff;
}
if (oid[5] == 23 && oid[6] == 3 && oid[7] == 8) {
return CAPApplicationContext.CapV4_scf_gsmSSFGeneric;
}
if (oid[5] == 22 && oid[6] == 3 && oid[7] == 14) {
return CAPApplicationContext.CapV4_gsmSRF_gsmSCF;
}
if (oid[5] == 23 && oid[6] == 3 && oid[7] == 61) {
return CAPApplicationContext.CapV4_cap4_sms;
}
return null;
}
public int getCode() {
return this.code;
}
public CAPApplicationContextVersion getVersion() {
return this.applicationContextVersion;
}
public long[] getOID() {
long[] res = Arrays.copyOf(oidTemplate, oidTemplate.length);
switch (this) {
case CapV1_gsmSSF_to_gsmSCF:
res[5] = 0;
res[6] = 50;
res[7] = 0;
break;
case CapV2_gsmSSF_to_gsmSCF:
res[5] = 0;
res[6] = 50;
res[7] = 1;
break;
case CapV2_assistGsmSSF_to_gsmSCF:
res[5] = 0;
res[6] = 51;
res[7] = 1;
break;
case CapV2_gsmSRF_to_gsmSCF:
res[5] = 0;
res[6] = 52;
res[7] = 1;
break;
case CapV3_gsmSSF_scfGeneric:
res[5] = 21;
res[6] = 3;
res[7] = 4;
break;
case CapV3_gsmSSF_scfAssistHandoff:
res[5] = 21;
res[6] = 3;
res[7] = 6;
break;
case CapV3_gsmSRF_gsmSCF:
res[5] = 20;
res[6] = 3;
res[7] = 14;
break;
case CapV3_gprsSSF_gsmSCF:
res[5] = 21;
res[6] = 3;
res[7] = 50;
break;
case CapV3_gsmSCF_gprsSSF:
res[5] = 21;
res[6] = 3;
res[7] = 51;
break;
case CapV3_cap3_sms:
res[5] = 21;
res[6] = 3;
res[7] = 61;
break;
case CapV4_gsmSSF_scfGeneric:
res[5] = 23;
res[6] = 3;
res[7] = 4;
break;
case CapV4_gsmSSF_scfAssistHandoff:
res[5] = 23;
res[6] = 3;
res[7] = 6;
break;
case CapV4_scf_gsmSSFGeneric:
res[5] = 23;
res[6] = 3;
res[7] = 8;
break;
case CapV4_gsmSRF_gsmSCF:
res[5] = 22;
res[6] = 3;
res[7] = 14;
break;
case CapV4_cap4_sms:
res[5] = 23;
res[6] = 3;
res[7] = 61;
break;
}
return res;
}
@Override
public String toString() {
StringBuffer s = new StringBuffer();
s.append("CAPApplicationContext [Name=");
s.append(super.toString());
s.append(", Version=");
s.append(this.applicationContextVersion.toString());
s.append(", Oid=");
for (long l : this.getOID()) {
s.append(l).append(", ");
}
s.append("]");
return s.toString();
}
}