《2022年Asterisk安装和测试[归 .pdf》由会员分享,可在线阅读,更多相关《2022年Asterisk安装和测试[归 .pdf(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Asterisk 安装(红色字体部分为需要键入或修改的部分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - 下载准备系统环境 :Linux CentOS 5.0, 安装开发工具以及开发库。Asterisk 源代码包asterisk-1.6.1.20.tar.gz,版本 :1.6.1.20。SIP 软电话使用eyebeam 版本 :1.5.8。1.切换用户 (需要输入管理员密码),执行su root 2.进入源码包存放文件夹ro
2、otasterisk-test1 # cd /usr/local/src3.下载rootasterisk-test1 # wgethttp:/downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk1.6.1.20. tar.gz 编译安装Asterisk 1.解压源代码包rootasterisk-test1 # tar -zxvf asterisk-1.6.1.20.tar.gz2.进入包目录rootasterisk-test1 # cd asterisk-1.6.1.203.环境检测和预配置rootasterisk-te
3、st1 asterisk-1.4.5# ./configure (其实这样直接进行configure 并非十分规范。应当先使用“ ./configure help”命令来查看一些可用的选项和参数,然后根据实际情况才进行定制操作。)当环境预检测和预配置工作做完时,最后会显示以上反馈信息。并且建立好Makefile 。注意:系统如果缺少安装必须的包,此步骤可能会出现configure: error 错误,解决方案见后文可能遇到的问题configure: creating ./config.status config.status: creating build_tools/menuselect-d
4、eps config.status: creating makeopts config.status: creating channels/h323/Makefile config.status: creating include/asterisk/autoconfig.h .$=. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - .$7$7. .7$7:. .$:. ,$7.7 .$7. 7$ .$77 .$. $ .$7
5、.7$ .?. $ .?. 7$. $.$. .$7. $7 .7$. .$. .777. .$77$77$7. $, $ .7$7. .$. .$7 .7$7: ?$. $ ?7$I .$7 $ .7$ $. $ $7$ .$. $ $ 7$7 .$ .$. $ $7 .$. 7$7 7$ 7$ $ $ $7. $ (TM) $. .7$ $ $7$.$ $. configure: Package configured for: configure: OS type : linux-gnu configure: Host CPU : i686 4.清除陈旧的已编译文件rootasterisk
6、-test1 asterisk-1.4.5# make clean5.重新编译Asterisk 程序rootasterisk-test1 asterisk-1.4.5# make编译完成后会显示以下反馈提示信息,提示用户进行下一步可选的操作。+- Asterisk Build Complete -+ + Asterisk has successfully been built, and + + can be installed by running: + + + + make install + +-+ 这里提示用户下一步可以使用“make install ”命令,来进行安装了。名师资料总结
7、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - 6.安装Asterisk 程序rootasterisk-test1 asterisk-1.4.5# make install 当安装完成后就会显示以下反馈提示信息,提示用户进行进一步可选的操作。+- Asterisk Installation Complete -+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has s
8、uccessfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + make samples + + + +-or -+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + make progdocs + + +
9、 + *Note* This requires that you have + + doxygen installed on your local system + +-+ 这里提示用户还能够有2 种可选的操作分别是通过“make samples”来安装配置模版,以及通过“ make progdocs”来安装一些程序文档。7.安装配置模版:rootasterisk-test1 asterisk-1.4.5# make samples通过这个命令会安装Asterisk 的配置文件模版,当然不会有强大的现成的配置,但确实是相当有帮助的,是配置过程中的重要参考。8.还可以安装网页语音信箱:(这里暂时
10、没有用到,可以不安装)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - rootasterisk-test1 asterisk-1.4.5# make webvmail 安装页面语音信箱,会试图和Apache 这种网站服务进行配合,当然还需要许多定制配置。这里暂时不会用到,但还是觉得应该提一下。+- Asterisk Web V oicemail -+ + + + Asterisk Web Voicemail is instal
11、led in + + your cgi-bin directory: + + /var/www/cgi-bin + IT USES A SETUID ROOT PERL SCRIPT, SO + + IF YOU DONT LIKE THAT, UNINSTALL IT! + + + + Other static items have been stored in: + + /var/www/html + + + If these paths do not match your httpd + + installation, correct the definitions + + in you
12、r Makefile of HTTP_CGIDIR and + + HTTP_DOCSDIR + + + +-+ 编辑 Asterisk 的配置文件Asterisk 的体系比较巨大, 目前只是稍微的了解一下,所以只是做了最最最简单的测试配置,为了通过SIP 协议使两个终端注册上来并互相呼叫通话而已,因此配置相当有限,仅仅是为了初步的测试而已。还有一个地方要注意的是在Asterisk 配置文件中的注释符是采用“;”分号的,而不是其他符号。1.编辑Asterisk 的主配置文件:rootasterisk-test1 # vi /etc/asterisk/asterisk.conf 主配置文件是As
13、terisk 的关键部分,这个主配置文件大多数都是为Asterisk 指定了环境、调用的路径。一般情况下不需要去改动它,这里贴出来先看看。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - - - - directories 小节 directories 主要记录 Asterisk 的几个重要调用路径astetcdir = /etc/asterisk 指定了配置文件路径。名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
14、 - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 27 页 - - - - - - - - - astmoddir = /usr/lib/asterisk/modules 指定了模块调用路径。astvarlibdir = /var/lib/asterisk astdatadir = /var/lib/asterisk 指定了本地数据库以及一些重要相关部件的路径。astagidir = /var/lib/asterisk/agi-bin 指定了 AGI 程序的调用路径。astspooldir = /var/spool/asterisk 指定了呼叫
15、信息记录存放的路径。astrundir = /var/run 指定了 PID 文件路径。astlogdir = /var/log/asterisk 指定了日志路径。;options ;internal_timing = yes ;systemname = my_system_name ; prefix uniqueid with a system name for global uniqueness issues ; Changing the following lines may compromise your security. ;files ;astctlpermissions = 06
16、60 ;astctlowner = root ;astctlgroup = apache ;astctl = asterisk.ctl 小节 options 中记录的都是Asterisk 一些可选的设置信息,务必要根据实际情况修改,这里我就先不做变动了。2.配置SIP 对象配置文件:rootasterisk-test1 # vi /etc/asterisk/sip.conf; ; SIP Configuration example for Asterisk 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
17、 - - - - 第 7 页,共 27 页 - - - - - - - - - ; ; Syntax for specifying a SIP device in extensions.conf is ; SIP/devicename where devicename is defined in a section below. ; ; You may also use ; SIP/usernamedomain to call any SIP user on the Internet ; (Dont forget to enable DNS SRV records if you want to
18、 use this) ; ; If you define a SIP proxy as a peer below, you may call ; SIP/proxyhostname/user or SIP/userproxyhostname ; where the proxyhostname is defined in a section below ; ; Useful CLI commands to check peers/users: ;这里注释的部分中还提供一些关于SIP 部分的调试命令。用户将可以在Asterisk 控制台当中使用。; ; sip show peers Show al
19、l SIP peers (including friends) 显示所有的SIP 对端,包括友端。; sip show users Show all SIP users (including friends) 显示所有的SIP 用户端,包括友端。; sip show registry Show status of hosts we register with 显示所有注册主机的信息。; sip debug Show all SIP messages 显示所有SIP 消息。; ; reload chan_sip.so Reload configuration file Active SIP pe
20、ers will not be reconfigured 重新载入SIP 的配置文件(也可以通过“sip reload”来实现),而已在线的活动用户将不会受到影响。以下就是SIP 配置文件中的定义小节了,每个小节都由小节名 带起来一段。一个小节就可名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - 以是一套独立的配置信息,多个小节可以使得Asterisk 同时 拥有并且运行好几套配置,为不同的需求和对象组进行服务。这里我已经删去很
21、多默认的配置,只留下一些清洗简短地条目做做说明。general 这段默认的小节名就是“general” 。直到下一个小节名出线,这些都是“general”小节的配置内容。与其他不同的是“general”小节是sip.conf 配置文件中的“全局配置”段,也就是说其他的小节没有明确定义的、缺省的属性及配置项都将继承参考该段内的配置。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - context=default ; Default
22、 context for incoming calls 此项指定该配置段将在拨号规则文件当中(extensions.conf)使用的哪一套拨号规则。如这里的“ default”就是对应指定了extensions.conf 文件中的 default 段的拨号规则。extension.conf 拨号配置文件中也可以同时定义不同的段。allowguest=yes ; Allow or reject guest calls (default is yes) allowoverlap=yes ; Disable overlap dialing support. (Default is yes) vide
23、osupport=yes ;支持视频传输(如果要支持视频general 小节一定要将此行注;释去掉,否则视频无法传输)bindport=5060 ; UDP Port to bind to (SIP standard port is 5060) ; bindport is the local UDP port that Asterisk will listen on 指定了 Asterisk 对 SIP 协议的监听端口,默认为标准的5060,并且这个端口是UDP 端口。bindaddr=0.0.0.0 ; IP address to bind to (0.0.0.0 binds to all)
24、 指定了 Asterisk 监听 SIP 协议的网络接口,这里设定为系统上全部的网络接口。srvlookup=yes ; Enable DNS SRV lookups on outbound calls 设定启用域名检索功能。在针对一些IP 不确定但是域名确定的对象时候,可以在配置当中直接写入对象的域名,然后Asterisk 遇到这种情况就会去DNS 解析。否则,将不会解析。以下为设定编解码部分了disallow=all ; First disallow all codecs 首先关闭掉所有编解码。allow=g729 然后启用G.729 的编解码。 先全部关闭再开启指定编解码的原因是要明确指
25、定Asterisk 使用的编解码。 这里也可以允许多个编解码,然后在呼叫过程中终端就会进行编解码协商,这里我先指定好就是用G.729 的编解码。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 27 页 - - - - - - - - - 用户定义小节:以下就是自定义的SIP 配置段了。9001 ;定义了名字为“9001”的小节videosupport=yes ;支持视频名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
26、- - - 名师精心整理 - - - - - - - 第 11 页,共 27 页 - - - - - - - - - type=friend ;指定类型为Friend“友端”,即可以对Asterisk 进行呼叫也可以被;Asterisk 呼叫的这种双向类型终端。其他的还有Peer“对端”,;即只能作为被Asterisk 呼叫的类型终端。以及还有;User“用户端”,即只能作为呼叫Asterisk 的类型终端。username=9001 ;指定该对象的用户名secret=9001 ;指定该对象的密码host=dynamic ;指定终端主机位置。这里可以取2 种值:连接时不需要注册;static“
27、静态”表示服务的终端对象的IP 是固定已知的;;dynamic“动态”表示服务的终端对象IP 是动态的不确定的,;每次要联系Asterisk 的话就必须要注册上来。context=demo ;指定该段内的对象所使用的拨号规则,全部对应extensions.conf ;文件中的 demo小节内定义的规则disallow=all ;首先关闭掉所有编解码allow=h264,g729 ;然后启用 H.264(视频 )和 G.729(音频 )的编解码。(用逗号分割);先全部关闭再开启指定编解码的原因是要明确指定Asterisk 使用的编;解码。这里允许多个编解码,然后在呼叫过程中终端就会进行编解码协;
28、商dtmfmode=rfc2833 ;Set default dtmfmode for sending DTMF. Default: rfc2833 ; Other options: ; info : SIP INFO messages (application/dtmf-relay) ; shortinfo : SIP INFO messages (application/dtmf) ;inband:Inband audio (requires 64 kbit codec-alaw, ulaw) ; auto : Use rfc2833 if offered, inband otherwis
29、e canreinvite=no ;设定是否允许终端发起重新邀请。大体上来讲,终端从开始呼叫直到切;断,当中第一次邀请对方进行呼叫请求之后的任何请求动作都视为“重;新邀请”, 一般都对这种行为做到严格控制而设定为no maxcallbitrate=384 ; Maximum bitrate for video calls (default 384 kb/s) ; Videosupport and maxcallbitrate is settable ; for peers and users as well 9002 ;定义了名字为“9002”的小节videosupport=yes 名师资料总
30、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 27 页 - - - - - - - - - type=friend username=9002secret=9002 host=dynamic context=demo disallow=all allow=h264,g729 dtmfmode=rfc2833 canreinvite=no maxcallbitrate=3843.配置拨号规则配置文件rootasterisk-test1 # vi /etc/asterisk/ext
31、ensions.conf配置方式也是同样,通过定义每一个小节,再在每一个小节中定义详细的属性。这里比较重要的是“general”和“ globals”这两个默认就有的小节,也是起到“全局属性”的作用,请根据实际情况确定,但请不要删除这两个小节。其他的小节都是可以订制、删除修改的。general static=yes writeprotect=no autofallthrough=no clearglobalvars=no priorityjumping=no globals CONSOLE=Console/dsp ; Console interface for demo IAXINFO=gue
32、st ; IAXtel username/password TRUNK=Zap/g2 ; Trunk interface TRUNKMSD=1 ; MSD digits to strip (usually 1 or 0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 27 页 - - - - - - - - - 在“ demo”中自定义一个简单的拨号规则,与sip.conf 里面的 context 项中指定的规则小节名对应。名师资料总结 - - -精品资料欢迎下载 -
33、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 27 页 - - - - - - - - - demo exten = _9.,1,Dial(SIP/$EXTEN,20,r) 说明:(1)规则就一条,使得9001 和 9002 可以互相拨打。当中的格式简要讲述一下。更多的请参考Asterisk 的手册,这里不详细展开。(2)开头部分“ exten =”表示,也可以用“exten =”表示。并且在一个小节内可以定义多条 exten 语句。,但至少要有一个字符。(3)之后的“ _9”表示匹配上所有“9”开头的拨号,
34、“.”表示不限制长度的任意字符。(4)然后的“ 1”表示优先级,我喜欢称作为“执行次序”。 “1”表示第一步执行的意思,如果后续还需要执行其他动作的话,可以继续写多条exten 语句,并且用递增执行次序依次设计下去。(5)接着的“ Dail() ”表示“执行动作” ,这里是表示拨号的执行动作。更规范的说,这个是APP 应用程序。(6)括号当中又分成3 个部分。第一个SIP 表示拨号动作中拨向的通道是SIP 协议的通道。$ EXTEN 则一个变量,其值就是用户实际拨打的号码。如果你拨打9001 那么 $EXTEN 的值就是9001。(7)括号内的“ 20” ,表示等待时间单位秒,如果有多个执行次
35、序,即一组拨号规则的话,如果过了 20 秒,就跳跃执行次序(跳跃的幅度是101 个优先级)。(最后的“ r”表示强行播放振铃。在拨打对方等待对方接通的时候,就能听到回振铃音。对 asterisk 服务的操作1.手动启动Asterisk rootasterisk-test1 # /usr/sbin/safe_asterisk 也可运行 rootasterisk-test1 # asterisk -gcrvvvvvv直接启动后连接到Asterisk 控制台加了 多个 v, 是为了让输出更详细注意,启动脚本是“safe_asterisk” ,当启动起来后察看进程也能看到这个名字的进程。不同系统路径可
36、能不一样,如果提示找不到命令可运行find / -name safe_asterisk 进行查找在 Ubuntu 系统中可能会出现sh: Syntax error: Bad fd number 错误,解决方案见后文可能遇到的问题名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 27 页 - - - - - - - - - 2.查看Asterisk 进程rootasterisk-test1 # ps -A|grep asterisk 2454 pts/1 00:00:00
37、safe_asterisk 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 27 页 - - - - - - - - - 2459 pts/1 00:00:14 asterisk 当 Asterisk 正常启动后,应该可以看到这两个进程。3.关闭Asterisk 进程这种方式比较土,比较不建议采用。rootasterisk-test1 # killall safe_asterisk rootasterisk-test1 # killall asterisk 4.也可以通
38、过/etc/init.d/ 的方式对服务进行操作rootasterisk-test1 init.d# service asterisk stop Shutting down asterisk: Asterisk ended with exit status 0 Asterisk shutdown normally. OK rootasterisk-test1 init.d# service asterisk start Starting asterisk: OK 默认情况下1.4.5 版本的 Asterisk 会自动安装启动脚本,但是请务必确认Asterisk 执行路径。如之前我不能使用ser
39、vice 脚本命令就是因为路径不对:rootasterisk-test1 init.d# service asterisk stop ERROR: /usr/sbin/asterisk not found 请确认 Asterisk 执行路径rootasterisk-test1 # vi /etc/init.d/asterisk # Use this option to specify a different configuration directory AST_CONFIG=/etc/asterisk 指定 Asterisk 程序对配置文件连接的路径。# Installation direc
40、tory AST_SBIN=/usr/local/asterisk/sbin 这里就是指定Asterisk 程序的执行路径。# Uncomment the following and set them to the user/groups that you # want to run Asterisk as. NOTE: this requires substantial work to # be sure that Asterisks environment has permission to write the # files required for its operation, inc
41、luding logs, its comm # socket, the asterisk database, etc. #AST_USER=asterisk 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 27 页 - - - - - - - - - #AST_GROUP=asterisk 这里就是指定Aseterisk 的运行用户。为了让系统更加的安全,自己添加Asterisk 运行用户和组,并让Asterisk 指定它。控制台操作1.进入Asterisk 监控台ro
42、otasterisk-test1 # /usr/sbin/asterisk -crvvvvvvv 控制台是对Asterisk 进行调试的重要工具,在里面可以看到重要的信息,已经可以对Asterisk 采取必要的操作。Asterisk 1.4.5, Copyright (C) 1999 - 2007 Digium, Inc. and others. Created by Mark Spencer Asterisk comes with ABSOLUTEL Y NO W ARRANTY; type core show warranty for details. This is free softw
43、are, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type core show license for details. = = Parsing /etc/asterisk/asterisk.conf: Found = Parsing /etc/asterisk/extconfig.conf: Found Connected to
44、Asterisk 1.4.5 currently running on asterisk-test1 (pid = 2459) Verbosity is at least 14 - Remote UNIX connection asterisk-test1*CLI 这个就是控制台的命令提示符。2.察看Asterisk 命令的用法rootasterisk-test1 # /usr/sbin/asterisk -help Asterisk 1.4.5, Copyright (C) 1999 - 2007, Digium, Inc. and others. Usage: asterisk OPTIO
45、NS 语法:asterisk 选项 Valid Options: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 27 页 - - - - - - - - - 可用选项(这里只交代一些常用的)-V Display version number and exit 显示版本号以及各种数据信息,可以跟加多个v 参数以显示更加详细信息。-C Use an alternate configuration file 连接指定配置文件。注意这个C 是大写的。-c Provide co
46、nsole CLI 提供命令行接口。进控制台当然要使用命令行,所以这个参数是必要的。注意这个c 是小写的。-r Connect to Asterisk on this machine 连接服务器本地的Asterisk。-R Connect to Asterisk, and attempt to reconnect if disconnected 连接到 Asterisk,并且在断开连接的时候尝试重新连接。-x Execute command (only valid with -r) 与-r 参数连用,后面跟上命令名称,可以执行命令。比如asterisk -rx restart now 。3.一
47、些控制台经常使用的命令:sip reload 重新载入sip.conf 配置文件。extensions reload 重新载入 extensions.conf 配置文件。sip show peers察看 SIP 对端,友端对象信息。sip show users察看 SIP 用户端,友端对象信息。等等 .还有很多,这里就不详细讲了,可以在控制台中输入help 查看更多命令测试使用 eyebeam注册9001 和 9002 这两个 SIP 用户到 Asterisk 上去,并且使其互相呼叫并通话。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
48、 - - 名师精心整理 - - - - - - - 第 19 页,共 27 页 - - - - - - - - - 1.首次注册成功名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 27 页 - - - - - - - - - Oct 25 10:39:47 NOTICE2490: chan_sip.c:14586 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 9002
49、 这里表示接收到SIP 用户 9002 的注册信息。Oct 25 10:40:26 NOTICE2490: chan_sip.c:14586 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 9002 Oct 25 10:41:35 NOTICE2490: chan_sip.c:14586 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 9001 这里表示接收到SIP 用户 9001 的注册信息
50、。Oct 25 10:41:44 NOTICE2490: chan_sip.c:14586 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 9002 Oct 25 10:43:32 NOTICE2490: chan_sip.c:14586 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 9001 2.检查注册状况:asterisk-test1*CLI sip show peers Name/u