1.下载opensips
官网文档
参考网址
(1条消息) opensips的成长之路--初识与搭建安装_无与伦比的傻-CSDN博客
ubuntu 安装配置opensips,rtpproxy,mediaproxy - WinHeart - OSCHINA - 中文开源技术交流社区
在官网openSIPS | Main / HomePage能看到哪个是稳定版本,这里下载的是2.4.10版本
下面的3.2.2版本当时没有调通,和2.4.10的安装方式是不一样的
2.编译安装opensips-2.4.10
直接在arm64 云环境编译,由于好多包apt-get不到,考虑先在x86_ubuntu上做交叉编译
2.1 准备所需要的包
编译需要事先准备好下面的包
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtoolsudo apt-get install bison
sudo apt-get install flex
sudo apt-get install build-essential
sudo apt-get install libncurses-dev
//数据库的安装参考这篇文章
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev//默认的安装路径
sudo chmod 777 /usr/local
2.2 编译和安装
make menuconfig 执行此命令后,直接退出(使用左右键进入/返回菜单)
会自动生成opensips/Makefile.conf文件
手动修改Makefile.conf文件
2.2.1 x86的编译安装
常规编译
make all
make install
2.2.2 arm64的编译
2.3 配置脚本
这里参考和引用下面文章中 关于opensips的设置内容:
https://blog.csdn.net/qq_32566003/article/details/117189280
2.3.1 修改opensips.cfg
在下面这个路径执行配置,(使用左右键进入/返回菜单, 空格是选中和取消)
/usr/local/sbin# ./osipsconfig
配置如下,最后生成文件,并改名成opensips.cfg
/usr/local/etc/opensips/opensips.cfg的内容:
#
# OpenSIPS residential configuration script
# by OpenSIPS Solutions <team@opensips-solutions.com>
#
# This script was generated via "make menuconfig", from
# the "Residential" scenario.
# You can enable / disable more features / functionalities by
# re-generating the scenario with different options.#
#
# Please refer to the Core CookBook at:
# https://opensips.org/Resources/DocsCookbooks
# for a explanation of possible statements, functions and parameters.
#
####### Global Parameters #########
log_level=3
log_stderror=no
log_facility=LOG_LOCAL0
children=4
/* uncomment the following lines to enable debugging */
#debug_mode=yes
/* uncomment the next line to enable the auto temporary blacklisting of
not available destinations (default disabled) */
#disable_dns_blacklist=no
/* uncomment the next line to enable IPv6 lookup after IPv4 dns
lookup failures (default disabled) */
#dns_try_ipv6=yes
/* comment the next line to enable the auto discovery of local aliases
based on reverse DNS on IPs */
auto_aliases=no
listen=udp:192.168.7.25:5060 # 改成自己的IP
listen=tcp:192.168.7.25:5060 # 改成自己的IP
2.3.2 修改opensipsctlrc
/usr/local/etc/opensips/opensipsctlrc
## your SIP domain
SIP_DOMAIN=10.121.148.196 #改成自己的IP,文件开头位置
... ...
#这里有注意数据库
## database name (for ORACLE this is TNS name)
DBNAME=opensips
# database path used by dbtext, db_berkeley, or sqlite
DB_PATH="/usr/local/etc/opensips/dbtext"
## database read/write user
DBRWUSER=root
## password for database read/write user
DBRWPW="123456"
2.3.3 创建数据库
创建opensips数据库,切换到安装目录下sbin
检测配置文件语法
./opensips -C
创建数据库
./opensipsdbctl create
添加用户
./opensipsctl add username password #添加用户
./opensipsctl rm username #删除用户
./opensipsctl add test1 123456
./opensipsctl add test2 123456
3.安装rtproxy和Mediaproxy
这篇文章,主要讲opensip、Mediaproxy和rtproxy三者的关系:
3.1 安装rtpproxy
这里引用:
按下面方式安装:
sudo apt-get install rtpproxy
sudo vi /etc/default/rtpproxy
# Defaults for rtpproxy
# The control socket.
#CONTROL_SOCK="unix:/var/run/rtpproxy/rtpproxy.sock"
# To listen on an UDP socket, uncomment this line:
CONTROL_SOCK=udp:127.0.0.1:22222
# Additional options that are passed to the daemon.
EXTRA_OPTS=""
LISTEN_ADDR=你的ip
EXTRA_OPTS="-l ${LISTEN_ADDR}"
sudo killall rtpproxy
sudo /etc/init.d/rtpproxy start
3.2 安装Mediaproxy
下载mediaproxy-2.6.1.tar.gz的网址如下:
http://download.ag-projects.com/MediaProxy/old/
media安装指导文档
http://mediaproxy.ag-projects.com/installation-guide/Installation Guide | MediaProxy
mediaproxy安装指南
http://mediaproxy.ag-projects.com/download/
编译: sudo ./setup.py build
安装: sudo ./setup.py install
编译可能会遇到下面的错误,我的环境是ubuntu16.04
执行完上面后出现的界面
3.2.1 编译问题之没有Python.h
问题现象: fatal error: Python.h: No such file or directory
问题答案:
sudo apt-get install python-dev # for python2.x installs (我的2.7版本,用这个解决)
sudo apt-get install python3-dev # for python3.x installs
3.2.2 编译问题之没有libnetfilter_conntrack/libnetfilter_conntrack.h
问题现象: fatal error: libnetfilter_conntrack/libnetfilter_conntrack.h: No such file or directory
问题答案: https://launchpad.net/ubuntu/+source/libnetfilter-conntrack/1.0.4-1
下载libnetfilter-conntrack_1.0.4.orig.tar.bz2
./configure
make
sudo make install
注意在编译过程中出现编译错误:
需要安装两个包:sudo apt-get install libnfnetlink-dev
sudo apt-get install libmnl-dev这个地址如果能搜到包,apt-get install就能安装
https://packages.ubuntu.com/
3.2.3 编译问题之没有libiptc/libiptc.h
问题现象:fatal error: libiptc/libiptc.h: No such file or directory
问题答案:sudo apt-get install libiptc-dev先在这个网址里搜下libiptc,发现搜到了libiptc-dev,就能安装
https://packages.ubuntu.com/
3.3 配置mediaproxy
引用内容网址: 在Ubuntu安装Opensips_qq_25672665的博客-CSDN博客
由于media-relay需要内核支持ipv4 forwarding,所以执行以下命令(用root用户执行):
问题现象
fatal error: IP forwarding is not available or not enabled (check /proc/sys/net/ipv4/ip_forward)
问题答案如下:
echo 1 > /proc/sys/net/ipv4/ip_forward (临时的办法)
在这之后,在/etc/sysctl.conf中添加net.ipv4.ip_forward=1,以使设备重启后也能继续用mediaproxy。
net.ipv4.ip_foward=1
在/etc/mediaproxy/tls创建认证文件。
mkdir /etc/mediaproxy
cp -R tls /etc/mediaproxy/tls
cp config.ini.sample /etc/mediaproxy/config.ini
然后将config.ini按照以下方式进行修改:
[Relay]
dispatchers = xxx.xxx.xxx.xxx #你自己的地址
passport = None
relay_ip = xxx.xxxx.xxx.xxx #你自己的IP地址
port_range = 50000:60000
log_level = DEBUG
stream_timeout = 90
on_hold_timeout = 7200
reconnect_delay = 10
traffic_sampling_period = 15
[Dispatcher]
socket_path = dispatcher.sock
listen = xxx.xxx.xxx.xxx
listen_management = xxx.xxx.xxx.xxx #你自己的IP地址
management_use_tls = yes
passport = None
management_passport = None
log_level = DEBUG
relay_timeout = 5
[TLS]
certs_path = tls
verify_interval = 300
[Database]
[Radius]
[OpenSIPS]
socket_path = /var/run/opensips/socket
max_connections = 10
完成之后,启动mediaproxy服务。(注,遇到的问题解决办法如下)
media-dispatcher restart
media-relay restart
3.3.1 问题之ImportError
问题现象: media-dispatcher restart (root权限)
Traceback (most recent call last):
File "/usr/local/bin/media-dispatcher", line 12, in <module>
from application.process import process, ProcessError
ImportError: No module named application.process
问题答案:
sudo apt-get install python-application
3.3.2 问题之没有python-gnutls
问题现象:
fatal error: need python-gnutls version 1.1.8 or higer but it's not installed问题答案:
sudo apt-get install python-gnutls
4 启动opensips服务并检验
为opensips创建log文件
touch /var/log/opensips.log
chmod 777 /var/log/opensips.log
vim /etc/rsyslog.d/opensips.conf
在新建文件中写入以下行:
local0.* /var/log/opensips.log
然后重启服务。
service rsyslog restart
opensipsctl start
然后在防火墙开启端口 (注意防火墙)
iptables -I INPUT -p tcp -dport 5060 -j ACCEPT
iptables -I INPUT -p udp -dport 5060 -j ACCEPT
iptables-save
查看防火墙状态: ufw status
显示: Status: inactive (我的虚拟机防火墙是关闭的)
开机启动命令: 启动mediaproxy、rtpproxy和opensipsctl这三个模块
su
media-dispatcher start
media-relay start
/etc/init.d/rtpproxy start
opensipsctl start
备注: 设置成开机自启动
Ubuntu开机之后会执行/etc/rc.local文件中的脚本,
所以我们可以直接在/etc/rc.local中添加启动脚本。
当然要添加到语句:exit 0 前面才行。如:
sudo vi /etc/rc.local
然后在 exit 0 前面添加好脚本代码。
5.常用的命令
查看用户信息: opensipsctl ul show
显示在线用户: opensipsctl online
1、查看命令帮助:opensipsctl help
2、新建用户:opensipsctl add 101 101 #添加用户101,密码101
3、查看fifo提供的操作:opensipsctl fifo which
4、重新加载负载均衡信息:opensipsctl fifo lb_reload
5、查看负载均衡配置的服务器状态:opensipsctl fifo lb_list
7、查看注册在opensips上的用户:opensipsctl ul show
8、查看opensips的统计信息:opensipsctl fifo get_statistics all
9、查看opensips当前通话数等信息:opensipsctl fifo get_statistics dialog
6.采用linphone测试验证
win10系统关闭了麦克风 ,打开方法: 声音设置>>麦克风隐私设置
7. 变动IP需要改哪些文件
直接搜索原来的IP,比如我的原来是192.168.7.25,再改成自己现在的IP
/usr/local/etc/opensips/opensips.cfg
/usr/local/etc/opensips/opensipsctlrc
/etc/default/rtpproxy
/etc/mediaproxy/config.ini
8.添加ws模块
在opensips.cfg脚本里添加
listen=udp:192.168.7.25:5060 # CUSTOMIZE ME
listen=tcp:192.168.7.25:5060 # CUSTOMIZE ME
listen=ws:192.168.7.25:5061 # CUSTOMIZE MEloadmodule "proto_udp.so"
loadmodule "proto_tcp.so"
loadmodule "proto_ws.so" #添加
9.相关疑问
9.1 OpenSIPS和Asterisk的区别
对比:OpenSIPS和Asterisk的区别
https://www.jianshu.com/p/5e8b60164d41
9.2 有哪些sip开源项目
最新完整关于sip开源项目
http://www.ctiforum.com/news/guandian/589369.html