Browsed by
Kategori: Nasıl Yapılır

Merhaba, bu kısımda Nasıl Yapılır başlığı altındaki yazılarımı bulabilirsiniz.

ENUM Nedir? ENUM Sözdizimi

ENUM Nedir? ENUM Sözdizimi

ENUM (Telephone Number Mapping, E.164 Number to URI Mapping), telefon numaralarını URI formatına (isim@domain) çeviren bir adresleme protokolüdür. Bu sayede bir telefon numarasını çevirerek bir SIP, H.323 veya başka bir İnternet telefon kullanıcısına erişebilirsiniz.

ENUM fonksiyonunu kullanıcıların dünyanın her yerinde aynı numarayla, en kaliteli ve en ucuz yolla, ulaşılabilir olmasını amaçlar. ENUM, bir telefon numarasını DNS sisteminde bulunan bir İnternet adresi ile eşleştirir. Böylece, bir ENUM numarasına sahip olan bir kullanıcı, çağrının yönlendirileceği DNS kaydını yayınlayabilir. Hatta farklı arama türleri için (faks, video vb.) farklı yollar tanımlanabilir.

Bir ENUM kaydını bir alan adı alır gibi edinmeniz mümkün. Günümüzde pek çok kayıt hizmeti veren yer ve VoIP servis sağlayıcıları üzerinden bu kaydı ücretsiz olarak edinebilirsiniz.

ENUM Sözdizimi

ENUM, normal telefon (E.164) numaralarının, e164.arpa ile biten DNS adları olarak gösterilmesini sağlar. Bir numara önceden tanımlanmış bir veya daha fazla servis için çözülebilir.

Örneğin, +90-312-555-1234 telefon numarası, aşağıdaki kuralları RFC 3761‘de tanımlanan ve aşağıda belirtilen kurallardan geçtikten sonra 4.3.2.1.5.5.5.2.1.3.0.9.e164.arpa olarak gösterilir:

  1. Rakamlar hariç tüm karakterleri kaldırılır. (“+90-312-555-1234”, “903125551234” olur)
  2. Her sayı arasına nokta (“.”) koyulur. (“9.0.3.1.2.5.5.5.1.2.3.4”)
  3. Rakamların sırası ters çevirilir. (“4.3.2.1.5.5.5.2.1.3.0.9”)
  4. Dizinin sonuna “.e164.arpa” eklenir. (“4.3.2.1.5.5.5.2.1.3.0.9.arpa”)

Bu sözdiziminin cevaplandırılabilmesi için DNS sunucusunda şuna benzer bir kaydın bulunması gerekir:

$ORIGIN 4.3.2.1.5.5.5.2.1.3.0.9.arpa.
   NAPTR 10 100 "u" "E2U+sip" "!^.*$!sip:fatih.erikci@fatiherikci.com!" .
   NAPTR 10 101 "u" "E2U+h323" "!^.*$!h323:fatih.erikci@fatiherikci.com!" .
   NAPTR 10 102 "u" "E2U+msg" "!^.*$!mailto:fatih.erikci@fatiherikci.com!" . 

Bu kayıtta 4.3.2.1.5.5.5.2.1.3.0.9.arpa alanı için sıralı olarak üç farklı yönlendirme görüyorsunuz. 1. olarak SIP, ikinci H.323 ve üçüncü olarak SMTP cevabı dönmektedir, ilgili cihaz bu kayıtları kullanarak hangi servis ile iletişim kuracağını seçer.

Nasıl Çalışır?

ENUM’ın çalışma prensibi aslında Internet’te sürekli kullandığımız DNS sorgularına benzer. Sorgularda DNS NAPTR kaynak kayıtları kullanılır.

