Aterisk mfcr2一号信令以及整合freeiris2

因为要对接一号信令。但是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协议的话,麻烦告知下。

 

 

 

 

猜你喜欢

转载自bluerose.iteye.com/blog/645829