📄 isdnchannel.java
字号:
// local.dialogic.ISDNChannel
// Implements ISDN functionality
// $Id: ISDNChannel.java,v 1.7 2003/11/13 11:47:22 cgm8 Exp $
/*
* Copyright (c) 1999 Carlos G Mendioroz.
*
* This file is part of D4J.
*
* D4J 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 of the License, or (at your option) any later version.
*
* D4J 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 library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Report problems and direct all questions to:
*
* tron@acm.org
*/
package local.dialogic;
public class ISDNChannel extends Channel implements Runnable {
// Constants
private static final int RESET = 0; // NULL
private static final int IDLE = 1; // Aka UNBLOCKED
private static final int ICALL = 2;// OFFERED
private static final int RINGS = 3;// ACCEPTED
private static final int IN = 4; // CONNECTED incoming
private static final int OFFH = 5; // DIALING
private static final int DIAL = 6; // ALERTING
private static final int OUT = 7; // CONNECTED outgoing
// Constants from elsewhere
/*
* Single-byte Codeset 0 information elements
*/
public static final int CODESET_SHIFT_IE = 0x90; /* Codeset shift - Type 1 */
public static final int MORE_DATA_IE = 0xA0; /* More data - Type 2 */
public static final int SENDING_COMPLETE_IE = 0xA1; /* Send complete - Type 2 */
public static final int CONGEST_LEVEL_IE = 0xB0; /* Congestion level - Type 1 */
public static final int REPEAT_IND_IE = 0xD0; /* Repeat indicator - Type 1 */
/*
* Multi-byte Codeset 0 information elements
*/
public static final int SEGMENTED_MSG_IE = 0x00; /* Segmented message */
public static final int CHANGE_STATUS_IE = 0x01; /* Change status maint. ie */
public static final int BEARER_CAPABILITY_IE = 0x04; /* Bearer capability */
public static final int CAUSE_IE = 0x08; /* Cause elem */
public static final int CONNECTED_NUM_IE = 0x0C; /* Connected number */
public static final int CALL_IDENT_IE = 0x10; /* Call identity */
public static final int CALL_STATE_IE = 0x14; /* Call state */
public static final int CHANNEL_ID_IE = 0x18; /* Channel identification */
public static final int FACILITY_IE = 0x1C; /* Facility element */
public static final int PROGRESS_IND_IE = 0x1E; /* Progress indicator */
public static final int NETWORK_FACILITY_IE = 0x20; /* Network-specific facility */
public static final int NATIONAL_FACILITY_IE = NETWORK_FACILITY_IE; /* VN3 element */
public static final int ENDPOINT_ID_IE = 0x26; /* Endpoint Identification */
public static final int NOTIFY_IND_IE = 0x27; /* Notification indicator */
public static final int DISPLAY_IE = 0x28; /* Display element */
public static final int TIME_DATE_IE = 0x29; /* Time/Date element */
public static final int KEYPAD_FACILITY_IE = 0x2C; /* Keypad facility */
/*
* Values used in CHAN_STATUS message.
*/
public static final int CHAN_STATUS_IE = 0x30; /* Channel status */
/*
* Values used in STATUS_UPDATE message
*/
public static final int UPDATE_IE = 0x31; /* update info */
public static final int CONGESTION_IE = 0x31; /* Channel status */
public static final int INFO_REQ_IE = 0x32; /* Information request */
public static final int SIGNAL_IE = 0x34; /* Signal element */
public static final int SWITCHHOOK_IE = 0x36; /* Switchhook element */
public static final int FEATURE_ACTIV_IE = 0x38; /* Feature activation */
public static final int FEATURE_IND_IE = 0x39; /* Feature indication */
public static final int INFO_RATE_IE = 0x40; /* Information rate */
public static final int TRANSIT_DELAY_EE_IE = 0x42; /* End to end transit delay */
public static final int TRANSIT_DELAY_SEL_IE = 0x43; /* Transit delay select & indic */
public static final int PACKET_BIN_PARMS_IE = 0x44; /* Packet layer binary parameters */
public static final int PACKET_WINDOW_IE = 0x45; /* Packet layer window size */
public static final int PACKET_SIZE_IE = 0x46; /* Packet size */
public static final int CALLER_NUMBER_IE = 0x6C; /* Calling party number */
public static final int CALLER_SUB_ADDR_IE = 0x6D; /* Calling party sub-address */
public static final int CALLED_NUMBER_IE = 0x70; /* Called party number */
public static final int CALLED_SUB_ADDR_IE = 0x71; /* Called party sub-address */
public static final int ORIGINAL_CALLED_NUM_IE = 0x73; /* Original Called Number */
public static final int REDIRECTING_NUM_IE = 0x74; /* Redirecting number */
public static final int REDIRECTION_NUM_IE = 0x76; /* Redirection number */
public static final int TRANSIT_NETWORK_SEL_IE = 0x78; /* Transit network selection */
public static final int RESTART_IND_IE = 0x79; /* Re-start indication */
public static final int USER_USER_FAC_IE = 0x7A; /* User-to-user facility */
public static final int LOW_LAYER_COMPAT_IE = 0x7C; /* Low layer compatibility */
public static final int HIGH_LAYER_COMPAT_IE = 0x7D; /* High layer compatibility */
public static final int USER_USER_IE = 0x7E; /* User-to-User */
public static final int ESCAPE_FOR_EXT_IE = 0x7F; /* Escape for extension */
public static final int LOCKING_SHIFT_TO_6 = 0x96; /* for VerifyIEs function */
public static final int CODESET_6_UNLOCKED = 0x86; /* for VerifyIEs function */
public static final int CODESET_6_LOCKED = 0x06; /* for VerifyIEs function */
public static final int ADVICE_OF_CHARGE_IE = 0x01; /* NTT-KDD advice of charge */
/*
* Equates for supported value of Information Element
*/
/*
* Calling party number element
*/
public static final int ISDN_PI_RESTRICT = 0x01; /* presentation indicator - restricted */
public static final int ISDN_PI_NOTAVAIL = 0x02; /* presentation indicator - not avail */
public static final int ISDN_PI_RESRV = 0x03; /* presentation indicator - reserved */
public static final int ISDN_SI_USRVERSCRN = 0x01; /* screening indicator - verified and passed */
public static final int ISDN_SI_USRVERFAIL = 0x02; /* screening indicator - verified and failed */
public static final int ISDN_SI_NET = 0x03; /* screening indicator - network provided */
/*
* Congestion Level element
*/
public static final int ISDN_RCV_READY = 0x00; /* ready to receive more user to user info */
public static final int ISDN_RCV_NOT_READY = 0x01; /* not ready to receive more user to user info */
/*
* Network-Specific facility element
*/
public static final int ISDN_FEATURE = 0x00; /* feature/service - feature */
public static final int ISDN_SERVICE = 0x01; /* feature/service - service */
public static final int ISDN_CPN_PREF = 0x01; /* facility coding - CPN perferred */
public static final int ISDN_BN_PREF = 0x02; /* facility coding - BN preferred */
public static final int ISDN_CPN = 0x03; /* facility coding - CPN */
public static final int ISDN_BN = 0x04; /* facility coding - BN */
public static final int ISDN_SDN = 0x01; /* service coding - SDN */
public static final int ISDN_MEGACOM800 = 0x02; /* service coding - MEGACOM 800 */
public static final int ISDN_MEGACOM = 0x03; /* service coding - MEGACOM */
public static final int ISDN_WATS = 0x04; /* service coding - WATS */
public static final int ISDN_TIE = 0x05; /* service coding - TIE */
public static final int ISDN_ACCUNET = 0x06; /* service coding - ACCUNET SDS */
public static final int ISDN_LONG_DS = 0x07; /* service coding - Long distance */
public static final int ISDN_INT_800 = 0x08; /* service coding - internation 800 */
public static final int ISDN_CA_TSC = 0x09; /* service coding - CA TSC */
public static final int ISDN_ATT_MULTIQ = 0x10; /* service coding - ATT MultiQuest */
public static final int ISDN_TNID_USER = 0x00; /* network id type - user specified */
public static final int ISDN_TNID_NAT = 0x02; /* network id type - national */
public static final int ISDN_TNID_INTER = 0x03; /* network id type - international */
public static final int ISDN_NIDPLN_UNK = 0x00; /* network id plan - unknown */
public static final int ISDN_NIDPLN_CIC = 0x01; /* network id plan - carrier id code */
public static final int ISDN_NIDPLN_DNIC = 0x03; /* network id plan - datanetwork id co */
/*
* Information Transfer Capability
*/
public static final int BEAR_CAP_SPEECH = 0x00; /* Speech Bearer Capability */
public static final int BEAR_CAP_UNREST_DIG = 0x08; /* Unrestricted Digital Capability */
public static final int BEAR_CAP_REST_DIG = 0x09; /* Restricted Digital Capability */
public static final int BEAR_CAP_3DOT1K_AUDIO = 0x10; /* 3.1KHz Audio Capability */
public static final int BEAR_CAP_7K_AUDIO = 0x11; /* 7KHz Audio Capability */
public static final int BEAR_CAP_VIDEO = 0x18; /* Video Capability */
public static final int ISDN_ITM_CIRCUIT = 0x00; /* info transfer mode - circuit mode */
public static final int ISDN_ITM_PACKET = 0x02; /* info transfer mode - packet mode */
/*
* Information Transfer Rate
*/
public static final int BEAR_RATE_64KBPS = 0x10; /* B_CHANNEL_UNITS 1X64 */
public static final int BEAR_RATE_128KBPS = 0x11; /* Non-standard 2X64 */
public static final int BEAR_RATE_384KBPS = 0x13; /* H0_CHANNEL_UNITS 6X64 */
public static final int BEAR_RATE_1536KBPS = 0x15; /* H11_CHANNEL_UNITS 24X64 */
public static final int BEAR_RATE_1920KBPS = 0x17; /* H12_CHANNEL_UNITS 30X64 */
/*
* Bearer Capability Element
*/
public static final int ISDN_UIL1_CCITTV110 = 0x01; /* user info layer 1 - CCITT V.110/X.3 */
public static final int ISDN_UIL1_G711ULAW = 0x02; /* user info layer 1 - G.711 u-law */
public static final int ISDN_UIL1_G711ALAW = 0x03; /* user info layer 1 - G.711 A-law */
public static final int ISDN_UIL1_G721ADCPM = 0x04; /* user info layer 1 - G.721 ADCPM */
public static final int ISDN_UIL1_G722G725 = 0x05; /* user info layer 1 - G.722 and G.725 */
public static final int ISDN_UIL1_G722F725 = 0x05; /* user info layer 1 - G.722 and G.725 */
public static final int ISDN_UIL1_H261 = 0x06; /* user info layer 1 - H.261 */
public static final int ISDN_UIL1_NONCCITT = 0x07; /* user info layer 1 - non-CCITT */
public static final int ISDN_UIL1_CCITTV120 = 0x08; /* user info layer 1 - CCITT V.120 */
public static final int ISDN_UIL1_CCITTX31 = 0x09; /* user info layer 1 - CCITT X.31 */
public static final int ISDN_UIL1_DEFAULT = 0xFF; /* user info layer 1 - Default Value */
public static final int ISDN_UR_EINI460 = 0x00; /* user rate - E bits in I.460 */
public static final int ISDN_UR_600 = 0x01; /* user rate - 0.6 kbits */
public static final int ISDN_UR_1200 = 0x02; /* user rate - 1.2 kbits */
public static final int ISDN_UR_2400 = 0x03; /* user rate - 2.4 kbits */
public static final int ISDN_UR_3600 = 0x04; /* user rate - 3.6 kbits */
public static final int ISDN_UR_4800 = 0x05; /* user rate - 4.8 kbits */
public static final int ISDN_UR_7200 = 0x06; /* user rate - 7.2 kbits */
public static final int ISDN_UR_8000 = 0x07; /* user rate - 8.0 kbits */
public static final int ISDN_UR_9600 = 0x08; /* user rate - 9.6 kbits */
public static final int ISDN_UR_14400 = 0x09; /* user rate - 14.4 kbits */
public static final int ISDN_UR_16000 = 0x0A; /* user rate - 16.0 kbits */
public static final int ISDN_UR_19200 = 0x0B; /* user rate - 19.2 kbits */
public static final int ISDN_UR_32000 = 0x0C; /* user rate - 32 kbits */
public static final int ISDN_UR_48000 = 0x0E; /* user rate - 48 kbits */
public static final int ISDN_UR_56000 = 0x0F; /* user rate - 56 kbits */
public static final int ISDN_UR_64000 = 0x10; /* user rate - 64 kbits */
public static final int ISDN_UR_134 = 0x15; /* user rate - .1345 kbits */
public static final int ISDN_UR_100 = 0x16; /* user rate - .100 kbits */
public static final int ISDN_UR_75_1200 = 0x17; /* user rate - .075/1200 kbits */
public static final int ISDN_UR_1200_75 = 0x18; /* user rate - 1200/.075 kbits */
public static final int ISDN_UR_50 = 0x19; /* user rate - .050 kbits */
public static final int ISDN_UR_75 = 0x1A; /* user rate - .075 kbits */
public static final int ISDN_UR_110 = 0x1B; /* user rate - .110 kbits */
public static final int ISDN_UR_150 = 0x1C; /* user rate - .150 kbits */
public static final int ISDN_UR_200 = 0x1D; /* user rate - .200 kbits */
public static final int ISDN_UR_300 = 0x1E; /* user rate - .300 kbits */
public static final int ISDN_UR_12000 = 0x1F; /* user rate - 12 kbits */
public static final int ISDN_UR_DEFAULT = 0xFF; /* user rate - Default */
/*
* CALLER/CALLED_NUMBER_IE
*/
/* defines for CLC (these take the place of 'type of number' in Called/Calling IEs: - 627a206 */
public static final int DPNSS_CLC_UNKNOWN = 0x00;
public static final int DPNSS_CLC_ORD = 0x01;
public static final int DPNSS_CLC_DEC = 0x02;
public static final int DPNSS_CLC_ISDN = 0x03;
public static final int DPNSS_CLC_PSTN = 0x04;
public static final int DPNSS_CLC_MF5 = 0x05;
public static final int DPNSS_CLC_OP = 0x06;
public static final int DPNSS_CLC_NET = 0x07;
/*
* CALLER/CALLED_NUMBER_IE
*/
/*
* Number types
*/
public static final int EN_BLOC_NUMBER = 0x00; /* Number is sent en-bloc */
public static final int INTL_NUMBER = 0x01; /* International number */
public static final int NAT_NUMBER = 0x02; /* National number */
public static final int LOC_NUMBER = 0x04; /* Loacl (directory) number */
public static final int OVERLAP_NUMBER = 0x05; /* Number is sent overlap */
/*
* Numbering plans
*/
public static final int UNKNOWN_NUMB_PLAN = 0x00; /* Unknown plan */
public static final int ISDN_NUMB_PLAN = 0x01; /* ISDN numb. plan E.164 */
public static final int TELEPHONY_NUMB_PLAN = 0x02; /* Telephony numb. plan E.163 */
public static final int PRIVATE_NUMB_PLAN = 0x09; /* Private numbering plan */
/*
* Presentation indicators
*/
public static final int PRESENTATION_ALLOWED = 0x00; /* Default */
/*
* Screening indicators
*/
public static final int USER_PROVIDED = 0x00; /* Default */
/*
* CALLER_SUB_ADDR_IE and CALLED_SUB_ADDR_IE
*/
public static final int OSI_SUB_ADDR = 0x00; /* OSI Sub-address */
public static final int USER_SPECIFIC_SUB_ADDR = 0x02; /* User-specific Sub-address */
public static final int IA_5_FORMAT = 0x50; /* IA 5 sub-address digit format */
public static final int MAX_SUB_ADDR_LEN = 23; /* Japanese Len > CCITT default of 23 */
/*
* CAUSE_IE
*/
public static final int CAUSE_LENGTH = 0x02; /* Internal length = 2 */
public static final int DIAG_LEN = 0x03; /* Maximum diagnostic length */
public static final int NO_DIAG = 0x00; /* No CAUSE diagnostic specified */
/*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -