Browsed by
Kategori: Tümleşik İletişim

Merhaba, bu kısımda Tümleşik İletişim teknolileri ile ilgili konfigürasyon, problem çözümü yenilikler ve incelemelerin olduğu yazılarımı bulabilirsiniz.

Jitsi Meet Ubuntu’ya Nasıl Kurulur?

Jitsi Meet Ubuntu’ya Nasıl Kurulur?

Kısa Not: Jitsi Meet kurulumu ile ilgili profesyonel hizmet almak isterseniz bana iletişim linkinden ulaşabilirsiniz.

Jitsi Meet, çok kullanışlı ve basit, WebRTC tabanlı açık kaynaklı çok platformlu bir video konferans çözümüdür. Jitsi Meet’i bulut tabanlı veya kendi sunucularınızda da kullanabilirsiniz. Bu blog yazımda, Jitsi sunucusunu Ubuntu tabanlı linux platformunuza nasıl kuracağınızı açıklayacağım.

Jitsi Meet’i Ubuntu linux platformuna kurmak oldukça kolaydır. Bu kılavuzda, Jitsi sunucusunu Ubuntu 18.04 üzerinde .deb paketlerini kullanarak nasıl kurulacağını bulabilirsiniz.

Bu kurulum yazısında sizin Ubuntu’yu kurabileceğinizi farz ediyorum ve Jitsi kurulumuna temel kurulum noktasından devam edeceğim.

Öncelikle, sudo & ssh gibi temel paketleri kuralım. Konsoldan root olarak oturum açın, ardından gerekli paketleri kurun.

apt-get install -y ssh sudo ufw apt-transport-https

Root olmayan kullanıcınızı (benimki ferikci) /etc/sudoers dosyasına ekleyin.

ferikci  ALL=(ALL:ALL) ALL

Artık sudo komutlarını kullanarak mevcut kullanıcınızla devam edebilirsiniz.

Opsiyonel: UFW güvenlik duvarını etkinleştirin ve gereken portları açın:

sudo ufw allow in ssh 
sudo ufw allow in http 
sudo  ufw allow in https 
sudo  ufw allow in 10000/udp 
sudo  ufw enable 

Eğer linux makinenize SSH ile bağlıysanız, “ufw allow ssh” komutunu girdikten sonra “ufw enable” komutunu girin, aksi takdirde mevcut SSH bağlantınızı kaybedebilirsiniz.

Eğer Jitsi sunucusunu bir hostname ile kullanacaksanız /etc/hosts dosyasında ilgili hostname in blunduğuna emin olun:

127.0.0.1 localhost jitsi.test.local

Ardından linux makinenizi yeniden başlatın:

reboot

Şimdi kurulumun geri kalanında mevcut kullanıcınızla SSH üzerinden tekrar oturum açın.

Jitsi GPG anahtarını ekleyin.

 wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add - 

Ubuntu sistemlerinde Jitsi, Ubuntu’nun “universe” paketi deposundan bağımlılıklar gerektirir. Bunun için aşağıdaki komutla universe reposunu da ekleyin:

apt-add-repository universe

Daha sonra Jitsi deposunu ekleyin ve apt yi güncelleyin

sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list"
sudo apt-get -y update 

Jitsi-Meet Kurulumu

Artık Jitsi sunucu kurulumuna hazırsınız. Jitsi-meet’i bağımlılıklarıyla birlikte kurmak için aşağıdaki komutu kullanın:

sudo apt-get -y install jitsi-meet

Kurulum esnasında bilgisayar adınız (hostname) sorulacak ancak, sadece bilgisayar adınızı yazmayın, bu alana bilgisayar adınızı FQDN olarak yazmalısınız, aksi takdirde bağlantı ile ilgili sorunlarla karşılaşabilirsiniz. Bu arada, FQDN’nin DNS sunucuları tarafından çözüğlebildiğinden emin olun. (Ya da FQDN’i bilgisayarınızın hosts dosyanıza ekleyebilirsiniz.).

Jitsi Hostname (FQDN) Ayarları

