20 Eylül 2010 Pazartesi

Asterisk + freepbx kurulumu

Web'deki güncel nasıl yapmalı'lar
Lucid (Ubuntu 10.04) için çalışan bir yol şu:
http://hmontoliu.blogspot.com/2010/03/installing-asterisk-and-freepbx-on.html


Bu yolu izleyerek kurarken izlenen adımlar şöyle:
  1. İlk adım. mysql kurulumu
  2. Yazılım derleme vs. için gerekli paketlerin yüklenmesi 
  3. Kaynakların indirilmesi
  4. dahdi derlemesi
  5. libpri derlemesi
  6. asterisk derlemesi
  7. asterisk-addons derlemesi
  8. asterisk ekstra seslerin yüklenmesi
  9. asterisk kullanıcı ve grubunun yaratılması
  10. bazı konfigürasyon dosyalarının vs. ayarlanması
  11. asterisk init scriptinin yaratılması
  12. freepbx'in indirilmesi
  13. mysql veritabanının yaratılması kullanıcının ayarlanması
  14. dosya düzenlemeleri
  15. asterisk ve freepbx'in başlatılması  
Bunlara ek olarak yapılması gereken bir iki düzeltme var. Kullanılan analog karta bağlı olarak...
Scriptlere geçelim:


aptitude update aptitude install -y mysql-server

aptitude install -y build-essential linux-headers-`uname -r` openssh-server bison flex apache2 php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient15-dev mpg123 libxml2-dev

cd /usr/src/
xargs wget << SOURCES
http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.2.1+2.2.1.tar.gz
http://downloads.asterisk.org/pub/telephony/libpri/releases/libpri-1.4.10.2.tar.gz
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.6.tar.gz
http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.0.tar.gz
SOURCES

tar xvf dahdi-linux-complete-2.2.1+2.2.1.tar.gz
cd dahdi-linux-complete-2.2.1+2.2.1
make all && make install && make config

cd ..
tar xvf libpri-1.4.10.2.tar.gz
cd libpri-1.4.10.2
make && make install

cd ..
tar xvf asterisk-1.6.2.6.tar.gz
cd asterisk-1.6.2.6
./configure
make && make install
make samples

cd ..
tar xvf asterisk-addons-1.6.2.0.tar.gz
cd asterisk-addons-1.6.2.0
./configure
make && make install
make samples

cd /var/lib/astersik/sounds
wget -O - http://downloads.asterisk.org/pub/telephony/sounds/asterisk-extra-sounds-en-gsm-current.tar.gz | tar xvfz -

adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user"
adduser www-data asterisk

cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf

sed -i '1 {s/\/bash/}' /usr/sbin/safe_asterisk

cat > /etc/init.d/asterisk <<-END_STARTUP #!/bin/bash ### BEGIN INIT INFO # Provides: asterisk # Required-Start: \$network \$syslog # Required-Stop: \$network \$syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Asterisk daemon. # Description: This script handles start/stop states of asterisk. ### END INIT INFO


set -e
set -a
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Asterisk"
NAME=amportal
DAEMON=/usr/sbin/\$NAME

test -x \$DAEMON || exit 0

d_start() {
amportal start
}

d_stop() {
amportal stop
}

d_reload() {
amportal restart
}

case "\$1" in

start)
echo -n "Starting \$DESC: \$NAME"
d_start
echo "."
;;

stop)
echo -n "Stopping \$DESC: \$NAME"
d_stop
echo "."
;;

restart|force-reload)
echo -n "Restarting \$DESC: \$NAME"
d_stop
sleep 10
d_start
echo "."
;;

*)

echo "Usage: \$SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;

esac

exit 0
END_STARTUP

chmod 755 /etc/init.d/asterisk
update-rc.d asterisk defaults 90 10

cd /usr/src/
wget -O - http://mirror.freepbx.org/freepbx-2.7.0.tar.gz | tar xvfz -
cd freepbx-2.7.0/

cp amportal.conf /etc/

