因为要对接一号信令。但是freeiris2目前只支持asterisk1.4.X版本。而我又想用上freeiris2。因为之前在freeiris2基础上拓展了一些ivr动作。
所以考虑在asterisk1.6.2上装上freeiris2。
寻找半天。发现两个方法。
第一:见地址http://www.moythreads.com/astunicall/downloads/ 它提供了几个版本。包含了asterisk等所需要安装的东西。但是安装spandsp-0.0.6的时候提示需要安装libtif组件。服务器不能上网。所以我就没继续尝试这个方法了。
第二:使用asterisk1.6.2。下面就来看看是杂弄的。
首先对于一号信令,目前asterisk1.6.2提供支持一号信令,只不过需要自己安装openr2。下载openr2-1.3.0.tar.gz。
安装步骤差不多如下:
1 - dahdi-linux
# make ; make install
2 - dahdi-tools
# ./configure ; make ; make install ; make config
3 - Libpri
# make ; make install
4 - libopenr2
# ./configure --libdir=/usr/lib ; make ; make install
5 - asterisk
# ./configure ; make ; make install ; make samples
6-asterisk-addons-1.6
#./configure;make cdr;cp cdr/cdr_addon_mysql.so /usr/lib/asterisk/modules/
下面安装freeiris2.我安装的是freeiris2-2.4.335-stable.tar.gz
设置好中继(先设置好中继只是为了在freeiris2的数据库里插入相关的所需的数据)。设置中继的时候会按照pri信令格式修改chan_dahdi_digit.conf文件内容。
为了使用中国一号信令。修改两个文件。
一个是/etc/dahdi/system.conf。修改为如下(我一个E1卡。用一个口):
span=1,1,0,cas,hdb3
# termtype: te
cas=1-15:1101
cas=17-31:1101
dchan=16
#echocanceller=mg2,1-15,17-31
# Global data
loadzone = cn
defaultzone = cn
一个是/etc/asterisk/chan_dahdi_digit.conf。修改为如下:
usecallerid=yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
signalling=mfcr2
mfcr2_variant=cn
mfcr2_get_ani_first=no
mfcr2_max_ani=20
mfcr2_max_dnis=7
mfcr2_category=national_subscriber
mfcr2_logdir=span
mfcr2_logging=all
context=from-trunk-dahdi(此为freeiris2使用的context名称)
group=0
acountcode=0
channel => 1-15,17-31
因为在chan_dahdi_digit.conf包含了以上内容。所以再chan_dahdi.conf里的pri配置 就不用管了,当然也可以注释掉。
现在我们的E1信令就是mfcr2了。也就是一号信令。
不过在帖子http://bbs.voip88.com/viewthread.php?tid=6003&page=1里看到james.zhu说
CN China // 支持中国还没有做完整的测试,这是官方的说法。所以也只是说能用,不保证没啥bug之类的。
进行拨号的时候。控制台有warning。内容如下:
Executing [742101@from-trunk-dahdi:8] ExecIf("DAHDI/27-1", "0,Macro,'REASON|NOVALID'") in new stack
[Apr 16 18:04:47] WARNING[13378]: app_exec.c:222 execif_exec: Deprecated syntax found. Please upgrade to using ExecIf(<expr>?Macro('REASON|NOVALID'))
估计是语法问题吧 但是只是warning。所以我没有管了。
我测试了拨入 拨出 Ivr正常。如果有朋友发现什么严重问题之类的,就多交流吧。
另外谁有能实现ss7 tup协议的话,麻烦告知下。