2008年12月19日星期五
怎么把一个字符串数组转换为一个逗号分隔的字符串 Java / J2SE / 基础类 - CSDN社区 community.csdn.net
//楼上兄弟的算法封装为方法,呵呵
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例子
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论坛
例: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 检测本机的连网状态,当网络中断时让检测网络,如果连接上网络,便又继续下面的工作.以下是我写的一个类,朋友们可以参考一下 清单一: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
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年11月13日星期四
2008年10月8日星期三
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.
| Country | Protocol | Protocol type | Additional notes | Aculab protocol stack | |
|---|---|---|---|---|---|
| Argentina | R2 CAS | CAS1 | R2T12 | ||
| Australia | TS014 | CCS | No longer supplied | AUSTEL-TS014 | |
| Australia | TS038 | CCS | ETS 300 | ||
| Australia | P2 | CAS1 | TS003/TPH1271/R2D | R2T12 | |
| Belgium | National R2 | CAS1 | R2T12 | ||
| Belgium | National R2 | DTMF CAS1 | BELGU | ||
| Brazil | Euro ISDN | CCS | ETS 300 | ||
| Brazil | MFC R2 | CAS1 | Brazil 5C | R2T12 | |
| Canada | T1 Robbed bit | CAS1 | T1RB | ||
| Chile | MFC R2 | CAS1 | R2T12 | ||
| China | R2 | CAS1 | China#1 | R2T12 | |
| China | Chinese ISDN | CCS | ETS300 | ||
| Colombia | R2 | CAS1 | R2T12 | ||
| Croatia | R2 | CAS1 | R2T12 | ||
| Czech Republic | R2 | CAS1 | R2T12 | ||
| Czech Republic | MFC R2 | CAS1 | Type K | R2T12 | |
| Denmark | National MFC R2 | CAS1 | R2DK | ||
| Egypt | MFC R2 | CAS1 | R2T12 | ||
| EU wide | Euro ISDN | CCS | ETS 300 | ||
| Finland | R2 | CAS1 | R2T12 | ||
| France | MF R1 Socotel | CAS1 | FMFS | ||
| France | VN3 | CCS | No longer supplied | VN3 | |
| France | VN6 | CCS | ETS 300 | ||
| Germany | 1tr6 | CCS | No longer supplied | 1tr6 | |
| Greece | OTE 4 | CAS1 | 4-bit CAS | OTE4 | |
| Greece | OTE 2 | CAS1 | 2-bit CAS | OTE2 | |
| Hong Kong | CR13 IDA-P | CCS | No longer supplied | ETS 300 | |
| Hong Kong | HKTA 2015 | CCS | ETS 300 | ||
| Hong Kong | HKT 2018 Robbed bit | CAS1 | T1HK; AMI or B8ZS encoding | T1HK | |
| India | MFC E&M | CAS1 | R2T12 | ||
| India | MFC R2 | CAS1 | Type 1/2/3 | R2T12 | |
| Indonesia | R2 (Q.421) | CAS1 | Ericsson loop signalling | R2T12 | |
| Indonesia | SMFC R2 | CAS1 | Semi-compelled | IEM | |
| Iran | R2 | CAS | 3-bit decadic | R2T12 | |
| Israel | ETS 300 | CCS | ETS 300 | ||
| Israel | MFC R2 | CAS1 | Israel R2 | R2T12 | |
| Italy | I701 | CAS1 | I701 | ||
| Japan | INS 1500 | CCS | INS1500 | ||
| Jordan | R2 | CAS1 | R2T12 | ||
| Korea | Euro ISDN | CCS | ETS 300 | ||
| Korea | R2 | CAS1 | R2T12 | ||
| Kuwait | R2 | CAS1 | R2T12 | ||
| Latvia | MFC R2 | CAS1 | R2T12 | ||
| Malaysia | MFC R2 | CAS1 | R2T12 | ||
| Malaysia | MFC R2 | CAS1 | IEM | ||
| Malta | MFC R2 | CAS1 | R2T12 | ||
| Mexico | R2 | CAS1 | R2T12 | ||
| Netherlands | ALS70D | CAS1 | T11-53E | ALSN/ALSU | |
| Netherlands | MFC R2 | CAS1 | R2T12 | ||
| New Zealand | TNA134 | CCS | Q.931 | ETS 300 | |
| Norway | National MFC R2 | CAS1 | R2T12 | ||
| Peru | MFC R2 | CAS1 | R2T12 | ||
| Philippines | R2 | CAS1 | R2T12 | ||
| Poland | EuroISDN | CCS | ETS 300 | ||
| Poland | MFC R2 | CAS1 | R2T12 | ||
| Portugal | MFC R2 | CAS1 | R2T12 | ||
| Sierra Leone | MFC R2 | CAS1 | R2T12 | ||
| Singapore | IDA TS ISDN2 | CCS | ETS 300 | ||
| Singapore | Fetex | CCS | FETEX | ||
| Singapore | MFC R2 | CAS1 | R2T12 | ||
| Singapore | MFC R2 | CAS1 | IEM | ||
| South Africa | Euro ISDN | CCS | ETS 300 | ||
| South Africa | MFC R2 | CAS1 | R2T12 | ||
| Spain | MF R1 Socotel | CAS1 | SMFS | ||
| Sweden | CAS extension EL7 | CAS1 | Ericsson ASB/voicemail | EL7 | |
| Sweden | P8 | CAS1 | P8 DDI and P7 non-DDI option | P8 | |
| Taiwan | MF R1 | CAS1 | Modified | T1RB | |
| thailand | National R2 DTMF | CAS1 | R2T12 | ||
| Turkey | R1 | CAS1 | E1LS | ||
| UK | DASS2 | CCS | DASS | ||
| UK | DPNSS | CCS | DPNSS | ||
| UK | BT/MCL Interconnect | CAS1 | Asymmetrical | BTMC | |
| UK | BT Callstream | CAS1 | SIN 205/356 | BTCU/BTCN | |
| UK | PD1 | CAS1 | MCL PD1/DC5A | PD1 | |
| USA | AT&T | CCS | tr41459 | ATT-T1 | |
| USA | DMS 100 | CCS | Nortel DMS (T1) | DMS100 | |
| USA | National ISDN 2 | CCS | NI1 and NI2 | NI2 | |
| USA | National ISDN2 | CCS | NFAS (with D-channel back-up) | NI2 | |
| USA | T1 robbed bit | CAS1 | T1RB | ||
| Worldwide (ex USA) | E1 line side CAS | CAS1 | AT&T Definity and Nortel Meridian | E1LS | |
| Worldwide | MFC R2 | CAS1 | Q.421/Q.441 | R2T12 | |
| Worldwide | SS5 | CAS1 | CCITT SS5 (C5) | SS5 | |
| Worldwide | Decadic CAS | CAS | Generic use with PBXs | R2T12 | |
| Worldwide | E&M type A | CAS1 | Ericsson DC5 and E&M options | EEMA | |
| Worldwide | 30Dli | CAS1 | NEC PA-30DTS | 30Dli | |
| Worldwide | SS7 | CCS | ITU-T: ISUP Q.767; TCAP Q.771-Q.774; SCCP Q.711- Q.714; MTP Q.703, Q.704, Q.707 | ISUP/TCAP | |
| Worldwide | Q.SIG | CCS | 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 ' 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 protocol | National and international variants | Specification compliance |
|---|---|---|
| MTP 2 (message transfer part layer 2) | ITU-T, ANSI, China | Q.703 (1996/white book); ANSI T1.111 (1996); China GF001-9001 (1990) |
| MTP 3 (message transfer part layer 3) | ITU-T, ANSI, China | Q.704 (1996/white book); ANSI T1.111 (1996); China GF001-9001 (1990) |
| ISUP (ISDN user part) | ITU-T, ANSI, ETSI, UK, China | ITU-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, China | Q.711-Q.714 (1996/white book); ANSI SCCP T1.112 (1996); China SCCP GF010-95 |
| TCAP (transaction capabilities application part) | ITU-T, ANSI, China | Q.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. | ||
| Country | Approved product | Protocol | Approval standard | Approval number | Additional notes |
|---|---|---|---|---|---|
| Australia | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | AS/ACIF S038 | Self declaration | E1 |
| Australia | All PCI/cPCI cards with PM1 | Q.931/Q.932 | AS/ACIF S038 | Self declaration | E1 |
| Brazil | E1/T1 PCI with PM1 | Brazilian ISDN | Anatel | 0030-06-1140 | E1 |
| Brazil | E1/T1 cPCI with PM1 | Brazilian ISDN | Anatel | 0028-06-1140 | E1 |
| Canada | Prosody X PCI with PMX/PMXC1 | Aculab T1 protocols | CS03 part 8 | 2789A-AC5200 | T1 |
| Canada | All Prosody X and E1/T1 PCIe cards | Aculab T1 protocols | CS03 part 8 | 2789A-PCIEX | T1 - fitted with DSP for CAS/SS7 if applicable |
| Canada | All PCI/cPCI cards with PM1 | Aculab T1 protocols | CS03 part | 8 2789A 12217 | T1 - fitted with DSP if applicable |
| China | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | Chinese ISDN | 12-7170-060345 | E1 |
| China | E1/T1 PCI with PM1 & 3 | Q.931/Q.932 | Chinese ISDN | 15-5288-020439 | E1 |
| China | E1/T1 cPCI with PM1 & 3 | Q.931/Q.932 | Chinese ISDN | 12 7170 050931 | E1 |
| EU wide2 | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | TBR4 | Self declaration under RTTE | E1 protocol also referred to as Euro or ETSI ISDN |
| EU wide2 | All PCI/cPCI cards with PM1 | Q.931/Q.932 | TBR4 | Self declaration under RTTE | E1 protocol also referred to as Euro or ETSI ISDN |
| Hong Kong | Prosody X PCI with 1 DSP and PMX/PMXC1 | ITU T1 | HKTA2015 | IN606049 | T1 |
| Hong Kong | Prosody X PCI with 2 DSPs and PMX/PMXC1 | ITU T1 | HKTA2015 | IN606048 | T1 |
| Hong Kong | Prosody X PCI with 4 DSPs and PMX/PMXC1 | ITU T1 | HKTA2015 | IN406047 | T1 |
| Hong Kong | E1/T1 PCI with PM1 | ITU T1 | HKTA2015 | IN403011 | T1 |
| Hong Kong | E1/T1 cPCI with PM1 | ITU T1 | HKTA2015 | IN603018 | T1 |
| India | Prosody X PCI | Q.931/Q.932 | TEC | TEC/NR/I/CTI-01/03/068.DEC07 | E1 |
| India | Prosody X PCIe | Q.931/Q.932 | TEC | TEC/NR/I/CTI-01/03/069.DEC07 | E1 |
| India | E1/T1 PCI with PM1 | Q.931/Q.932 | TEC | TEC/WR/I/CTI-01/02/052.SEP 04 | E1 |
| India | E1/T1 cPCI with PM1 | Q.931/Q.932 | TEC | TEC/WR/I/CTI-01/02/052.SEP 04 | E1 |
| Japan | Prosody X PCIe with DSP module1 | INS 1500 | Japan | T C 08-0002 205 | T1 |
| Japan | Prosody X PCI with PMXC 11 | INS 1500 | Japan | 07225004/AA/00 | T1 |
| Japan | Prosody X PCI with PMXC 21 | INS 1500 | Japan | 07225005/AA/00 | T1 |
| Japan | Prosody X PCI with PMXC 41 | INS 1500 | Japan | 07225006/AA/00 | T1 |
| Japan | Prosody X PCI with PMXC 81 | INS 1500 | Japan | 07225002/AA/00 | T1 |
| Japan | E1/T1 PCI with PM1 | INS 1500 | Japan | 04225006/AA/OO | T1 - fitted with DSP |
| Japan | Prosody PCI with PM1 | INS 1500 | Japan | 04225005/AA/OO | T1 - fitted with DSP |
| Korea | E1/T1 PCI with PM1 | Q.931/Q.932 | Korean requirements | TE-C99/K900-03-00093 | E1 |
| Korea | E1/T1 cPCI with PM1 | Q.931/Q.932 | Korean requirements | TE-C99/K900-03-0090 | E1 |
| Malaysia | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | TPS-013-01 | CETS/394B/0506/T | E1 |
| Malaysia | E1/T1 PCI with PM1 | Q.931/Q.932 | TPS-013-01 | ISDA/48A/0603/S | E1 |
| Malaysia | E1/T1 cPCI with PM1 | Q.931/Q.932 | TPS-013-01 | Awaiting approval number | E1 |
| Mexico | E1/T1 PCI with PM1 | Q.931/Q.932 | Cofetel | RCPACAC04-712 | E1 |
| Mexico | E1/T1 cPCI with PM1 | Q.931/Q.932 | Cofetel | RCPACAC04-651 | E1 |
| New Zealand | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | PTC 232 | PTC232/06/001 | E1 |
| New Zealand | E1/T1 PCI with PM1 | Q.931/Q.932 | PTC 232 | PTC220/02/029 | E1 |
| New Zealand | E1/T1 cPCI with PM1 | Q.931/Q.932 | PTC 232 | PTC220/02/030 | E1 |
| Singapore | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | IDA TS ISDN-PRA | G0373-06 | E1 |
| Singapore | E1/T1 PCI with PM1 | Q.931/Q.932 | iDAS ISDN2 | ISDN2-0631-2003 | E1 |
| Singapore | E1/T1 cPCI with PM1 | Q.931/Q.932 | iDAS ISDN2 | ISDN2-0630-2003 | E1 |
| South Africa | Prosody X PCIe with 2 DSPs and 4 E1/T1 trunks | Q.931/Q.932 | TBR4 | TE-2008/109 | E1 |
| South Africa | Prosody X PCIe with 1 DSP and 2 E1/T1 trunks | Q.931/Q.932 | TBR4 | TE-2008/110 | E1 |
| South Africa | Prosody X E1/T1 PCIe with 4 E1/T1 trunks | Q.931/Q.932 | TBR4 | TE-2008/111 | E1 |
| South Africa | Prosody X PCI with PMX/PMXC1 | Q.931/Q.932 | TBR4 | SS-743.01 | E1 |
| South Africa | E1/T1 PCI with PM1 | Q.931/Q.932 | TBR4 | SS-425.01 | E1 |
| South Africa | Prosody PCI with PM1 | Q.931/Q.932 | TBR4 | SS-427.01 | E1 |
| South Africa | E1/T1 cPCI with PM1 | Q.931/Q.932 | TBR4 | SS-424.01 | E1 |
| South Africa | E1/T1 cPCI with PMXC 161 | Q.931/Q.932 | TBR4 | TE-2004/189 | E1 |
| South Africa | Prosody cPCI with PM1 | Q.931/Q.932 | TBR4 | SS-423.01 | E1 |
| Ukraine | Prosody PCI with 2 DSPs and PM1/2/4 | Euro ISDN | Ukraine | UA1 025.0132909-08 | E1 |
| Ukraine | Prosody X PCI with 1 DSP and PMX/PMXC | Euro ISDN | Ukraine | UA1 025.0132915-08 | E1 |
| Ukraine | Prosody X PCI with 2 DSP and PMX/PMXC | Euro ISDN | Ukraine | UA1 025.0132914-08 | E1 |
| Ukraine | Prosody X PCI with 4 DSP and PMX/PMXC | Euro ISDN | Ukraine | UA1 025.0132911-08 | E1 |
| USA | Prosody X PCI with PMX/PMXC1 | Aculab T1 protocols | FCC part 68 | 5TCXDNANPMXPCIX | T1 - fitted with DSP if applicable |
| USA | All PCI/cPCI cards with PM1 | Aculab T1 protocols | FCC part 68 | 5TCXDNANPM4MODT1 | T1 - fitted with DSP if applicable |
| USA | E1/T1 cPCI with PMXC 161 | Aculab T1 protocols | FCC part 68 | STCXDNAPMXT1MOD | T1 |
| Notes: 1. Protocols marked ' 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. | |||||
| Country | Approved product | Approval standard | Approval number |
|---|---|---|---|
| China | Prosody X PCI | China Compulsory Certification | 2006021607000001 |
| E1/T1 PCI with PM | 2004011607105503 | ||
| Prosody PCI with PM | 2004011607105495 | ||
| IP telephony PCI with PM | 2004011608105501 | ||
| E1/T1 cPCI with PM | 2004011607105504 | ||
| Prosody cPCI with PM | 2004011607105497 | ||
| E1/T1 cPCI with PMXC 16 | 2005021607000001 |
| Country | Protocol | Protocol type | Additional notes | Aculab protocol stack | |
|---|---|---|---|---|---|
| Argentina | R2 CAS | CAS1 | R2T12 | ||
| Australia | TS014 | CCS | No longer supplied | AUSTEL-TS014 | |
| Australia | TS038 | CCS | ETS 300 | ||
| Australia | P2 | CAS1 | TS003/TPH1271/R2D | R2T12 | |
| Belgium | National R2 | CAS1 | R2T12 | ||
| Belgium | National R2 | DTMF CAS1 | BELGU | ||
| Brazil | Euro ISDN | CCS | ETS 300 | ||
| Brazil | MFC R2 | CAS1 | Brazil 5C | R2T12 | |
| Canada | T1 Robbed bit | CAS1 | T1RB | ||
| Chile | MFC R2 | CAS1 | R2T12 | ||
| China | R2 | CAS1 | China#1 | R2T12 | |
| China | Chinese ISDN | CCS | ETS300 | ||
| Colombia | R2 | CAS1 | R2T12 | ||
| Croatia | R2 | CAS1 | R2T12 | ||
| Czech Republic | R2 | CAS1 | R2T12 | ||
| Czech Republic | MFC R2 | CAS1 | Type K | R2T12 | |
| Denmark | National MFC R2 | CAS1 | R2DK | ||
| Egypt | MFC R2 | CAS1 | R2T12 | ||
| EU wide | Euro ISDN | CCS | ETS 300 | ||
| Finland | R2 | CAS1 | R2T12 | ||
| France | MF R1 Socotel | CAS1 | FMFS | ||
| France | VN3 | CCS | No longer supplied | VN3 | |
| France | VN6 | CCS | ETS 300 | ||
| Germany | 1tr6 | CCS | No longer supplied | 1tr6 | |
| Greece | OTE 4 | CAS1 | 4-bit CAS | OTE4 | |
| Greece | OTE 2 | CAS1 | 2-bit CAS | OTE2 | |
| Hong Kong | CR13 IDA-P | CCS | No longer supplied | ETS 300 | |
| Hong Kong | HKTA 2015 | CCS | ETS 300 | ||
| Hong Kong | HKT 2018 Robbed bit | CAS1 | T1HK; AMI or B8ZS encoding | T1HK | |
| India | MFC E&M | CAS1 | R2T12 | ||
| India | MFC R2 | CAS1 | Type 1/2/3 | R2T12 | |
| Indonesia | R2 (Q.421) | CAS1 | Ericsson loop signalling | R2T12 | |
| Indonesia | SMFC R2 | CAS1 | Semi-compelled | IEM | |
| Iran | R2 | CAS | 3-bit decadic | R2T12 | |
| Israel | ETS 300 | CCS | ETS 300 | ||
| Israel | MFC R2 | CAS1 | Israel R2 | R2T12 | |
| Italy | I701 | CAS1 | I701 | ||
| Japan | INS 1500 | CCS | INS1500 | ||
| Jordan | R2 | CAS1 | R2T12 | ||
| Korea | Euro ISDN | CCS | ETS 300 | ||
| Korea | R2 | CAS1 | R2T12 | ||
| Kuwait | R2 | CAS1 | R2T12 | ||
| Latvia | MFC R2 | CAS1 | R2T12 | ||
| Malaysia | MFC R2 | CAS1 | R2T12 | ||
| Malaysia | MFC R2 | CAS1 | IEM | ||
| Malta | MFC R2 | CAS1 | R2T12 | ||
| Mexico | R2 | CAS1 | R2T12 | ||
| Netherlands | ALS70D | CAS1 | T11-53E | ALSN/ALSU | |
| Netherlands | MFC R2 | CAS1 | R2T12 | ||
| New Zealand | TNA134 | CCS | Q.931 | ETS 300 | |
| Norway | National MFC R2 | CAS1 | R2T12 | ||
| Peru | MFC R2 | CAS1 | R2T12 | ||
| Philippines | R2 | CAS1 | R2T12 | ||
| Poland | EuroISDN | CCS | ETS 300 | ||
| Poland | MFC R2 | CAS1 | R2T12 | ||
| Portugal | MFC R2 | CAS1 | R2T12 | ||
| Sierra Leone | MFC R2 | CAS1 | R2T12 | ||
| Singapore | IDA TS ISDN2 | CCS | ETS 300 | ||
| Singapore | Fetex | CCS | FETEX | ||
| Singapore | MFC R2 | CAS1 | R2T12 | ||
| Singapore | MFC R2 | CAS1 | IEM | ||
| South Africa | Euro ISDN | CCS | ETS 300 | ||
| South Africa | MFC R2 | CAS1 | R2T12 | ||
| Spain | MF R1 Socotel | CAS1 | SMFS | ||
| Sweden | CAS extension EL7 | CAS1 | Ericsson ASB/voicemail | EL7 | |
| Sweden | P8 | CAS1 | P8 DDI and P7 non-DDI option | P8 | |
| Taiwan | MF R1 | CAS1 | Modified | T1RB | |
| thailand | National R2 DTMF | CAS1 | R2T12 | ||
| Turkey | R1 | CAS1 | E1LS | ||
| UK | DASS2 | CCS | DASS | ||
| UK | DPNSS | CCS | DPNSS | ||
| UK | BT/MCL Interconnect | CAS1 | Asymmetrical | BTMC | |
| UK | BT Callstream | CAS1 | SIN 205/356 | BTCU/BTCN | |
| UK | PD1 | CAS1 | MCL PD1/DC5A | PD1 | |
| USA | AT&T | CCS | tr41459 | ATT-T1 | |
| USA | DMS 100 | CCS | Nortel DMS (T1) | DMS100 | |
| USA | National ISDN 2 | CCS | NI1 and NI2 | NI2 | |
| USA | National ISDN2 | CCS | NFAS (with D-channel back-up) | NI2 | |
| USA | T1 robbed bit | CAS1 | T1RB | ||
| Worldwide (ex USA) | E1 line side CAS | CAS1 | AT&T Definity and Nortel Meridian | E1LS | |
| Worldwide | MFC R2 | CAS1 | Q.421/Q.441 | R2T12 | |
| Worldwide | SS5 | CAS1 | CCITT SS5 (C5) | SS5 | |
| Worldwide | Decadic CAS | CAS | Generic use with PBXs | R2T12 | |
| Worldwide | E&M type A | CAS1 | Ericsson DC5 and E&M options | EEMA | |
| Worldwide | 30Dli | CAS1 | NEC PA-30DTS | 30Dli | |
| Worldwide | SS7 | CCS | ITU-T: ISUP Q.767; TCAP Q.771-Q.774; SCCP Q.711- Q.714; MTP Q.703, Q.704, Q.707 | ISUP/TCAP | |
| Worldwide | Q.SIG | CCS | 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 ' 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. | |||||