Kurulumda bundan sonra sertifika istenecektir. Ben bu kurulumda kendinden imzalı SSL sertifikası kullanacağım, bu yüzden ilk seçeneği seçiyorum.

Jitsi SSL Sertifika Konfigürasyon Menüsü

Kurulum bir süre sonra tamamlanacak ve komut istemine geçecektir.

Şimdi video konferans GUI’nize bağlanma zamanı geldi. Jitsi sunucusunun ana sayfasına gitmek için https://FQDN adresini kullanın:

https://jitsi.test.local

Oda adı giriş alanına sahip bir ana sayfa göreceksiniz. Bir oda adı girin ve Go düğmesine tıklayın.

Jitsi Meet Ana Sayfa

Hepsi bu kadar! Aynı prosedürle veya https://FQDN/odaadı URL’sini kullanarak odanıza daha fazla katılımcı ekleyebilirsiniz.

https://jitsi.test.local/testroom
Ve Jitsi Meet Çalışır

Jitsi’yi Bir NAT Arkasında Çalıştırmak

Jitsi sunucunuzu iç IP ile bir NAT arkasında kullanmak istiyorsanız, yönlendiricinizi aşağıdaki portları Jitsi Meet sunucunuza yönlendirecek şekilde yapılandırmanız (port forwarding) gerekir:

  • 80/TCP
  • 443/TCP
  • 10000/UDP

Ardından /etc/jitsi/videobridge/sip-communicator.properties dosyasına iç ve dış IPlerinizi içeren aşağıdaki satırları eklemeniz gerekir:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=[İÇ.IP.ADRESİ]
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=[DIŞ.IP.ADDRESİ]

Örnek olarak kendi konfigürasyonum şöyle:

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.1.20
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=95.9.74.32

Coronavirus e Karşı Ücretsiz Video Konferans Hizmeti

Coronavirus e Karşı Ücretsiz Video Konferans Hizmeti

Tüm dünyayı tehdit eden Coronavirüs ün (COVID-19) yayılmasını önlemek için, seyahat etmeden uzaktan çalışmak / işbirliği yapmak, ya da sevdikleriniz ile görüntülü görüşmek için iyi bir zaman. Aşağıdaki linkte herkesin hizmetine sunduğum video konferans sunucusu ile bunu yapabilirsiniz.

Kayıt olmanıza, her hangi bir kullanıcı bilgisi girmenize gerek yok. Aşağıdaki bağlantıyı tıklayarak kolayca görüntülü arama odası oluşturabilirsiniz:

https://fatiherikci.com/videocall/

Bir video görüşmesi odası oluşturup katıldıktan sonra, tarayıcınızdaki sayfa URL’ini seçip kopyalayabilir ve aynı odaya katılabilmeleri için diğer katılımcılarla paylaşabilirsiniz. 🙂

Not: Bu sayfa en iyi Chrome / Chromium ve Opera ile çalışır.

Cisco Webex Room USB İnceleme

Cisco Webex Room USB İnceleme

Video konferans ve işbirliği teknolojilerinde bildiğiniz üzere Cisco en yüksek pazar payına sahip olan bir donanım ve yazılım üreticisi. Ancak geçtiğimiz 1-2 yıl içinde yazılım tabanlı çözümler çıktıkça tümleşik video konferans cihazlarının yanında ses ve görüntü alıcı verici donanımlarına da rağbet artmaya başladı. Bu pazarda başı Logitech çekerken piyasaya bir çok yenilikçi ürün de çıkmıştı (Hatta bunların arasından bence en inovatif olan Jabra Panacast i de bu yazımda incelemiştim). Cisco da bu pazarda pay almak istiyor olacak ki geçtiğimiz Ocak ayında yeni adlandırdığı ürünü olan Webex Room USB ile ciddi bir giriş yaptı.

