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 install
sudo make samples
sudo ldconfig

– 创建文件夹

sudo mkdir /etc/asterisk
sudo mkdir /var/lib/asterisk
sudo 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=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
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 文件中定义拨号计划:


数据运维技术 » Linux下搭建SIP服务器的指南(sip服务器linux)