Tuesday, February 12, 2008

Netapp overview

Netapp storage appliances connect directly to a natwork and have integrated disks.Netapp storage appliances are designed for data storage,use a Data ONTAP operating system.

Netapp supports following protocoles:
1.NFS(Network file Service):
This protocol allows UNIX and PC NFS clients to mount file system to local mount points.
2.CIFS(Common internet file system)
This protocol support windows clients(95,98,2000,NT)
3.FCP(SCSI)
FCP or iSCSI enable a storage device to communicate with one or more hosts such as solaris or windows in a SAN environment.We can configure logical units of storage(LUN) for multi protocol access,for block access or both.
Data ONTAP supports SAN protocols like filer,NearStore,FCP for SCSI and iSCSI for TCP/IP.
4.iSCSI(TCP/IP)
5.DAFS(Direct access file system)
This is designed for local file-sharing environment.Its goals are low latency,high throughput and low overhead.
6.HTTP(Hypertext Transfer Protocol)
7.FTP(File transfer Protocol)

Network Appliance's Data ONTAP provides a arcitecure contains 3 main elements that works together.
  • Realtime mechanism for process execution
  • WAFL file system containing NVRAM and Snapshots
  • RAID Manager

Monday, February 11, 2008

Setting Snapshots in DataONTAP

The Snapshot technology is a key element in implementation of WAFL file system.
Snapshot is a read-only space-efficient,point-in-time image of the data in a volume.
It is only a picture of the file system and doesn't contain actual data.
These are used for backups and error recovery.

Data ONTAP automatically creates and deletes snapshots of data in volumes.
Volumes:
Snapshot for traditional and flexible volumes are stored in special sub directories.These sub directories can be access by both Windows and UNIX clients.maximum of 255 snapshots per volume may be stored at any one time.

Aggregates:
5% of and aggregate is reserved for snapshots of the aggregate.DataONTAP automatically creates snapshots of aggregate to support commands related to the Snapmirror.