Cisco Webex Room USB, her hangi bir uç noktayı (Laptop, Desktop, SFF PC vb.) bir video işbirliği merkezine dönüştüren bir cihaz. Kullandığınız yazılımın Cisco olmasına bile gerek yok, herhangi bir işbirliği platformu (Microsoft Teams, S4B, Zoom, Slack, Jitsi vb.) ile bu cihazı kullanabilirsiniz. Dilerseniz Cisco Webex Room USB’nin özelliklerini daha ayrıntılı olarak inceleyelim.

Cisco Webex Room USB Özellikleri

Cisco Webex Room USB, 120 derecelik görüş açısına sahip kamerası sayesinde 2-5 katılımcılı toplantı odaları için oldukça ideal bir cihaz. Temel olarak cihaz gömülü kameraya sahip bir soundbar biçiminde ve ekranın üzerine yerleştiriliyor. Bunun dışında bir uzaktan kumandası ve bir USB kablosu var. Bunların yanında ekran ve duvara montaj için aparatlar, kamera için fiziksel bir gizlilik kapağı ve HDMI ve Ethernet bağlantısı için iki kablo da mevcut. Cihazın öne çıkan teknik özellikleri ise şu şekilde:

  • Kamera Kalitesi : Cisco Webex Room USB, saniyede 60 kare hızında video çekebilen bir 4K UltraHD kameraya sahiptir. 8MP görüntü sensörü ile desteklenen parlaklık ve beyaz dengesini maksimum netlik için otomatik olarak ayarlayabilir. İçerdiği yapay zeka teknolojisi ile toplantı katılımcılarını otomatik olarak algılayarak herkesin açıkça görülebilmesi için görüntüyü akıllıca çerçeveleme özelliğine ve toplantılar için bir takım analitik fonksiyonlara sahiptir.
  • Ses Kalitesi : Cihazın üzerinde entegre mikrofonlar ve hoparlörler bulunur. Otomatik gürültü azaltma özelliği sayesinde kağıt hışırtısı, çay karıştırma sesi gibi genelde dikkati dağıtan ortam seslerini filtreleyebilir. Hoparlör tasarımı sayesinde özellikle insan sesinin ağırlıklı bulunduğu pes frekanslarda daha doygun bir ses deneyimi sunar. Diğer üreticiler (Logitech) ile aradaki ses farkını dinlemek için bu linkteki videoya bakabilirsiniz.
  • Dijital Tabela Ekranı : Bu özellik sanırım Cisco Webex Room USB’nin diğer rakiplerinden ayıran en önemli özelliği. Cihaz kullanımda değilken, bağlı PC ekranlarını dijital bir tabelaya dönüştürmek için kullanılabilir. Kurumsal haberleri paylaşmak, marka bilinci oluşturmak vb. işler için bunu kullanabilirsiniz.
  • İçerik Paylaşımı : Cisco Webex Room USB, 4K içerik paylaşımını ve ayrıca cihaz browser üzerinden kablosuz içerik paylaşımını destekliyor. Bu sayede içeriğinizi kolay bir şekilde ekrana yansıtma imkanı bulabilirsiniz.
Webex Room USB’yi Bir Dijital Tabela Ekranı Olarak Da Kullanabilirsiniz

Bunların dışında daha detaylı teknik özelliklere bu linkteki datasheet üzerinden erişebilirsiniz.

Başta da dediğim gibi bu pazarda başta Logitech olmak üzere birkaç oyuncu mevcut. Aşağıdaki tabloda ise en çok bilinen iki cihaz ile karşılaştırmayı bulabilirsiniz:

Ürün / ÖzellikCisco Webex Room USBLogitech MeetUpPoly Studio
USB Kamera, Hoparlör ve MikrofonVar Var Var
Akıllı Kamera ve Ses Var Yok Yok
Cihaz Ayarları Var (Webex Control HUB ile) Yok Yok
Tarayıcı üzerinden Kablosuz İçerik Paylaşımı Var (Webex veya web browser ile) Yok Yok
Dijital Tabela Ekranı Var Var (Webex Control HUB ile) Yok Yok

Aşağıdaki videoda Webex Room USB’yi bilgisayarınıza bağlayıp nasıl ses ve video cihazı olarak kullanabileceğinizi görebilirsiniz:

