2008年12月19日星期五

怎么把一个字符串数组转换为一个逗号分隔的字符串 Java / J2SE / 基础类 - CSDN社区 community.csdn.net

怎么把一个字符串数组转换为一个逗号分隔的字符串 Java / J2SE / 基础类 - CSDN社区 community.csdn.net: "//sorry, 写错了一个单词separator,更正
//楼上兄弟的算法封装为方法,呵呵
public String stringArrayJoin( String[] strArray, String separator ) {
StringBuffer strbuf = new StringBuffer();
for( int i = 0; i < strArray.length; i++ ) {
strbuf.append( separator ).append( strArray[i] );
}
return strbuf.deleteCharAt( 0 ).toString();
}"

2008年12月18日星期四

JAVA字符串处理函数列表一览 | 中文Flex例子

JAVA字符串处理函数列表一览 | 中文Flex例子: "Java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。

substring()
它有两种形式,第一种是:String substring(int startIndex)
第二种是:String substring(int startIndex,int endIndex)

concat() 连接两个字符串

replace() 替换
它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
String replace(char original,char replacement)
例如:String s=”Hello”.replace(’l',’w');
第二种形式是用一个字符序列替换另一个字符序列,形式如下:
String replace(CharSequence original,CharSequence replacement)

trim() 去掉起始和结尾的空格

valueOf() 转换为字符串

toLowerCase() 转换为小写

toUpperCase() 转换为大写

length() 取得字符串的长度
例:
char chars[]={’a',’b’.’c'};
String s=new String(chars);
int len=s.length();

charAt() 截取一个字符
例:
char ch;
ch=”abc”.charAt(1);
返回值为’b’

getChars() 截取多个字符
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
sourceStart 指定了子串开始字符的下标
sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。
target 指定接收字符的数组
targetStart target中开始复制子串的下标值
例:
String s=”this is a demo of the getChars method.”;
char buf[]=new char[20];
s.getChars(10,14,buf,0);

getBytes()
替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()
例:
String s = “Hello!你好!”;
byte[] bytes = s.getBytes();

toCharArray()
例:
String s = “Hello!你好!”;
char[] ss = s.toCharArray();

equals()和equalsIgnoreCase() 比较两个字符串

regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。
boolean regionMatches(int startIndex,String str2,int
str2StartIndex,int numChars)
boolean regionMatches(boolean ignoreCase,int startIndex,String
str2,int str2StartIndex,int numChars)

startsWith()和endsWith()
startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

equals()和==
equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
例:String s1=”Hello”;
String s2=new String(s1);
s1.eauals(s2); //true
s1==s2;//false

compareTo()和compareToIgnoreCase() 比较字符串

indexOf()和lastIndexOf()
indexOf() 查找字符或者子串第一次出现的地方。
lastIndexOf() 查找字符或者子串是后一次出现的地方。

StringBuffer构造函数
StringBuffer定义了三个构造函数:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
StringBuffer(CharSequence chars)

下面是StringBuffer相关的函数:
length()和capacity()
一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。

ensureCapacity() 设置缓冲区的大小
void ensureCapacity(int capacity)

setLength() 设置缓冲区的长度
void setLength(int len)

charAt()和setCharAt()
char charAt(int where)
void setCharAt(int where,char ch)

getChars()
void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。
例:int a=42;
StringBuffer sb=new StringBuffer(40);
String s=sb.append(”a=”).append(a).append(”!”).toString();

insert() 插入字符串
StringBuffer insert(int index,String str)
StringBuffer insert(int index,char ch)
StringBuffer insert(int index,Object obj)
index指定将字符串插入到StringBuffer对象中的位置的下标。

reverse() 颠倒StringBuffer对象中的字符
StringBuffer reverse()

delete()和deleteCharAt() 删除字符
StringBuffer delete(int startIndex,int endIndex)
StringBuffer deleteCharAt(int loc)

replace() 替换
StringBuffer replace(int startIndex,int endIndex,String str)

substring() 截取子串
String substring(int startIndex)
String substring(int startIndex,int endIndex)"

Java字符串的方法 - - New - JavaEye论坛

Java字符串的方法 - - New - JavaEye论坛: "1、length() 字符串的长度
  例:char chars[]={'a','b'.'c'};
    String s=new String(chars);
    int len=s.length();

2、charAt() 截取一个字符
  例:char ch;
    ch='abc'.charAt(1); 返回'b'

3、getChars() 截取多个字符
  void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)
  sourceStart指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到 sourceEnd-1的字符。接收字符的数组由target指定,target中开始复制子串的下标值是targetStart。
  例:String s='this is a demo of the getChars method.';
    char buf[]=new char[20];
    s.getChars(10,14,buf,0);

4、getBytes()
  替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()。

5、toCharArray()

6、equals()和equalsIgnoreCase() 比较两个字符串

7、regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。
  boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)
  boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)

8、startsWith()和endsWith()
  startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

9、equals()和==
  equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。
  例:String s1='Hello';
    String s2=new String(s1);
    s1.eauals(s2); //true
    s1==s2;//false

10、compareTo()和compareToIgnoreCase() 比较字符串

11、indexOf()和lastIndexOf()
  indexOf() 查找字符或者子串第一次出现的地方。
  lastIndexOf() 查找字符或者子串是后一次出现的地方。

12、substring()
  它有两种形式,第一种是:String substring(int startIndex)
         第二种是:String substring(int startIndex,int endIndex)

