登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

baikgd的博客

技术是工具,生活是目的,更好的生活是目标!

 
 
 

日志

 
 

ASTERISK E1配置  

2009-08-21 15:38:49|  分类: Asterisk |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这次使用的系统是纯的Asterisk。之前由于想偷懒,所以使用了高现成的Trixbox-2.3版本的完整系统。绝对不能否定Trixbox,原因在于我还是对底层的系统不了解才造成了连接失败。再一次教育了我基础很重要的道理。现在交待一下系统的一些主要部分:
----------------------------------------------------------------
(1)交换系统主程序:asterisk-1.2.25
(2)扩展程序包:asterisk-addons-1.2.8
(3)PRI库部分:libpri-1.2.6
(4)E1卡的硬件驱动:zaptel-1.2.22
(5)操作系统:CentOS-4.5
(6)E1线路板卡:D110P (Digium Wildcard TE110P T1/E1 Card)         
----------------------------------------------------------------
至于编译安装部分,这里就不再展开细讲了。


E1号码:
------------
99991111
99992222
99993333
99994444
9999....
------------


一.安装好之后的模块优化:
(源于Octer的指导)一般在Asterisk的安装完成之后,会有很多用不到的功能模块,而这些在Asterisk运行或者重载时都会载入。这种多余 的用不到的加载工作会造成现有Asterisk系统的不必要负担,另一方面,在Asterisk控制台监控时,会有非常多的无用信息打扰。因此,在这个部 分里,非常有必要截除多余的模块从而给系统做好优化。这里贴出一个例子,列出模块。(注意:这并非适合任何情况,必须要注意根据实际情况做适合的调整)
[root@Asterisk asterisk]# ls /usr/lib/asterisk/modules/
----------------------------------------------------------------
以下这些都是保留的模块。(仅供参考)
app_addon_sql_mysql.so   app_exec.so              app_parkandannounce.so         app_stack.so            chan_iax2.so                          format_wav.so
app_adsiprog.so          app_externalivr.so       app_playback.so                app_system.so           chan_local.so                         func_callerid.so
app_alarmreceiver.so     app_flash.so             app_privacy.so                 app_talkdetect.so       chan_sip.so                           func_enum.so
app_authenticate.so      app_forkcdr.so           app_queue.so                   app_test.so             chan_zap.so                           func_uri.so
app_cdr.so               app_getcpeid.so          app_random.so                  app_transfer.so         codec_adpcm.so                        pbx_ael.so
app_chanisavail.so       app_groupcount.so        app_readfile.so                app_txtcidname.so       codec_alaw.so                         pbx_config.so
app_chanspy.so           app_hasnewvoicemail.so   app_read.so                    app_url.so              codec_a_mu.so                         pbx_dundi.so
app_controlplayback.so   app_ices.so              app_realtime.so                app_userevent.so        codec_g723-ast12-icc-glibc-core2.so   pbx_functions.so
app_curl.so              app_image.so             app_record.so                  app_verbose.so          codec_g729-ast12-icc-glibc-core2.so   pbx_loopback.so
app_cut.so               app_lookupblacklist.so   app_saycountpl.so              app_voicemail.so        codec_gsm.so                          pbx_realtime.so
app_db.so                app_lookupcidname.so     app_sayunixtime.so             app_waitforring.so      codec_ulaw.so                         pbx_spool.so
app_dial.so              app_macro.so             app_senddtmf.so                app_waitforsilence.so   codec_zap.so                          res_adsi.so
app_dictate.so           app_math.so              app_sendtext.so                app_while.so            format_au.so                          res_agi.so
app_directed_pickup.so   app_md5.so               app_setcallerid.so             app_zapateller.so       format_g723.so                        res_crypto.so
app_directory.so         app_meetme.so            app_setcdruserfield.so         app_zapbarge.so         format_g729.so                        res_features.so
app_disa.so              app_milliwatt.so         app_setcidname.so              app_zapras.so           format_gsm.so                         res_indications.so
app_dumpchan.so          app_mixmonitor.so        app_setcidnum.so               app_zapscan.so          format_mp3.so                         res_monitor.so
app_echo.so              app_mp3.so               app_setrdnis.so                cdr_csv.so              format_pcm_alaw.so                    res_musiconhold.so
app_enumlookup.so        app_nbscat.so            app_settransfercapability.so   chan_agent.so           format_pcm.so
app_eval.so              app_page.so              app_softhangup.so              chan_features.so        format_wav_gsm.so
================================================================================================================================================
下面的这些就是被截除的模块。(仅供参考)
app_festival.so      chan_mgcp.so     codec_lpc10.so         format_vox.so
app_sms.so           chan_ooh323.so   format_g726.so         modules
cdr_addon_mysql.so   chan_oss.so      format_h263.so         res_config_mysql.so
cdr_custom.so        chan_phone.so    format_ilbc.so         res_config_odbc.so
cdr_manager.so       chan_skinny.so   format_jpeg.so         res_odbc.so
cdr_odbc.so          codec_g726.so    format_ogg_vorbis.so
chan_alsa.so         codec_ilbc.so    format_sln.so
----------------------------------------------------------------