Cisco Webex Room Kit Mini USB

Cisco Webex Room USB Fiyatı

Eğer video görüşmeleriniz için bir yazılım çözümünüz veya bir servis üyeliğiniz varsa Webex Room Kit Mini kalitesinde bir görüşme deneyimi sağlayan bu cihaza 2.750$ lık bir liste fiyatı (tabi ki gerçek satış fiyatı bu değil) ile sahip olabilirsiniz. Webex Room Kit Mini ile kıyasladığımızda Webex Room USB’nin fiyatı Mini fiyatının yarısının da altında.

Son Söz

Küçük ölçekli işletmeler ve video iletişimine geçmek isteyen kuruluşlar için Cisco Webex Room USB ile başlamak ve daha sonrasında bir yükseltme kiti ile Room Kit Mini’ye dönüştürmek iyi bir fikir olabilir. Bu sayede hem başlangıç yatırımlarını oldukça düşük tutabilir hem de görüşme deneyimini en üst seviyede sağlayacak bir çözüme sahip olabilirsiniz.

openSIPS Kurulum Adımları

openSIPS Kurulum Adımları

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.

SIP Mesajları ve Açıklamaları

SIP Mesajları ve Açıklamaları

SIP, HTTP’ye oldukça benzeyen bir iletişim protokolüdür ve bu protokol içindeki SIP mesajları HTTP mesajlarına çok benzer. Aynı HTTP’de olduğu gibi SIP mesajları da 2,3,4,5 ve 6 rakamları ile başlayan 3 haneli kodlara sahiptirler. İsterseniz bu mesajların detaylı açıklamalarına geçmeden önce en çok karşılaşılan ve kullanılan SIP mesajlarını inceleyelim :

En Çok Kullanılan SIP Mesajları ve Anlamları

REGISTERTo başlığı alanında listelenen URI’yi bir SIP sunucusuna kaydetmek ve Contact başlığı alanında verilen ağ adresiyle ilişkilendirmek içindir.
INVITEArama yapmak için bir iletişim başlatır. İstek bir kullanıcı istemcisi (ör. IP telefon) tarafından bir SIP sunucusuna gönderilir. Hali hazırda kurulmuş bir iletişim sırasında gönderildiğinde (RE-INVITE), oturumu değiştirir (ör. çağrıyı beklemeye alma).
ACKBir INVITE isteğine son bir yanıt aldığını doğrulamak için kullanılır.
BYEBir iletişimin sonlandırıldığını bildirir ve çağrıyı bitirir.
CANCELBekleyen tüm istekleri iptal eder. Hala çalan bir çağrıyı cevaplamadan önce, sonlandırmak için kullanılır.
UPDATEİletişim durumunu değiştirmeden oturumun durumunu değiştirir
REFERAlıcıdan çağrıyı aktarmak amacıyla bir talepte bulunmasını ister.
PRACKGeçici onay. Geçici bir yanıta yanıt olarak gönderilir.
SUBSCRIBEBir bildirimden gelen olayların bildirilmesi için bir abonelik başlatır.
NOTIFYYeni bir etkinliğin bildirimlerini bir aboneye bildirmek için kullanılır.
PUBLISHBir etkinliği bildirim sunucusunda yayınlamak için kullanılır.
MESSAGEKısa mesaj gönderir. Anlık mesajlaşma uygulamalarında kullanılır.
INFOOturum durumunu değiştirmeyen oturum ortası bilgileri göndermek için kullanılır. Bu yöntem genellikle DTMF rölesi için kullanılır.
OPTIONSBir uç noktanın yeteneklerini sorgular. Genellikle NAT ve keepalive için kullanılır.

Bunların dışında diğer 3 haneli kodlara sahip SIP mesajlarını da aşağıda bulabilirsiniz:

1XX ile Başlayan SIP Mesajları

