Linux下搭建SIP服务器的指南(sip服务器linux)
SIP(Session Initiation Protocol)问世于1996 年,是为了建立因特网上的实时通信而制定的一系列网络会话协议。支持在网络上建立、修改、解散等多种会议功能。本文将以 Linux 操作系统下基于 Asterisk 搭建的 SIP(Session Initiation Protocol)服务器的搭建步骤为例,分享如何搭建一个完整的经典的 SIP 媒体通信系统。
#### SIP 媒体服务器搭建场景
基于 Asterisk 搭建 SIP 媒体服务器架构,整体流程如下:
– 配置 SIP trunk
– 配置 VoIP signalling protocol
– 配置 Codec transcoding parameters
– 添加 Dial-Plan (拨号计划)
以上四步是完成 Asterisk 服务器配置的基本步骤。
#### 安装 asterisk
下面从安装 Asterisk 开始搭建 SIP 服务器:
– 确保安装了编译器
– 通过 ssh 远程登录到 Linux 服务器
– 下载最新的 Asterisk 源代码,可以从[Asterisk 官网][1] 下载
– 运行 configure 前,需要安装构建工具和动态库:
sudo yum install gcc
sudo yum install gcc-c++ sudo yum install ncurses-devel
sudo yum install unixODBC-devel sudo yum install openssl-devel
– 将源代码解压到指定目录,然后使用 configure 来创建 Makefile:
tar -xzvf asterisk-17-current.tar.gz
cd asterisk-17-current/./configure
– 配置 Makefile:
./configure
--with-addons-dir=/usr/src/asterisk/addons --with-crypto
--with-pjproject-bundled --enable-codec-ilbc
--enable-codec-g729 --enable-codec-lpc10
--enable-codec-gsm
– 编译安装 Asterisk:
sudo make
sudo make installsudo make samples
sudo ldconfig
– 创建文件夹
sudo mkdir /etc/asterisk
sudo mkdir /var/lib/asterisksudo mkdir /var/run/asterisk
sudo mkdir /var/log/asterisk
#### 配置 SIP trunk
接下来,就可以开始配置 SIP trunk 了,其示例配置如下:
[general]
port=5060 bindaddr=0.0.0.0
context=default dtmfmode=inband
[1000] type=peer
username=1000 secret=secret
host=dynamic context=user
disallow=all allow=alaw
allow=ulaw
– 创建 sip.conf 文件:
sudo touch /etc/asterisk/sip.conf
– 编辑 sip.conf 文件:
vim /etc/asterisk/sip.conf
– 将上面的代码粘贴到 sip.conf 文件中保存:
[Ctrl + o]
[Ctrl + x]
#### 配置 VoIP signalling protocol
VoIP signalling 协议是比较复杂的部分,其示例配置如下:
[general]
port=5060bindaddr=0.0.0.0
context=defaultdtmfmode=inband
[1000]type=peer
username=1000secret=secret
host=dynamiccontext=user
disallow=all allow=alaw
allow=ulaw nat=yes
qualify=yes
#### 配置 Codec transcoding parameters
接下来就是编辑 Codec 配置文件。这里面我们需要设置音频压缩参数、允许和拒绝的编码以及允许的最大传输速率等。其示例配置如下:
[general]
disallow=all static=yes
[codecs]disallow=all
allow=ulaw allow=alaw
allow=g729 allow=ilbc
可以在 codecs.conf 文件中设置行为和传输编码格式:
sudo touch /etc/asterisk/codecs.conf
– 编辑 codecs.conf 文件:
vim /etc/asterisk/codecs.conf
– 将上面的代码粘贴到 codecs.conf 文件中保存:
[Ctrl + o]
[Ctrl + x]
#### 添加 dialplan
完成上面的准备工作,接下来就是定义拨号计划,dialplan 按照此计划来完成拨号或者响应外部呼叫等功能。其示例配置如下:
[general]
static=yes writeprotect=yes
[default]exten => 1000,1,Dial(SIP/1000,60)
exten => 2000,1,Dial(SIP/2000,60)
可以在 extensions.conf 文件中定义拨号计划:
“