安装、配置和测试Asterisk过程中遇到的问题及解决方法

最近刚刚接触Asterisk,第一步想用Asterisk搭建一个VoIP服务器,然后用安装两个软电话实现通话,然后再深入一点研究。然而就是这第一步,对于我这个Linux和Asterisk新手来说,也是问题频出,今天终于能打通了,在此记录一下遇到的问题及解决办法,希望对遇到和我同样问题的人有点帮助。
一、下载和安装Asterisk
我觉得下载源码这些东西就去官网下 ,虽然国外的网站下载速度慢点,但是比其他的一些途径下载的靠谱一些。我在这里只需要搭建一个VoIP服务器,其他的包现在都不需要(那些包再一步一步去探索),所以只需要到这个地址下载Asterisk的源码。
(http://downloads.asterisk.org/pub/telephony/asterisk/releases/)
我下载的是最新的asterisk-13.9.1.tar.gz,下载之后,我把它copy到了/usr/local/asterisk目录下,解压。
命令是这样的:

cd /usr/local
sudo mkdir asterisk 
sudo chmod 777 asterisk  #读、写和执行权限
cd asterisk
sudo cp /你下载的源码的目录 .  #注意最后的“.”,表示当前目录
sudo tar -xvf asterisk-13.9.1.tar.gz #解压,会生成asterisk-13.9.1目录
cd asterisk-13.9.1  #在这个目录下有一个README文件,里面描述了安装步骤。

正常的步骤应该是:
./configure
make
make install 
make samples

在执行./configure的时候可能会遇到一些问题,我所遇到的问题在这篇文章中都得到了解答。要注意的是多条命令同时执行报权限不足时,可以分开然后加上sudo执行。

(http://blog.sina.com.cn/s/blog_7a3dc0c90102vwvu.html)

二、运行Asterisk
在asterisk-13.9.1目录下执行asterisk -cvvvv就可以运行asterisk了。执行之后建议用sudo netstat -aup查看一下进程端口号,Asterisk的SIP默认端口是5060,IAX默认端口是4569,在我的机器上,Asterisk还监听了4520和5000端口,我还不知道是干什么的。我遇到一个坑爹的问题是:无论我杀死、重启Asterisk多少次,asterisk就是没监听5060端口。我搜索了半天没找到解决办法,后来在asteriskHelp论坛里找到一个帖子,描述的是跟我差不多的问题,原因可能是SIP模块没有启动。然后,我重新编译了一下Asterisk,启动再查看你就没问题了。

三、下载软电话测试
在window上下载一个x-lite,然后安装,很简单,下载地址
在linux下会麻烦一些,需要下载xten源码,然后编译,这个步骤可以自己查一下。我在安装好之后遇到一个莫名奇妙的问题,在xten安装好的目录下明明有xten这个文件,也有执行的权限。但是我直接执行,一直报“没有这个这个文件或目录”,查一半天才知道这是因为我的linux虚拟机是64位的,但是这个xten是32位的,在64位的机器上执行32位程序就是会报找不到程序的错误。又查了半天才找到一篇文章真正解决了这个问题,地址在这里

四、配置sip.conf和extensions.conf
在这个阶段只需要配置sip.conf和extensions.conf,他们都在etc/astersisk目录下。前面安装Asterisk时make simples命令会在配置文件里写入示例配置,sip.conf与extensions.conf里面都有,先不要将它们删除。
在sip.conf最后面添加配置:

[111]
username=111
secret=aaa
type=friend
host=dynamic
context=internal
[222]
username=222
secret=aaa
type=friend
host=dynamic
context=internal

上面的配置就是在asterisk服务器上定义了两个用户(用户这个描述不准确,但是现在先这么理解没有问题),如果IP画集或者软电话的username和secret与asterisk上定义的用户吻合,那么话机就能成功注册到asterisk服务器上了。
上面的username与secrect好理解,就是用户名和密码;type有三种,分别是friend、peer、user,想详细了解的话,自己去查一下;host表示话机或者软电话的ip地址,dynamic表示动态的ip地址;context对应的是extensions.conf中的一种拨号方案,表示该号码从internal这个拨号方案中出去。

在extensions.conf中添加配置

[internal]
exten=>111,1,Dial(SIP/111)
exten=>222,1,Dial(SIP/222)

extensions.conf中定义的是DiaPlan拨号计划,也就电话呼入呼出一步步怎么处理就是在这个配置文件中规定的。上面是一个非常简单的拨号方案,意思是:拨111,处理的第一步就是从SIP通道呼出111。

五、启动asterisk
重新启动Asterisk,将软电话注册到asterisk就可以用了。

根据你提供的信息,发现了三个 `http.conf` 文件的路径。现在我们来逐一检查并确定要编辑的 `http.conf` 文件。 1. `/usr/local/src/asterisk/freepbx/amp_conf/htdocs/admin/modules/core/etc/http.conf`:这个文件路径似乎是 FreePBX 的一个模块配置文件,不是我们要编辑的目标文件。 2. `/etc/asterisk/http.conf`:这是 Asterisk 的默认 `http.conf` 配置文件,通常是我们需要编辑的目标文件。 3. `/www/backup/file_history/etc/asterisk/http.conf`:这个文件路径似乎是备份文件夹的历史备份文件,也不是我们要编辑的目标文件。 因此,我们将专注于编辑 `/etc/asterisk/http.conf` 文件来启用 HTTP 服务器。 按照以下步骤进行操作: 1. 使用文本编辑器打开 `/etc/asterisk/http.conf` 文件。可以运行以下命令来编辑该文件: ``` sudo nano /etc/asterisk/http.conf ``` 2. 在打开的文件找到 `enabled` 配置项,并确保其值为 `yes`。如果该行前面有注释符号 `;`,则需要删除注释符号以启用 HTTP 服务器。确保该行类似于以下内容: ``` enabled=yes ``` 3. 保存并关闭文件。 4. 重新加载 Asterisk 配置以使更改生效。运行以下命令: ``` sudo asterisk -rx "core reload" ``` 5. 运行以下命令来检查 Asterisk 的 HTTP 服务器状态: ``` sudo asterisk -rx "http show status" ``` 确保输出显示服务器已启用。 这样,你应该成功启用了 Asterisk 的 HTTP 服务器。如果你有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值