Bilgi içerikli yanıtlardır. Talebin geçerli olduğunu ve işleme alındığını bildirir. “Deniyor”, “Çalıyor” gibi geçici durumları bildirmek için kullanılır.

  • 100 Trying : INVITE mesajına karşılık olarak gönderilir. Hedefin nerede olduğunu bulmak biraz zaman alabilir, bu nedenle SIP proxy bu yanıtı gönderir.
  • 180 Ringing : Hedef kullanıcı aracısı (aranan numara) INVITE aldı ve telefonu çaldırıyor.
  • 181 Call Is Being Forwarded : Sunucular isteğe bağlı olarak bir çağrının yönlendirildiğini belirtmek için bu yanıtı gönderebilir.
  • 182 Queued : Hedefin geçici olarak kullanılamadığını gösterir, bu nedenle sunucu, hedef kullanılabilir olana kadar çağrıyı kuyruğa (beklemeye) almıştır. Bir sunucu kuyruğun ilerlemesini güncellemek adına birden fazla 182 yanıtı gönderebilir.
  • 183 Session Progress : Bu yanıt, halen kurulmakta olan bir çağrı için ek bilgi göndermek amacıyla kullanılır.
  • 199 Early Dialog Terminated : Bir User Agent Server tarafından, yukarı akıştaki SIP varlıklarına erken bir iletişimin sonlandırıldığını belirtmek için kullanılır.

2XX ile Başlayan SIP Mesajları

İsteğin başarıyla tamamlandığını belirtir. Bir INVITE mesajına cevap olarak, bir çağrının yapıldığını gösterir. Bir son başarı durumunu belirtir. En yaygın görülen kod 200 OK dir.

  • 200 OK : İsteğin başarılı olduğunu belirtir.
  • 202 Accepted : İsteğin işlenmek üzere kabul edildiğini, ancak işlemin tamamlanmadığını gösterir.
  • 204 No Notification : İsteğin başarılı olduğunu, ancak karşılığında bir yanıt alınmayacağını belirtir.

3XX ile Başlayan SIP Mesajları

İsteğin tamamlanması için çağrı yönlendirmesi gerekiyorsa bu kodlar kullanılır. Bu kodlar ile istek yeni bir hedefte tamamlanacak demektir. Ayrıca bir arıza durumunu belirtmek için de kullanılır, ancak kullanıcının yeni konumu veya aramayı cevaplayabilecek alternatif yerler hakkında bilgi de içerir. Bunlar telefonda “Tüm Çağrıları Yönlendir” veya “Rahatsız Etmeyin” gibi özellikler etkinleştirildiğinde IP telefonlar tarafından oluşturulan tipik yanıtlardır.

  • 300 Multiple Options : Adres, ileti gövdesinde veya iletinin Contact alanlarında listelenen kullanıcının veya istemcinin aralarından seçim yapabileceği çeşitli seçeneklerden birine çözümlendiğini belirtir.
  • 301 Moved Permanently : Orijinal istek URI’ın artık geçerli olmadığını belirtir ve yeni adresi Contact başlığı alanında verilr. İstemci orijinal istek URI kayıtlarını yeni değerle güncellemelidir.
  • 302 Moved Temporarily : İstek, Contact alanındaki adres ile tekrar denemelidir. Bir Expires alanı varsa, istemci sonucu bu süre boyunca önbelleğe alabilir.
  • 305 Use Proxy : Contact alanında istenen hedefe erişmek için kullanılması gereken bir proxy olduğunu belirtir.
  • 380 Alternative Service : Çağrının başarısız olduğunu, ancak mesaj gövdesinde alternatifler olduğunu belirtir.

4XX ile Başlayan SIP Mesajları

