Opensip部署 - housekeeper-software/tech GitHub Wiki
准备
OS: Debian 10
1.先安装 docker
切换清华源,如果安装时已经选择,则忽略,否则将/etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
apt -y update
apt -y install gnupg curl vim wget unzip
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
创建网桥
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet
安装 主机上的 mediaproxy-relay
curl -o /etc/apt/trusted.gpg.d/agp-debian-key.gpg http://download.ag-projects.com/agp-debian-key.gpg
echo "" >> /etc/apt/sources.list
echo "deb http://ag-projects.com/debian buster main" >> /etc/apt/sources.list
echo "deb-src http://ag-projects.com/debian buster main" >> /etc/apt/sources.list
echo "" >> /etc/apt/sources.list
=====Debian 11 不能通过apt安装,需要编译安装
apt update && apt install -y darcs python3-dev python3-application python3-gnutls
apt-get -y install procps net-tools build-essential autoconf automake libtool bzip2 unzip pkg-config
apt-get -y install libnfnetlink-dev libmnl-dev libip4tc-dev libnetfilter-conntrack-dev python3-application python3-gnutls
darcs get http://devel.ag-projects.com/repositories/mediaproxy
cd mediaproxy
darcs pull -a
python3 setup.py install
=====Debian 10 可以apt安装
apt update && apt install -y mediaproxy-relay
Dockerfile
FROM debian:10 as builder
USER root
ENV DEBIAN_FRONTEND noninteractive
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1
ADD sources.list /etc/apt/sources.list
# for install basic tools
RUN apt-get update && \
apt-get -y install apt-utils gnupg ca-certificates wget curl
# for install mediaproxy
RUN curl -o /etc/apt/trusted.gpg.d/agp-debian-key.gpg http://download.ag-projects.com/agp-debian-key.gpg
RUN echo >> /etc/apt/sources.list
RUN echo "" >> /etc/apt/sources.list
RUN echo "deb http://ag-projects.com/debian buster main" >> /etc/apt/sources.list
RUN echo "deb-src http://ag-projects.com/debian buster main" >> /etc/apt/sources.list
RUN echo "" >> /etc/apt/sources.list
# for install mysql client
RUN curl -s http://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | apt-key add -
RUN echo "deb http://repo.mysql.com/apt/debian/ buster mysql-apt-config" >> /etc/apt/sources.list.d/mysql.list
RUN echo "deb http://repo.mysql.com/apt/debian/ buster mysql-5.7" >> /etc/apt/sources.list.d/mysql.list
RUN echo "deb http://repo.mysql.com/apt/debian/ buster mysql-tools" >> /etc/apt/sources.list.d/mysql.list
RUN echo "deb-src http://repo.mysql.com/apt/debian/ buster mysql-5.7" >> /etc/apt/sources.list.d/mysql.list
# for opensips
RUN curl https://apt.opensips.org/opensips-org.gpg -o /usr/share/keyrings/opensips-org.gpg
RUN echo "deb [signed-by=/usr/share/keyrings/opensips-org.gpg] https://apt.opensips.org buster 2.4-releases" >> /etc/apt/sources.list.d/opensips.list
RUN echo "deb [signed-by=/usr/share/keyrings/opensips-org.gpg] https://apt.opensips.org buster cli-nightly" >> /etc/apt/sources.list.d/opensips.list
RUN apt-get update && \
apt-get -y install procps net-tools build-essential autoconf automake libtool bzip2 unzip pkg-config \
bison flex libncurses5 libncurses5-dev vim libssl-dev mysql-client libmysqlclient-dev \
python3 python3-dev libnfnetlink-dev libmnl-dev libip4tc-dev iptables-dev libnetfilter-conntrack-dev python3-application python3-gnutls \
opensips \
opensips-b2bua-module opensips-berkeley-module opensips-carrierroute-module opensips-cgrates-module \
opensips-compression-module opensips-console opensips-cpl-module \
opensips-dbhttp-module opensips-dialplan-module opensips-emergency-module opensips-geoip-module opensips-http-modules opensips-identity-module \
opensips-jabber-module opensips-json-module opensips-ldap-modules opensips-lua-module opensips-memcached-module opensips-mysql-module opensips-mongodb-module \
opensips-perl-modules opensips-postgres-module opensips-presence-modules opensips-rabbitmq-modules opensips-radius-modules opensips-redis-module \
opensips-regex-module opensips-restclient-module opensips-sctp-module opensips-siprec-module opensips-snmpstats-module opensips-sqlite-module opensips-tls-module \
opensips-wss-module opensips-tlsmgm-module opensips-unixodbc-module opensips-xmlrpc-module opensips-xmpp-module \
mediaproxy-dispatcher
ADD startup.sh /etc/startup.sh
RUN chmod +x /etc/startup.sh
sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
start_sip.sh
#!/bin/sh
opensipsctl start &
sleep 10
#check process
opensips=`ps -ef | grep opensips | grep -v grep | wc -l `
if [ $opensips -eq 0 ]
then
exit
fi
media-dispatcher --no-fork
获取mysql镜像
docker pull mysql:5.7
制作opensip镜像
docker build --network=host -t opensips:2.4 .
启动sip服务器
docker run -d --name=sip --network=mynet --ip 172.18.12.1 -p 9990:9990 -p 18889:18889 -p 25060:25060 -p 18888:18888 -p 18888:18888/udp -v /data/opensips:/etc/opensips -v /data/mediaproxy/:/etc/mediaproxy --restart=always opensips:2.4 /bin/bash /etc/startup.sh
mysql 启动
docker run -d --name=mysql --network=mynet --ip 172.18.12.2 -v /data/mysql/log:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
启动主机上的 media-relay
systemctl enable mediaproxy-relay
systemctl start mediaproxy-relay
media-relay
添加测试账号
docker exec -it sip /bin/bash
opensipsctl add test001 ssc82893388
...可以添加多个。格式:用户名 密码