VoIP UYGULAMA

Download Report

Transcript VoIP UYGULAMA

İnternet Protokolü Üzerinden Ses İletimi Ve Bir Yazılım
Uygulaması Gerçeklenmesi
NURTEN ERKAN
Y.BİLGİSAYAR MÜHENDİSİ
BİLİM, SANAYİ ve TEKNOLOJİ KOCAELİ İL MÜDÜRLÜĞÜ
[email protected]
Sunuş Özeti
1-VoIP nedir?
2-VoIP Protokolleri
3-VoIP Uygulaması
4-Özet
5-Sonuçlar
VoIP NEDİR ?
• VoIP, normal telefon sistemindeki sesin IP tabanlı internet üzerinden aynı
kalitede ve güvenilirlikte taşınmasıdır.
• VoIP’de, DSP (Digital Signal Processing – Sayısal Sinyal İşleme) segmentleri ile
ses sinyali frame’lere çevrilir ve belli bir gurup oluşturduklarında ses paketlerine
çevrilir ve IP tabanlı bir şebeke üzerinden gönderilir.
• VoIP uygulamaları üç türlü gerçekleştirilmektedir.
• Geleneksel uluslararası ve uzun mesafe telefon hizmetlerinde (Telefon-Telefon)
• Geleneksel telefon şebekesi ile bilgisayar ve İnternet tabanlı telefon
hizmetlerinde (Telefon-PC)
• Tamamen bilgisayar ve internet tabanlı telefon uygulamalarında (PC- PC)
VoIP’in Avantajları
• Düşük destek maliyeti, sadece standart temelli bir network maliyeti gerektirir.
• Potansiyel telefon görüşmelerinden tasarruf, herkese açık telefon
şebekesi imkanı sağlar.
• Daha büyük esneklik - insanlar, aldıkları servisler kesilmeksizin ofisler
arasında ses görüşmesi yapabilir ve çok düşük miktarda kesinti ile karşılaşırlar.
• Birleşik mesajlaşma ve ilişki merkezleri gibi yeni üretken servislere erişim
sağlar.
• Daha yüksek seviyelerde ölçeklenebilirlik ,yeni kullanıcılar hızla ve kolaylıkla
eklenebilme imkanına sahip olurlar.
• Veri servisleriyle gerçek zamanlı ses iletim servislerinin birleştirilebilmesi
imkanı sağlar.
VoIP Nasıl Çalışır ?
01100101010110…………0110………00101010110
IP
Gateway
Gateway
Ses )) ADC – Sıkıstırma Algoritması - RTP’nin TCP/IP içine yerlestirilmesi -------> |
<---- |
Ses (( DAC – Açma Algoritması - RTP’nin TCP/IP’den ayıklanması
VoIP’ de Güvenlik
Tehdit
Çözüm
Denial-of- Service(DoS) saldırıları: SIP proxy
sunucusuna ya da ağ gecidi cihazlarının ağ
servislerini vermesini engellemek için paket
bombardımanına tutulmasıdır.
Cihazlar bu tip saldırıları önleyecek
şekilde konfigüre edilmelidir.
Gizlice Dinleme: Yetkisi olmayan kullanıcıların
geçen RTP ortam akışının önünü kesmesi ve
mesajları çözmesi
Gönderilen verinin şifrelenmesi.
Paket taklit edilmesi(packet spoofing):
Veri gönderen yetkili bir kullanıcının yerine
geçmek.
Çağrıya katılan kullanıcıların adres(IP
adresi gibi) bilgilerini kaynak
doğrulaması için birbirine göndermesi.
Ses paketlerinin tekrar gönderilmesi: Gerçek
mesajın yeniden gönderilmesi. Bu sayede hedef
kullanıcının mesajı yeniden işlemesi.
Gönderilen mesajın şifrelenmesi ve her
mesaja uygulama katmanında bir sıra
numarası atanması.
Mesaj İçeriği: Alınan mesaj ile gönderilen mesajın
içeriğinin aynı olduğunun kontrol edilmesi.
Çeşitli yöntemlerle mesajın
gerçekliğinin doğrulanması.
VoIP PROTOKOLLERİ
İşaretleşme Protokolleri;
• H.323
• Oturum Başlatma Protokolü (Session Initaition Protocol-SIP)
Veri Aktarım Protokolleri
• Kaynak Protokolü (Resource Reservation Protocol-RSVP )
• Gerçek Zaman İletim Protokolü (Real time protocol-RTP)
• Gerçek Zaman İletim Kontrol Protokolü (Real time control
protocol-RTCP)
H.323 Protokolü
• H.323 1990’ ın ortalarında ITU (İnternational Telecommunications
Union) tarafından geliştirilmiştir.
• Ses, görüntü ve veri haberleşmesi için şemsiye standarttır.
• Çağrı kontrolü ve ortam akış protokollerini tanımlar.
Veri
T.12
Sistem
Kontrolü
Kontrol ve işaretleşme
H.245
H.225.0
Ses
Çözücüler
Görüntü
Çözücüler
Ses ve
Görüntüsel
Araçlar
G.7xx
H.26x
RTCP
H.225.0
RAS
UDP/TCP
RTP
UDP
IP
Değişken Katman 2 Protokolleri
Değişken Katman 1 Protokolleri
H.323 Bileşenleri
Ağ Geçidi (Gateway)
• Gateway, ses ve fax çağrılarını, IP Paketlerine dönüştürerek genel
anahtarlamalı telefon ağları (PSTN: Public Switched Telephone Network) ile IP
Ağları arasında gerçek zamanlı olarak taşımaya yarayan cihazlardır.
• VoIP Gateway’in ana işlevi, bir sıkıştırma algoritması (Codec) kullanarak ses
ve fax sıkıştırması yapması ve karşı tarafta sıkıştırmayı yeniden açma
(Decoder), paketleme, çağrı yönlendirme ve sinyal kontrolü yapmasıdır.
Gateway
Gateway
IP NETWORK
Çok Noktalı Kontrol Ünitesi
(Multipoint Control Unit - MCU)
• MCU ağda ikiden fazla terminalin ya da Gateway’ in çoklu bir konferansa
katılımlarını sağlamaya yarayan cihazlardır. Sonradan çoklu bir konferansa
dönüşebilecek ikili görüşmeler de MCU‘ lar aracılığı ile sağlanabilir.
MCU
Geçit Sorumlusu (Gatekeeper)
• Geçit sorumlusu, terminallerin ve gatewaylerin kayıt, kabul ve statü
(Registration, Admission and Status -RAS-) takibinden sorumlu olan ağ
modülüdür.
• Geçit solumlusu zone yönetimini ve çağrı işleme/işaretleşme işlevlerini de
yerine getirirler. Aranan telefon numaralarının iletileceği gatewaylerin IP
adresleri geçit sorumlusu cihazlarında ya da yazılımlar kullanılarak tutulur.
• Geçit sorumlusu aşağıdaki fonksiyonları yerine getirir:
• Adres Dönüşümleri
• Yetki Denetimleri
• Bant genişliği Yönetimi
• Zone Yönetimi
H.323 Terminal
• Gerçek zamanlı iki yönlü haberleşme sağlar.
• H.323.terminaller H.245, Q931, RAS (Remote Access Server-Uzak
Erişim Sunucusu), RTP(Real Time Protocol) protokollerini
desteklemelidir.
• H.323 terminaller MCU ve Gateway ile haberleşme özelliğine sahiptir.
Oturum Başlatma Protokolü
(Session Initaition Protocol - SIP)
• SIP Protokolü 1999 yılında internet mühendisliği grubu (İnternet
Engineering Task Force (IETF) tarafından yayınlanmıştır.
• Bir veya daha fazla katılımcı arasında multimedia oturumları
oluşturur ve sonlandırır.
• ASCII tabanlı(metin bazlı) kolay anlaşılabilir bir protokoldür.
• SIP basit ve genişleyebilir bir protokoldür.
SIP Bileşenleri
Proxy Sunucusu
(Proxy Server)
Yönlendirme Sunucusu
(Redirect Server)
Kayıt Sunucusu
(Registrar Server)
İstemci Kullanıcı Birimi
(User Agent Client-UAC)
Sunucu Kullanıcı Birimi
(User Agent Server-UAS)
SIP (Session Initiation Protocol) Bileşenleri
Kullanıcı Arabirimi(User Agent-UA) :
•
•
İstemci Kullanıcı Arabirimi(User Agent Client-UAC): İstemci Kullanıcı Birimi
SIP oturumunu çağrı gönderme isteği ile başlatır.
Sunucu Kullanıcı Birimi(User Agent Server-UAS): Sunucu Kullanıcı Birimi
çağrının gönderildiği hedef kullanıcıyı tanımlar. UAS’ın görevi gelen çağrıyı
cevaplamaktır.
Proxy Server
•
•
•
SIP Sunucu Kullanıcı arabiriminden gelen SIP oturum taleplerini alır ve
oturum talebini hedef kullanıcı arabirimi ya da hedef kullanıcının bulunduğu
taraftaki başka bir sunucuya gönderir.
Hem istemci hem de sunucu rolünü üstlenir.
SIP protokolünü kullanmayan kullanıcılarla oturum kurulabilmesini
sağlamaktadır.(H.323 protokolünü kullanan bir kullanıcı ile)
Yönlendirme Sunucusu (Redirect Server)
• Kullanıcı Arabiriminden gelen SIP taleplerini alır,hedef kullanıcı ile
• Bağlantı kurulabilmesi için çağrı gönderen kullanıcıya hedef
kullanıcının
adresini gönderir.
Kayıt Sunucusu (Registrar Server)
• Kullanıcıların konum bilgilerini girmelerini sağlayan sunucudur.
• İstek gönderen kullanıcıların konum bilgilerini veritabanında günceller.
H.323 – SIP Özellik Karşılaştırması
KATEGORİ
H.323
Karmaşıklık
Çok karmaşık
Basit
Mesaj Kümesi
Bir çok mesaj iletimi
Az sayıda mesaj iletimi
Hata Ayıklama
Protokol genişlediğinde
araçlarda değiştirilmeli
Basit araçlar sürekli
kullanılabilir
Genişleyebilme
Genişleyebilir
Çok Genişleyebilir
Bileşenler
Terminaller, Gatekeeper,
Gateway,MCU
UAC,UAS,Sunucular
(proxy,kayıt,yönlendirme)
İşlemci Kullanımı
Fazla yük
Az yük
Telefon Özellikleri
Güçlü
Güçlü
Kullanıcı Uygulamaları
Çok zor
Kolay
Kod Büyüklüğü
Uzun
Kısa
Dinamik Hafıza Kullanımı
Geniş
Orta
SIP
VERİ AKTARIM PROTOKOLLERİ
• Gerçek Zaman Protokolü (Real time protocol-RTP)
• Gerçek Zaman Kontrol Protokolü (Real time control protocol-RTCP)
• Kaynak Ayırma Protokolü (Resource Reservation Protocol-RSVP)
Kaynak Ayırma Protokolü (RSVP)
• IP ağlarında kaynak rezervasyonu yapar.
• Paketlerin uğrayacağı her noktadaki bant genişliği ve gecikme değerleri
tespit eder.
• Kendi mesajları için lokal yönlendirme tablolarına bakarak yol çizer
• Servis kalitesinin kontrolünde kullanılır
• Yol kurma ve Yer ayırma olmak üzere iki çalışma modu vardır.
Gerçek Zaman Taşıma Protokolü (RTP)
• Gerçek zamanlı ses ve görüntü verilerinin uçtan uca taşınmasını sağlar.
• Veri paketlerinin gerçek zamanlı iletimini garanti etmez.
• Veri iletimini gözlemlemek için RTCP’den faydalanır.
• RTP , UDP servisleri kullanılarak iletilir.
• Veri akışının senkronizasyonunu kontrol eder.
• Paket kayıplarını tespit eder.Fakat telafi etmez.
Gerçek Zaman Taşıma Kontrol Protokolü (RTCP)
• RSVP ,RTP ile bağlantılı olarak çalışan kontrol protokolüdür.
• Veri iletimi kalitesi konusunda geribildirim sağlamak için kullanılır.
• Periyodik olarak kontrol paketlerinin iletilmesine dayanan bir protokoldür.
• Gönderici ve alıcı raporları tüm katılımcılara periyodik olarak iletilir.
(raporlar: paket sayısı, paket kayıp oranları, paket iletim gecikmeleri ve
gecikme süresi farkıdır.)
VoIP UYGULAMA
• Uygulama internet üzerinden ses iletiminin gerçekleştirilmesi için
tasarlanmıştır.
• Uygulama Visual C++ geliştirme ortamında nesne tabanlı programlama
teknikleri kullanılarak geliştirilmiştir.
• Kullanıcı (Client) – Sunucu (Server) tabanlı bir uygulamadır. ( PC to PC)
• Kullanıcı sunucuya uygulamanın kullanıcı arayüzünden bir isim yazarak
bağlanırlar.
• Sunucuya bağlanan kullanıcı sistemde online olan diğer kullanıcıların listesini
alır.
• Kullanıcı listesinden istediği kişiyi seçerek ses görüşmesi yapar.
• Uygulamanın bağlantı kısmında TCP/IP haberleşmesi, iletim kısmında ise
TCP protokolü kullanılmıştır.
Visual C++ Geliştirme Ortamı
• Visual C++, C++ ile program yazmak üzere donatılmış, görsel yönelimli bir
yazılım geliştirme ortamıdır.
• C++ veya C dilinde yazılması olası olan her türlü program Visual C++ ile
yazılabilir.
• C++, C’ nin üst kümesidir.
• C dilinin geliştirilmesiyle oluşturulmuştur.
• C++, C nin kapsamakta olduklarına ek olarak nesneye dayalı
programlamayı (OOP – Object Oriented Programming ) da destekler.
TCP / IP Soket Yapısı
IP NETWORK
Gönderici Soket = Kaynak IP Adresi + Kaynak Port Numarası
Alıcı soket
= Hedef IP Adresi + Hedef Port Numarası
Microsoft Temel Sınıfları (MFC)
• MFC microsoft windows ortamında işletim sisteminin Uygulama
Programlama Arayüzü (Application Programming Interface – API)’ ne ulaşıp işlem
yapmamızı sağlar.
• MFC sınıf sistemi içerisinde yüzden fazla sınıf ve binlerce üye fonksiyon vardır.
• Sınıf sisteminin en tepesinde Cobject denilen bir sınıf bulunur. Bu Object sınıfı
uygulamalar için diğer sınıflara taban sınıfı işlevini yerine getirmektedir.
• MFC sınıflarının büyük çoğunluğu Cobject sınıfından türetilmiştir.
• MFC sınıf isimleri C harfi ile başlayarak isimlendirilir.
• MFC sınıfları kullanım alanlarına göre çeşitli gruplara ayrılabilir.
Uygulama için Oluşturulan Arayüzler
• Uygulamanın kullanıcı arayüzü sunucuya bağlanma,
•sunucu bağlantısını kesme, diğer kullanıcılar ile
konuşma işlevlerini yerine getirir.
• Seçilen bir kullanıcı ile konuşmayı sağlar.
• Uygulamanın sunucu arayüzü kullanıcı bilgilerini
tutma, güncelleme ve diğer kullanıcılara sunma
işlevlerinin yerine getirir.
Uygulamada Kullanılan Mesaj Formatları
User : msj(tunc, deniz), istemci listesi ( Mesaj Yönü: server- client)
New : msj(tunc), istemci adı (Mesaj Yönü : client - server)
Down : msj(NULL), sunucu kapanma (Mesaj Yönü : server - client)
İkinci format, (header : length : mesg) şeklinde belirlenmiştir.
Header : Ses gönderen kullanıcının ip ve port numarasını içermektedir.
Length : Ses bilgisinin boyutunu gösterir.
Mesg :Ses bilgisinden oluşmaktadır.
Sunucu Uygulamasının Çalışma Akışı
Sunucu Akış Diyagramı :
• Port bilgisi kısmına port no (1051) yazılarak Çalıştır
butonuna tıklandığında, portun uygunluğu kontrol edilir,
eğer port no uygunsa Sunucu Soketi oluşturulur.
• Yeni bağlantı oluşturma aşaması; Sunucu ilk
aşamadan sonra çalışmaya başlar ve portu dinlemeye
alır.
• Herhangi bir kullanıcıdan bağlantı isteği geldiğinde, bu
bağlantı isteği değerlendirilir ve uygun bir bağlantı ise,
kullanıcı bilgileri, IP ve kullanıcı adı, alınarak bağlantı
oluşturulur.
• Bağlantı kuruldu ve bu bağlantı kurulan
kullanıcı’ın bilgilerini bir liste yapısında
tutabilmek için var olan kullanıcı listesine yeni
bağlantı kurulmuş olan kullanıcının bilgileri
eklenir.
• Bir önceki aşamada yapılan değişiklikler yani
kullanıcı listesinin güncel hali tüm kullanıcılara
gönderilmesi işlemi yapılmalıdır.
Kullanıcı Uygulamasının Çalışma Akışı
Kullanıcı Akış Diyagramı :
• Kullanıcı uygulamasının başlaması için bir
soket oluşturmaya gerek vardır.
• Bu soket sayesinde kullanıcı sunucudan güncel
kullanıcılara hem de diğer kullanıcılara ses
mesajı gönderebilmektedir.
• Kullanıcı listesini alabilmektedir.
• Sunucu IP’ si, port numarası, kullanıcı adı
girildikten sonra Bağlan butonuna basılır.
• Girilen IP ve port bilgileri doğruysa kullanıcı sunucu
bağlantısı sağlanacaktır.
• Bağlantı kabul edilmişse True, kabul edilmemişse
False değeri elde edilir. Bağlantı sağlanmazsa
kullanıcıya bilgilerini kontrol etmesi için uyarı verir.
• Kullanıcı bilgileri oluşturulan soket bağlantısı
sayesinde sunucuya iletilir. (New : tunc)
• Kullanıcı sunucuya dahil olmuş olur. Sunucu-kullanıcı
arası mesaj alışveriş işlemi başlatılabilir.
• Kullanıcı sunucuya bağlandıktan sonra portu dinlemeye başlar.
• Gelen mesajların içeriği çözülür.
• Mesaj içeriği kullanıcı listesi ise bu mesaj sunucudan gelmiştir.
• Alınan yeni listeye göre kullanıcı kendi listesini günceller.
• Mesaj içeriği ses bilgisi ise başka bir kullanıcıdan gelmiştir.
• Alınan bu ses mesajı hoparlörden çalınır.
Ses Bilgisinin Çalınması :
• Ses verisi buffer (tampon) içerisine alınır.
• Buffer içerisindeki ses verisinin büyüklüğü kontrol edilir.
• Eğer buffer da belirlenen değerden büyük değil ise işleme alınır.
• Bu aşamadan sonra ses verisi bir iş parçacığı vasıtasıyla ses cihazına
(sound device) gönderilir.
• Uygulamada yer alan fonksiyonlar yardımıyla ses bilgisi hoparlörden çalınır.
Seçilen Kullanıcıya Ses Verisinin Gönderilmesi
• Kullanıcı listesinden istenilen kişi seçilerek
(DENİZ) başlat butonuna basılır.
• Mikrofondan alınan ses sinyali, frekans 8000 Hz
ve bit derinliği 8 olarak sayısal değerlere
çevrilerek 2000 bitlik bir buffer yazılıyor.
• Başlat butonuna basıldığında buffer da olan
ses bilgisi bağlı olduğumuz kullanıcıya
gönderilir.
ÖZET
• VoIP, PSTN sistemlerine göre daha avantajlıdır. Çünkü PSTN yeni
özelliklere adapte olma konusunda yeterince uygun değildir.
• VoIP’ de yeni uygulamalar geliştirip ve mevcut sisteme entegre edilebilir.
• VoIP’ in önünde aşması gereken bazı engeller olsa da PSTN’ e karşı
sağladığı ekonomik avantajlar (düşük işletme ve kurulum giderleri), bu
sistemin yakın bir gelecekte standart devre bağlaşmalı telefon
şebekelerinin yerini alacağını göstermektedir.
• Tez kapsamında gerçekleştirilen VoIP uygulama yazılımı internet
ortamında bulunan kullanıcıların ses görüşmesi yapmasına imkan vermektedir.
SONUÇLAR
• VoIP, PSTN sistemlerine göre daha avantajlıdır. Çünkü PSTN yeni
özelliklere adapte olma konusunda yeterince uygun değildir. VoIP’ de yeni uygulamalar
geliştirip ve mevcut sisteme entegre edilebilir.
• VoIP’ in önünde aşması gereken bazı engeller olsa da PSTN’ e karşı
sağladığı ekonomik avantajlar (düşük işletme ve kurulum giderleri), bu
sistemin yakın bir gelecekte standart devre bağlaşmalı telefon
şebekelerinin yerini alacağını göstermektedir.
• Tez kapsamında gerçekleştirilen VoIP uygulama yazılımı İnternet
ortamında bulunan kullanıcıların ses görüşmesi yapmasına imkan vermektedir.
• Uygulamaya yeni yazılımlar eklenerek (multimedia yazılımı, filtreleme yazılımı) daha üst
kapsamlı bir uygulama haline getirilebilir.
KAYNAKLAR
[1] Kumar, V., Korpi, M., and Sengodan, S., ” IP Telephony with H.323: Architectures for Unified Networks
and Integrated Services ”, John Wiley&Sons , (2001).
[2] Liu, H., Mouchtaris, P., ” Voice over IP Signalling: H.323 and Beyond ”, IEEE Communications
Magazine, 142. , (2001).
[3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A ., Peterson, J., Sparks, R., Handley, M.,
and E.Schooler,”SIP:Sesion initiation protocol ’’, IETF RFC 3261, June, ( 2002).
[4] Fincan, E., “ İnternet Protokolü Üzerinden Ses Haberleşmesi”, Yüksek Lisans Tezi, İstanbul Teknik
Üniversitesi Fen Bilimleri Enstitüsü, İstanbul, 45-48, (2002).
[5] Bük , O., ”İnternet Protokolü Üzerinden Ses İletimi ve Askeri Amaçlı Kullanımı ’’, Yüksek Lisans Tezi,
İstanbul Teknik Üniversitesi Fen Bilimleri Enstitüsü, İstanbul, (2004).
[6]http://www.iptelephony.org/cgibin/DataMaker/DataMaker.pl?Selection=PublicViewData&dbIdNum=1&dfI
dNum=1 (Ziyaret Tarihi: 22 Mayıs 2007).
[7]http://http://www.programlama.com/sys/c2html/viewCategory.php?DocCategory=3&DocType=1 (Ziyaret
Tarihi : 22 Mayıs 2007).
[8] Çölkesen ,R. , ” C Proglama Dili ”, Papatya Yayıncılık, (2001).
[9] özkan, Y., ” Nesneye Yönelik Programlama:C++ ile Programlama’’, Alfa Yayıncılık, (2003).
TEŞEKKÜRLER