En kalabalık mesaj kod ailesidir. Gelen istek, sunucuda çeşitli nedenlerle tamamlanamıyor ise hata durumunu belirtmek için kullanılır, ancak bu mesajı üreten SIP Proxy’sinden kaynaklanan bir durumdur. Yani varsa diğer bazı SIP Proxy’lerin isteği başarıyla işleyebileceğini gösterir.

  • 400 Bad Request : İstek, hatalı biçimlendirilmiş sözdizimi nedeniyle anlaşılamadığında gönderilir.
  • 401 Unauthorized : İstek için kullanıcı kimlik doğrulaması gerektiğinde gönderilir. Bu yanıt UAS ve SIP registrar tarafından verilir.
  • 402 Payment Required: İlgili istek için ödeme yapılması gerektiğinde gönderilir. (gelecekte kullanılmak üzere ayrılmıştır)
  • 403 Forbidden : Sunucu isteği anladığında, ancak yerine getirmeyi reddettiğinde gönderilir. Bazen aramanın alıcı tarafından reddedildiği anlamına da gelebilir.
  • 404 Not Found : Sunucu, kullanıcının Request-URI’ında belirtilen etki alanında (domain) bulunmadığı durumda bu mesajı gönderir. Bu durum, Request URI’ındaki etki alanı, isteğin alıcısı tarafından işlenen etki alanlarından hiçbiriyle eşleşmezse de döndürülür.
  • 405 Method Not Allowed : Request-Line’da belirtilen metot anlaşıldığı ancak RequestURI’ı tarafından tanımlanan adres için izin verilmediği durumda gönderilir.
  • 406 Not Acceptable : İstekte gönderilen Accept header bilgisine göre göre kabul edilemeyen bir durum olduğunda gönderilir.
  • 407 Proxy Authentication Required : İstek için kullanıcı kimlik doğrulaması gerektiğinde gönderilir. Bu yanıt proxy’ler tarafından verilir.
  • 408 Request Timeout: İstekte belirtilen kullanıcı gerekli süre içerisinde bulunamadığında gönderilir. İstemci, istediği zaman değişiklik yapmadan isteği tekrarlayabilir.
  • 409 Conflict : Kullanıcı zaten kayıtlı olduğu durumda gönderilir.(sonraki RFC’lerden çıkarılması nedeniyle kullanımdan kaldırılmıştır.)
  • 410 Gone: Bir zamanlar var olan bu kullanıcının artık olmadığı durumda gönderilir.
  • 411 Length Required : Sunucu, geçerli bir Content-Length olmadan isteği kabul etmeyeceği durumda gönderilir. (sonraki RFC’lerden çıkarılması nedeniyle kullanımdan kaldırılmıştır.)
  • 412 Conditional Request Failed : Belirtilen ön koşul karşılanmadığı durumda gönderilir.
  • 413 Request Entity Too Large : İstek mesajının gövdesi çok büyük olduğu durumda gönderilir.
  • 414 Request URI Too Long : Request-URI’I, sunucunun yorumlayabildiğinden daha uzun olduğu durumda sunucunun bu hizmete hizmet vermeyi reddettiğini belirtmek için gönderilir.
  • 415 Unsupported Media Type : İstek mesajının gövdesi desteklenmeyen bir biçimde olduğunda gönderilir.
  • 416 Unsupported URL Scheme : İstek-URI’ı sunucu tarafından desteklenmediği durumda gönderilir.
  • 420 Bad Extension: Geçersiz SIP Protokol uzantısı kullanıldığında, sunucu tarafından anlaşılmadığında gönderilir.
  • 421 Extension Required : Sunucunun, Supported headerında listelenmeyen belirli bir uzantıya ihtiyacı olduğunda gönderilir.
  • 422 Session Interval Too Small : Alınan istek, minimum timer değerinin altında bir süreye sahip bir Session-Expires header alanı içerdiğinde gönderilir.
  • 423 Interval Too Brief : Kaynağın Expiration süresi çok kısa olduğunda gönderilir.
  • 424 Bad Location Information : İsteğin konum içeriği yanlış biçimlendirilmiş veya başka şekilde yetersiz olduğu durumda gönderilir.
  • 428 Use Identity Header : Sunucu yapılandırması bir Identity header üstbilgisi gerektirdiğinde ve istekte bu değer sağlanmadığında gönderilir.
  • 429 Provide Referrer Identity : Sunucu, istek üzerine geçerli bir Referred-By token ı almadığında gönderilir.
  • 430 Flow Failed : Diğer akışlar başarılı iken, bir kullanıcı aracısının belirli bir akışı başarısız olduğunda gönderilir. Bu yanıt proxy cihazları arasında kullanılmak üzere tasarlanmıştır ve uç cihaz tarafında görülmemelidir (eğer tarafından görülüyorsa 400 Bad Request olarak değerlendirilmelidir).
  • 433 Anonymity Disallowed : İsteğin anonim olduğu için reddedildiğini belirtir.
  • 436 Bad Identity-Info : İsteğin bir Identity-Info headerının olduğu ve bu headerdaki URI şeması kaydının anlaşılmadığı durumda gönderilir.
  • 437 Unsupported Certificate : Sunucunun, isteği imzalayan etki alanı için bir sertifikayı doğrulayamadığı durumda gönderilir.
  • 438 Invalid Identity Header : Sunucunun, talebin imzalanması için talepe ait geçerli bir sertifikaya sahip olduğu ancak ancak bu imzayı doğrulayamadığı durumda gönderilir.
  • 439 First Hop Lacks Outbound Support : Kullanıcının kaydolmaya çalıştığı ilk outbound proxynin, registrarın desteklemesine rağmen RFC 5626’nın “outbound” özelliğini desteklemediği durumda gönderilir.
  • 440 Max-Breadth Exceeded : Bir SIP proxy’si bir yanıt contextinin istenen bir paralel fork yürütmek için yetersiz Incoming Max-Breadth değerine sahip olduğunu belirlerse ve proxy, seri olarak çatallayarak veya bir yönlendirme göndererek telafi etmek istemez veya telafi edemezse, bu proxynin 440 yanıtı göndermesi gerekir. 440 yanıtını alan bir istemci, isteğinin olası tüm hedeflere ulaşamamasına neden olabilir.
  • 469 Bad Info Package : If a SIP UA receives an INFO request associated with an Info Package that the UA has not indicated willingness to receive, the UA MUST send a 469 response, which contains a Recv-Info header field with Info Packages for which the UA is willing to receive INFO requests.
  • 470 Consent Needed : Talebin kaynağının alıcı için böyle bir talepte bulunma izni olmadığı durumda gönderilir.
  • 480 Temporarily Unavailable : Aranan numaraya geçici olarak ulaşılamadığında bu mesaj gönderilir.
  • 481 Call/Transaction Does Not Exist : Sunucunun, isteği hiçbir iletişim kutusu veya işlemle eşleştiremediği bir istek aldığında gönderilir.
  • 482 Loop Detected : Sunucu bir döngü (loop) tespit ettiğinde gönderilir.
  • 483 Too Many Hops : Çağrı yönlendirilirken çok fazla hop üzerinden geçtiğinde (Max-Forward headerı ‘0’ değerine ulaştığında) gönderilir.
  • 484 Address Incomplete : Request-URI header ı eksik ise gönderilir.
  • 485 Ambigious : Request-URI header ı belirsiz ise gönderilir.
  • 486 Busy Here : Aranan numara meşgulse gönderilir.
  • 487 Request Terminated : İstek BYE veya CANCEL ile sonlandırıldığında gönderilir.
  • 488 Not Acceptable Here : Session Description veya Request-URI parametreleri kabul edilmediğinde gönderilir.
  • 489 Bad Event : Sunucu Event headerındaki bir olay paketini anlamadığı durumda gönderilir.
  • 491 Request Pending : Sunucunun aynı iletişim kutusundan beklemede olan başka istekleri olduğunda gönderilir.
  • 493 Undecipherable: Sunucunun gelen istekteki MIME gövdesinin şifresini çözemediği durumda gönderilir.
  • 494 Security Agreement Required : Sunucu, anlaşmalı bir güvenlik mekanizması gerektiren bir istek aldığında ve yanıtın, istekte bulunanın seçebileceği uygun güvenlik mekanizmalarının listesini veya digest authentication sorununu içerdiğinde gönderilir.

