OpenSIPS, bir çok telefon servis sağlayıcı tarafından kullanılan ve Class 4, Class 5, toptan satış VoIP, kurumsal PBX, sanal PBX, SBC, yük dengeleyici IMS platformları, çağrı merkezleri ve daha pek özellikler sunan çok amaçlı bir SIP sunucusudur. Bu yazımda Debian 10 üzerinde openSIPS‘in kurulum adımlarını bulabilirsiniz.
openSIPS, Linux üzerinde çalışan, oldukça az kaynak ihtiyacı olan ve yüksek performanslı bir SIP sunucusudur. Bu yüzden bir çok telekom operatörü openSIPS ile çözümler geliştirmektedir. Eğer siz de VoIP uygulamalarınızda openSIPS kullanmak isterseniz aşağıdaki kurulum yönergesini takip edebilirsiniz.
openSIPS Kurulum Adımları
1. openSIPS Kurulumunda Kullanılan Bileşenler ve Versiyonları:
- Debian v10 (Buster) x64 minimal install (netinst)
- OpenSips v3.0
- OpenSips GUI v8.3.0
- Apache v2.4
- PHP v7.3
- MariaDB v10
2. Ön Hazırlıklar
openSIPS kurulumu için öncelikle bir Debian kurulumuna ihtiyacınız olacak. Bu linkten amd64 netinst CD imajını indirip kurabilirsiniz. Debian’ın kurulumu oldukça kolay, dilerseniz hazırlamış olduğum bu videoyu takip ederek de kurabilirsiniz.
Debian’ın kurulumundan sonra aşağıdaki paketlerin kurulumunu tamamlayın:
apt update && apt upgrade -y && apt -y install m4 git nano sudo curl dbus apache2 lsb-release
Normalde monitoring için opsiyonel olarak “monit” paketini de kurabilirsiniz fakat yazıyı yazdığım tarihte monit üzerinde bulunan bir takım açıklardan dolayı repolardan kaldırıldı. Durum değişirse diye yine ilgili kurulum komutunu aşağıda bulabilirsiniz:
apt -y install monit
3. PHP Kurulumu
Önce bağımlı paketleri kurun:
apt -y install curl apt-transport-https ca-certificates
PHP reposunu ekleyin:
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > \ /etc/apt/sources.list.d/php.list
Daha sonra PHP paketlerini kurun:
apt update && apt -y install php7.3 php7.3-gd php7.3-mysql php7.3-xmlrpc php-pear php7.3-cli php-apcu php7.3-curl php7.3-xml libapache2-mod-php7.3
Pear ile PHP MDB2 kütüphanesini kurun:
pear install MDB2#mysql
PHP.ini dosyasını düzenleyerek short_open_tag değişkenini On yapın:
sed -i "s#short_open_tag = Off#short_open_tag = On#g" /etc/php/7.3/apache2/php.ini
4. MariaDB Kurulumu
MariaDB kurulumu için gpg keylerini alıp ilgili paketleri kurun:
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash apt update && apt -y install mariadb-server
Daha sonra my.cnf dosyasını aşağıdaki gibi değiştirin:
nano /etc/mysql/my.cnf
Strict modu devre dışı bırakmak ve openSIPS varsayılan latin1 karakter setini kullanmak için [mysqld] başlığının altına aşağıdaki satırları ekleyin:
sql_mode=''
character-set-server = latin1
MariaDB servisini restart edin:
systemctl restart mariadb
5. openSIPS Kurulumu
gpg keyi ekleyin:
apt -y install dirmngr && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 049AD65B
openSIPS repolarını ekleyin:
echo "deb https://apt.opensips.org $(lsb_release -sc) 3.0-releases" >/etc/apt/sources.list.d/opensips.list
echo "deb https://apt.opensips.org $(lsb_release -sc) cli-nightly" >/etc/apt/sources.list.d/opensips-cli.list
Aşağıdaki komutla openSIPS paketlerini kurun:
apt update && apt -y install opensips opensips-cli opensips-*-module opensips-*-modules python3-mysqldb python3-sqlalchemy python3-sqlalchemy-utils
6. Database Kurulumu
MariaDB üzerinde opensips kullanıcısını oluşturun ve ilgili hakları verin:
mysql -p
>
CREATE USER 'opensips'@'localhost' IDENTIFIED BY 'opensipsrw';
GRANT ALL PRIVILEGES ON opensips.* TO 'opensips'@'localhost';
FLUSH PRIVILEGES;
exit
Database kurulum scriptini çalıştırın:
opensips-cli -x database create
script size database URL ini soracak. mysql://opensips:opensipsrw@localhost olarak girin ve default u (install all tables) seçin.
7. Konfig Dosyasının Üretilmesi
Konfig dosyasını üretmek için aşağıdaki scripti çalıştırın:
/usr/sbin/osipsconfig
GenerateOpenSIPS Script > Residential Script > Configure Residential Script i seçin. Spacebar ı kullanarak TLS dışında kalan tüm seçenekleri seçin. Q tuşuna basarak bir önceki menüye gidin ve Generate Residential Script i seçin. Script ilgili dosyayı üretecek ve size dosyanın adını ekranda gösterecektir. İlgili dosyayı opensips.cfg dosyayı ile değiştirin ve gerekli okuma haklarını verin:
mv /etc/opensips/opensips.cfg /etc/opensips/opensips.cfg.orig
cp /etc/opensips/[üretilen konfig dosyası] /etc/opensips/opensips.cfg
chmod 644 /etc/opensips/opensips.cfg
8. Ek Konfigürasyonlar:
opensips.cfg dosyasında sunucunun dinleyeceği interface IP lerini girin:
nano /etc/opensips/opensips.cfg
listen= ile başlayan iki satırı sunucunun IP adresi ile değiştirin:
listen=udp:192.168.0.1:5060
listen=tcp:192.168.0.1:5060
Daha sonra oluşturulan konfigürasyon dosyasının uygun olup olmadığını kontrol edin:
opensips -C /etc/opensips
Eğer dosyada hata varsa ekranda gözükecektir. Hata varsa düzeltin, yoksa aşağıdaki komut ile yeni konfigürasyon dosyası ile opensips servisini tekrar çalıştırın:
systemctl restart opensips
9. Arayüz (GUI) Kurulumu
Git kullanarak openSIPS arayüzünü indirin:
git clone -b 8.3.0 https://github.com/OpenSIPS/opensips-cp.git /var/www/opensips-cp
Database üzerinde openSIPS arayüz tablosunu oluşturun:
cd /var/www/opensips-cp/config
mysql -p opensips < db_schema.mysql
10. İstatistiklerin Düzenli Toplanması
İlgili scripti cron.d klasörüne ekleyin ve cron servisini tekrar başlatın:
cd /var/www/opensips-cp/config
cp tools/system/smonitor/opensips_stats_cron /etc/cron.d/
systemctl restart cron
11. Monit Konfigürasyonu (Opsiyonel)
monitrc dosyasına aşağıdaki gibi ilgili satırı ekleyin ve servisi tekrar başlatın:
echo -e "set httpd port 2812 and\nallow localhost" >> /etc/monit/monitrc
systemctl restart monit
12. Global Konfigürasyon
GUI konfigürasyon php dosyasını açın ve aşağıdaki gibi düzenleyin:
nano +30 /var/www/opensips-cp/config/boxes.global.inc.php
// monit host:port
$boxes[$box_id]['monit']['conn']="127.0.0.1:2812";
$boxes[$box_id]['monit']['user']="admin";
$boxes[$box_id]['monit']['pass']="admin";
$boxes[$box_id]['monit']['has_ssl']=0;
13. Apache Konfigürasyonu
Aşağıdaki komutu kullanarak Apache üzerinde Virtual Host tanımlarını yapın:
cat >> /etc/apache2/sites-available/opensips.conf << EOF
<VirtualHost *:80>
DocumentRoot /var/www/opensips-cp
<Directory /var/www/opensips-cp/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/opensips-cp>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all denied
</Directory>
Alias /cp /var/www/opensips-cp/web
<DirectoryMatch "/var/www/opensips-cp/web/tools/.*/.*/(template|custom_actions|lib)/">
Require all denied
</DirectoryMatch>
</VirtualHost>
EOF
Apache üzerinde default web sayfasını kapatın, openSIPS GUI sayfasını açın, klasörün ownerını değiştirip Apache yi restart edin:
a2dissite 000-default
a2ensite opensips
chown -R www-data. /var/www/opensips-cp
systemctl restart apache2
Sonunda kurulum tamamlanmış oldu. http://ipadresi/cp URL ini kullanarak admin / opensips kullanıcı adı ve şifresiyle openSIPS arayüzüne erişebilirsiniz.