二.交换系统配置:
我的配置思路如下:
线路-->硬件-->拨号-->协议-->其他。

1.板卡硬件属性配置文件Zaptel.conf。
这个文件是直接在/etc/目录下面,作用是为Zaptel卡以及线路做硬件的定义。在Asterisk-1.4.x版本中,应当由 genzaptelconf这个命令生成,而在目前的1.2.x版本中却没有该命令,所以我只能参考默认的zaptel模版配置文件作修改,(个人认为其 实还是1.2.x的版本比较好,给模版配置文件,可以参考的参数很详细。)


2.板卡功能属性配置文件Zapata.conf。
一般并不推荐在zapata.conf中直接写入自己定制的配置信息。我的做法是通过引用一个外部配置文件来扩展。因此当需要修改时,不必影响全局的其他配置。


3.设定定制zapata配置文件。
这个配置文件当中其实可以主要分成3大部分的设定段。
[root@Asterisk asterisk]# cat /etc/asterisk/zapata_kc.conf
----------------------------------------------------------------
;Kane Cruise adding below.

(1)第一部分:主要设定信令、交换方式、拨号属性等等大项属性。(之前就是在拨号属性这里花了许多精力和时间- -|||)
context=incoming
switchtype=national
signalling=pri_cpe

(2)第二部分:主要设定通信辅助参数设定。
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
ringtimeout=10000
faxdetect=no

(3)第三部分:设定通道分配、规划等信息的设定。
callerid="99991111" <99991111>
channel => 1
callerid="99992222" <99992222>
channel => 2
callerid="99993333" <99993333>
channel => 3
callerid="99994444" <99994444>
channel => 4
callerid="99995555" <99995555>
channel => 5
callerid="99996666" <99996666>
channel => 6-15,17-31
----------------------------------------------------------------


3.拨号方案配置文件extensions.conf。
同样地,并不推荐直接在拨号方案定义文件中直接写入自己定制的配置信息。做法还是是通过引用一个外部配置文件来扩展。当需要修改时,不必影响全局的其他配置。
[root@Asterisk asterisk]# vi /etc/asterisk/extensions.conf
----------------------------------------------------------------
;Kane Cruise adding below.

#include "extensions_kc.conf"
这里我引用了extensions_kc.conf这个自己建立的文件。
----------------------------------------------------------------


4.设定定制extensions配置文件。
[root@Asterisk asterisk]# vi /etc/asterisk/extensions_kc.conf
----------------------------------------------------------------
;Kane Cruise adding below.

[globals]
tonedir=/opt/media/kctone
musicdir=/opt/media/kcmusic
songdir=/opt/media/kcsong

[testdial]
include => outdialing

[incoming]
exten => _9999.,1,Playback(${tonedir}/main_welcome)
exten => _9999.,2,Background(${tonedir}/choose_company)

[outdialing]
exten => _1X.,1,Dial(Zap/1/${EXTEN:1},30,r)  
exten => _1X.,2,Playback(${Tonedir}/maybusy)
exten => _1X.,103,Hangup()

exten => _2X.,1,Dial(Zap/2/${EXTEN:1},30,r)
exten => _2X.,2,Playback(${Tonedir}/maybusy)
exten => _2X.,103,Hangup()

exten => _3X.,1,Dial(Zap/3/${EXTEN:1})
exten => _3X.,2,Playback(${Tonedir}/maybusy)
exten => _3X.,103,Hangup()

exten => _4X.,1,Dial(Zap/4/${EXTEN:1},30,r)
exten => _4X.,2,Playback(${Tonedir}/maybusy)
exten => _4X.,103,Hangup()

exten => _5X.,1,Dial(Zap/4/${EXTEN:1},30,r)
exten => _5X.,2,Playback(${Tonedir}/maybusy)
exten => _5X.,103,Hangup()