5XX ile Başlayan SIP Mesajları

Sunucu, sunucu iç hataları da dahil olmak üzere, geçerli bir isteği yerine getiremediğinde alınan mesajlardır. PBX sunucusunun bir iç hatayla karşılaştığını belirtmek için kullanılır.

  • 500 Internal Server Error : Sunucu beklenmedik bir durum nedeniyle isteği yerine getiremediğinde gönderilir.
  • 501 Not Implemented : Sunucu, istek yöntemini tanımadığı için isteği yerine getirme yeteneğine sahip değil ise bu mesajı gönderir.
  • 502 Bad Gateway : Sunucu, ağ geçidi veya proxy gibi davranıyor ve isteği yerine getirmeye çalışırken bir alt sunucudan geçersiz bir yanıt aldıysa bu mesajı gönderebilir.
  • 503 Service Unavailable : Sunucu bakımda veya geçici olarak aşırı yüklenmiş ve bu nedenle isteği işleyemiyor ise bu mesajı gönderir. Sunuu Retry-After headerı ile istemcinin isteğini ne zaman tekrar deneyebileceğini belirtebilir.
  • 504 Server Timeout : Sunucu, isteği işleme koymaya çalışırken başka bir sunucuya erişmeye çalıştı ve bir yanıt almadıysa bu mesajı gönderir.
  • 505 Version Not Supported : Sunucu, SIP protokolünün bu sürümünü desteklemiyor ise bu mesajı gönderir.
  • 513 Message Too Large : Sunucu istek mesajının uzunluğu sunucunun işleyebileceğinden daha uzun ise bu mesajı gönderir.
  • 555 Push Notification Service Not Supported : Sunucu, bir ‘pn provider’ SIP URI parametresinde tanımlanan push bildirim hizmetini desteklemiyorsa bu mesajı gönderir.
  • 580 Precondition Failure : Sunucu teklifte belirtilen bazı kısıtlamaları karşılamak için yetersiz veya isteksiz olduğunda bu mesajı gönderir

