Ubuntu20.04下载Asterisk源码并配置搭建VoIP(一条龙服务,从无到有的搭建)_asterisk搭建voip-程序员宅基地

技术标签: 开源  

一、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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/crayonChen04/article/details/134729604

智能推荐

页断裂(partial write)与doublewrite技术_opengauss恢复partial write造成的页损坏-程序员宅基地

文章浏览阅读502次。页断裂(partial write)与doublewrite技术原文地址:http://www.cnblogs.com/cchust/p/3961260.html mysql double write (二次写)是mysql innodb存储引擎的一个重要特性,本人这两天翻阅了相关的资料,结合自己已有的知识,说说自己对double write的理解,供各位看官参考_opengauss恢复partial write造成的页损坏

Jenkins入门(一)_jenkins_listen_address-程序员宅基地

文章浏览阅读650次。25.1 CI/CD介绍互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:编码 --> 构建 --> 集成 --> 测试 --> 交付 --> 部署正如你在上图中看到,[持续集成(Continuous Integration)]、[持续交付(Continuous Delivery)]和[持续部署(Continuous ..._jenkins_listen_address

[运算放大器]佛朗哥笔记 - 信号发生器 - 三角波发生器_三角波发生电路公式-程序员宅基地

文章浏览阅读4.2k次,点赞2次,收藏19次。三角波发生器 由图易知箍位二极管的压降为±Vclamp=±(VzD1+2VD),从滞回比较器折算可得±VT=±(R2/R1)Vclamp。由于对称性,输出电压由-VT上升到+VT的时间为半个周期,利用恒流注入公式,代入参数I= Vclamp/R,ΔV=2VT= 2(R2/R1)Vclamp。可得 斜率控制 高电平时,注入电流为IH=[ Vclamp-VD(on)]/(R6+R3);低电平时,注..._三角波发生电路公式

linux下查看系统配置参数_linux查看配置参数-程序员宅基地

文章浏览阅读4.1k次,点赞4次,收藏5次。linux下查询系统的配置信息_linux查看配置参数

深度强化学习系列(1): 深度强化学习概述_用一张图描述强化学习方法-程序员宅基地

文章浏览阅读2.4w次,点赞20次,收藏233次。深度强化学习及其在自动驾驶中的应用( DRL & ADS )专栏系列文章规划DRL&ADS系列之(1): 强化学习概述DRL&ADS系列之(2): 深度强化学习及算法讲解DRL&ADS系列之(3): ADS软硬件分析及DRL在Torcs中的应用 概述机器学习是人工智能的一个分支,在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学..._用一张图描述强化学习方法

随堂笔记:C语言相关小知识_/wenhua123原创-程序员宅基地

文章浏览阅读234次。//局部变量的生命周期只存在当前的作用域中,离开作用域之后内存释放int main(int argc,const char * argv[]) { int a=10; { int a=11; printf("a=%d\n",a); //局部变量 离开括号后 内存释放 } pri_/wenhua123原创

随便推点

Centos 7使用kubeadm部署Kubernetes 1.15_coredns-1-3-1.tar 网盘-程序员宅基地

文章浏览阅读291次。一、Kubernetes简介Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化应用。Kubernetes的目标就是让部署容器化的应用简单并且高效。Kubernetes提供了应用部署、规划、更新、维护的一种机制。Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行,管理员可以加载一个微型服务,让规划期来找到合适的位置,同时,Kubernetes也系统提升工具以及人性化方面,让用户能够方便的部署自己的应用。本片博文主要介绍如何部署Kubern_coredns-1-3-1.tar 网盘

python中ModuleNotFoundError: No module named ‘allure.constants‘; ‘allure‘ is not a package问题解决记录_modulenotfounderror: no module named 'allure-程序员宅基地

文章浏览阅读7k次。在pycharm下运行python代码报错:ModuleNotFoundError: No module named ‘allure.constants’; ‘allure’ is not a package解决方法:(前提:安装了allure-pytest)将程序文件中的以下代码from allure.constants import AttachmentType修改为:from allure import attachment_type再执行程序,该问题解决。若未安装allu_modulenotfounderror: no module named 'allure

cdn厂商 同兴万点_【聚焦】工信部发布新CDN和云服务牌照名单-程序员宅基地

文章浏览阅读588次。【IT168 云计算】11月22日,阿里云在广东云栖大会上再次宣布CDN价格下调,核心产品折扣幅度调整。其中,CDN降幅25%后,带宽单价最低只需16.2元/Mbps/月,再创国内最低价。VPC环境下的企业级实例最高优惠40%,另有5年长期购买优惠至3折。11月29日,腾讯云官网正式宣布旗下云服务器CVM、CDN、对象存储COS、消息服务CKafka等多款核心产品大幅降价,其中CDN最高降价47%..._世纪互联 宽惠

谷歌安装vue-devtools插件图文教程_谷歌扩展程序下载vue-devtools-程序员宅基地

文章浏览阅读1k次。vue-devtools第一步,去github下载插件第二步 解压进入到解压目录,执行npm install第三步 执行命令npm run build出现下图就表示成功啦第四步 打开chrome,选择扩展程序,开启开发者模式,选择解压后的目录下的\vue-devtools-5.1.1\shells\chrome成功啦第一步,去github下载插件下载地址点击这里注意下载方式选择zip,直接使用clone方式我试了很多次执行npm run build命令报错第二步 解压进入到解压目录,执行npm i_谷歌扩展程序下载vue-devtools

UnityShader学习笔记(三维数学知识)_unity shader中三位运算符-程序员宅基地

文章浏览阅读189次。UnityShader学习笔记(三维数学知识)三维坐标系矩阵方阵:nxn阶矩阵对角矩阵:nxn阶所有非对角线元素都为零单位矩阵,nxn阶所有非对角线元素为零,对角线元素为1矩阵乘法矩阵乘法特点向量矩阵相乘DX中是行向量OpenGL中是列向量旋转二维旋转矩阵三维绕X轴旋转矩阵三维绕Y轴旋转矩阵三维绕Z旋转矩阵三维绕任意n轴旋转矩阵缩放二维沿轴缩放矩阵三维沿轴缩放矩阵二维沿任意方向缩放矩阵三维沿任意方向缩放矩阵正交投影向X轴投影向Y轴投影向xy平面_unity shader中三位运算符

petalinux-build: do_compile: oe_runmake failed & do_compile: Function failed: do_compile 解决方法-程序员宅基地

文章浏览阅读6.6k次,点赞6次,收藏9次。petalinux-build 报错 do_compile: oe_runmake failedpetalinux版本:2018.3kernel和uboot都是使用外部导入的源码;petalinux-build编译报错信息如下:$ petalinux-build [INFO] building project[INFO] sourcing bitbakeINFO: bitbake petalinux-user-imageLoading cache: 100% |###############_oe_runmake failed

推荐文章

热门文章

相关标签