Etiket arşivi: asterisk

Asterisk PBX Deneyimim

Yarı zamanlı olarak çalıştığım bir firma, komşu bir firmanın projesine destek amaçlı PBX sistemleriyle ilgilenmeyi gözüne kestirdi ve sonuç olarak PBX üzerine bilgi edinmekte benim üzerime düştü. İlk başlarda epey zorlu bir süreç yaşadım çünkü bu alanda kullanılan bütün lugata yabancıydım. Hazırda bulunan teknolojilerden hangilerini kullanmak lazımdı ve bu işler nasıl yapılırdı hiç fikrim yoktu. İşin kötü yanı yıllardır peşinden sürüklendiğim açık kaynak sevdası bu sefer beni zor duruma düşüren taraftı. Kabul etmek gerekir ki çalışan ve emek veren her insan para kazanmanın derdinde. Açık kaynakçılar da elbette para kazanmanın yolu olarak destek satmayı planlıyorlar. Mesela linux kullanıcıları çok kolay olarak destek bulabilirler, çünkü diğer kullananlar tecrübelerini paylaşmaktan çekinmeyerek binlerce sayfa yazmışlar ama iş özelleşmiş ve para getirisinin yüksek olduğu düşünülen bir alana gelince kimse tecrübesini de paylaşmamış. Türkçe kaynak zaten yok desek ayıp etmiş olmayız ama ingilizcesini bulmakta inanın çok zor. En azından başlangıçta hangi yoldan ilerlemeniz gerektiğini tamamen kendiniz bulmanız gerekiyor, eğer ilk sürünme kısmını aşabilirseniz sonradan bulacağınız kaynaklar çok daha fazla işinizi görecektir.

İlk önce hangi işletim sistemiyle yola devam edeceğinize karar vermeniz gerekli. Bu noktada benim ilk isteğim Ubuntu üzerine Asterisk kurarak yola devam etmekti ama işyerim paket olarak dağıtılan sistemleri ileriye yönelik kurulum ve güncellemeler için tercih edeceğini söyledi. Tabi bu durumda Asterisk diye aramalar yaptığınızda karşınıza ilk olarak AsteriskNow adlı işletim sistemi çıkıyor. Ben de ilk olarak onu kullanmayı tercih ettim. Öncelikle ilk kurulumun sonunda sistemin web arayüzü düzgün çalışmıyordu, bir miktar düzenlemenin sonunda çözüme ulaşamadığım gibi sistemi de geri kurtarmak için baştan kurmanın en az zaman kaybı olacağını düşünerek baştan kurulum yaptım. Bu sefer ilginç bir şekilde sistem bir miktar daha düzgün çalışıyordu ama hala eksikler vardı. Bu durum başıma ilk defa geldiği için çok şaşırdım ve durumu inceleme başlayınca diskin sürekli yeni bad sector’ler oluşturarak sistemi bozduğunu fark ettim. Başka bir disk elde ederek üçüncü bir kurulum yaptım. Bu sefer her şey çok düzgündü ancak sisteme bir türlü FXO hattını tanıtmayı başaramadım. Kullandığımız kart ile ilgili bir problemde olabilir ancak bu sırada başka paket uygulamalarında varlığından haberdar oldum. Üstelik AsteriskNow’a oranla çok daha güzel özellikleri olanlar varmış. Kısa bir inceleme sonunda yoluma Elastix (içerisinde yine asterisk barındırıyor) ile devam etme kararı aldım. Elastix’in en büyük avantajı başlangıçta web arayüz üzerinden Hardware Detector adlı bir uygulama sunuyor olması. Sunucuyu çalıştırdıktan sonra telephony kartımızı bu tool ile tanıtmamız çok kolay oldu. Artık gelen aramaları otomatik olarak açarak bu hattın kullanılmadığının duyurusunu sistem yapabiliyordu.

Elimizde çalışan bir sistem vardı artık, yani en azından telefonu açıp “Hello Yakışıklı!” diyebilen bir bayanla baş başaydık. Bu noktada artık IVR yapılandırılması gerekiyordu. Yazıyı bu konuya yabancı arkadaşlarında anlayabileceği şekilde anlatmaya çalıştığım için bu konuya da açıklık getireyim. IVR’ı birkaç kelimeyle özetlersek, bilgisayarın sizin sekreterliğinizi yapmasını sağlamak diyebiliriz. Yani herhangi bir müşteri hizmetlerini aradığınızda şu numaraya basın buraya bağlanın yada bu numaraya basın şuraya bağlanın kısmını oluşturuyor. Ancak bu noktada diğer bütün PBX yazılımları gibi Elastix’in sunduğu imkanlarda çok kısıtlı. Bu noktada kolları sıvayıp programlama yapmaya başlamanız kesinlikle gerekiyor. Bu yazımda tabi ki de nasıl programlanacağından bahsetmeyeceğim ama nereden başlayacağınıza dair yol göstermek istiyorum. Asterisk’i oluşturan firma bu işi yapabilmeniz için Asterisk Gateway Interface adında bir interface oluşturmuş ve bu interface’in birkaç dil ile implemantasyonu yapılmış durumda. Asterisk arayüzleri genellikle PHP ile çalıştığı için ilk tercih olarak PHPAGI‘yi kullanmanızı tavsiye edeceğim, çünkü sunucuda başka bir dilin ağırlıklarını da taşımanızdan sizi kurtaracaktır. Java gibi bir yükü sunucuda barındırmak size bellek tüketimi açısından sıkıntılar yaşatabilecek olmasına rağmen, bellek tüketimi problem değil biz Java kullanmak istiyoruz derseniz  bu sefer FastAGI‘yi kullanabilirsiniz. Başka bir trend olan Python ile yolunuza devam etmek isterseniz de buradaki yazıdan destek alabilirsiniz.

Yeni başlayacak arkadaşlara gerekli bilgileri sunduğumu düşünüyorum, çalışmalarınızda kolaylıklar dilerim.