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
...可以添加多个。格式:用户名 密码