Bir ENUM Sorgusu ve Çağrısı
Bir ENUM Sorgusu ve Çağrısı
  1. Telefon bir E.164 numarası arar (+90-312-555-1234)
  2. Gateway bunu bir sözdizimine çevirir (4.3.2.1.5.5.5.2.1.3.0.9.e164.arpa) ve DNS sunucusuna sorar.
  3. DNS sunucusu bu sorguya bir URI (sip:fatih.erikci@fatiherikci.com) ile karşılık verir.
  4. Gateway artık çağrıyı bir SIP URI çağrısı olarak SIP sunucusuna gönderir.
  5. SIP sunucusu URI ile kayıtlı olan IP telefonu çaldırır.
Jitsi Meet Debian 10’a Nasıl Kurulur?

Jitsi Meet Debian 10’a Nasıl Kurulur?

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 Debian veya Ubuntu tabanlı linux platformunuza nasıl kuracağınızı açıklayacağım.

Başlamadan önce, Jitsi üzerinden görüntülü görüşme deneyimini merak ediyorsanız, bu URL’yi tıklamanız ve meet.jit.si tarafından desteklenen görüntülü görüşme sayfama gitmeniz yeterli.

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

Ben Debian’ı net kurulum paketinden (netinst) yüklemeyi tercih ediyorum, çünkü bu sayede paketleri güncel olan minimum bir kurulum yapabiliyorum. Bu kurulum yazısında sizin Debian’ı 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:20000/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.

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 - 

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-20000/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
CUCM Common Partition Nasıl Temizlenir?

CUCM Common Partition Nasıl Temizlenir?

Bazen bir Cisco Unified Communicatios Manager’da (CUCM) RTMT ekranında bakarken, “LogPartitionLowWaterMarkExceeded” diye kritik bir uyarı görebilirsiniz. Bu, CUCM common partition üzerinde boş alan azaldığında gerçekleşir.

Çoğu durumda bu sorun sistemin genel işleyişini etkilemez, ancak bazı ek paket kurulumları (örn. device pack) veya upgrade yapmak istiyorsanız diskteki bu düşük alan bir takım sorunlara neden olabilir.

CUCM common partition ayrıca log partition olarak da adlandırılır ve çoğunlukla TFTP sunucusundaki firmware dosyaları, CDR’lar ve CUCM logları ile doludur. CUCM üzerine yeni telefon firmware dosyaları eklendikçe, ya da CUCM log seçenekleri açık bırakıldıkça bu kısım zamanla dolmaya başlar ve bir süre sonra RTMT üzerinden uyarı almaya başlarsınız.

LogPartitionLowWaterMarkExceeded, log partition disk alanı yüzdesi “Low WaterMark” eşiğine ulaştığında gerçekleşir. Bu, disk alanını temizlemeniz için bir erken uyarıdır. CUCM, “High WaterMark” değerine ulaşana kadar bir otomatik temizleme işlemi yapmaz.

CUCM Common Partition ı Temizlemek İçin Ne Yapmalıyım?

Common partition’daki alanı boşaltmak ve boş yer açmak için aşağıdaki işlemleri uygulayabilirsiniz:

  • LogPartitionLowWaterMarkExceeded değerini % 50, ve LogPartitionHighWaterMarkExceeded değerini %60 olarak değiştirin ve ardından “Cisco Log Partition Monitoring Tool” servisini yeniden başlatın. Birkaç saat sonra CUCM temizlik yapacak ve kullanılan alanın azaldığını göreceksiniz.
  • RTMT üzerindeki Trace / Log Central fonksiyonunu kullanarak “Delete Collected Log Files from Server ” seçeneği ile log / trace dosyalarını toplayarak kullanılmayan log dosyalarını silin (bu işlem hem aktif hem de aktif olmayan bölümler içindir). Sunucu üzerindeki tüm kullanılmayan logları silmek için Relative Range‘i 8-9 yıl olarak seçin.
  • Kullanılmayan eski telefon firmware dosyalarını TFTP sunucusundan silin.
  • Tüm dosyaları etkin olmayan common partition’dan silen “ciscocm.free_common_space_v1.1.cop.sgn” (cisco.com’da bulabilir ve indirebilirsiniz) adlı CUCM scriptini kullanın. Ancak bu scripti kullandıktan sonra, önceki CUCM sürümüne geçemeyeceğinizi lütfen unutmayın.

