一、Asterisk的下载
1、安装Asterisk依赖包
打开终端,并运行以下命令以安装 Kamailio 的依赖软件包:
sudo apt update
sudo apt install build-essential libncurses5-dev libssl-dev libxml2-dev libsqlite3-dev uuid-dev
2、下载Asterisk源码
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz
二、Asterisk的编译与配置
1、配置pjproject
1)进入到asterisk目录下的third-party/pjproject
sudo vim Makefile.rules 修改PACKAGE_URL的值为https://codeload.github.com/pjsip/pjproject/tar.gz/refs/tags/2.13.1
修改TARBALL_FILE的值为pjproject-$(PJPROJECT_VERSION).tar.gz
2)进入到asterisk目录下的third-party/pjproject
sudo vim Makefile 修改111行 $(TAR) -xjf 修改为$(TAR) -xvf
3)进入到asterisk目录下的third-party
sudo vim Makefile.rules 将 TARBALL_URL = $(PACKAGE_URL)/$(TARBALL_FILE) 修改为 TARBALL_URL = $(PACKAGE_URL)
4)将文件pjproject-2.13.1.tar.gz.md5移动到asterisk目录下的third-party/pjproject目录下。
下载最上面的pjproject-2.13.1.tar.gz.md5文件
2、配置jansson
进入third-party/jansson
sudo vim Makefile.rules
修改PACKAGE_URL的值为https://fossies.org/linux/www/jansson-2.14.tar.bz2
3、安装Asterisk
1)切换到 Asterisk 源目录
cd asterisk-18.20.0/
2)下载构建 MP3 模块所需的 MP3 源,并在 Asterisk 上使用 MP3 文件:
sudo contrib/scripts/get_mp3_source.sh
3)运行脚本以安装必要的依赖项:install_prereq
sudo contrib/scripts/install_prereq install
4)执行configure
该脚本执行多项检查,以确保系统上的所有依赖项都存在。通过键入以下命令运行脚本:
sudo ./configure
5)选择要编译的模块
sudo make menuselect
选择“format_mp3”选项,告诉Asterisk构建MP3模块:
6)开始编译过程
sudo make -j2
7)安装asterisk及其模块
sudo make install
8)安装带有参考文档的通用配置文件
sudo make samples
9)安装asterisk init脚本
sudo make config
4、Asterisk配置
1)禁用pjsip,启用sip
sudo gedit /etc/asterisk/ modules.conf
注释掉noload = res_pjsip.so, autoload=yes, noload = chan_sip.so
前面加分号注释
加一行, load = chan_sip.so
执行命令,sudo systemctl stop asterisk && sudo systemctl start asterisk 停止和重启asterisk服务。
执行 sudo asterisk -rx 'core reload' 命令重新加载asterisk配置
2)再进入/etc/asterisk/ modules.conf取消掉autoload=yes的注释
;autoload=yes去掉前面的注释
然后停止asterisk服务和开启asterisk服务
sudo systemctl stop asterisk && sudo systemctl start asterisk
重新加载asterisk配置
sudo asterisk -rx 'core reload'
5、Asterisk sip服务器分级账号
1)进入/etc/asterisk/sip.conf中末尾添加如下信息,就是分机账号
[general]
context = default
bindport = 5060
tcpbindaddr = 0.0.0.0
tcpenable = yes
videosupport=always
[1001]
videosupport=always
type = friend
username=1001
secret = 1001
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = mailbox
transport = udp
nat=yes
videosupport=always
maxcallbitrate=384
canreinvite=no
disallow=all
allow = ulaw
allow=alaw
allow=h263
allow=h264
还需要账号就复制添加然后修改即可
2)进入/etc/asterisk/extension.conf中,配置打电话策略
[general]
static=yes
writeprotect=no
[default]
exten => 1001,1,Answer()
exten => 1001,n,Dial(SIP/1001,20,tr)
exten => 1001,n,Hangup
有几个号码就添加几个策略(绿色的)
6、Asterisk的使用
1)停止asterisk服务
sudo systemctl stop asterisk
2)开启asterisk服务
sudo systemctl start asterisk
3)重新加载asterisk配置
sudo asterisk -rx 'core reload'
4)进入asterisk 的控制台
sudo asterisk -rvvv
5)查看当前注册到Asterisk的SIP对等体的状态信息
sip show peers
6)如果有问题看这
①、有可能是防火墙没有允许5060/udp流量通过,执行下面命令
sudo ufw allow 5060/udp
②、有可能没有允许rtp流量通过,执行下面命令
sudo iptables -A INPUT -p udp --dport 10000:20000 -j ACCEPT