6XX ile Başlayan SIP Mesajları

Hedef tarafından çağrının reddedilmesi de dahil olmak üzere genel bir hata olduğunu belirtir. Final bir hata durumunu belirtmek ve bu durumun genel nitelikte olduğunu belirtmek için kullanılır ve bu isteğin hiçbir durumda başka bir SIP Proxy’si tarafından ele alınamayacağını gösterir.

  • 600 Busy Everywhere : Tüm olası yerler meşgul. 486 yanıtından farklı olarak, bu yanıt, hedefin çağrıyı kabul edebilecek alternatif hedeflerin (sesli posta sunucusu gibi) olmadığını bildiğini gösterir.
  • 603 Decline : Hedef aramaya katılmak istemez veya aramayı gerçekleştireme ve ayrıca hedef, aramayı kabul etmek isteyen alternatif hedeflerin (sesli posta sunucusu gibi) olmadığını bildiği zaman bu mesajı gönderir. Yanıt içinde Retry-After header alanında daha iyi bir arama belirtilir.
  • 604 Does Not Exist Anywhere : Sunucu, istenen kullanıcının hiçbir yerde bulunmadığını biliyorsa bu mesajı gönderir.
  • 606 Not Acceptable : Kullanıcının aracısıyla başarılı bir şekilde iletişim kurulduğunnu, ancak oturum açıklamasının istenen medya, bant genişliği veya adresleme stili gibi bazı değerlerin kabul edilemez olduğunu belirtir.
  • 607 Unwanted : Aranan taraf arayan tarafın bu çağrısını istemiyor ise bu mesaj gönderilir. Arayan tarafın gelecekteki girişimlerinin de benzer şekilde reddedilmesi muhtemeldir.
  • 608 Rejected : Bir aracı makine veya süreç çağrı girişimini reddettiğinde bu mesaj iletilir. Bu, aranan tarafın çağrıyı reddettiği 607 (Unwanted) SIP yanıt kodundan farklıdır. Yanıt, Call-Info headerında bulunan çağrıyı engelleyen kişi bilgilerini içerebilir.