CUCM common partition kullanımını azaltmak istiyorsanız, aşağıdaki işlemleri uygulayabilirsiniz:

  • Çok lazım olmadıkça Detail / Debug trace seviyesini devre dışı bırakın.
  • Saklanacak trace dosyalarının sayısını azaltın.
  • CDR için: High Water Mark değerini azaltın, kullanılacak disk alanını azaltın ve CDR’ların saklanacağı gün sayısını azaltın.
Cisco IP Telefon Ekran Görüntüsünü Almak

Cisco IP Telefon Ekran Görüntüsünü Almak

Cisco IP Telefon modellerinde bulunan ekran görüntüsü alma fonksiyonu özellikle uzaktan destek gerektiren bazı durumlarda çok işinize yarayabilir. Aşağıdaki yazımda Cisco 7800 ve 8800 serisi telefonlar için ekran görüntüsü alma prosedürünü bulabilirsiniz.

İlk önce, Cisco Unified Communications Manager (CUCM) üzerine birkaç ayarı doğrulayalım.

CUCM Ayarları

Bir Cisco IP Telefonun ekran görüntüsünü alabilmek için öncelikle o telefonun bir CUCM kullanıcısı (End User) ile eşleştirilmesi ve telefon ayarlarından web erişiminin (Web Access) açılmış olması gereklidir. Bu ayarları CUCM Administration sayfasından Device -> Phone menüsünü kullanarak ve ilgili telefonu seçerek yapabilirsiniz.

Öncelikle telefonun web arayüzünü açmak gerekiyor. Bunun için Product Specific Configuration Layout başlığındaki Web Access i Enable etmek yeterli.

Cisco IP Telefon Web Erişimi Ayarları

Daha sonra IP Telefon ile kullanıcıyı eşleştirmemiz gerekiyor. Yine aynı sayfada Owner User ID kısmında ilgili kullanıcıyı seçiyoruz.

Cisco IP Telefon ile Kullanıcıyı Eşleştirme

Kullanıcıyı seçtikten sonra User Management -> End User menüsünden ilgili kullanıcıyı seçin ve Device Information başlığındaki Controlled Devices bölümünde ilgili telefonun eklenmiş olduğundan emin olun.

End User Bölümünde Kullanıcı – IP Telefon Eşleştirme

Bu ayarları yaptıktan sonra System -> Enterprise Parameters menüsüne girerek telefonun web arayüzüne erişirken kullanacağı kullanıcı doğrulama URL’lerini kontrol edelim. İlgili ayarlar Phone URL Parameters ve Secure Phone URL Parameters başlıklarında bulunabilir.

IP telefonlarda kimlik doğrulama aşağıdaki URL biçimi ile çalışır:

http(s)://cucmcip/authenticate.jsp?UserID=<kullanıcıadı>&Password=<şifre>&devicename=<cihazadı>

Eğer girilen bilgiler uygun ise, tarayıcı basit bir “AUTHORIZED” mesajı, eğer bilgilerde tutarsızlık varsa “UN-AUTHORIZED” mesajı görüntüler. Aşağıda örnek bir URL ve çıktısını bulabilirsiniz:

CUCM Kullanıcı Adı ve Şifrenizi Bu Şekilde de Kontrol Edebilirsiniz

İpucu: Eğer telefonlarda kimlik doğrulama işlemini by-pass etmek istiyorsanız Enterprise Parameters altındaki Authentication URL‘lerini her halikarda “AUTHORIZED” olarak cevap verecek bir web sayfasına yönlendirebilirsiniz 🙂

Web Tarayıcı Üzerinden Ekran Görüntüsü Almak

Eğer yukarıda anlatılan adımların hepsini düzgün bir şekilde yaptıysanız artık IP telefonunuzun ekran görüntüsünü alabilirsiniz demektir. Bunun için aşağıdaki URL’i kullanabilirsiniz:

 http://cucmip/CGI/Screenshot 

