Tuesday, July 22, 2008

Installing the Asterisk GUI

Asterisk 1.4 includes an HTML Asterisk GUI (well, it's more of a package for the creation of GUIs) by Digium. Installing it is quite easy once you have installed Asterisk 1.4 itself - see node Compiling Asterisk 1.4 beta.

The GUI is a nice AJAX app that will run through the Asterisk embedded web server with a recent web browser.

The first thing you'll have to do is to download the GUI, currently through Subversion only:

svn checkout http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui

don't worry if it takes a while to get this started, just let it run until the package is downloaded.

cd asterisk-gui/
make
make install
make samples

Before the package can start, you'll have to change a few things in your Asterisk:

star Enabling the embedded HTTP manager and webserver
Edit /etc/asterisk/http.conf and change the following lines:

enabled=yes
enablestatic=yes
bindaddr=0.0.0.0

This enables the HTTP server, enables it to serve static content (the GUI itself) and binds to the standard address, so that any browser from a remote machine can access it.

star Configuring the manager access
Edit /etc/asterisk/manager.conf and change the following lines:

enabled = yes
webenabled = yes

Then add a new section at the end of the file

[admin]
secret = test
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config

This will allow a user called admin to connect with the password test and do nearly everything on the system.

Now restart Asterisk.

Do one last pre-flight test with the command

make checkconfig

If everything goes well, connect with a recent browser to:

http://10.10.3.103:8088/asterisk/static/config/cfgbasic.html

Where 10.10.3.103 is the address of your Asterisk system, and login as admin password test. You did it! The Asterisk GUI is now correctly configured.

Removing Asterisk

It is sometimes necessary to completely remove Asterisk for one machine, for example because you need to install a newer version.

Stop Asterisk and unload its modules
The first thing you have to do is to stop Asterisk and unload the modules it may be using, e.g Zaptel's.

The following lines will brutally terminate Asterisk and kill all ongoing conversation. You have to kill safe_asterisk first, otherwise it will respawn Asterisk.

killall -9 safe_asterisk
killall -9 asterisk

Then you'll have to unload the Zaptel drivers; check which ones are loaded by issuing a:

[root@zebru]# lsmod | grep zaptel
zaptel 214820 2 wcfxo,wctdm
crc_ccitt 2113 1 zaptel

This means that the submodules wcfxo and wctdm are loaded for zaptel. We'll have to remove them in reverse order:

modprobe -r wcfxo
modprobe -r wctdm
..repeat for all zaptel submodules....
modprobe -r zaptel

If you repeat the lsmod | grep zaptel command now, it should find nothing.

Delete Asterisk files
By running the commands below, you will delete with no possible recovery an Asterisk system. First make a backup of things you'd like to keep, lik ethe log files or the configuration files.
star Remember: once you run these commands, there's no turning back!

rm -rf /etc/asterisk
rm -f /etc/zaptel.conf
rm -rf /var/log/asterisk
rm -rf /var/lib/asterisk
rm -rf /var/spool/asterisk
rm -rf /usr/lib/asterisk
Now your Asterisk system has been completely removed.

Saturday, July 19, 2008

FREEPBX INSTALL GUIDE

Current linux distribution: Ubuntu server 7.10
Current kernel version: 2.6.22-14-server

Login as root and follow steps below:
notes:
- you are required to connect your Ubuntu server to the Internet
- for fast update and upgrade please configure your apt source
to the fastest reachable server
- in this tutorial you are assumed using Intel Pentium 4
- some of your installed apache server configuration will be changed
- you are recommended to use fresh install of Ubuntu server 7.10
(you will later update and upgrade this server)

apt-get update
apt-get upgrade

apt-get install mc build-essential libncurses5-dev libssl-dev libmysqlclient15-dev
apt-get install linux-headers-`uname -r` apache2 php5 php5-cli php-pear php-db
apt-get install php5-gd php5-mysql mysql-server openssh-server curl sox subversion
note:
put 'rahasia' (without quote) as mysql server root password
please remember that this is only for the sake of following this manual
later on you have to change it to your own password

tar -zxf asterisk-sounds-0.1.tar.gz
tar -zxf zaptel-firmware-0.1.tar.gz

tar -zxf libpri-1.4.3.tar.gz
cd libpri-1.4.3
make
make install
cd ../

tar -zxf zaptel-1.4.8.tar.gz
cd zaptel-1.4.8
./configure
make menuconfig
note:
select all options on ‘Utilities’
press x to save selections
cp ../zaptel-firmware-0.1/firmware/* firmware/
make
make install
make config
cd ../

tar -zxf asterisk-1.4.17.tar.gz
cd asterisk-1.4.17
./configure
make menuconfig
note:
remove chan_mgcp, chan_phone, chan_oss, chan_skinny from ‘Channel Drivers’
remove codec_adpcm, codec_a_mu, codec_lpc10 from ‘Codec Translators’
select EXTRA-SOUNDS-EN-GSM from 'Extras Sound Packages'
press x to save selections
cp ../asterisk-sounds-0.1/sounds/* sounds/
make
make install
make samples
genzaptelconf
note:
genzaptelconf is part of zaptel package, but make sure to execute this after
installing asterisk
cd ../

tar -zxf asterisk-addons-1.4.5.tar.gz
cd asterisk-addons-1.4.5
./configure
make menuconfig
note:
remove chan_ooh323 from ‘Asterisk Addon Modules’
make sure the rest is selected
make
make install
make samples
cd ../

tar -zxf codec-g723-g729-p4-0.1.tar.gz
cd codec-g723-g729-p4-0.1
cp codec_g729-ast14-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g729.so
cp codec_g723-ast14-gcc4-glibc-pentium4.so /usr/lib/asterisk/modules/codec_g723.so
cd ../

useradd -s /bin/false -m asterisk
note:
default shell is /bin/false and create a home directory (needed by FOP)

mcedit /etc/apache2/apache2.conf
note:
look for this lines:
User www-data
Group www-data
and change to below lines:
User asterisk
Group asterisk

a2enmod php5
/etc/init.d/apache2 restart

chown asterisk.asterisk /etc/asterisk -R
chown asterisk.asterisk /usr/lib/asterisk -R
chown asterisk.asterisk /var/lib/asterisk -R
chown asterisk.asterisk /var/log/asterisk -R
chown asterisk.asterisk /var/spool/asterisk -R

mcedit /etc/asterisk/asterisk.conf
note:
look for astrundir path like this line:
astrundir => /var/run
and change it to:
astrundir => /var/log/asterisk

asterisk -U asterisk -G asterisk

mysqladmin -u root -p password rahasia
note:
lets make sure that you change the mysql server root password
'rahasia' (without quote) is a password chosen for testing purposes only

mysqladmin -u root -p create asterisk
mysqladmin -u root -p create asteriskcdrdb

tar -zxf freepbx-2.3.1.tar.gz
cd freepbx-2.3.1
mysql -u root -p asterisk <>
Change above IP address to your own IP

ln -s /usr/local/sbin/amportal /etc/init.d/amportal
update-rc.d amportal defaults
cd ../

rm -f /etc/asterisk/extensions.conf
rm -f /etc/asterisk/sip.conf
rm -f /etc/asterisk/iax.conf
rm -f /etc/asterisk/zapata.conf

mcedit /etc/asterisk/zapata.conf
note:
type below lines and save the file:
[trunkgroups]
[channels]
#include zapata-channels.conf

chown asterisk.asterisk /etc/asterisk/zapata.conf

/etc/init.d/amportal start

browse FreePBX admin web page, http:///admin (please use Firefox)
and click 'Apply Configuration Changes' on top of the page

mcedit /etc/asterisk/sip.conf
note:
look for lines like below:
disallow=all
allow=ulaw
allow=alaw
and change them to:
disallow=all
; enable g729 and gsm only when you have remote agents (from internet)
;allow=g729
;allow=gsm
allow=ulaw
allow=alaw
; enable below options for video support (now disabled)
;allow=h264
;allow=h263p
;allow=h263
;videosupport=yes
;maxcallbitrate=128

mcedit /etc/asterisk/iax.conf
note:
look for lines like below:
disallow=all
allow=ulaw
allow=alaw
allow=gsm
and change them to:
disallow=all
; enable g729 and gsm only when you have remote agents (from internet)
;allow=g729
;allow=gsm
allow=ulaw
allow=alaw

asterisk -rx "reload"

back to FreePBX admin web page and start configuring. installation finish.

that's all :)
onto next journey ! configurations !

Friday, July 18, 2008

chmod-Change Access Permissions of a File or Directory

Synopsis
chmod [ -fR] mode pathname ...
Description
chmod changes the access permissions or made of the specified files or directories.Modes determine who can read, change or execute a file.
Options
the -R option can be used when a directory is specified on the command line. chmod will give all subdirectories and files under that directory the attributes specified for the directory itself.
the -f option forces chmod to return a succesful status and no error messages, even if errors are encountered.this is useful if you're using -R to change a lot of files but you don't really care if chmod changes everything, provided that it change a particular subset of the files.
Modes
The mode value on the command line can be spesified in symbolic form or as an octal value.
A symbolic mode has the form
[who] op permission [op permission ...]
the who value can be any combination of the following:
u sets user (individual) permissions
g sets group permissions
o sets other permissions
a sets all permissions;this is the default
On DOS, there are no group or other permissions. therefore, they always match the individual permissions.
the op part of a symbolic mode is an operator telling whether permissions ahould be turned on or off


Export Proxy on Konsole/Terminal

If you are under a proxy server, and want to access net using http or ftp through Konsole/Terminal, you will need to export http_proxy/ftp_proxy variables. One simple way to do so is that you type the following 2 commands :

$export http_proxy="http://username:password@proxyserver:proxyport"
$export ftp_proxy="http://username:password@proxyserver:proxyport"

You will need to replace “username”, “password”, “proxyserver” and “proxyport” with appropriate values.

But this way, you will see your password as well. And if you are with your friends, they can see the password as well. To solve this problem, you can use this small script. In “/etc/bash.bashrc” append these lines :

function proxy(){
echo -n "username :"
read -e username
echo -n "password :"
read -es password
export http_proxy="http://$username:$password@proxyserver:proxyport/"
export ftp_proxy="http://$username:$password@proxyserver:proxyport/"
echo -e "\nProxy variables set."
}

You will need to replace “proxyserver” and “proxyport” with appropriate values. Thats it. Now whenever you need to export the variables, just type “proxy” and press enter. It will ask you for your username and passwd. And will do the rest by itself.

How to use SSH :: A basic step-by-step guide

There are a couple of ways that you can access a shell remotely on most Linux/Unix systems. SSH, which is an acronym for Secure SHell, was designed and created to provide the best security when accessing another computer remotely. Not only does it encrypt the session, it also provides better authentication facilities as well as features like X session forwarding, port forwarding and more so that you can increase the security of other protocols. It can use different forms of encryption ranging anywhere from 512 bit on up to as high as 32768 bits.

Simple connect

The first thing we'll do ijavascript:void(0)
Publishs simply connect to a remote machine. This is accomplished by running 'ssh hostname' on your local machine. The hostname that you supply as an argument is the hostname of the remote machine that you want to connect to. By default, ssh will assume that you want to authenticate as the same user you use on your local machine. To override this and use a different user, simply use username@domain.com as the argument:

ssh username@domain.com

example:
my username : iyanux
my domain : 10.10.3.205

ssh iyanux@10.10.3.205

The first time around, it will ask you if you wish to add the remote host to a list of known_hosts, go ahead and say yes.


X11 session forwarding
You can login to a remote desktop machine and run some X windows program like Gnumeric, Gimp or even Firefox and the program will run on the remote computer, but will display its graphical output on your local computer. The key to making it work is using the -X option, which means "forward the X connection through the SSH connection"

ssh -X username@domain.com

and run the application from the remote console. If you get a "DISPLAY is not set" error, it means that sshd isn't configured to accept session forwarding. To enable this, open /etc/ssh/sshd_config in a text editor and uncomment (or add) the following line:

X11Forwarding yes


TCP Port Forwarding

Like X11 session forwarding, SSH can also forward other TCP application level ports both forward and backwards across the SSH session that you establish. For example, you can setup a port forward for your connection from your home machine to work.company.com so that it will take connections to localhost port 3306 and forward them to the remote side mysql.company.com port 3306.

ssh -L 3306:mysql.company.com:3306 username@work.company.com

where -L is the local port. Again, the option AllowTcpForwarding yes should be enabled in sshd_config.

You can also reverse the direction and create a reverse port forward. This can be useful if you want to connect to a machine remotely to allow connections back in. For instance, I use this sometimes so that I can create a reverse port 22 (SSH) tunnel in order to reconnect through SSH to a machine that is behind a firewall once I have gone away from that network:

ssh -R 8022:localhost:22 username@my.home.ip.address

This will connect to my home machine and start listening on port 8022 there. Once I get home, I can then connect back to the machine I created the connection from, using the following command:

ssh -p 8022 username@localhost


SOCKS5 proxy

You can set a SOCKS5 proxy similar to port forwarding, except you don't have to specify the address that you want to forward to:

ssh -D 1324 username@domain.com


Run commands over SSH

Sometimes, you don't really want to run a shell like Bash on the host you are connecting to. Maybe you just want to run a command and exit. So simply run:

ssh username@domain uptime

and it will print the current time, uptime, users and so on.


Keep SSH connection alive

If for whatever reason, your session just dies after X minutes of inactivity (idle), you can simply fix this problem by adding the following lines to ~/.ssh/config :

Host *
Protocol 2
ServerAliveInterval 60

This tricks many firewalls that would otherwise drop the connection to keep your connection going.

Thursday, July 17, 2008

How to install Application in ubuntu

Step 1
you must install built-essential
#apt-get install built-essential

Step 2
#make
Step 3
if your application tar.gz, you must ekstrak and then
#./configure
Step 4
#make install
finish

New Ubuntu Sources List

### sources.list.kambing
### Repository with server mirror kambing.vlsm.org(indoneisia)
## main repository
deb http://kambing.vlsm.org/ubuntu hardy main restricted universe multiverse
deb-src http://kambing.vlsm.org/ubuntu hardy main restricted universe multiverse

## this is for MAJOR BUG FIX UPDATES
deb http://kambing.vlsm.org/ubuntu hardy-updates main restricted universe multiverse
deb-src http://kambing.vlsm.org/ubuntu hardy-updates main restricted universe multiverse

## this is for UBUNTU SECURITY UPDATES

deb http://kambing.vlsm.org/ubuntu hardy-security main restricted universe multiverse
deb-src http://kambing.vlsm.org/ubuntu hardy-security main restricted universe multiverse

### sources.list.gamaisitb
### Repository with server mirror gamais.itb.ac.id

## main repository
deb http://mirror.gamais.itb.ac.id/ubuntu hardy main restricted universe multiverse
deb-src http://mirror.gamais.itb.ac.id/ubuntu hardy main restricted universe multiverse

## MAJOR BUG FIX UPDATES
deb http://mirror.gamais.itb.ac.id/ubuntu hardy-updates main restricted universe multiverse
deb-src http://mirror.gamais.itb.ac.id/ubuntu hardy-updates main restricted universe multiverse

## UBUNTU SECURITY UPDATES
deb http://mirror.gamais.itb.ac.id/ubuntu hardy-security main restricted universe multiverse
deb-src http://mirror.gamais.itb.ac.id/ubuntu hardy-security main restricted universe multiverse