Asterisk Nedir? Asterisk eksiksiz, açık kaynak bir PBX yazılımıdır. Bir PBX'den bekleyebileceğiniz her şeyi ve daha fazlasını sunar. Linux, BSD, MacOSX ve diğer işletim sistemlerinde çalışabilen Asterisk oldukça esnek bir yapıya sahiptir. Birçok VoIP protokolünü içerir. Standart arama özelliğini yanında IVR, voicemail vb birçok özelliği içinde barındırır. İlk olarak 1999 yılında Mark Spencer tarafından geliştirilmeye başlanmıştır. Şu anda ise topluluk tarafından geliştirilmesi sürdürülmektedir. Asterisk'i Debian'a kurmak için: [code] # apt-get install asterisk # apt-get install zaptel # apt-get build-dep asterisk # apt-get install kernel-headers-`uname -r` # ln -s /usr/src/kernel-headers-`uname -r`/ /usr/src/linux # m-a build zaptel # dpkg -i zaptel-modules-xxxxxx.deb # depmod # modprobe zaptel # modprobe wcte11xp    # if using TE110P single span T1/E1 card # modprobe wcfxo       # if using single port FXO card # modprobe ztdummy     # if using ztdummy # ztcfg # zttool [/code] Asterisk'in kullandığı bazı dosya ve dizinler: [code] /etc/asterisk/ - Asterisk ayar dosyaları /usr/lib/asterisk/modules/ - bütün yüklenebilir modüller: codecs, channels,formats vs. /var/lib/asterisk/ - ses dosyalarını, resimleri, astdb'yi vs içerir /var/spool/asterisk/ - geçici dosyalar ve voicemail dosyaları /var/log/asterisk/ - Asterisk log dosyaları /var/log/asterisk/cdr-csv/ - Asterisk arama detay kayıtları (call detail records) [/code] Şimdi ise basit bir kullanım senaryosuyla ayarlarımızı yapalım. Softphone kullanan iki tane SIP kullanıcımız olsun. Bir de test amaçlı 500 extension ı tanımlayalım. Ayarlarımız bittiğinde bu iki kullanıcının birbirleriyle Asterisk üzerinden konuşmasını amaçlıyoruz. Düzenlemelerimizi sip.conf ve extensions.conf dosyalarında yapacağız. /etc/asterisk/sip.conf [general] context=default        ; gelen aramalar için varsayılan context port=5060        ; kullanılacak UDP portu bindaddr=0.0.0.0    ; kullanılacak ip adresi srvlookup=yes [2001] type=friend host=dynamic        ; kullanıcının host adresi değişken username=2001 secret=j0nny        ; kullanıcı parolası canreinvite=no nat=yes            ; kullanıcının her zaman NAT arkasında olduğunu varsayılsın context=phones        ; çağrıları 'phones' context ine gönder dtmfmode=rfc2833 allow=all        ; bütün codec lere izin ver [2002] type=friend host=dynamic username=2002 secret=whyfry canreinvite=no nat=yes context=phones dtmfmode=rfc2833 allow=all [general] altında sip kanalıyla ilgili genel ayarları yaptık. Köşeli parantez içindeki diğer iki kısım da kullanıcıları/extension ları tanımladığımız kısım. Asterisk ayar dosyalarında format genelde bu şekildedir. Farklı içerikler için ayarlar köşeli parantez içerisinde başlıklarla birbirinden ayrılır. extensions.conf dosyasını düzenlemeden önce bazı kavramlara göz atalım: CONTEXTs - extensions.conf context olarak adlandırılan bölümlere ayrılır [context-name] - bir kanaldan gelen çağrılar kanalda belirtilen contextlere yönlendirilirler - context ler bir çağrının nasıl yapılacağının belirlendiği bölümlerdir EXTENSIONs - her contextte bir veya daha fazla extension bulunur - bir extension gelen çağrı ya da bir kanalda aranan numaralarla devam eder exten => name,priority,aplication() exten => 2001,1,Dial(SIP/2001)                # (2001 aranan numara) - priority numaraları 1'den başlar ve sıralı olarak (2,3 .. ) devam eder - eğer sıralamada eksiklik olursa asterisk işlemi durdurur - her priority belli bir application çalıştırır APPLICATIONs - Asterisk dial planı için ne yapılacağını belirtir bir ses dosyası oynat bir çağrıya cevap ver veritabanı işlemleri yap - sıfır veya daha fazla argüman alabilirler Answer() Dial(SIP/2001) - argümanlar boru(|) ya da virgülle ayrılabilir /etc/asterisk/extensions.conf [general] static=yes        ; default values for changes to this file writeprotect=no        ; by the Asterisk CLI [globals] ; variables go here [default] ; default context [phones]        ; context for our phones exten => 2001,1,Dial(SIP/2001) exten => 2002,1,Dial(SIP/2002) exten => 500,1,Answer() exten => 500,2,Playback(demo-echotest) exten => 500,3,Echo exten => 500,4,Playback(demo-echodone) exten => 500,5,Hangup Bu ayarlardan sonra bir deneme yapalım. Bunun için ben twinkle uygulamasını kullanacağım. Twinkle ilk açıldığında sizden bir profil tanımlamanızı isteyecektir. Profil tanımlamak için wizard 'ı kullanabilirsiniz. İlk önce bir profil ismi girmeniz istenecek. Buraya herhangi bir isim yazabilirsiniz. Bu sadece twinkle için gerekli bir bilgi. Daha sonra açılan pencerede User name bölümüne extension numarasını gireceğiz(örn 2001). Domain asteriskin bulunduğu makine olacak(ip ya da fqdn). Password yerine de sip.conf da extension için tanımlı parola girilecek(secret). Sonrasında Ok, Ok diyerek geçelim. Daha sonra Call düğmesine basarak diğer extension ı arabiliriz(2002). Tabi diğer extension ın da başka bir softphonedan vs register olması gerekmektedir. 2002 kullanıcısını aradığımızda asterisk aramayı kullanıcının bağlı olduğu context e yönlendirecek ve exten => 2002,1,Dial(SIP/2002) extension ı çalışıp 2002 kullanıcısına bir arama(Dial()) gerçekleştirilecek.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.