Kullanıcı adı ve şifreyi girdikten sonra aşağıdaki gibi bir görüntü alacaksınız:

Web Tarayıcı Üzerinden Alınan Cisco 7821 IP Telefon Ekran Görüntüsü

Sorun Giderme

Eğer web tarayıcızınızda şunun gibi bir hata mesajı alırsanız:

 <CiscoIPPhoneError Number=”4” /> 

Bu sorun büyük ihtimalle kimlik doğrulama ile ilgilidir. Telefonun bir kullanıcının kontrolünde olduğunu ve kullanıcının kimlik bilgilerinin doğru olduğunu doğrulayın. Bunu kolayca görebilmek için yukarıdaki authentication URL biçimini kendi telefonunuza göre uyarlayıp test edebilirsiniz. URL çalışıyor ancak telefonun web sayfası hala aynı hatayı gösteriyorsa, telefonu sıfırlayın ve tekrar deneyin.

 <CiscoIPPhoneError Number=”0” /> 

Bu hata ise telefonun kimlik doğrulama için CUCM’de sağlanan URL’e bağlanamadığını gösterir. Buna neden olabilecek birçok şey olabilir, hemen hemen hepsi erişilebilirlik ile ilgilidir. IP telefonlardan CUCM’e (ya da doğrulama sunucusuna) doğru DNS, yönlendirme, vs. gibi tanımları kontrol etmeniz gerekecektir.

Cisco IP Telefon XML Uygulama Geliştirmek

Cisco IP Telefon XML Uygulama Geliştirmek

Cisco IP telefonlarda bulunan XML görüntüleyici özelliği sayesinde telefonlara ek servisler yazabilir ve ek uygulamalar geliştirerek IP telefonlarınıza yeni özellikler ekleyebilirsiniz. Bu yazımda Cisco IP telefon XML servislerinin nasıl çalıştığını ve ufak XML uygulamalarının nasıl yapılabileceğini bulabilirsiniz.

Cisco IP Telefon XML uygulamaları tahmin edeceğiniz üzere bir web sunucusu üzerinden çalışmaktadır. IP telefonlar bu web sunucusuna bir istekte bulunur ve sunucudan dönen XML dosyasını ayrıştırıp kullanıcının okuyabileceği hale getirirler. Burada dikkat edilmesi gereken nokta ise, web sunucunun CUCM tarafından değil, IP telefonlar tarafından erişilebilir olması gerekliliğidir.

Cisco IP Telefonların XML Uygulamaları ile Haberleşmesi

Cisco IP telefonların bilgileri ayrıştırıp okunabilir hale getirebilmesi için bir takım XML nesneleri kullanılmaktadır. Aşağıdaki tabloda Cisco IP telefonlar tarafından desteklenen XML nesnelerini bulabilirsiniz:

  • CiscoIPPhoneMenu
  • CiscoIPPhoneText
  • CiscoIPPhoneInput
  • CiscoIPPhoneDirectory
  • CiscoIPPhoneImage
  • CiscoIPPhoneImageFile
  • CiscoIPPhoneGraphicMenu
  • CiscoIPPhoneGraphicFileMenu
  • CiscoIPPhoneIconMenu
  • CiscoIPPhoneIconFileMenu
  • CiscoIPPhoneStatus
  • CiscoIPPhoneStatusFile
  • CiscoIPPhoneExecute
  • CiscoIPPhoneResponse
  • CiscoIPPhoneError

Not: Her XML nesnesi her IP telefon modeli tarafından desteklenmeyebilir. XML nesneleri ile ilgili daha detaylı bilgiyi bu sayfadaki “Cisco Unified IP Phone Services Application Development Notes” dokümanlarından bulabilirsiniz.

XML uygulamalarının çalışma prensibini kısaca özetledikten sonra dilerseniz basit bir uygulama ile devam edelim.

İlk XML Uygulama: Hello World!