Snapshots are taken according to an automatic schedule.We can also can reset it mannually when we configuring the storage appliance.Schedule intervals are weekly,Daily and Hourly.We can perform backups on recently created snapshots with out taking the system offline,because the snapshots are stored independent of the Active File System(AFS).
Before the snapshot is taken we have a file systen tree pointing to data blocks containing content.After the snapshot is taken there is no significant impact on disk space,because file structure take little space and no data blocks need to be copy on disk.But snapshot begins to use space when data is deleted or modified.WAFL writes new data to a new block(D') and change the root structure point to the new block.Meanwhile snapshot still references the original block D.



Allocation of Disk space for flexible volumes

Each aggregate has 5% allocated for snap reserve and 10% allocated for WAFL.Each flexible volume has 20% allocated for snap reserve.The remainder used for client data.The amount of space allocated for snap reserve is adjustable.

Allocation of Disk space for Traditional Volumes

Each aggregate has 10% allocated for WAFL.Each traditional volume has 20% allocated for snap reserve.The remainder used for client data.


The space used for the snap reserve on a volume may expand downward into user space as required by system needs.

Commands use to create and manage Snapshots

If we omit the volume name,the command applies to the root volume.In the snap command the option A is used for aggregates and the option V is used for volumes.Volume is the default.

The snap list command displays a single line of information for each snapshot in a volume.

The "snap sched" command sets the schedule for automatically creating Snapshots and specifies how many of each type will be stored.When the limit is reached,the oldest for each interval is deleted as a new Snapshot is added.
We can also use the FilerView graphical interface to shedule snapshots.
  1. Volume-->Snapshot-->Configure
  2. Select the Volume
  3. Enter the number of snapshots to keep
  4. Use the clockfaces to select hours that snapshot will be taken
  5. Click Apply
To add snapshots:
Volumes->Snapshots->Add

To view a list of current Snapshots
Volumes->Snapshots->Manage

To delete snapshots manually
Volumes->Snapshots->Manage->check the snapshot->delete

We can enable snapshot in CIFS using the GUI
CIFS->Configure->Option->Show snapshots->set yes

Every volume in the file system contains a special Snapshot sub directory.This allow user to access earlier versions of the file system in case where they need to recover lost or damaged files.

UNIX clients

Snapshot sub-directory apears for NFS client as .snapshot.These directories are usually hidden.
To view the .snapshot directory:
  1. logging as root and nosnapdir option is set off: vol option vol0 nosnapdir off
  2. To view use ls -a

Windows clients

First configure the file manager to display hidden files,then navigate the root of the CIFS share and look for the directory folder.Snapshot sub-directory appears to CIFS client as ~snapshot.To restore a file from the ~snapshot rename or move original file then copy the file to the directory in which the file is originally existed.

Network settings in DataONTAP

Data ONTAP can resolve host information on a storage appliance using:
  1. the /etc/hosts file on the root volume
  2. NIS server
  3. DNS server
By default the storage first tries resolve hostname locally by searching the /etc/host and /etc/nsswitch file then NIS,then DNS if needed.The /etc/hosts entries: IP address hostname alias(es).
The NIS client service provide information on security related such as hosts,user passwords,user groups and netgroups on a network.

Domain name Service matches domain names to ip addresses and maintain host information ,so we don't need to update the /etc/hosts file.DNS configured using host command.
The /etc/nsswitch.conf file lists the order in which a storage appliance searches for resolution.Also we can set the order using FilerView network->Manage DNS and NIS server.

Routing

Even though Netapp has multiple network interfaces it doesn't act as a router for other hosts.But we can see the currunt routing table using the command netstat -r command.We can add or delete a specific route for a host or a network in the routing table,using the route command.
Default route is defined in the /etc/rc file.We can use rdfile /etc/rc to view content of the file, wrfile /etc/rc to edit the content of the file.
Routed is daemon invoked at the boot time to manage the networking routing tables.

Configuring Network interfaces

Storage appliances support 4 network types of NAS:
  • Ethernet 10/100 Base T
  • Gigabit ethernet
  • FDDI
  • ATM

There are 7 network parameters that can be configured for an intreface:
  • IP address
  • Netmask address
  • Media type and speed
  • Maximum transmission unit(MTU)
  • Flow control
  • Up or Down state

On the command line the ifconfig command assigns and address to a network interface and assign these parameters.We can also use filerView Network-->Manage interfaces.

Accessing DataONTAP

To access the storage appliance from client workstation through telnet,type telnet [hostname].hostname is name or ip address of the storage appliance.
To logout of a telnet session press ctrl+d or enter logout telnet.
To enable remote shell services,make rsh.enable on.Set rsh.access value host=adminhost.
To view available commands,at the console prompt enter help or ?.

FilerView is an administration tool available to Netapp storage appliances.This tool enables IT administrator to use a web browser to access graphical user interface for administrator tasks.This allow administrator to set up and control storage remotely without disruption to the business-critical operations.This communicate with the storage with HTML and SNMP protocols.
If we try to open a telnet session in either FilerView or the Command Line Interface directly we can only have one telnet session at a time.

Basic Storage Appliance Configuration

many console commands provide filer system configuration information.

sysconfig -v Display system harware configurations
vol status -r Display volumes and raid group information
sysconfig -r Display volumes and raid group information
sysconfig -c checks configuration levels of hardware

The system configuration is managed via the use of options commands and configuration files:
Option commands
can be entered on console and automatically added to the storage appliance's registry,do not require editing of console files.

Configuration files
/etc/rc,/etc/hosts.equiv,/etc/dgateways,/etc/hosts must be edited to make non-option configuration permanent.

The storage appliance's boot configuration file contains command that are run automatically when the storage is booted./etc/rc is the configuration file of the storage appliance's root volume.The default root volume is /vol/vol0.

The /etc/rc file contains:
  • Network interface configuration information.
  • Commands to automatically export NFS mounts
  • Commands to run at storage appliance startup

When we change the /etc/rc file we have to reboot the storage appliance to test the new configuration.
Persistent configuration information and other data is stored in registry database.There are several backups for these,/etc/registry.lastgood is a copy of the registry as it existed after the last successful boot./etc/registry is edited by DataONTAP shouldn't be manually edited.


Adminstarator users

Administrative console users have the same privilages as root console users.Syslog(/etc/messages)records console logins by username,time of access and node name /address.

useradmin useradd login_name :create new administrator user and a password
useradmin userdel login_name :Delete an administrative user
useradmin userlist :List administrtive users
passwd :Change console administrative user password

The trusted.hosts option can be used to limit telnet and FilerView access to administrative pages.

NFS:
Host name must be entered in the /etc/hosts.equiv file.The setup procedure automatically populate this feature.

CIFS:
Should be a member of the "Domain Administrator"or"Administrators"W@K groups.
edit configuration file by accessing the \\filer\C$ share.

Prepare for Installation

There are three types of software installations:
1.Configuring a new storage appliance.
2.Upgrading Data ONTAP software on existing storage appliance.
3.Re-configuring existing storage


We can re-configure a storage appliance at any time by typing setup at the console.(don't do unless it's a new install)

Configuring a New Storage Appliances

1.Gather information
2.Complete the setup script
3.type reboot to activate the configuration
4.verify the installation

Friday, February 8, 2008

Call center call routing

One of the call center that I was working with is HSBC call center.This a large call center with latest AVAYA technology,giving priority for customer service.
Before going in to details on contact centers let me get an example,a company like where I got my internship.When a customer call from out side he will hear a ring/music/beep then he will receive a welcome massage like "welcome to ABC company.If you know the extension dial now or wait for operator assistance".In there he can either wait or enter the ext he preferred to call.System will route the call to the given end point.This is a simple route pattern to begin.This roting pattern vary with the company complexity and its business.
To understand the call routing further let's take above example.For a PBX system we have to get number and a preallocated extension block from a service provider(SLT,LANKABELL,SUNTEL..).Let's say I got ext from suntel and lankabell:
Suntel - 4 472200 (200-299)
Lankabel- 5 472200 (200-299)
Direct invert dialing is given to last three digits.Take extension 222 as an example.So when customer wants to call to ext 222 he will dial 4472222 directly.Then the system match this to VDN(Vector Directory Number) after placing 1 before the ext.Calls coming to the trunk,we con figure a option in trunk whether to enter a digit or delete a digit.Always changes will be done to the start of the ext.Here we add 1 to the start od DID ext and create a VDN 1222.Each VDN carries a number of it's vector,measurability,COR,COS and other parameters.Measured parameter have 4 options int/ext/none/both.All of them are defining the source of reports.
For external call handling we need E1 cards.Let's take a example of 8 E1 card PBX system,4 E1 cards for the cal

Thursday, February 7, 2008

Managing LUN Space

vol options fractional_reserve 0

This command sets the fractional reserve to zero percent, down from the default of 100 percent. Note that fractional reserve only applies to LUNs, not to NAS storage presented via CIFS or NFS.

snap autodelete trigger snap_reserve

This sets the trigger at which Data ONTAP will begin deleting Snapshots. In this case, Snapshots will start getting deleted when the snap reserve for the volume gets nearly full. The current size of the snap reserve can be viewed for a particular volume with the “snap reserve ” command.

snap autodelete defer_delete none

This command instructs Data ONTAP not to exhibit any preference in the types of Snapshots that are deleted. Options for this command include “user_created” (delete user-created Snapshot copies last) or “prefix” (Snapshot copies with a specified prefix string).

snap autodelete target_free_space 10

With this setting in place, Snapshots will be deleted until there is 10% free space in the volume.

snap autodelete on

Now that the Snapshot autodelete options have been configured, this command will actually turn the functionality on.

vol options try_first snap_delete

When a FlexVol runs into an issue with space, this option tells Data ONTAP to first try to delete Snapshots in order to free up space. This command works in conjunction with the next command:

vol autosize on

This enables Data ONTAP to automatically grow the size of a FlexVol if the need arises. This command works hand-in-hand with the previous command; Data ONTAP will first try to delete Snapshots to free up space, then grow the FlexVol according to the autosize configuration options. Between these two options—Snapshot autodelete and volume autogrow—you can reduce the fractional reserve from the default of 100 and still make sure that you don’t run into problems taking Snapshots of your LUNs.

Basics of AVAYA

In my internship I occupied in keels business system ltd,a company in the IT sector of the john keels group.KBSL is a information/Systems Integrator for Enterprises in Sri Lanka.Here I got trained in different sections server,call center,network,loggers,IVR and storage sections.I got chance to deal with real customer problems and come up with solutions.
From this article I'm going to tell the call center solutions mainly AVAYA products handled by KBSL.Let's have some idea about AVAYA products and it's features.
For call centers it's important that we can comunicate free of charge with in the center.If some one calling from out side we have to coordinate with external party(service provider),call will route through public switched terminal network(PSTN).Private Automated Branch Exchange(PABX) plays main role in this process.There may be connection to external parties or to another PBX from a PBX.In john keels holdings we have 5 locations have their own PBXs interconnected all together.There are 3 categories of end points Analog,Digital and IP.Analog and digital end points use Time Devision Multiplexing,IP end points using Internet protocol packet switching.When data and voice in a single network we call it a converge network.AVAYA moving towards voip platform so we have to convince customer to move on to ip platforms.Anlog phone is similar to what we have in our home.Digital phone has some features as call logs,to cater those features it need power,which supplies by the power supply of the PBX.For IP phones we have to install a additional power distribution unit to cater its requirements.

There several card which move in to the PBX system.From the PBX there is connections going to Main Distribution Frame(MDF),called as equipment side.If there are several buildings then it divides in to several Sub Distribution frames(SDF) before it reach end points.CO cards have 8 central office lines.E1 card has 1 E1 lines 30 simultaneous lines,we are getting those on 4 wires TX pair and RX pair.If it is IP we don't need extra card but CLAN.For Analog and Digital we need digital and analog boards(24 port on each).From CLAN we can serve 400 IP phones and media processor can handle 320 packets.
There is trend in customers that they don't want to spend money on their own PBX system,but they prefer to pay a rent if some service provider hosting thr PBX.In this concept all the equipments and lines belong to the service provider,and they can host the PBX in to 2 or 3 companies.They can ask for a rent and can be charge on agent basis.Service provider has the full ownership and management.Here what the can do is whole thing should be in IP platform or they can deploy gateways in customer premises.
In the beginning product now we are talking is come under the name AT&T,but it divided in to sections as AT&T for high end switch providers(SLT) and Luicent for low end providers(Celltel).In 2002 Luicent change it name to AVAYA,which brought over by TPG capital and Silver Lake.They are the only owners in AVAYA,there are no shares in the market.As in IP platform concern CISCO is competing AVAYA.
Avaya communication manager is thousands of C codes built on Linux platforms.Avaya CM5 is release 5 on Linux,but Cisco call manager 5 is the second release on Linux.This fact sounds AVAYA more reliable to me.
To connect to the PSTN we use CO(central office)lines and E1 lines.E1 uses two signaling protocols ISDN and R2 signaling.There is a limitation in R2 signaling,it doesn't allow name passing transparency,but ISDN has allow it.This is a useful feature to serve customers in call centers,agent can welcome the customer from his name.To connect two PBXs together we use QSIG signaling.

Let's consider some basic features in AVAYA.

Auto attendant:
When you call to a company you may have hear a announcement which says if know the extension you can dial the extension or wait until operator connects you.Auto attendant is this if know the extension we don't need a operator.

Direct Invert Dialing(DID):
Service provider has given us a E1 line which can cater 30 channels simultaneously.But service provider has allocated extension blocks that we can use for our company.Let's say we got 300-399 block.So in DID we can call directly to a person using his extension at the end.
for operator :2317000
Directly to 350:2317350

Transferring:
We can transfer calls to other places,even after we pick the phone

Conferencing:
We can get multiple parties to join to the same discussion on telephone.

Call Pick up:
We can create a group,and we can pick up call from any where within the group.It is need not be the original phone.

Call waiting:
When I'm in a call,if some one calling me that call appears in the phone.If I want to answer that 2nd call I can put 1st person in to on hold.

Call Coverage:
This feature send received call to the next person if I'm busy.It will ring mt extension some time(as we planned) and then will ring the next place.Anyhow the call will get served.

iSCSI

The two big differences between NAS and Fibre Channel SAN are the wires and the protocols. In terms of wires, NAS runs on Ethernet, and FC-SAN runs on Fibre Channel. The protocols are also different. NAS communicates at the file level,FC-SAN communicates at the block level.
If you think the protocol is more important, then iSCSI is like SAN; if the wire is more important, then iSCSI is like NAS.With FC-SAN, a filesystem like UFS, VxFS or ZFS runs on the host and converts file requests into the block requests that are sent over the wire. With NAS, the host sends file requests over the wire, so a file system must run in the storage system.From a technical perspective, iSCSI looks more like SAN, but in terms of business issues, it looks more like NAS.
People keep comparing iSCSI with Fibre Channel. They point out that iSCSI is slower, and less mature, and less reliable, and less quality of service, and more variability in packet latency.iSCSI is about enabling networked storage in areas where Fiber Channel is completely impractical.Networked Storage has almost completely replaced DAS (Direct Attached Storage) at the high end.
The two key drivers for iSCSI are cost and simplicity.Every computer these days is networked, so iSCSI adds zero cost.iSCSI is simple,No new hardware to add and not much to configure.I myself has finished configuring iSCSI it is really simple.

Dell's View on iSCSI:
http://direct2dell.com/one2one/archive/2007/04/17/12165.aspx

helpful blog:
http://blog.scottlowe.org/tags

Wednesday, February 6, 2008

Elon pilots traveling science center in Sri Lanka

Pilot Project

Exhibits built by Elon University students were brought to Sri Lanka in June and July of 2006 to be shared with school age children.It was a pleasure to work with program directors Crista Arangala, associate professor of mathematics, and Martin Kamela, assistant professor of physics in Elon University.There were interactive science exhibits, which included exhibits demonstrating the light spectrum, human skeleton in motion, chemistry of smell, phosphorescence, and visual perception.

Between July 2nd and 7th the above exhibits made their way to three locations in Sri Lanka.
  1. Samanala Children’s Home, Rattanpity
  2. Sirimavo Bandaranaike School in Colombo
  3. Shatraloka Vidyala School in Karuwalabadda

The first showing of the exhibits took place at the Samanala Children’s Home in Rattanpitya, Colombo. This is an orphanage for 25 boys whose parents died in the ethnic conflict in Sri lanka.It was a great experience with little ones.Two professors ask us to let them play first then reply for their questions.After their willingness grow we explain them the science they had experienced.This method of teaching really efficient and successful.They were love to play with the science exhibits,and we were pleased to explain them.There were some good questioned which surprised me,which how close that science has reached to them.It was interesting how fast they learn from us.They learn the structure of the human body,Third-class levers,effect of point of action and the way humerus behave to different loads.

Our next school is Sirimovo Bandaranaike School in Colombo.Some of my friends are old girls of that school.We were welcomed at the school with the traditional lamp lighting ceremony.There were 4 classes and their teachers.Students asked good questions and were encouraged to do so by the science teachers.Also National Science Foundation and the National Science and Technology Commission (led by Dr. Sachie Panawala) came to see the science show.Sirimawo is a large school with facilities,students knowledge level and the speed of understanding is high.There were encouraged by the fact that we were university students from Sri lankan best engineering university.Also we share some ideas about their way of studying.They were very keen to learn,and we were very pleased to explain them.There were students who can speak english,so they read the posters themselves and asked questions from us.
The next stop of the exhibits was in the South-East of the island at the Shatraloka School in Karuwalabadda,rural school with few resources.The school was small but there were good teachers who wants students to be learned.We try different approach here and it works really well.The first group to look at the exhibits were the oldest students from Grades 10 and 11.We explained them well what exhibits are and what is the science behind it.Students were encouraged to ask questions and explore.These older students were next asked to help with the exhibit activities for the younger students.Really they have done good explanation on what they have just learn,I was impressed.While they were explaining I found some points they didn't clarify,at that points I reexplain to them all.They were happy to see us,and had seen the beauty of science.I would say science had reached to them quite well,and they had grasp it the way it should be.
I'm sorry because I missed this interesting way of learning science.But I'm happy my brothers and sisters have chance to taste that.And I'm really happy I'm a part of this project,thanks to Betty Webb,Martin Kamela and Crista Arangala.Thank you very much.......

http://org.elon.edu/srilanka/pilot.htm

http://org.elon.edu/srilanka/E-net!%20article.pdf

Squid: Logfile Analysis-The Webalizer

The Webalizer is a fast, free web server log file analysis program. It produces highly detailed, easily configurable usage reports in HTML format, for viewing with a standard web browser.
home page:
http://www.mrunix.net/webalizer/
Installing steps:
ftp://ftp.mrunix.net/pub/webalizer/INSTALL
Downloading webalizer:
http://www.mrunix.net/webalizer/download.html

Tuesday, February 5, 2008

Getting Squid Access report-SARG

This is a test that I have done for the john keels system integrator keels business system ltd squid server,waiting for permisson to launch it in real.I configure /etc/squid/squid.conf and start squid service.Set proxy address to the squid server ip 192.168.10.110 and the port 3128.Internet Access Monitor for Squid, is monitoring the efficiency of a company Internet bandwidth usage. Using this feature we can easily find out who, when, where to, where from and what accessed the Internet.Here I use sarg,Squid Analysis Report Generator a tool that allows you to view "where" your users are going to on the Internet.Sarg generate reports in html, with many fields, like: users, IP Addresses, bytes, sites and times.
I Downloaded sarg-2.2.1-1.el4.rf.i386.rpm file for RHEL4 edition from:
http://dag.wieers.com/rpm/packages/sarg/.

1.Install Sarg. Configuration file is /etc/sarg.conf. You may modify it as you wish. You need to create output directory as described in sarg.conf.
# rpm –ivh sarg-2.2.1-1.el4.rf.i386.rpm
# mkdir /srv/www/htdocs/squid-reports

2.Run Sarg daily. Edit /etc/crontab and add following line.
0 4 * * * root /usr/bin/sarg >/dev/null 2>&1

3.You can see the analysis report from http://hostname/squid-reports

After installing I configure /etc/sarg/sarg.conf as I wish to get reports.

# sarg.conf
#
# TAG: language
# Available languages:
# Bulgarian_windows1251
# Catalan
# Czech
# Czech_UTF8
# Dutch
# English
# French
# German
# Greek
# Hungarian
# Indonesian
# Italian
# Japanese
# Latvian
# Polish
# Portuguese
# Romanian
# Russian_koi8
# Russian_UFT-8
# Russian_windows1251
# Serbian
# Slovak
# Spanish
# Turkish
#
#language English

# TAG: access_log file
# Where is the access.log file
# sarg -l file
#
#access_log /usr/local/squid/var/logs/access.log

# TAG: graphs yes|no
# Use graphics where is possible.
# graph_days_bytes_bar_color blue|green|yellow|orange|brown|red
#
#graphs yes
#graph_days_bytes_bar_color orange

# TAG: title
# Especify the title for html page.
#
#title "Squid User Access Reports"

# TAG: font_face
# Especify the font for html page.
#
#font_face Tahoma,Verdana,Arial

# TAG: header_color
# Especify the header color
#
#header_color darkblue

# TAG: header_bgcolor
# Especify the header bgcolor
#
#header_bgcolor blanchedalmond

# TAG: font_size
# Especify the text font size
#
#font_size 9px

# TAG: header_font_size
# Especify the header font size
#
#header_font_size 9px

# TAG: title_font_size
# Especify the title font size
#
#title_font_size 11px

# TAG: background_color
# TAG: background_color
# Html page background color
#
# background_color white

# TAG: text_color
# Html page text color
#
#text_color #000000

# TAG: text_bgcolor
# Html page text background color
#
#text_bgcolor lavender

# TAG: title_color
# Html page title color
#
#title_color green

# TAG: logo_image
# Html page logo.
#
#logo_image none

# TAG: logo_text
# Html page logo text.
#
#logo_text ""

# TAG: logo_text_color
# Html page logo texti color.
#
#logo_text_color #000000

# TAG: logo_image_size
# Html page logo image size.
# width height
#
#image_size 80 45

# TAG: background_image
# Html page background image
#
#background_image none

# TAG: password
# User password file used by Squid authentication scheme
# If used, generate reports just for that users.
#
#password none

# TAG: temporary_dir
# Temporary directory name for work files
# sarg -w dir
#
#temporary_dir /tmp

# TAG: output_dir
# The reports will be saved in that directory
# sarg -o dir
#
#output_dir /var/www/html/squid-reports

# TAG: output_email
# Email address to send the reports. If you use this tag, no html reports will be generated.
# sarg -e email
#
#output_email none

# TAG: resolve_ip yes/no
# Convert ip address to dns name
# sarg -n
#resolve_ip no

# TAG: user_ip yes/no
# Use Ip Address instead userid in reports.
# sarg -p
#user_ip no

# TAG: topuser_sort_field field normal/reverse
# Sort field for the Topuser Report.
# Allowed fields: USER CONNECT BYTES TIME
#
#topuser_sort_field BYTES reverse

# TAG: user_sort_field field normal/reverse
# Sort field for the User Report.
# Allowed fields: SITE CONNECT BYTES TIME
#
#user_sort_field BYTES reverse

# TAG: exclude_users file
# users within the file will be excluded from reports.
# you can use indexonly to have only index.html file.
#
#exclude_users none

# TAG: exclude_hosts file
# Hosts, domains or subnets will be excluded from reports.
#
# Eg.: 192.168.10.10 - exclude ip address only
# 192.168.10.0 - exclude full C class
# s1.acme.foo - exclude hostname only
# acme.foo - exclude full domain name
#
#exclude_hosts none

# TAG: useragent_log file
# useragent.log file patch to generate useragent report.
#
#useragent_log none

# TAG: date_format
# Date format in reports: e (European=dd/mm/yy), u (American=mm/dd/yy), w (Weekly=yy.ww)
#
#date_format u

# TAG: per_user_limit file MB
# Saves userid on file if download exceed n MB.
# This option allow you to disable user access if user exceed a download limit.
#
#per_user_limit none

# TAG: lastlog n
# How many reports files must be keept in reports directory.
# The oldest report file will be automatically removed.
# 0 - no limit.
#
#lastlog 0

# TAG: remove_temp_files yes
# Remove temporary files: geral, usuarios, top, periodo from root report directory.
#
#remove_temp_files yes

# TAG: index yes|no|only
# Generate the main index.html.
# only - generate only the main index.html
#
#index yes

# TAG: index_tree date|file
# How to generate the index.
#
#index_tree file

# TAG: overwrite_report yes|no
# yes - if report date already exist then will be overwrited.
# no - if report date already exist then will be renamed to filename.n, filename.n+1
#
#overwrite_report no

# TAG: records_without_userid ignore|ip|everybody
# What can I do with records without user id (no authentication) in access.log file ?
#
# ignore - This record will be ignored.
# ip - Use ip address instead. (default)
# everybody - Use "everybody" instead.
#
#records_without_userid ip

# TAG: use_comma no|yes
# Use comma instead point in reports.
# Eg.: use_comma yes => 23,450,110
# use_comma no => 23.450.110
#
#use_comma no

# TAG: mail_utility mail|mailx
# Mail command to use to send reports via SMTP
#
#mail_utility mailx

# TAG: topsites_num n
# How many sites in topsites report.
#
#topsites_num 100

# TAG: topsites_sort_order CONNECT|BYTES A|D
# Sort for topsites report, where A=Ascendent, D=Descendent
#
#topsites_sort_order CONNECT D

# TAG: index_sort_order A/D
# Sort for index.html, where A=Ascendent, D=Descendent
#
#index_sort_order D

# TAG: exclude_codes file
# Ignore records with these codes. Eg.: NONE/400
#
#exclude_codes /usr/local/sarg/exclude_codes

# TAG: replace_index string
# Replace "index.html" in the main index file with this string
# If null "index.html" is used
#
#replace_index

# TAG: max_elapsed milliseconds
# If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.
# Use 0 for no checking
#
#max_elapsed 28800000
# 8 Hours

# TAG: report_type type
# What kind of reports to generate.
# topusers - users, sites, times, bytes, connects, links to accessed sites, etc
# topsites - site, connect and bytes report
# sites_users - users and sites report
# users_sites - accessed sites by the user report
# date_time - bytes used per day and hour report
# denied - denied sites with full URL report
# auth_failures - autentication failures report
# site_user_time_date - sites, dates, times and bytes report
# downloads - downloads per user report
#
# Eg.: report_type topsites denied
#
#report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads

# TAG: usertab filename
# You can change the "userid" or the "ip address" to be a real user name on the reports.
# Table syntax:
# userid name or ip address name
# Eg:
# SirIsaac Isaac Newton
# vinci Leonardo da Vinci
# 192.168.10.1 Karol Wojtyla
#
# Each line must be terminated with '\n'
#
#usertab none

# TAG: long_url yes|no
# If yes, the full url is showed in report.
# If no, only the site will be showed
#
# YES option generate very big sort files and reports.
#
#long_url no

# TAG: date_time_by bytes|elap
# Date/Time reports will use bytes or elapsed time?
#
#date_time_by elap

# TAG: charset name
# ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
# graphic character sets for writing in alphabetic languages
# You can use the following charsets:
# Latin1 - West European
# Latin2 - East European
# Latin3 - South European
# Latin4 - North European
# Cyrillic
# Arabic
# Greek
# Hebrew
# Latin5 - Turkish
# Latin6
# Windows-1251
# Japan
# Koi8-r
# UTF-8
#
#charset Latin1

# TAG: user_invalid_char "&/"
# Records that contain invalid characters in userid will be ignored by Sarg.
#
#user_invalid_char "&/"

# TAG: privacy yes|no
# privacy_string "***.***.***.***"
# privacy_string_color blue
# In some countries the sysadm cannot see the visited sites by a restrictive law.
# Using privacy yes the visited url will be changes by privacy_string and the link
# will be removed from reports.
#
#privacy no
#privacy_string "***.***.***.***"
#privacy_string_color blue

# TAG: include_users "user1:user2:...:usern"
# Reports will be generated only for listed users.
#
#include_users none

# TAG: exclude_string "string1:string2:...:stringn"
# Records from access.log file that contain one of listed strings will be ignored.
#
#exclude_string none

# TAG: show_successful_message yes|no
# Shows "Successful report generated on dir" at end of process.
#
#show_successful_message yes

# TAG: show_read_statistics yes|no
# Shows some reading statistics.
#
#show_read_statistics yes

# TAG: topuser_fields
# Which fields must be in Topuser report.
#
#topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: user_report_fields
# Which fields must be in User report.
#
#user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: bytes_in_sites_users_report yes|no
# Bytes field must be in Site & Users Report ?
#
#bytes_in_sites_users_report no

# TAG: topuser_num n
# How many users in topsites report. 0 = no limit
#
#topuser_num 0

# TAG: site_user_time_date_type list|table
# generate reports for site_user_time_date in list or table format
#
#site_user_time_date_type table

# TAG: datafile file
# Save the report results in a file to populate some database
#
#datafile none

# TAG: datafile_delimiter ";"
# ascii character to use as a field separator in datafile
#
#datafile_delimiter ";"

# TAG: datafile_fields all
# Which data fields must be in datafile
# user;date;time;url;connect;bytes;in_cache;out_cache;elapsed
#
#datafile_fields user;date;time;url;connect;bytes;in_cache;out_cache;elapsed

# TAG: datafile_url ip|name
# Saves the URL as ip or name in datafile
#
#datafile ip

# TAG: weekdays
# The weekdays to take account ( Sunday->0, Saturday->6 )
# Example:
#weekdays 1-3,5
# Default:
#weekdays 0-6

# TAG: hours
# The hours to take account
# Example:
#hours 7-12,14,16,18-20
# Default:
#hours 0-23

# TAG: dansguardian_conf file
# DansGuardian.conf file path
# Generate reports from DansGuardian logs.
# Use 'none' to disable it.
# dansguardian_conf /usr/dansguardian/dansguardian.conf
#
#dansguardian_conf none

# TAG: dansguardian_ignore_date on|off
# 'on' must use the record even the date range is different from the used in squid access.log file.
# 'off' must use the record only if the date range is in the irange used in squid access.log file.
#
#dansguardian_ignore_date off

# TAG: squidguard_conf file
# path to squidGuard.conf file
# Generate reports from SquidGuard logs.
# Use 'none' to disable.
# You can use sarg -L filename to use an alternate squidGuard log.
# squidguard_conf /usr/local/squidGuard/squidGuard.conf
#
#squidguard_conf none

# TAG: squidguard_ignore_date on|off
# Use 'on' use the record even the date range is different from the used squid access.log file.
# Use 'off' use the record only if the date range is in the used squid access.log file.
#
#squidguard_ignore_date off

# TAG: squidguard_log_format
# Format string SquidGuard logs.
# REJIK #year#-#mon#-#day# #hour# #list#:#tmp# #ip# #user# #tmp#/#tmp#/#url#/#end#
# SQUIDGUARD #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#
#squidguard_log_format #year#-#mon#-#day# #hour# #tmp#/#list#/#tmp#/#tmp#/#url#/#tmp# #ip#/#tmp# #user# #end#

# TAG: show_sarg_info yes|no
# shows sarg information and site path on each report bottom
#
#show_sarg_info yes

# TAG: show_sarg_logo yes|no
# shows sarg logo
#
#show_sarg_logo yes

# TAG: parsed_output_log directory
# Saves the processed log in a sarg format after parsing the squid log file.
# This is a way to dump all of the data structures out, after parsing from
# the logs (presumably this data will be much smaller than the log files themselves),
# and pull them back in for later processing and merging with data from previous logs.
#
#parsed_output_log none

# TAG: parsed_output_log_compress /bin/gzip|/usr/bin/bzip2|nocompress
# sarg logs compress util
#
#parsed_output_log_compress /bin/gzip

# TAG: displayed_values bytes|abbreviation
# how the values will be displayed in reports.
# eg. bytes - 209.526
# abbreviation - 210K
#
#displayed_values bytes

# Report limits
# TAG: authfail_report_limit n
# TAG: denied_report_limit n
# TAG: siteusers_report_limit n
# TAG: squidguard_report_limit n
# TAG: user_report_limit n
# TAG: dansguardian_report_limit n
# TAG: download_report_limit n
# report limits (lines).
# '0' no limit
#
#authfail_report_limit 10
#denied_report_limit 10
#siteusers_report_limit 0
#squidguard_report_limit 10
#dansguardian_report_limit 10
#user_report_limit 10
#user_report_limit 50

# TAG: www_document_root dir
# Where is your Web DocumentRoot
# Sarg will create sarg-php directory with some PHP modules:
# - sarg-squidguard-block.php - add urls from user reports to squidGuard DB
#
#www_document_root /var/www/html

# TAG: block_it module_url
# This tag allow you to pass urls from user reports to a cgi or php module,
# to be blocked by some Squid acl
#
# Eg.: block_it /sarg-php/sarg-block-it.php
# sarg-block-it is a php that will append a url to a flat file.
# You must change /var/www/html/sarg-php/sarg-block-it to point to your file
# in $filename variable, and chown to a httpd owner.
#
# sarg will pass http://module_url?url=url
#
#block_it none

# TAG: external_css_file path
# This tag allow internal sarg css override.
# Sarg use theses style classes:
# .body body class
# .info sarg information class, align=center
# .title title class, align=center
# .header header class, align:left
# .header2 header class, align:right
# .header3 header class, align:right
# .text text class, align:left
# .data table text class, align:right
# .data2 table text class, align:right, border colors
# .link link class
#
# There is a sample in /usr/local/sarg/etc/css.tpl
#
#external_css_file none

# TAG: user_authentication yes|no
# Allow user authentication in User Reports using .htaccess
# Parameters:
# AuthUserFile - where the user password file is
# AuthName - authentication realm. Eg "Members Only"
# AuthType - authenticaion type - basic
# Require - authorized users to see the report.
# %u - user report
#
# user_authentication no
# AuthUserFile /usr/local/sarg/passwd
# AuthName "SARG, Restricted Access"
# AuthType Basic
# Require user admin %u

# TAG: download_suffix "suffix,suffix,...,suffix"
# file suffix to be considered as "download" in Download report.
# Use 'none' to disable.
#
#download_suffix "zip,arj,bzip,gz,ace,doc,iso,adt,bin,cab,com,dot,drv$,lha,lzh,mdb,mso,ppt,rtf,src,shs,sys,exe,dll,mp3,avi,mpg,mpeg"

# TAG: ulimit n
# The maximum number of open file descriptors to avoid "Too many open files" error message.
# You need to run sarg as root to use ulimit tag.
# If you run sarg with a low privilege user, set to 'none' to disable ulimit
#
#ulimit 20000

# TAG: ntlm_user_format username|domainname+username
# NTLM users format.
#
#ntlm_user_format domainname+username

# TAG: realtime_refresh_time num sec
# How many time to auto refresh the realtime report
# 0 = disable
#
# realtime_refresh_time 3

# TAG: realtime_access_log_lines num
# How many last lines to get from access.log file
#
# realtime_access_log_lines 1000

# TAG: realtime_types: GET,PUT,CONNECT,ICP_QUERY,POST
# Which records must be in realtime report.
#
# realtime_types GET,PUT,CONNECT

# TAG: realtime_unauthenticated_records: ignore|show
# What to do with unauthenticated records in realtime report.
#
# realtime_unauthenticated_records: show

# TAG: byte_cost value no_cost_limit
# Cost per byte.
# Eg. byte_cost 0.01 100000000
# per byte cost = 0.01
# bytes with no cost = 100 Mb
# 0 = disable
#
# byte_cost 0.01 50000000

# TAG: squid24 on|off
# Compatilibity with squid version <= 2.4 when using emulate_http_log on
#
# squid24 off


Sarg-reports (this file) is a simple bash script written to automate the SARG (a powerful squid log analyzer) reports and log management.Sarg it self, provide to end user a generic interface to create reports based on squid access log (begin of log to current date).sarg-reports (this script) is useful because it allow you to easly create and manage Daily, Weekly and Monthly reports.

Soap buble theory


Because of to surface tension of the liquid we can create a soap bubble,as a sphere has the smallest possible surface area for a given volume.Soap decreasing strength to approximately one third the surface tension of pure water. Soap does not strengthen bubbles, it stabilizes them, via an action known as the Marangoni effect.

Everyone know shortest distance between 2 points is a straight line.What happen when we want to know the shortest distance between 3 or more points,that tells by soap bubble theory.The interior wall are formed b soap films intersects will create new vertices,new angles,new line and points.The Steiner tree which revels most efficient line of travel.Given a set of points in the Euclidean plane, a Steiner tree (see Figure 1) is a collection of line segments of minimum total length connecting the points, where the segments can meet at vertices (called Steiner vertices) other than the pegs themselves.
When two bubbles merge,the bubbles will adopt the shape with the smallest possible surface area. Their common wall will bulge into the larger bubble, as smaller bubbles have a higher internal pressure.If the bubbles are of equal size, the wall will be flat.
At a point where three or more bubbles meet, they sort themselves out so that only three bubble walls meet along a line. Since the surface tension is the same in each of the three surfaces, the three angles between them must be equal angles of 120°.

Monday, February 4, 2008

SMS messages

An SMS center (SMSC) is responsible for handling the SMS operations of a wireless network. When an SMS message is sent from a mobile phone, it will reach an SMS center first. The SMS center then forwards the SMS message towards the destination.If the recipient is unavailable (for example, when the mobile phone is switched off), the SMSC will store the SMS message. It will forward the SMS message when the recipient is available.It is possible to specify the period after which the SMS message will be deleted from the SMS center so that the SMS message will not be forwarded to the recipient mobile phone when it becomes online. This period is called the validity period.

We must sepecify the address of the wireless network operator's SMSC to use SMS messaging with our mobile phone. Typically an SMSC address is an ordinary phone number in the international format.Normally, the SMSC address is pre-set in the SIM card by the wireless network operator.In Sri lanka for Dialog +9477000003 and for mobitel +9471000003.

If we want to know whether an SMS message has reached the recipient mobile phone successfully or not.We must set a flag in the SMS message to notify the SMS center that we want a status report about the delivery of this SMS message. The status report is sent to us in the form of an SMS message(error or failure e.g. incorrect SMS message format, busy SMS center, etc).

If the mobile phone does not receive the message submission report after a period of time, it concludes that the message submission report has been lost. The mobile phone may then re-send the SMS message to the SMS center. A flag will be set in the new SMS message to inform the SMS center that this SMS message has been sent before. If the previous message submission was successful, the SMS center will ignore the new SMS message but send back a message submission report to the mobile phone. This mechanism prevents the sending of the same SMS message to the recipient multiple times.

After receiving an SMS message, the recipient mobile phone will send back a message delivery report to the SMS center to inform whether there is any error or failure (example causes: unsupported SMS message format, not enough storage space, etc). This process is transparent to the mobile user. If there is no error or failure, the recipient mobile phone sends back a positive delivery report to the SMS center. Otherwise it sends back a negative delivery report to the SMS center.

If the sender requested a status report earlier, the SMS center sends a status report to the sender when it receives the message delivery report from the recipient.If the SMS center does not receive the message delivery report after a period of time, it concludes that the message delivery report has been lost. The SMS center then re-sends the SMS message to the recipient.

Transmission Process of Intra-operator SMS Messages


Transmission Process of Inter-operator SMS Messages

When the originator SMS center receives an inter-operator SMS message, it gets the routing information from the recipient wireless network and delivers the SMS message to the recipient mobile phone directly.This can be used if the two wireless networks involved in the transmission of the inter-operator SMS message are based on similar technologies.


when an SMS message is sent from a GSM network to a CDMA network(if two networks are different).The originator SMS center and the recipient SMS center are interconnected through an SMS gateway or with a communication protocol that is supported by both SMS centers.The recipient SMS center will be responsible for sending the SMS message to the recipient mobile phone and storing the SMS message if the recipient mobile phone is offline.

Thursday, January 31, 2008

Asterisk Installation

I install an Asterisk PBX from source code on a newly installed Debian system.I am using Debian Etch (4.0) . login as root during the whole process in order to complete all installations properly.

upgrade the system to the latest package versions:
# apt-get update
# apt-get dist-upgrade

To make things install properly, please install the following packages:
# apt-get install acpid \
apache2 \
apache2.2-common \
apache2-mpm-prefork \
apache2-utils \
bison \
bzip2 \
doxygen \
festival \
festival-dev \
gcc \
graphviz \
gsfonts \
less \
libapache2-mod-php5 \
libcurl3 \
libcurl3-dev \
libdbd-mysql-perl \
libedit2 \
libedit-dev \
libeditline0 \
libeditline-dev \
libgcrypt11 \
libmcrypt4 \
libmcrypt-dev \
libmhash2 \
libmysqlclient15-dev \
libmysqlclient15off \
libncurses5 \
libncurses5-dev \
libnewt0.52 \
libnewt-dev \
libspeex1 \
libspeex-dev \
libssl0.9.7 \
libssl-dev \
linux-headers-2.6-686 \
linux-image-2.6-686 \
lrzsz \
make \
mc \
mcrypt \
mysql-server \
ngrep \
openssh-server \
openssl \
patch \
php5-cgi \
php5-cli \
php5-common \
php5-gd \
php5-mcrypt \
php5-mysql \
phpmyadmin \
php-pear \
tofrodos \
zlib1g-dev
Download

We now continue to download the recent sources to "/var/download" and unpack them to "/usr/src"

Compile and Install

ZapTel

The first package I have to install is zaptel. Zaptel is a collection of kernel drivers and configuration utilities for Digium hardware such as analog and digital telephony interface cards. Zaptel also offers the ztdummy kernel module which allows you to run Asterisk without any telephony hardware, it makes use of the kernel realtime clock (RTC) interface. This has to be used when using Asterisk installations with multiple concurrent calls.

LibPri

LibPri is a mandatory library, Asterisk makes use of when taking to telephony hardware or timing interfaces, even if it is the ztdummy interface.

Asterisk

This is the Asterisk software itself, I build and install it with the following commands


Asterisk-AddOns

The Asterisk-addons are needed to
- offer MySQL storage of CDRs
- enable ARA (Asterisk Realtime Architecture) to store SIP and IAX users/peers in MySQL
- enabling MP3 format in soundfiles and voicemail

Installation of Asterisk GUI

In order to install "Asterisk GUI" you'll need:
Concurrent Versions System (CVS)
asterisk 1.4 - and all modules needed to compile and install asterisk 1.4

Go to your installation directory (for example '/usr/src') and download the latest version of asterisk-gui. To do this just execute the command:
svn checkout http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui

Enter this directory and compile the sources by executing the command `make`
Then distribute the compiled code by executing the command `make install`. With this step you will finish the installation of the asterisk-gui.

Configuration

It is recommended to back up your configuration files before you continue. To achieve this just copy /etc/asterisk under different name:
cp -r /etc/asterisk /etc/asterisk.backup
It is recommended to `install samples`. This command will modify some of your Asterisk configuration files. After that you'll have finish the configuration modification manually.

There are two files which you should modify:
`manager.conf`
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
httptimeout = 60
bindaddr = 0.0.0.0

We will have to add a new user to `manager.conf`:
[administrator]
secret = pubudu
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config


`http.conf`
enabled=yes
enablestatic=yes
bindaddr=0.0.0.0
bindport=8088

After that run `make checkconfig` in your asterisk-gui directory. This script will check if your GUI is correctly configured.

Running asterisk-gui

In order to load the asterisk-gui, asterisk must restart/reload. You can reload your Asterisk server from your CLI console by executing the command `reload`. You can use asterisk-gui from these addresses (10.100.100.75 is our Asterisk server IP address):
http://10.100.100.75:8088/asterisk/static/config/cfgbasic.html
http://10.100.100.75:8088/asterisk/static/config/cfgadvanced.html