13、concat() 连接两个字符串

14 、replace() 替换
  它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:
  String replace(char original,char replacement)
  例如:String s='Hello'.replace('l','w');
  第二种形式是用一个字符序列替换另一个字符序列,形式如下:
  String replace(CharSequence original,CharSequence replacement)

15、trim() 去掉起始和结尾的空格

16、valueOf() 转换为字符串

17、toLowerCase() 转换为小写

18、toUpperCase() 转换为大写

19、StringBuffer构造函数
  StringBuffer定义了三个构造函数:
  StringBuffer()
  StringBuffer(int size)
  StringBuffer(String str)
  StringBuffer(CharSequence chars)
  
  (1)、length()和capacity()
    一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。
  
  (2)、ensureCapacity() 设置缓冲区的大小
    void ensureCapacity(int capacity)

  (3)、setLength() 设置缓冲区的长度
    void setLength(int len)

  (4)、charAt()和setCharAt()
    char charAt(int where)
    void setCharAt(int where,char ch)

  (5)、getChars()
    void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

  (6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。
    例:int a=42;
      StringBuffer sb=new StringBuffer(40);
      String s=sb.append('a=').append(a).append('!').toString();

  (7)、insert() 插入字符串
    StringBuffer insert(int index,String str)
    StringBuffer insert(int index,char ch)
    StringBuffer insert(int index,Object obj)
    index指定将字符串插入到StringBuffer对象中的位置的下标。

  (8)、reverse() 颠倒StringBuffer对象中的字符
    StringBuffer reverse()

  (9)、delete()和deleteCharAt() 删除字符
    StringBuffer delete(int startIndex,int endIndex)
    StringBuffer deleteCharAt(int loc)

  (10)、replace() 替换
    StringBuffer replace(int startIndex,int endIndex,String str)

  (11)、substring() 截取子串
    String substring(int startIndex)
    String substring(int startIndex,int endIndex)"

2008年12月15日星期一

用 java 检测主机连网状态--CTO_Java技术文章_Java_软件编程

用 java 检测主机连网状态--CTO_Java技术文章_Java_软件编程

通过几天努力终于把那个问题给解决了,就是用java 检测本机的连网状态,当网络中断时让检测网络,如果连接上网络,便又继续下面的工作.以下是我写的一个类,朋友们可以参考一下 清单一:URLAvailability.java

package xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

import java.net.HttpURLConnection;
import java.net.URL;
import java.net.UnknownHostException;
import java.text.DateFormat;
import java.util.Date;

import org.apache.log4j.Logger;

/**
*
* 项目名称: xxxxxxxxxx*


* 功能模块名称:
*


* 文件名称为:URLAvailability.java
*


* 文件功能简述: xxxxxxxxxxxxxxxxxxxxxxxxxx *


* 文件创建人:ChenTao
* @author ChenTao
* @version v1.0
* @time 2008-5-31上午10:00:35
* @copyright xxxxxxxxxxxxx */
@SuppressWarnings("unused")
public class URLAvailability {

private static Logger logger = Logger.getLogger(URLAvailability.class);

private static URL urlStr;

private static HttpURLConnection connection;

private static int state = -1;

private static String succ;

private static boolean isCon = false;

private String url;

private String closeTime = null;

private int status = 0;

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public static String getSucc() {
return succ;
}

public static void setSucc(String succ) {
URLAvailability.succ = succ;
}

/**
* 功能描述 : 检查URL是否可用
*
* @param url
* 指定检查的网络地址
*
* @return String
*/
public synchronized static String isConnect(String url) {
state = -1;
succ = null;
if (url == null || url.length() <= 0) {
return succ;
}
new URLAvailability().connectState(url);
return succ;
}

/**
* 功能描述 : 检测当前网络是否断开 或 URL是否可连接,
* 如果网络没断开,最多连接网络 5 次, 如果 5 次都不成功说明该地址不存在或视为无效地址.
*
* @param url
* 指定URL网络地址
*
* @return void
*/
private synchronized void connectState(String url) {
this.url = url;
int counts = 0;

while (counts < 5) {
try {
urlStr = new URL(this.getUrl());
connection = (HttpURLConnection) urlStr.openConnection();
state = connection.getResponseCode();
if (state == 200) {
succ = connection.getURL().toString();
}
break;
} catch (UnknownHostException ex) {
if(this.closeTime == null){
DateFormat df = DateFormat.getDateTimeInstance();
closeTime = df.format(new Date());
logger.error("网络连接状态已断开,请检查网络连接设备");
logger.info("断开时间 : " + this.closeTime);
logger.error("程序开始执行每三分钟检测一次网络");
}
try {
status ++;
logger.info("开始第" + status + " 次检测网络状态是否可连接");
Thread.sleep(180000);
} catch (InterruptedException e) {
}
this.connectState(this.getUrl());
} catch (Exception ex) {
counts++;
continue;
}
if(status != 0){

DateFormat df = DateFormat.getDateTimeInstance();
closeTime = df.format(new Date());
logger.info("网络成功连接");
}
}
}
}
大家看到上面我 cache 了UnknownHostException 异常,这个意思是在调用远程主机发生的异常,我们只需

要 cache 这个异常就搞定了,不信可试试把网线断开后看看会发生什么

JAVA 检测网络是否为连通状态 ping - 梦幻之旅 - BlogJava

JAVA 检测网络是否为连通状态 ping - 梦幻之旅 - BlogJava: "package com.roadway.edserver.util;

import java.awt.Toolkit;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/** *//**
* @Description:本类开启一个线程检测网络是否连通
* @Author : 惠万鹏
* @Time :2008-1-10
*/
public class NetworkManagement implements Runnable {
private int htmlCodeSize;
private int sleepMillisecond;
private int sleepMillisecondWhenNetWorkUnLinked;
private boolean isSpontaneousNotice;
private static boolean networkIsLinked;
private Thread thread = new Thread(this);
private Toolkit toolkit;
private String[] urls;

public NetworkManagement() {
this.urls = new String[]{'http://www.baidu.com', 'http://www.google.cn'};
this.htmlCodeSize = 50;
this.sleepMillisecond = 5000;
this.sleepMillisecondWhenNetWorkUnLinked = 10000;
this.toolkit = Toolkit.getDefaultToolkit();
thread.start();
}
public void setURLs(String[] urls) {
if (urls != null && urls.length > 0) {
this.urls = urls;
}
}
public void setHtmlCodeSize(int htmlCodeSize) {
if (htmlCodeSize > 0) {
this.htmlCodeSize = htmlCodeSize;
}
}
public void isSpontaneousNotice(boolean isSpontaneousNotice) {
this.isSpontaneousNotice = isSpontaneousNotice;
}
public void setSleepMillisecont(int sleepMillisecont) {
if (sleepMillisecont > 100) {
this.sleepMillisecond = sleepMillisecont;
}
}
public void setSleepMillisecondWhenNetWorkUnLinked(int sleepMillisecont) {
if (sleepMillisecont > 100) {
this.sleepMillisecondWhenNetWorkUnLinked = sleepMillisecont;
}
}
public static boolean IsNetWordLinking() {
return NetworkManagement.networkIsLinked;
}

public void run() {
while (true) {
try {
this.isNetWorkLinked();
if (!NetworkManagement.networkIsLinked) {
this.isPrintMessage(this.isSpontaneousNotice);
Thread.sleep(this.sleepMillisecondWhenNetWorkUnLinked);
}
System.out.println(NetworkManagement.IsNetWordLinking());
Thread.sleep(this.sleepMillisecond);
} catch (Exception e) {
}
}
}

private boolean canGetHtmlCode(String httpUrl) {
String htmlCode = '';
try {
InputStream in;
URL url = new java.net.URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty('User-Agent', 'Mozilla/4.0');
connection.connect();
in = connection.getInputStream();
byte[] buffer = new byte[this.htmlCodeSize];
in.read(buffer);
htmlCode = new String(buffer);
} catch (Exception e) {
}
if (htmlCode == null || htmlCode.equals('')) {
return false;
}
return true;
}

private void isNetWorkLinked() {
boolean tempIsNetWorkLinked = false;
for (int urlsCount = 0; urlsCount < this.urls.length; urlsCount++) {
if (this.canGetHtmlCode(this.urls[urlsCount])) {
tempIsNetWorkLinked = true;
break;
}
}
NetworkManagement.networkIsLinked = tempIsNetWorkLinked;
}
private void isPrintMessage(boolean isPrint) {
if (isPrint) {
toolkit.beep();
StringBuffer message = new StringBuffer();
message.append('------------->');
message.append('网络中断, ');
message.append(this.sleepMillisecondWhenNetWorkUnLinked);
message.append(' 毫秒后再次检测!<-------------');
System.out.println(message.toString());
}

}
public static void main(String[] args) {
NetworkManagement n = new NetworkManagement();
n.isSpontaneousNotice(true);
}
}"

2008年10月8日星期三

Protocols and approvals

From : http://www.aculab.com/products/ss7-and-signalling/protocols-and-approvals
Protocols and approvals
Worldwide IP and tdM protocols for applications using boards and software from Aculab

Aculab's protocol coverage extends to the broadest range of worldwide call control and signalling protocols with appropriate, host independent regulatory approvals. the list includes many different national and international variants of Signalling System Number 7 (SS7), CAS and ISDN (including Q.931, Q.SIG and DPNSS), for operation over E1 and T1 trunks on our tdM boards. In addition, for IP telephony and VoIP applications, Aculab offers H.323 and SIP stacks for use with our IP and media processing boards.
Combined protocols

Many applications require voice board or IP-based media processing functionality, such as record, playback, DTMF handling, wideband audio conferencing, encoding/transcoding and T.38 fax. All these essential functions and more are available with Aculab's Prosody X IP or DSP boards, which can be combined with any protocol, including SIP and SS7, to deliver powerful, cost-effective, telecoms server-based solutions.

In addition, offering the same core functionality, Prosody S, Aculab's advanced HMP, offers a viable alternative to using IP boards for telco and enterprise applications or service delivery platforms, bringing granular scalability and cost-efficiencies to those familiar with traditional, board-based designs.
Obtaining the software

With the exception of SIGtrAN and Prosody S, which are licensed, all protocols, including SIP and C7, are freely available via a software download utility for use with all of Aculab's board hardware. Developers can simply collect the protocol firmware, free of charge, when they need it, gaining a distinct advantage in terms of system cost and value per channel.

Access the download utility here
Regulatory approvals

Aculab has obtained many country specific, host independent regulatory approvals, such that Aculab's boards can be integrated into PC or server-based solutions without further telecom approvals being needed. In regions where this option is not available, Aculab has experience to offer in support of users seeking system level type approvals.

To discuss your requirements, contact your Account Manager or send an email to sales@aculab.com and one of our representatives will get right back to you.

Summary detail

A detailed summary of the available approvals and protocol information can be viewed as a PDF file. Please note that a number of protocols are used throughout the world, (like DPNSS, Q.SIG and SS7) and are indexed as 'Worldwide' in the tables.


CountryProtocolProtocol typeAdditional notesAculab protocol stack
ArgentinaR2 CASCAS1
R2T12
AustraliaTS014CCSNo longer suppliedAUSTEL-TS014
AustraliaTS038 See note 1CCS
ETS 300
AustraliaP2CAS1TS003/TPH1271/R2DR2T12
BelgiumNational R2CAS1
R2T12
BelgiumNational R2DTMF CAS1
BELGU
BrazilEuro ISDN See note 1CCS
ETS 300
BrazilMFC R2CAS1Brazil 5CR2T12
CanadaT1 Robbed bitCAS1
T1RB
ChileMFC R2CAS1
R2T12
ChinaR2CAS1China#1R2T12
ChinaChinese ISDN See note 1CCS
ETS300
ColombiaR2CAS1
R2T12
CroatiaR2CAS1
R2T12
Czech RepublicR2CAS1
R2T12
Czech RepublicMFC R2CAS1Type KR2T12
DenmarkNational MFC R2CAS1
R2DK
EgyptMFC R2CAS1
R2T12
EU wideEuro ISDN See note 1CCS
ETS 300
FinlandR2CAS1
R2T12
FranceMF R1 SocotelCAS1
FMFS
FranceVN3CCSNo longer suppliedVN3
FranceVN6 See note 1CCS
ETS 300
Germany1tr6 See note 1CCSNo longer supplied1tr6
GreeceOTE 4CAS14-bit CASOTE4
GreeceOTE 2CAS12-bit CASOTE2
Hong KongCR13 IDA-P See note 1CCSNo longer suppliedETS 300
Hong KongHKTA 2015 See note 1CCS
ETS 300
Hong KongHKT 2018 Robbed bitCAS1T1HK; AMI or B8ZS encodingT1HK
IndiaMFC E&MCAS1
R2T12
IndiaMFC R2CAS1Type 1/2/3R2T12
IndonesiaR2 (Q.421)CAS1Ericsson loop signallingR2T12
IndonesiaSMFC R2CAS1Semi-compelledIEM
IranR2CAS3-bit decadicR2T12
IsraelETS 300CCS
ETS 300
IsraelMFC R2CAS1Israel R2R2T12
ItalyI701CAS1
I701
JapanINS 1500 See note 1CCS
INS1500
JordanR2CAS1
R2T12
KoreaEuro ISDN See note 1CCS
ETS 300
KoreaR2CAS1
R2T12
KuwaitR2CAS1
R2T12
LatviaMFC R2CAS1
R2T12
MalaysiaMFC R2CAS1
R2T12
MalaysiaMFC R2CAS1
IEM
MaltaMFC R2CAS1
R2T12
MexicoR2CAS1
R2T12
NetherlandsALS70DCAS1T11-53EALSN/ALSU
NetherlandsMFC R2CAS1
R2T12
New ZealandTNA134 See note 1CCSQ.931ETS 300
NorwayNational MFC R2CAS1
R2T12
PeruMFC R2CAS1
R2T12
PhilippinesR2CAS1
R2T12
PolandEuroISDN See note 1CCS
ETS 300
PolandMFC R2CAS1
R2T12
PortugalMFC R2CAS1
R2T12
Sierra LeoneMFC R2CAS1
R2T12
SingaporeIDA TS ISDN2 See note 1CCS
ETS 300
SingaporeFetex See note 1CCS
FETEX
SingaporeMFC R2CAS1
R2T12
SingaporeMFC R2CAS1
IEM
South AfricaEuro ISDN See note 1CCS
ETS 300
South AfricaMFC R2CAS1
R2T12
SpainMF R1 SocotelCAS1
SMFS
SwedenCAS extension EL7CAS1Ericsson ASB/voicemailEL7
SwedenP8CAS1P8 DDI and P7 non-DDI optionP8
TaiwanMF R1CAS1ModifiedT1RB
thailandNational R2 DTMFCAS1
R2T12
TurkeyR1CAS1
E1LS
UKDASS2 See note 1CCS
DASS
UKDPNSS See note 1CCS
DPNSS
UKBT/MCL InterconnectCAS1AsymmetricalBTMC
UKBT CallstreamCAS1SIN 205/356BTCU/BTCN
UKPD1CAS1MCL PD1/DC5APD1
USAAT&T See note 1CCStr41459ATT-T1
USADMS 100 See note 1CCSNortel DMS (T1)DMS100
USANational ISDN 2 See note 1CCSNI1 and NI2NI2
USANational ISDN2 See note 1CCSNFAS (with D-channel back-up)NI2
USAT1 robbed bitCAS1
T1RB
Worldwide (ex USA)E1 line side CASCAS1AT&T Definity and Nortel MeridianE1LS
WorldwideMFC R2CAS1Q.421/Q.441R2T12
WorldwideSS5CAS1CCITT SS5 (C5)SS5
WorldwideDecadic CASCASGeneric use with PBXsR2T12
WorldwideE&M type ACAS1Ericsson DC5 and E&M optionsEEMA
Worldwide30DliCAS1NEC PA-30DTS30Dli
WorldwideSS7CCSITU-T: ISUP Q.767; TCAP Q.771-Q.774; SCCP Q.711- Q.714; MTP Q.703, Q.704, Q.707ISUP/TCAP
WorldwideQ.SIG See note 1CCS
QSIG
Notes:
1. A DSP 65 module is required for DTMF or CAS tone signalling with E1/T1 PCI and Passive monitor PCI boards. A PMXC is needed for SS7 and DTMF or CAS tone signalling with Prosody X variants.
2. Protocols marked '' in the table are compatible with Aculab's Passive Monitor products based upon the E1/T1 PCI and cPCI boards. In the case of Canada and the USA, the applicable protocols are T1 Q.931/Q.932-based ISDN protocols only. Aculab's 'p-monitor' firmware is required.
3. Aculab's R2T1 firmware provides a generic MFC R2 protocol stack, which uses switches to establish specific national or signalling variants. See the individual protocol release notes available via the Aculab installation tool (AIT).
4. Many CAS protocols provide for selection of either decadic (dial pulse), DTMF or MFR1 or MFC R2 register signalling and a number of line signalling methods. See the individual protocol release notes.
5. the majority of protocols are balanced, meaning that the same protocol may be used at both user and network ends of a link. In some cases user and network ends are established by switches in the firmware. Some protocols are provided by means of separate firmware for user and network ends. See the individual protocol release notes.
6. Some protocols offer both DDI and non-DDI options. See the individual protocol release notes.
7. In some cases the source specification documentation is less than thorough in its treatment of the protocol, leaving operations open to interpretation. Aculab is grateful for any feedback regarding the use of any listed protocol.
8. If you cannot find the protocol you need listed here, we may be able to help, as often, particularly with CAS protocols, an existing variant can prove viable. Aculab's generic MFC R2 stack often proves suitable for use even in countries where it has not already been validated for use against a specification. Aculab are able to compare an existing protocol stack against your specification, or alternatively may be able to produce the required variant for you. Please contact your Account Manager or email sales@aculab.com to discuss your requirements.
9. Developers looking to use 'host independent' approved Aculab products in their complete CT systems should not require further telecoms approval for that system prior to network connection.



Protocol IETF Specification Feature description
SIP (session
initiation protocol)
RFC 3261 Session initiation protocol
SIP on UDP and TCP
SIPS (SIP over TLS)
RFC 3262 Reliable provisional responses
RFC 3310 SIP authentication
RFC 2327 Session description protocol (SDP)
RFC 3665 Basic call flow examples
RFC 3666 SIP/PSTN call flows
RFC 3264 Offer/answer model with SDP
RFC 3725 third party call control best practices
RFC 3515 the REFER method
RFC 3204 MIME media types for Q.SIG/ISUP
RFC 2976 INFO method
RFC 3891 Replaces header
Draft-ietf-sipping-service-examples-09 Hold and transfer
Draft-ietf-sipping-cc-transfer-06.txt Blind transfer for SIP
RFC 3892 Referred by header
RFC 3261 TCP support
RFC 3581 Symmetric signalling ports
Draft-ietf-mmusic-sdescriptions-12 Secure RTP support
RFC 4028 SIP session timers
RFC 32651 Subscribe/specific event notification1
RFC 3311 UPDATE method
RFC 3489 STUN API
MRCP (media
resource control
protocol)

MRCP v1, draft 7

MRCP v2, draft 11
Protocol ITU-T Specification Feature description
H.323 H.323 version 2 Packet-based multimedia
communications systems
H.225 version 2 Including support for fast-start,
non-standard data field (NSDF),
RAS gatekeeper failover, NSM RAS
and connectionless facility messages
H.245 version 3 Including support for H.245 tunnelling,
third party hold,
early H.245 and DTMF relay
H.450.1; H.450.2; H.450.3; H.450.4; H.450.6 Supplementary services (call transfer,
call diversion, call waiting and call hold)
H.324M1 H.324M Including support for H.223
3G-324M1
Including support for H.223
Note: 1. Roadmap feature, contact your Account Manager for details



SS7 protocolNational and international variantsSpecification compliance
MTP 2 (message transfer
part layer 2)
ITU-T, ANSI, ChinaQ.703 (1996/white book);
ANSI T1.111 (1996);
China GF001-9001 (1990)
MTP 3 (message transfer
part layer 3)
ITU-T, ANSI, ChinaQ.704 (1996/white book); ANSI T1.111 (1996);
China GF001-9001 (1990)
ISUP (ISDN user part)ITU-T, ANSI, ETSI, UK, ChinaITU-T ISUP (1997/white book); ANSI ISUP T1.113 (1995);
Q.767 International ISUP;
China ISUP YDN-038 (1997);
ETSI ISUP V4 (2001);
UK ISUP (2001); user definable variants1
SCCP (signalling
connection control part)
ITU-T, ANSI, ChinaQ.711-Q.714 (1996/white book);
ANSI SCCP T1.112 (1996);
China SCCP GF010-95
TCAP (transaction capabilities
application part)
ITU-T, ANSI, ChinaQ.771-Q.774 (1996/white book);
ANSI TCAP T1.114 (1996);
China TCAP GF011-95
Note: 1. Aculab's SS7 software provides a flexible option through which the user can define other national and international ISUP variants to meet specific needs.




CountryApproved productProtocolApproval standardApproval numberAdditional notes
AustraliaProsody X PCI with PMX/PMXC1Q.931/Q.932AS/ACIF S038Self declarationE1
AustraliaAll PCI/cPCI cards with PM1Q.931/Q.932 See note 1AS/ACIF S038Self declarationE1
BrazilE1/T1 PCI with PM1Brazilian ISDN See note 1Anatel0030-06-1140E1
BrazilE1/T1 cPCI with PM1Brazilian ISDN See note 1Anatel0028-06-1140E1
CanadaProsody X PCI with PMX/PMXC1Aculab T1 protocolsCS03 part 82789A-AC5200T1
CanadaAll Prosody X and E1/T1 PCIe cardsAculab T1 protocolsCS03 part 82789A-PCIEXT1 - fitted with DSP for CAS/SS7 if applicable
CanadaAll PCI/cPCI cards with PM1Aculab T1 protocols See note 1CS03 part8 2789A 12217T1 - fitted with DSP if applicable
ChinaProsody X PCI with PMX/PMXC1Q.931/Q.932 See note 1Chinese ISDN12-7170-060345E1
ChinaE1/T1 PCI with PM1 & 3Q.931/Q.932 See note 1Chinese ISDN15-5288-020439E1
ChinaE1/T1 cPCI with PM1 & 3Q.931/Q.932 See note 1Chinese ISDN12 7170 050931E1
EU wide2Prosody X PCI with PMX/PMXC1Q.931/Q.932TBR4Self declaration under RTTEE1 protocol also referred to as Euro or ETSI ISDN
EU wide2All PCI/cPCI cards with PM1Q.931/Q.932 See note 1TBR4Self declaration under RTTEE1 protocol also referred to as Euro or ETSI ISDN
Hong KongProsody X PCI with 1 DSP and PMX/PMXC1ITU T1 See note 1HKTA2015IN606049T1
Hong KongProsody X PCI with 2 DSPs and PMX/PMXC1ITU T1 See note 1HKTA2015IN606048T1
Hong KongProsody X PCI with 4 DSPs and PMX/PMXC1ITU T1 See note 1HKTA2015IN406047T1
Hong KongE1/T1 PCI with PM1ITU T1 See note 1HKTA2015IN403011T1
Hong KongE1/T1 cPCI with PM1ITU T1 See note 1HKTA2015IN603018T1
IndiaProsody X PCIQ.931/Q.932TECTEC/NR/I/CTI-01/03/068.DEC07E1
IndiaProsody X PCIeQ.931/Q.932TECTEC/NR/I/CTI-01/03/069.DEC07E1
IndiaE1/T1 PCI with PM1Q.931/Q.932 See note 1TECTEC/WR/I/CTI-01/02/052.SEP 04E1
IndiaE1/T1 cPCI with PM1Q.931/Q.932 See note 1TECTEC/WR/I/CTI-01/02/052.SEP 04E1
JapanProsody X PCIe with DSP module1INS 1500JapanT C 08-0002 205T1
JapanProsody X PCI with PMXC 11INS 1500Japan07225004/AA/00T1
JapanProsody X PCI with PMXC 21INS 1500Japan07225005/AA/00T1
JapanProsody X PCI with PMXC 41INS 1500Japan07225006/AA/00T1
JapanProsody X PCI with PMXC 81INS 1500Japan07225002/AA/00T1
JapanE1/T1 PCI with PM1INS 1500 See note 1Japan04225006/AA/OO T1 - fitted with DSP
JapanProsody PCI with PM1INS 1500 See note 1Japan04225005/AA/OO T1 - fitted with DSP
KoreaE1/T1 PCI with PM1Q.931/Q.932 See note 1Korean requirementsTE-C99/K900-03-00093E1
KoreaE1/T1 cPCI with PM1Q.931/Q.932 See note 1Korean requirementsTE-C99/K900-03-0090E1
MalaysiaProsody X PCI with PMX/PMXC1Q.931/Q.932 See note 1TPS-013-01CETS/394B/0506/TE1
MalaysiaE1/T1 PCI with PM1Q.931/Q.932 See note 1TPS-013-01ISDA/48A/0603/SE1
MalaysiaE1/T1 cPCI with PM1Q.931/Q.932 See note 1TPS-013-01Awaiting approval numberE1
MexicoE1/T1 PCI with PM1Q.931/Q.932 See note 1CofetelRCPACAC04-712E1
MexicoE1/T1 cPCI with PM1Q.931/Q.932 See note 1CofetelRCPACAC04-651E1
New ZealandProsody X PCI with PMX/PMXC1Q.931/Q.932 See note 1PTC 232PTC232/06/001E1
New ZealandE1/T1 PCI with PM1Q.931/Q.932 See note 1PTC 232PTC220/02/029E1
New ZealandE1/T1 cPCI with PM1Q.931/Q.932 See note 1PTC 232PTC220/02/030E1
SingaporeProsody X PCI with PMX/PMXC1Q.931/Q.932 See note 1IDA TS ISDN-PRAG0373-06E1
SingaporeE1/T1 PCI with PM1Q.931/Q.932 See note 1iDAS ISDN2ISDN2-0631-2003E1
SingaporeE1/T1 cPCI with PM1Q.931/Q.932 See note 1iDAS ISDN2ISDN2-0630-2003E1
South AfricaProsody X PCIe with 2 DSPs and 4 E1/T1 trunksQ.931/Q.932TBR4TE-2008/109E1
South AfricaProsody X PCIe with 1 DSP and 2 E1/T1 trunksQ.931/Q.932TBR4TE-2008/110E1
South AfricaProsody X E1/T1 PCIe with 4 E1/T1 trunksQ.931/Q.932TBR4TE-2008/111E1
South AfricaProsody X PCI with PMX/PMXC1Q.931/Q.932TBR4SS-743.01E1
South AfricaE1/T1 PCI with PM1Q.931/Q.932 See note 1TBR4SS-425.01E1
South AfricaProsody PCI with PM1Q.931/Q.932 See note 1TBR4SS-427.01E1
South AfricaE1/T1 cPCI with PM1Q.931/Q.932 See note 1TBR4SS-424.01E1
South AfricaE1/T1 cPCI with PMXC 161Q.931/Q.932TBR4TE-2004/189E1
South AfricaProsody cPCI with PM1Q.931/Q.932 See note 1TBR4SS-423.01E1
UkraineProsody PCI with 2 DSPs and PM1/2/4Euro ISDN See note 1UkraineUA1 025.0132909-08E1
UkraineProsody X PCI with 1 DSP and PMX/PMXCEuro ISDN See note 1UkraineUA1 025.0132915-08E1
UkraineProsody X PCI with 2 DSP and PMX/PMXCEuro ISDN See note 1UkraineUA1 025.0132914-08E1
UkraineProsody X PCI with 4 DSP and PMX/PMXCEuro ISDN See note 1UkraineUA1 025.0132911-08E1
USAProsody X PCI with PMX/PMXC1Aculab T1 protocolsFCC part 685TCXDNANPMXPCIXT1 - fitted with DSP if applicable
USAAll PCI/cPCI cards with PM1Aculab T1 protocols See note 1FCC part 685TCXDNANPM4MODT1T1 - fitted with DSP if applicable
USAE1/T1 cPCI with PMXC 161Aculab T1 protocolsFCC part 68STCXDNAPMXT1MODT1
Notes:
1. Protocols marked 'See note 1' in the table are compatible with Aculab's Passive Monitor products based upon the E1/T1 PCI and cPCI boards. In the case of Canada and the USA, the applicable protocols are T1 Q.931/Q.932-based ISDN protocols only. Aculab's 'p-monitor' firmware is required.
2. Primary rate modules PM4/2/1 are used on E1/T1 PCI, and Passive monitor PCI boards. A PMX/PMXC module is used on Prosody X variants. A DSP 65 module is required for DTMF and CAS tone signalling (excluding Prosody X variants). View the product pages, contact your Account Manager or sales@aculab.com for details of configuration options available.
3. EU-wide member states include: Austria, Belgium, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, lithuania, Luxembourg, Malta, Poland, Portugal, Spain, Sweden, Slovakia, Slovenia, the Netherlands, United Kingdom (UK). Iceland, Norway and Switzerland have accepted EU telecommunications approvals although not member states.
4. All products are Safety and EMC approved.




CountryApproved productApproval standardApproval number
ChinaProsody X PCIChina Compulsory Certification2006021607000001
E1/T1 PCI with PM2004011607105503
Prosody PCI with PM2004011607105495
IP telephony PCI with PM2004011608105501
E1/T1 cPCI with PM2004011607105504
Prosody cPCI with PM2004011607105497
E1/T1 cPCI with PMXC 162005021607000001





CountryProtocolProtocol typeAdditional notesAculab protocol stack
ArgentinaR2 CASCAS1
R2T12
AustraliaTS014CCSNo longer suppliedAUSTEL-TS014
AustraliaTS038 See note 1CCS
ETS 300
AustraliaP2CAS1TS003/TPH1271/R2DR2T12
BelgiumNational R2CAS1
R2T12
BelgiumNational R2DTMF CAS1
BELGU
BrazilEuro ISDN See note 1CCS
ETS 300
BrazilMFC R2CAS1Brazil 5CR2T12
CanadaT1 Robbed bitCAS1
T1RB
ChileMFC R2CAS1
R2T12
ChinaR2CAS1China#1R2T12
ChinaChinese ISDN See note 1CCS
ETS300
ColombiaR2CAS1
R2T12
CroatiaR2CAS1
R2T12
Czech RepublicR2CAS1
R2T12
Czech RepublicMFC R2CAS1Type KR2T12
DenmarkNational MFC R2CAS1
R2DK
EgyptMFC R2CAS1
R2T12
EU wideEuro ISDN See note 1CCS
ETS 300
FinlandR2CAS1
R2T12
FranceMF R1 SocotelCAS1
FMFS
FranceVN3CCSNo longer suppliedVN3
FranceVN6 See note 1CCS
ETS 300
Germany1tr6 See note 1CCSNo longer supplied1tr6
GreeceOTE 4CAS14-bit CASOTE4
GreeceOTE 2CAS12-bit CASOTE2
Hong KongCR13 IDA-P See note 1CCSNo longer suppliedETS 300
Hong KongHKTA 2015 See note 1CCS
ETS 300
Hong KongHKT 2018 Robbed bitCAS1T1HK; AMI or B8ZS encodingT1HK
IndiaMFC E&MCAS1
R2T12
IndiaMFC R2CAS1Type 1/2/3R2T12
IndonesiaR2 (Q.421)CAS1Ericsson loop signallingR2T12
IndonesiaSMFC R2CAS1Semi-compelledIEM
IranR2CAS3-bit decadicR2T12
IsraelETS 300CCS
ETS 300
IsraelMFC R2CAS1Israel R2R2T12
ItalyI701CAS1
I701
JapanINS 1500 See note 1CCS
INS1500
JordanR2CAS1
R2T12
KoreaEuro ISDN See note 1CCS
ETS 300
KoreaR2CAS1
R2T12
KuwaitR2CAS1
R2T12
LatviaMFC R2CAS1
R2T12
MalaysiaMFC R2CAS1
R2T12
MalaysiaMFC R2CAS1
IEM
MaltaMFC R2CAS1
R2T12
MexicoR2CAS1
R2T12
NetherlandsALS70DCAS1T11-53EALSN/ALSU
NetherlandsMFC R2CAS1
R2T12
New ZealandTNA134 See note 1CCSQ.931ETS 300
NorwayNational MFC R2CAS1
R2T12
PeruMFC R2CAS1
R2T12
PhilippinesR2CAS1
R2T12
PolandEuroISDN See note 1CCS
ETS 300
PolandMFC R2CAS1
R2T12
PortugalMFC R2CAS1
R2T12
Sierra LeoneMFC R2CAS1
R2T12
SingaporeIDA TS ISDN2 See note 1CCS
ETS 300
SingaporeFetex See note 1CCS
FETEX
SingaporeMFC R2CAS1
R2T12
SingaporeMFC R2CAS1
IEM
South AfricaEuro ISDN See note 1CCS
ETS 300
South AfricaMFC R2CAS1
R2T12
SpainMF R1 SocotelCAS1
SMFS
SwedenCAS extension EL7CAS1Ericsson ASB/voicemailEL7
SwedenP8CAS1P8 DDI and P7 non-DDI optionP8
TaiwanMF R1CAS1ModifiedT1RB
thailandNational R2 DTMFCAS1
R2T12
TurkeyR1CAS1
E1LS
UKDASS2 See note 1CCS
DASS
UKDPNSS See note 1CCS
DPNSS
UKBT/MCL InterconnectCAS1AsymmetricalBTMC
UKBT CallstreamCAS1SIN 205/356BTCU/BTCN
UKPD1CAS1MCL PD1/DC5APD1
USAAT&T See note 1CCStr41459ATT-T1
USADMS 100 See note 1CCSNortel DMS (T1)DMS100
USANational ISDN 2 See note 1CCSNI1 and NI2NI2
USANational ISDN2 See note 1CCSNFAS (with D-channel back-up)NI2
USAT1 robbed bitCAS1
T1RB
Worldwide (ex USA)E1 line side CASCAS1AT&T Definity and Nortel MeridianE1LS
WorldwideMFC R2CAS1Q.421/Q.441R2T12
WorldwideSS5CAS1CCITT SS5 (C5)SS5
WorldwideDecadic CASCASGeneric use with PBXsR2T12
WorldwideE&M type ACAS1Ericsson DC5 and E&M optionsEEMA
Worldwide30DliCAS1NEC PA-30DTS30Dli
WorldwideSS7CCSITU-T: ISUP Q.767; TCAP Q.771-Q.774; SCCP Q.711- Q.714; MTP Q.703, Q.704, Q.707ISUP/TCAP
WorldwideQ.SIG See note 1CCS
QSIG
Notes:
1. A DSP 65 module is required for DTMF or CAS tone signalling with E1/T1 PCI and Passive monitor PCI boards. A PMXC is needed for SS7 and DTMF or CAS tone signalling with Prosody X variants.
2. Protocols marked '' in the table are compatible with Aculab's Passive Monitor products based upon the E1/T1 PCI and cPCI boards. In the case of Canada and the USA, the applicable protocols are T1 Q.931/Q.932-based ISDN protocols only. Aculab's 'p-monitor' firmware is required.
3. Aculab's R2T1 firmware provides a generic MFC R2 protocol stack, which uses switches to establish specific national or signalling variants. See the individual protocol release notes available via the Aculab installation tool (AIT).
4. Many CAS protocols provide for selection of either decadic (dial pulse), DTMF or MFR1 or MFC R2 register signalling and a number of line signalling methods. See the individual protocol release notes.
5. the majority of protocols are balanced, meaning that the same protocol may be used at both user and network ends of a link. In some cases user and network ends are established by switches in the firmware. Some protocols are provided by means of separate firmware for user and network ends. See the individual protocol release notes.
6. Some protocols offer both DDI and non-DDI options. See the individual protocol release notes.
7. In some cases the source specification documentation is less than thorough in its treatment of the protocol, leaving operations open to interpretation. Aculab is grateful for any feedback regarding the use of any listed protocol.
8. If you cannot find the protocol you need listed here, we may be able to help, as often, particularly with CAS protocols, an existing variant can prove viable. Aculab's generic MFC R2 stack often proves suitable for use even in countries where it has not already been validated for use against a specification. Aculab are able to compare an existing protocol stack against your specification, or alternatively may be able to produce the required variant for you. Please contact your Account Manager or email sales@aculab.com to discuss your requirements.
9. Developers looking to use 'host independent' approved Aculab products in their complete CT systems should not require further telecoms approval for that system prior to network connection.