Yazılım dünyasının gelmiş geçmiş en büyük klişesi “Hello World” ü anmamak olmaz. Dilerseniz bunu IP telefonların ekranlarına bastıralım. İlk olarak yapmamız gereken bir XML dosyası oluşturmak. Herhangi bir metin editörü ile bir XML dosyası (hello.xml) oluşturun ve içine şunları ekleyin:

Hello World XML Kodu

Burada göreceğiniz üzere CiscoIPPhoneText, Title ve Text nesnelerini kullanıyoruz. Bunlar sırası ile Bir yazı göstereceğimizi, yazının başlığını ve yazının içeriğini belirtiyor.

Dosyayı oluşturduktan sonra bir web sunucusuna koyun (dosyaynın ve sunucunun çalıştığından emin olmak için dosyanın bulunduğu URL i web tarayıcısına yazıp deneyebilirsiniz) ve CUCM Administration sayfasından Device > Device Settings > Phone Services menülerine girin ve Add New‘a basarak yeni servisi tanımlama sayfasını açın.

CUCM Administration Phone Services Menüsü

Açılan sayfada Service Name, Service URL zorunlu olmak üzere ilgili alanları doldurun ve Enable‘ı seçerek Save‘e basın.

CUCM – XML Servis Eklemek

XML servisini CUCM’e ekledikten sonra bu servisi hangi telefonda çalıştırmak istiyorsanız Device > Phone menüsüne gelerek ilgili telefonu seçin ve telefonun konfigürasyon sayfasının sağ üst köşesindeki drop-down menüden Subscribe / Unsubscribe Services‘ı seçin.

CUCM – IP Telefon Subscribe Services Menüsü

Açılan sayfadaki drop-down menüden eklediğiniz servisi seçin, Next ve ardından Subscribe düğmesine basın.

CUCM – Servis Ekleme

Save e basıp ilgili pencereyi kapatın ve telefonun ayarlarını kaydedin. Artık IP telefonunuzda servisler tuşuna bastığınızda bu servisi görmeye başlayacaksınız.

IP Telefon Servis Tuşu ve Servis Menüsü

İlgili servisi seçtiğinizde IP telefon web sunucudan XML sayfasını çağıracak ve ekranda gösterecektir.

Hello World XML Uygulaması

Dinamik XML Uygulamaları Geliştirmek

Düz XML sayfalar ile kolayca statik sayfalar oluşturabilirsiniz, eğer dinamik servisler ve değişken içerikler sunmak isterseniz PHP, Javascript, CGI gibi web dillerini kullanarak da XML sayfaları oluşturabilirsiniz. Aşağıda PHP kullanarak oluşturulan basit bir XML uygulama örneğini bulabilirsiniz.

Örnek: Zar Uygulaması

Üstte yapmış olduğumuz XML içeriğini bu kez PHP ekleyerek oluşturalım. IP telefonların PHP sayfalarını işleyebilmesi için ilk başta text/xml etiketini kullanmamız gerekiyor. 1’den 6’ya kadar rastgele bir sayı gösteren PHP kodumuzu da içerikteki Text nesnesinin içine PHP etiketleri ile yerleştiriyoruz:

Cisco IP Telefon – PHP & XML Zar Uygulaması Kodu

Kodun alt kısmında bulunan SoftKeyItem nesneleri ile IP telefon ekranlarının alt kısmına fonksiyon tuşları ekleyebiliyoruz. Bu örnekte sayfayı tekrar yüklemeyi sağlayan Update ve servisten çıkmaya yarayan Exit olmak üzere iki farklı tuş ekledik. Dosyayı .php uzantısı ile kaydedip web sunucusuna koyduktan sonra yine üstteki adımları uygulayarak IP telefonlara bir servis olarak ekleyebilirsiniz. Aşağıda zar uygulamasının IP telefon üzerindeki görüntüsünü görebilirsiniz:

Cisco IP Telefon – PHP & XML Zar Uygulaması