exten => _6X.,1,Dial(Zap/5/${EXTEN:1},30,r)
exten => _6X.,2,Playback(${Tonedir}/maybusy)
exten => _6X.,103,Hangup()

exten => _9X.,1,Dial(Zap/g1/${EXTEN:1}|30)
exten => _9X.,102,Playback(${Tonedir}/maybusy)
exten => _9X.,103,Hangup()
----------------------------------------------------------------


5.SIP用户及属性配置文件sip.conf。
同样地,并不推荐在该文件中直接写入自己定制的配置信息。做法还是是通过引用一个外部配置文件来扩展。当需要修改时,不必影响全局的其他配置。
[root@Asterisk asterisk]# vi /etc/asterisk/sip.conf
----------------------------------------------------------------
;Kane Cruise adding below.

#include "sip_kc.conf"
这里我引用了sip_kc.conf这个自己建立的文件。
----------------------------------------------------------------


6.定制sip用户及属性文件
[root@Asterisk asterisk]# vi /etc/asterisk/sip_kc.conf
----------------------------------------------------------------
;Kane Cruise adding below.

[sip_kc](!)
type=friend
secret=123456
qualify=yes
port=5060
nat=yes
host=dynamic
context=testdial
canreinvite=no
disallow=all
allow=alaw

[99991111](sip_kc)
username=99991111

[99992222](sip_kc)
username=99992222

[99993333](sip_kc)
username=99993333

[99994444](sip_kc)
username=99994444

[99995555](sip_kc)
username=99995555

[99996666](sip_kc)
username=99996666
----------------------------------------------------------------


三.测试:
1.通过控制台检查Zap通道。
Asterisk*CLI> zap show channels
----------------------------------------------------------------
    Chan Extension   Context          Language    MusicOnHold         
pseudo             incoming                                       
       1             incoming                                       
       2             incoming                                       
       3             incoming                                       
       4             incoming                                       
       5             incoming                                       
       6             incoming                                       
       7             incoming                                       
       8             incoming                                       
       9             incoming                                       
      10             incoming                                       
      11             incoming                                       
      12             incoming                                       
      13             incoming                                       
      14             incoming                                       
      15             incoming                                       
      17             incoming                                       
      18             incoming                                       
      19             incoming                                       
      20             incoming                                       
      21             incoming                                       
      22             incoming                                       
      23             incoming                                       
      24             incoming                                       
      25             incoming                                       
      26             incoming                                       
      27             incoming                                       
      28             incoming                                       
      29             incoming                                       
      30             incoming                                       
      31             incoming                                       
----------------------------------------------------------------


2.测试向E1线路呼入。
----------------------------------------------------------------
使用普通电话12345678呼入E1的一个其中一个号码99991111。
     -- Accepting call from '12345678' to '99991111' on channel 0/4, span 1
     -- Executing Playback("Zap/4-1", "/opt/media/kctone/main_welcome") in new stack
     -- Playing '/opt/media/kctone/main_welcome' (language 'en')
     -- Executing BackGround("Zap/4-1", "/opt/media/kctone/choose_company") in new stack
     -- Playing '/opt/media/kctone/choose_company' (language 'en')

然后电话挂断。
     -- Channel 0/4, span 1 got hangup request, cause 16
   == Spawn extension (incoming, 99991111, 2) exited non-zero on 'Zap/4-1'
     -- Hungup 'Zap/4-1'
----------------------------------------------------------------


3.测试从E1线路呼出。
----------------------------------------------------------------
注册SIP终端以中继号码99991111方式。
     -- Registered SIP '99991111' at 192.168.0.199 port 41670 expires 3600
     -- Saved useragent "eyeBeam release 1004p stamp 31962" for peer 99991111

呼出手机13912345678。
     -- Executing Dial("SIP/99991111-0958d8f0", "Zap/1/13912345678|30|r") in new stack
     -- Requested transfer capability: 0x00 - SPEECH
     -- Called 1/13912345678
     -- Zap/1-1 is proceeding passing it to SIP/99991111-0958d8f0
     -- Zap/1-1 is making progress passing it to SIP/99991111-0958d8f0
     -- Zap/1-1 is ringing

对方接起。
     -- Zap/1-1 answered SIP/99991111-0958d8f0

被叫挂断。
     -- Channel 0/1, span 1 got hangup request, cause 16
     -- Hungup 'Zap/1-1'
   == Spawn extension (testdial, 113912345678, 1) exited non-zero on 'SIP/99991111-0958d8f0'
  评论这张
 
阅读(1924)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018