export MYSQL_ROOT_PW=1234
export ASTERISK_DB_PW=4321
mysqladmin -u root -p${MYSQL_ROOT_PW} create asterisk
mysqladmin -u root -p${MYSQL_ROOT_PW} create asteriskcdrdb
mysql -u root -p${MYSQL_ROOT_PW} asterisk < SQL/newinstall.sql mysql -u root -p${MYSQL_ROOT_PW} asteriskcdrdb < SQL/cdr_mysql_table.sql mysql -u root -p${MYSQL_ROOT_PW} <<-END_PRIVS GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}"; GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY "${ASTERISK_DB_PW}"; flush privileges; END_PRIVS


sed -i "s/# \(AMPDBUSER=.*\)/\1/" /etc/amportal.conf
sed -i "s/# \(AMPDBPASS=\).*/\1${ASTERISK_DB_PW}/" /etc/amportal.conf
sed -i "s@\(AMPWEBROOT=\).*@\1/var/www/@" /etc/amportal.conf
sed -i "s@\(FOPWEBROOT=\).*@\1/var/www/panel@" /etc/amportal.conf
sed -i "s@\(FOPWEBADDRESS=\).*@PUTIPADDRESS@" /etc/amportal.conf

sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini

chown asterisk. /var/run/asterisk
chown -R asterisk. /etc/asterisk
chown -R asterisk. /var/{lib,log,spool}/asterisk
chown -R asterisk. /var/www/

sed -i '1 s/\(\[directories\]\).*/\1/' /etc/asterisk/asterisk.conf

./start_asterisk start
./install_amp

/etc/init.d/apache2 restart
/etci/init.d/dahdi restart

ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal start

Kurulum dökümanına bir iki ek
Konuyla ilgili en iyi çalışan kurulum dökümanlarından birisi olan bu dökümanın eksik bıraktığı bir iki konu var. Bunları ekleyelim.
  • Analog kartımızla ilgili dahdi konfigürasyonu amaçlı bir iki düzeltme.
    /etc/modprobe.d/dahdi.blacklist dosyasının sonuna aşağıdaki bölüm eklenecek.
    Bunun nedeni kullandığımız kartın (Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface) bunlarla karışmasına engel olmak.
    DİKKAT: Eğer kullandığınız analog kart (pbx kartı) farklı bir modelse bunu yapmamamnız gerekiyor olabilir.







    blacklist netjet
    blacklist isdn
    blacklist mISDN_core
    blacklist mISDN_ipac
  • dahdi_genconf. Bu işlem bütün her şey tamamlandıktan sonra yapılabilir. kart için gerekli dahdi konfigürasyonunu oluşturur. Sanırım uygun olan, yukardaki yolu (ek1 dahil) izleyip kurulumu tamamlamak ve sonra makineyi yeniden başlattıktan sonra bu işlemi yapmak.
  • /etc/dahdi/modules içinde sadece wctdm'i aktif bırakmak diğerlerini "comment out" etmek uygundur. Bu gereksiz yere tüm donanım modüllerinin yüklenmesini engeller. (Yine karta bağlı olarak yapılacak bir işlem.)
Freepbx arayüzü ile yapılacaklar
Bütün bu işlemlerin ardından
İki asterisk pbx'i birbirine bağlama
Link şudur. Detaylı ve iyi bir anlatım:
http://www.cadvision.com/blanchas/Asterisk/IAX2Trunk.html
Olası problemler ve kaynakları
  1. Derleme işlemleri sırasında çıkan pek çok problemin kaynağı dil seçimi ile ilgilidir.


    # export LANG=POSIX
    # /usr/src/asterisk-1.6.2.6
    # make clean
    # . configure
    # make
    diye devam edebilir...

1 Eylül 2010 Çarşamba

Kurmak için ne yapmalı

Asterisk, icecast, şu bu...
Debian paketlerini kur, konfigürasyon arayüzlerinden geç ve çalışsın...
Bunu yapamadığımız durumlar çok.
Uygun dağıtım olmadığı için, paketler henüz oturmadığı için, "kaynak koddan" derleme yoluyla yüklemenin ana metod olduğu durumlarda.
Bu tür yazılımları yüklemek için nasıl bir yol izlemek gerekir?
Bununla ilgili bazı kurallar.

Kural No 1: Başarılı kurulum öykülerinin araştırılması
Google. Yükleyıp çalıştırmayı amaçladığımız yazılımın "başarılı kurulum öykülerini" bulmak durumundayız.