Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Wednesday, April 25, 2007

Ubuntu Performance Guides

Here is the list of resources that can be used to improve performance on your Ubuntu operating system.

1) Hacking Ubuntu to Improve Performance - This article includes various hacks to boost Ubuntu’s performance, such as viewing running processes, identifying resources, finding process startups, tuning kernel parameters, and speeding up boot time.


2) Ultimate Ubuntu performance tweaking guide - Detailed step by step instructions on what to do in order to improve performance on your system.


3) Improve Ubuntu Performance - This is an index of threads posted on ubuntuforums.org on how to get the best performance out of your Ubuntu machine.


4) Optimizing Desktop Performance - Skip to the section titled Ubuntu Services for Performance Tuning to find some performance tips. Excellent article series covering performance techniques on major flavors of Linux.


5) Feisty performance - Fly like a butterfly - A collection of settings used to tune the speed and performance of Kubuntu/Ubuntu Feisty.


6) Only Ubuntu Linux - Performance tip for Ubuntu Edgy and Feisty users by simply editing your /etc/hosts file.


7) Desktop performance tweaks - Here are a couple of performance tweaks that are nice for desktops/laptops. These tweaks are relatively easy to perform and reasonable safe. Everything you do is on your own risk.


8) Improve Performance in Ubuntu Edgy - Tricks and hacks on how to improve the overall performance of your system.


9) Ubuntu: 32-bit v. 64-bit Performance - Not specific to system tweaking but a nice article comparing performance on a 32-bit vs. a 64-bit server.


10) Best Ubuntu Guide Ever - This guide has everything you need.


11) Tweak ubuntu for speed - These tweaks will make your system faster and more responsive without a doubt. Read on to perform the tweaks and enjoy your faster system.


12) Ubuntu Customization Guide - About customization, we’re gonna make Ubuntu look and feel the way you want.


13) Local DNS Cache for Faster Browsing - Nice article explaining how to use DNS caching to speed up internet browsing on your Ubuntu install.


14) Super Fast Internet for Ubuntu - Basically you disable ipV6 which apparently conflicts with ipV4. Good post.


15) Ubuntu/Linux Roundup - Good collection of links/articles for Ubuntu users.


16) Ten tips for new Ubuntu users - Here’s a list of tips that might save you some time while you’re getting used to Ubuntu.


17) 10 most popular Ubuntu sites on the net - You should definitely visit these top 10 sites which have a wealth of information on using and troubleshooting in Ubuntu.

Sunday, April 22, 2007

13 Things to do immediately after installing Ubuntu

1. Enabling/Adding Extra Repositories
Ubuntu comes by default with only some of the repositories enabled because of licensing issue since downloading certain codecs and apps may be illegal in some countries so you have to enable these repositories/add new repositories to enable installation of these packages.

To enable new repositories go to (System -> Administration -> Synaptic Package Manager ) , type in the root password .Then Go to (Settings -> Repositories ), there enable all the check-boxes to enable all the repositories you need .

Also for installing some apps extra repositories are needed since they are not in the default repositories so go to third Party and add the following there


deb http://ntfs-3g.sitesweetsite.info/ubuntu/ edgy main main-all
deb http://flomertens.keo.in/ubuntu/ edgy main main-all

This repositories below is for Multimedia files and stuff above was for ntfs-3g you can use any one of the above since they are mirrors.

deb http://mirror.ubuntulinux.nl edgy-seveas all

IMPORTANT: Do not press reload button now in synaptic package manager type first following command in the terminal to install the GPG keys.

After doing this exit Synaptic Package Manager go to (Applications > Accessories > Terminal) and type the following command to import GPG keys .

wget http://flomertens.keo.in/ubuntu/givre_key.asc -O- | sudo apt-key add -

wget http://mirror.ubuntulinux.nl/1135D466.gpg -O- | sudo apt-key add -



After doing this your system should be ready for installing extra application. Type the

sudo apt-get update
sudo apt-get upgrade


at terminal to start adding data from the repositories.

2. Installing ntfs-3g

ntfs-3g this is necessary if you have a ntfs drive in your computer ( Usually Windows XP installs on NTFS drive) and you want to read and write data to the drive you have to install this .

This can be installed as following type the following at the command prompt

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ntfs-3g

Then type the following command

gksu ntfs-config

This is automatic configuration of ntfs-3g , enable read , write support and it should be configured.

these commands would back up fstab file if configuration goes wrong.

sudo cp /etc/fstab /etc/fstab.bak
gksu gedit /etc/fstab


Now one more thing you want your windows (NTFS) drive to be mounted automatically add the following entries to /etc/fstab

/dev/
/media/ ntfs-3g defaults,locale=en_US.utf8 0 0

Where /dev/partition is the partition which is NTFS drive , in my case /dev/hda1
/media/ this is just the directory you want to use as a mount point where windows drive would be mounted , you can very well use any drive you like.

now Restart ubuntu your windows partition should be working well.

3. Making Windows see your Linux partition

Windows XP lacks support for reading and writing files to Linux file system however external utilities like free Ext2 File system for windows allows Windows XP to read and write files to a Ext2 , Ext3 file system however ReiserFS file system is not supported .

You can get Ext2 file system for windows at the following link : -
(http://www.fs-driver.org/download.html)

4. Installing flash-plugin

Macromedia Flash player is not installed by default but since we would be surely needing it while browing the net , installing it is necessary
it can be installed by following command

sudo apt-get install -y flashplugin-nonfree

5. Installing Microsoft True Type Fonts

If you are making a jump from windows to ubuntu you would surely miss the true type fonts that Windows uses , since Microsoft has released them free so they can be installed without a hitch in ubuntu (Though not distributed with Ubuntu) .

sudo apt-get install -y msttcorefonts

6. Installing unrar

RAR is one of the very widely used archives on Windows , however unrar tool to decompress RAR is not shipped with distribution and has ti be installed manually.

sudo apt-get -y install unrar 

7. Installing mpg123

mpg123 is a very nice command line based mp3 player that can play mp3 files even on a slow processor based computer , further installing this provides a way of playing mp3 files from within the nautilus file manager . Hence i recommend installing mpg123

sudo apt-get install -y mpg123

8. Installing Adobe Reader

Though ubuntu comes with default evince reader for viewing pdf files , but i am sure you would like to use more complete version of pdf reader Adobe Reader 7.0 which is quiet professional and
more robust , the Linux version of Adobe Reader 8.0 has not been released but the version 7.0 is available and could be downloaded from the following website : -

http://www.adobe.com/support/downloads/product.jsp?product=10&platform=unix

9. Installing DVD playback support

Now this is a contentious issue , in some countries playing DVD files through DEcss is illegal so use it at your own will , anyways to enable dvd playback issue the following command at the command line : -

sudo aptitude install libdvdcss2

Note : the above commands would only work if you have added the repositories i had mentioned before the Seveas repositories.

However if you do not have these Repositories installed issue the following command to install the DVD playback support : -

sudo /usr/share/doc/libdvdread3/./install-css.sh

10 . Installing the extra multimedia codecs,players

Now you would surely want to install all the codecs for playing various media files and the players primarily xine,vlc,mplayer issue the following commands to install the multimedia codecs.

sudo apt-get install gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-gl gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse libxine-extracodecs w32codecs
vlc mplayer

This command would install most of the codecs for gstreamer multimedia architecture and vlc media player and Mplayer , as well as the dll files codec (w32codecs) for decoding various files whoose open source decoder are not available.

11. Updating the system

After installing Ubuntu you would surely like to update the system so that all the packages on the system are up to date to new version of the software .
It can be done by following steps , go to (System > Administration > Update Manager)
Now press the Check button and then Install updates to start the installation of updates to the ubuntu system.


12 . Installing beagle

Now Ubuntu does not come with beagle pre-installed maybe because it is still not a final 1.0 release still it is very nice and efficient for searching files and directories on Linux providing features similar to Google Desktop Search and Mac OS Spotlight anyways to install beagle issue the following command at command line :

sudo apt-get install -y beagle


13. Installing gdesklets

gdesklets gives user a collection of impressive widgets that can be placed on desktop this is similar to feature available on Windows Vista and Mac OS X , it does provide quite a good look to the desktop.

To install gdesklets issue the following command at the command line

sudo apt-get install -y gdesklets

after installation go to (System -> Preferences -> Sessions) There go to Start up program and add gdesklets shell , now every time gnome loads up you should see your gdesklets on the desktop.

This is how my desktop looked like with all the desklets (Widgets )

Late additions:-
If you find above steps complicated and would like to do it simple way try EasyUbuntu described below , since Automatix have not been well received by Ubuntu Developers and is somehwhat similar in features to EasyUbuntu i am describing EasyUbuntu only.

EasyUbuntu is a community maintained script that provides a easy way of installing most of the codecs , applications ,tweaks not included in official ubuntu installation. Initially there were fears that attracted a lot of negative publicity to the EasyUbuntu script that is it forces application installations and modifies systems sources.list however according to official EasyUbuntu website these problems have been corrected .

Some of the packages it installs include following : -
(Note : taken from official EasyUbuntu Website )

Multimedia

  • Enhance video player: Install a better multimedia backend (totem-xine replace totem-gstreamer)
  • Free Codecs: Add Support for playing mp3 and other non-free formats
  • Binary Codecs: Add support for proprietary video and audio formats (w32codecs) (only x86)
  • libdvdcss: Read commercial and encrypted DVDs
  • MIDI: Add support for playing midi files

Web

  • Flash: Enable the Macromedia Flash plugin (only x86)
  • Java: Enable the Java plugin (Sun Java for x86, amd64) (IBM java for ppc)
  • Videos: Enable viewing videos embedded in webpages

Archives

  • RAR: extract and create RAR archives
  • ACE: extract ACE archives
  • 7-Zip: Extract 7-Zip archives

System

  • Repository list: Main, Universe, Multiverse and PLF (replace your previous sources.list)
  • Fonts: Install Microsoft and other nice fonts
  • DMA: Enable Direct Memory Access to improve DVD reading (breezy)
  • Nvidia: install the official driver to enable 3D on Nvidia graphics cards
  • ATI: install the official driver to enable 3D on ATI graphics cards

Voice Over IP

  • Wengo: a free Voice Over IP software (available in dapper)
  • Skype: the most popular VoIP software (only x86)

Installation : -

To install EasyUbuntu first download the Ubuntu package from the following link:

http://easyubuntu.freecontrib.org/files/easyubuntu_latest.deb

now go to (Application -> Accessories -> Terminal) and go to the directory where you have downloaded the debian package of EasyUbuntu and issue the following command to install EasyUbuntu : -

sudo dpkg -i easyubuntu_latest.deb

after completeion of the above process issue the following command in terminal

sudo wget -q http://medibuntu.sos-sts.com/repo/medibuntu-key.gpg -O- | sudo apt-key add -

Now EasyUbuntu should be set up for installation of packages .

Go to (Applications -> System tools -> EasyUbuntu ) to launch EasyUbuntu , beyond this the applications interface is quite easy for beginner and one can easily install packages without much help.

Automatix is another community maintained script , similar to EasyUbuntu simplifies the installation of the commonly used codec(Mp3,Video formats, Flash 9 and more ),applications(like Google Earth,Picassa,VMWare Player and more) there has been both positive and negative things said about Automatix , personally i have not used it but i have heard a lot more positives than negatives in using Automatix ,However German version (not officially supported by the Automatix team) has some serious issues currently: removes its own files instead of using the packaging system. uses apt-get –force and –assume-yes anyways some of the programs and is not officially supported by Automatix team.

However Automatix has received some serious comments from Ubuntu Community which have criticized it since it makes Upgrading Ubuntu difficult since it adds it own repos.

Tweak ubuntu for speed

Description

You want your Ubuntu desktop to be more responsive? It will take less than a half hour to perform all these tweaks. These tweaks will make your system faster and more responsive without a doubt. Read on to perform the tweaks and enjoy your faster system.

From what I understand these tweaks will work with all forms of Linux. They are not Ubunut Specific. I have only tried them on Ubuntu though, so if you use them on other Linux Distro’s you do at your own risk.

Speed up your File System

About

Ubuntu Linux, unless you have set it up otherwise, uses the EXT3 system by default. It’s a pretty good system. There are 3 journaling methods for EXT3 system.

  • Journal Data Writeback
  • Journal Data Ordered
  • Journal Data

By default Ubuntu chooses “journal data ordered”. In data=ordered mode, ext3 only officially journals metadata, but it logically groups metadata and data blocks into a single unit called a transaction. When it’s time to write the new metadata out to disk, the associated data blocks are written first. data=ordered mode effectively solves the corruption problem found in data=writeback mode and most other journaled filesystems, and it does so without requiring full data journaling. In general, data=ordered ext3 filesystems perform slightly slower than data=writeback filesystems, but significantly faster than their full data journaling counterparts.

To speed it up, we are going to change it to the data=writeback system.

Tweak

  • Open your Grub boot menu.
sudo nano -w /boot/grub/menu.lst
  • Look for the Defoptions and Altoptions and make them look like the entry below.
# defoptions=quiet splash rootflags=data=writeback
# altoptions=(recovery mode) single rootflags=data=writeback
  • You need to update your Grub since you have altered it.
sudo update-grub
  • Now we are going to edit the Fstab because it will be expecting these options.
sudo nano -w /etc/fstab
  • Now you are going to want to add the (data=writeback and noatime=0) flags to your hard drive. It might be a little confusing because of the new naming system. Look for the (,errors=remount-ro) and add it afterwards to make it look like our example.
defaults,errors=remount-ro,data=writeback,noatime 0
  • Now you tell your system to use them both.
sudo tune2fs -o journal_data_writeback /dev/yourdrive

And you’re done.

Concurrent Booting

About

Concurrent booting allows Ubuntu to take advantage of dual-core processors, as well as processors that hyperthread or multithread or what ever the different companies call it now.

Tweak

  • These settings are located in your /etc/init.d/rc file. Lets open it up.
sudo gedit /etc/init.d/rc
  • Look through the file and you will find CONCURRENCY=none. You want to change it to:
CONCURRENCY=shell

And you’re done.

Swapping

About

Swappiness takes a value between 0 and 100 to change the balance between swapping applications and freeing cache. At 100, the kernel will always prefer to find inactive pages and swap them out; in other cases, whether a swapout occurs depends on how much application memory is in use and how poorly the cache is doing at finding and releasing inactive items.

The default swappiness is 60. A value of 0 gives something close to the old behavior where applications that wanted memory could shrink the cache to a tiny fraction of RAM. For laptops which would prefer to let their disk spin down, a value of 20 or less is recommended.

Tweak

  • First we have to gain access to your /etc/sysctl.conf file.
sudo gedit /etc/sysctl.conf
  • Just scroll to the bottom of the page and add the tag listed below. The number you want depends on how much ram you have and what you do with your system. Please read the about above this to make your decision. I have mine set to 0 on a dual core laptop with 1 gig of ram and have seen no issues and a good performance gain.
vm.swappiness=0

And you’re done.

Broadband Internet

About

These are various tweaks taken from various places. Here is an article that explains them all if you would like to read it in depth. http://www.santa-li.com/linuxonbb.html

Tweak

  • You have to open your /etc/sysctl.conf file back up again.
sudo gedit /etc/sysctl.conf
  • Then again, scroll to the bottom and just add these lines to it.
net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_wmem = 4096 87380 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_mem = 524288 524288 524288
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1
  • You have to reset your sysctl for these to take effect.
sudo sysctl -p

And you’re done.

IPv6

About

IPv6 is an internet protocol. Most of your software uses IPv4 though and it causes conflicts.

Tweak

  • We are going to create a file. Paste this into a terminal.
sudo gedit /etc/modprobe.d/bad_list
  • Then paste this into the file and save and exit the file.
alias net-pf-10 off

And you’re done.

Boot Profile

About

You have just made a lot of changes to your system. Re profiling your boot will reorganize it and make it faster on boots afterwards.

Tweak

  • Reboot your PC.
  • When you come to your grub list, hit escape to see your grub menu.
  • Edit the topmost line and add the word below to the end of it.
profile
  • Then just reboot the system.

Now you are done and you can enjoy your faster Ubuntu System.

74 Open Source VoIP Apps & Resources

When a body of independent auditors and experts recommended that the State of California consider open-source software and voice over Internet Protocol telephony (VoIP) as two measures to cut costs in 2004, that was the signal that open source and VoIP should unite. After all, what’s better than free software? Open source is better, because you have access to the code. What’s better than open source? Open source that’s focused on VoIP. That’s what you get here — 74 open source apps tucked into categories that you can use “as is” or change to fit your specific VoIP needs.The following apps and resources are categorized by SIP, H.323, IAX, and RTP protocols and include clients, libraries, gatekeepers, and any other open source resource available for those specific protocols plus PBX and IVR platforms. You’ll also find tools like faxware, voicemail apps, and middleware that applies to one or more of the previously mentioned protocols.

H.323 Clients (User Agents)

VoIP traditionally uses H.323, a rather complicated protocol that uses multiple ports and a binary code for data. But apps like FreeSWITCH make H.323 seem like a piece of cake with its all-in-one application. The following H.323 clients are broken down into Multiplatform, Linux, MacOS X, and Windows.

Multiplatform

  1. FreeSWITCH - FreeSWITCH is a telephony platform designed to facilitate the creation of voice and chat driven products scaling from a soft-phone up to a soft-switch. It can be used as a simple switching engine, a media gateway or a media server to host IVR applications using simple scripts or XML to control the callflow. FreeSWITCH runs on several operating systems including Windows, Max OS X, Linux, BSD, and Solaris on both 32- and 64- bit platforms. Note: FreeSWITCH is also multiprotocol, as it works with SIP, IAX2 and GoogleTalk to make it easy to interface with other open source PBX systems.
  2. YATE - Yate (Yet Another Telephony Engine) is a next-generation telephony engine that is the first open source telephony application capable of handling 600 H323 calls; while currently focused on Voice over Internet Protocol (VoIP) and PSTN, its power lies in its ability to be easily extended. Voice, video, data and instant messaging can all be unified under Yate’s flexible routing engine, maximizing communications efficiency and minimizing infrastructure costs for businesses. YATE can be used for anything from a VoIP server to an IVR engine. The software is written in C++ and it supports scripting in various programming languages (such as those supported by the currently implemented embedded PHP, Python and Perl interpreters) and even any Unix shell. Note: YATE is multiprotocol, as it works with SIP and IAX, and H.323 protocol is stable supported just by Yate. The most used application of Yate is as a SIP-H323 translator because is the only open source stable translator.

Linux

  1. Ekiga - Ekiga (formely known as GnomeMeeting) is an open source VoIP and video conferencing application for GNOME. Note: Ekiga uses both the H.323 and SIP protocols. It supports many audio and video codecs, and is interoperable with other SIP compliant software and also with Microsoft NetMeeting.

MacOS X

  1. XMeeting - XMeeting is the first H.323 compatible video conferencing client for Mac OS X.

Windows

  1. OpenH323 Project - The OpenH323 project aims to create a full featured, interoperable implementation of the ITU-T H.323 teleconferencing protocol that can be used by personal developers and by commercial users without charge.

H.323 Gatekeeper

  1. OpenH323 Gatekeeper - The GNU Gatekeeper (GnuGk) is a full featured cross-platform H.323 gatekeeper, available freely under GPL license.

H.232 Radius Platform

  1. BSDRadius - While there are quite large number of Radius servers (including free) available in the world, little number of them (if any) are developed with VoIP specific needs in mind. BSDRadius is a RADIUS - compliant AAA (Authentication, Authorization, Accounting) server with CHAP-password authentication for H.323. Platform-independent, but has not been tested on Windows.

SIP Clients (User Agents)

SIP (Session Initiation Protocol) is currently described by the rfc2543SIP is a popular open standard replacement from IETF (Internet Engineering TasForce) for H.323 signaling standard for managing multimedia session initiation. SIP can be used to initiate voice, video and multimedia sessions, for both interactive applications (e.g. an IP phone call or a videoconference) and not interactive ones (e.g. a Video Streaming). It is the more promising candidate as call setup signaling for the present day and future IP based telephony services, as it has been also proposed for session initiation related uses, such as for messaging, gaming, etc.SIP needs two ports, one for the command exchange and one for the RTP stream which contains the voice. It’s easier to work with firewalls than H.323, but you still need to have a proxy running. The following SIP UAs are divided into two groups for Multiplatform and Linux only:

Multi-Platform

  1. SFLphone - A nifty little default skin (Metal Gear) for SFLphone holds a multi-protocol (SIP/IAX) multi-GUI desktop VoIP phone for use in Desktop environments. The project is being developed on Linux, but should (”and must”) be portable to various flavors of BSD operating systems (and maybe win32) with some involvement.
  2. Linphone - With linphone you can communicate freely with people over the internet, with voice, video, and text instant messaging. Linphone is stable under Linux, but FreeBSD and OpenBSD are reported to work.
  3. Minisip - Minisip was developed by Ph.D and Master students at the Royal Institute of Technology (KTH, Stockholm, Sweden). It can be used to make phone calls, instant message and videocalls to your buddies connected to the same SIP network. Runs on multiple Operating Systems (Linux PC, Linux familiar IPAQ PDA, Windows XP and soon Windows Mobile 2003 SE).
  4. OpenWengo - The flagship product of the OpenWengo project is a softphone which allows you to make free PC to PC video and voice calls, and to integrate all your IM contacts in one place. Through their partnership with Wengo, they also offer very cheap PC to telephone and SMS rates. Available for Linux, MacOSX, and Windows.
  5. PhoneGaim - Make phone calls to your friends and family directly from your Linspire computer with the latest software from Linspire. PhoneGaim is built right into Gaim.
  6. sipXtapi - sipXtapi is a comprehensive client library and software development kit (SDK) for SIP-based user agents. It includes SIP signaling support as well as a media framework. A complete and very feature rich softphone can be built easily by adding a graphical user interface on top of sipXtapi. Alternatively, sipXtapi was engineered to be embedded into existing applications adding real-time communications to such applications. sipXtapi is primarily developed under WIN32; however, sipXtapi can be built and used under Linux and MacOs X. WinCE support is in development.
  7. OpenZoep - OpenZoep (pronounced “open soup”), developed by Voipster, is a client-side telephony and instant messaging (IM) communications engine. It supports computer-to-computer (peer-to-peer) VoIP calls, instant messaging, and outbound PSTN and SIP calls to free and premium SIP providers.

Linux

  1. Cockatoo - Cockatoo is a project that focuses on implementing SIP/SIMPLE as an extension for Thunderbird (XPCOM component/XUL interface) that enables users to phone contacts from an address book and see their presence state. Functionalities are included into Thunderbird as an XPCOM component.
  2. YeaPhone - The goal of the YeaPhone project is to bring VoIP-Software together with the Yealink USB handset (USB-P1K) and at the same time make a PC keyboard and monitor unnecessary. This makes YeaPhone ideal for “Embedded Devices” as these do typically need extra devices for user interaction (in this case the handset) while working very energy efficient.
  3. Twinkle - Twinkle is a soft phone for your voice over IP communications using the SIP protocol. You can use it for direct IP phone to IP phone communication or in a network using a SIP proxy to route your calls.

Windows

  1. 1videoConference - 1VideoConference allows its Web, Audio/ Video phone, Skype, Msn and Yahoo users to instantly participate in live web conferences without the need for lengthy downloads or complicated installations. Simply drop a small piece of code onto your website and instantly create an online video conference room. All you need is a web cam and an internet connection and seconds later you can show presentations, share applications or users’ desktops, hold live webinars, discuss new strategies face to face with business partners, and more…

SIP Proxies

  1. Open Source SIP - Open Source SIP was created in March 2006 as a project to foster the development of commercially viable SIP applications. The Open Source SIP project is sponsored by Solegy, and draws on over six years of research and development.
  2. Partysip - Partysip is a modular application where some capabilities are added and removed through GPL plugins. Depending on the list of included plugins, partysip can be used as a SIP registrar, a SIP redirect server or statefull server, or a SIP service provider (game session, answering machine, etc.).
  3. MjSip - MjSip is a complete java-based implementation of a SIP stack that provides API and implementation bound together into one package. The MjSip stack has been used in research activities by Dpt. of Information Engineering at University of Parma and by DIE - University of Roma “Tor Vergata”. MjSip includes all classes and methods for creating SIP-based applications.
  4. OpenSER - OpenSER is an open source GPL project that aims to develop a robust and scalable SIP server. Spawned from FhG FOKUS SIP Express Router (SER) by two core developers and one main contributor of SER, OpenSER promotes a development strategy open for contributions.
  5. SIP Express Router - SIP Express Router (ser) is a high-performance, configurable, free SIP server. It can act as registrar, proxy or redirect server. SER features an application-server interface, presence support, SMS gateway, SIMPLE2Jabber gateway, RADIUS/syslog accounting and authorization, server status monitoring, FCP security, etc. Web-based user provisioning, serweb, available.
  6. Siproxd - Siprox is an proxy/masquerading daemon for the SIP protocol that handles registrations of SIP clients on a private IP network and performs rewriting of the SIP message bodies to make SIP connections possible via an masquerading firewall. It allows SIP clients (like kphone, linphone) to work behind an IP masquerading firewall or router.

SIP Protocol Stacks and Libraries

  1. OpenSIPStack - The OpenSIPStack Library is an implementation of the Session Initiation Protocol as described in RFC 3261. The primary goal of the library is to provide application developers with a fully compliant interface to the SIP protocol with scalability and stability in mind. The OpenSIPStack Library has both low level interface and high level interface ideal for use in SIP Proxies, Presence Servers, Softphones and Instant Messaging clients.
  2. The GNU oSIP Library - This library aims to provide multimedia and telecom software developers an easy and powerful interface to initiate and control SIP based sessions in their applications.
  3. The eXtended osip Library - eXosip is a library that hides the complexity of using the SIP protocol for mutlimedia session establishment. This protocol is mainly to be used by VoIP telephony applications (endpoints or conference server) but might be also usefull for any application that wish to establish sessions like multiplayer games.
  4. Vovida SIP Stack - The version is not supported on Win32 platforms, although some community members have shown interest in Windows port.
  5. reSIProcate - The reSIProcate project is part of the SIPfoundry community. The project aims at building a freely available, completely standards based and complete reference implementation of a SIP stack including an easy to use application layer API. The reSIProcate stack is currently used in several commercial products and is very stable.
  6. Twisted - Twisted Matrix Laboratories is a distributed group of open-source developers working on Twisted, an event-driven networking framework written in Python and licensed under the LGPL. Twisted supports TCP, UDP, SSL/TLS, multicast, Unix sockets, a large number of protocols (including HTTP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more.
  7. PJSIP - The PJSIP.ORG website is the home of PJSIP and PJMEDIA, the Open Source, high performance, small footprint SIP and media stack written in C language for building embedded/non-embedded VoIP applications. PJSIP is built on top of PJLIB, and since PJLIB is a very very portable library, basically PJSIP can run on any platforms where PJLIB are ported (including platforms where normally it would be hard to port existing programs to, such as Symbian and some custom OSes).

SIP Test Tools

The following tools basically test SIP applications and devices, but each one is different in how it tests the protocols and in their focuses and additional applications:

  1. Callflow - Callflow is a collection of awk and shell scripts that will capture a file that can be read by ethereal and that will produce a callflow sequence diagram. The scripts have been primarily tested with SIP call flows, but should work for other network traffic as well. You can view callflow.svg with the Adobe SVG plugin, or you can view index.html with any web browser. The Callflow directive is a clean little script complete with a “to-do” list that you can play with.
  2. SipBomber 0.8 - SipBomber is an invaluable sip-protocol testing tool for Linux originally developed by Metalink in 2003 for internal use. It was later released as a GPL open source product.
  3. SIP Proxy - With SIP Proxy you will have the opportunity to eavesdrop and manipulate SIP traffic. Furthermore, predefined security test cases can be executed to find weak spots in VoIP devices.
  4. sipsak - sipsak is a small command line tool for developers and administrators of Session Initiation Protocol (SIP) applications. It can be used for some simple tests on SIP applications and devices.
  5. SIPp - SIPp is a test tool / traffic generator for the SIP protocol. It includes a few basic SipStone user agent scenarios (UAC and UAS) and establishes and releases multiple calls with the INVITE and BYE methods. It can also reads custom XML scenario files describing from very simple to complex call flows. It features the dynamic display of statistics about running tests (call rate, round trip delay, and message statistics), periodic CSV statistics dumps, TCP and UDP over multiple socket or multiplexed with retransmission management and dynamically adjustable call rates.
  6. PROTOS Test-Suite: c07-sip - The purpose of this test-suite is to evaluate implementation level security and robustness of SIP implementations. The focus was set on a specific protocol data unit (PDU), namely INVITE message (a subset of SIP).
  7. Vovida.org Load Balancer - The Load Balancer is a very simple proxy that is useful in SIP-based VoIP installations where there are multiple ingress proxy servers. The Load Balancer permits pooling these servers, thereby eliminating the need to balance user demands for connectivity through a complicated provisioning algorithm. The Load Balancer adds itself to the Via header of requests to enable responses to return before being sent to orginating endpoint. This only works with SIP messages sent over UDP (User Datagram Protocol).

IAX Clients (User Agents)

The open source project Asterisk (see below in PBX platforms) implements a software based PBX (Private Branch Exchange), or a private telephone switch that provides switching (including a full set of switching features) for an office or campus. As an internal protocol to trunk two or more PBX servers, the IAX (Inter Asterisk Exchange) protocol was created. IAX is a lightweight app based on UDP and bundles call signalling and voice into one data stream. This streaming makes it perfectly suited for connection-based simple firewalls.

  1. IAXComm - iaxComm is a cross-platform application for the Asterisk PBX. It was developed on aWindows XP system.
  2. Kiax - Kiax is an IAX client application which allows PC users to make ordinary VoIP calls to Asterisk servers. It aims to provide a simple and user-friendly graphical interface and desktop integration for calling, contact list, call register management and easy configuration.
  3. QtIAX - QtIAX is based on iaxclient (see below), but files were stripped for a bare bones environment.
  4. MozIAX - MozIAX is a Firefox VoIP extension, a cross platform software IAX2 phone (softphone) to be used with Asterisk.
  5. YakaSoftware - YakaSoftware is the open source code behind the YakaPhone, a simple, Skinnable IAX/IAX2 Softphone from YakaSoftware.

IAX/PBX Library

  1. IAXClient - IAXClient is an Open Source library to implement the IAX protocol used by The Asterisk Software PBX. Although asterisk supports other VOIP protocols (including SIP, and with patches, H.323), IAX’s simple, lightweight nature gives it several advantages, particularly in that it can operate easily through NAT and packet firewalls, and it is easily extensible and simple to understand.

RTP Proxies

RTP, or Real-time transport protocol, is the Internet-standard protocol for the transport of real-time data, including audio and video. RTP is used in virtually all voice-over-IP architectures, for videoconferencing, media-on-demand, and other applications. A thin protocol, it supports content identification, timing reconstruction, and detection of lost packets.

  1. Maxim Sobolev’s RTPproxy - RTPproxy is a proxy for RTP streams that can help SER (SIP Express Router) handle NAT (Network Address Translation, defined in RFC 1631) situations, as well as proxy IP telephony between IPv4 and IPv6 networks. The code has been extensively tested on FreeBSD, Linux, MacOS and Solaris. It should be relatively easy to port it to any system which has a POSIX layer.

RTP Protocol Stacks

  1. JRTPLIB - JRTPLIB is an object-oriented RTP library written in C++. The library offers support for the Real-time Transport Protocol (RTP), defined in RFC 3550. It makes it very easy to send and receive RTP packets and the RTCP (RTP Control Protocol) functions are handled entirely internally. The latest version of the library is 3.7.0 (January 2007).
  2. oRTP - oRTP is a Real-time Transport Protocol (RFC3550) stack under LGPL. Written in C, works under Linux (and probably any Unix) and Windows.
  3. GNU ccRTP - ccRTP is a C++ library based on GNU Common C++ which provides a high performance, flexible and extensible standards-compliant RTP stack with full RTCP support. The design and implementation of ccRTP make it suitable for high capacity servers and gateways as well as personal client applications.
  4. Vovida RTP Stack - Vovida RTP is augmented by a control protocal (RTCP) to monitor data delivery and network statistics. Together they resolve of many of the problems a UDP network enviroment may experience, such as lost packets, jitter, and out of sequence packets.
  5. RTPlib - This library, offered by Bell Labs, is based on the most recent version of the specification, incorporating some of the newest features, including RTCP scalability algorithms.

PBX Platforms

  1. Asterisk - Asterisk is a popular and extensible open source telephone that offers flexibility, functionality and features not available in advanced, high-end (high-cost) proprietary business systems. Asterisk is a complete IP PBX (private branch exchange) for businesses that runs on Linux, BSD, Windows and OS X and provides all of the features you would expect from a PBX and more. It has support for three-way calling, caller ID services, ADSI, IAX, SIP, H.323 (as both client and gateway), MGCP (call manager only) and SCCP/Skinny.
  2. OpenPBX.org 1.2 RC3 - This release includes the highly anticipated and robust new conference bridge application called NConference. OpenPBX.org RC2 is now generally available as a tarball that includes the ability to run on several BSDs as well as MacOS X. Both are forks of Asterisk with T.38 termination.
  3. Open Source Software PBX - Open Source PBX developed using Perl. OpenPBX.org will be stable, featureful, easy to use, and easy to deploy on a range of operating systems.
  4. PBX4Linux - PBX4Linux is an ISDN PBX which interconnects ISDN telephones, ISDN lines, and a H.323 gateway. This is a pure software solution except for the ISDN cards and telephones, as it connects to a Linux box. The great benefit is the NT-mode that allows to connect telephones to an ISDN card.
  5. SIPxchange - An enterprise-grade SIP PBX, SIP call manager and router, and SIP Softphone based on 100% SIP and 100% open source software. Produced by Pingtel, SIPxchange product suite runs on commodity server hardware using the Linux operating system, supports a large variety of IP phones and gateways, and seamlessly interoperates with legacy components.
  6. sipX - sipX is a modular server based solution that runs on standard Linux complete with voice mail and auto-attendant. Alternatively, sipX can be used as a high performance Enterprise toll-bypass SIP router. It combines all common calling features, XML-based SIP call routing, voice mail and auto-attendant, Web-based configuration, as well as integrated management and configuration of the PBX and attached phones and gateways. sipX does not require any additional hardware as it interoperates with any SIP compliant gateway, phone or application.

IVR Platforms

  1. GNU Bayonne - GNU Bayonne 2 was developed starting in 2005, with a special focus on SIP. GNU Bayonne is an integral part of GNU Telephony that offers free, scalable, media independent software environment for development and deployment of telephony solutions for use with current and next generation telephone networks.
  2. CT Server - A client/server library for rapid Computer Telephony (CT) application development in Perl. It uses Voicetronix hardware, and runs under Linux. Supports OpenSwitch cards for building PC PBXes.

Voicemail Apps

  1. lintad - Linux Telephone Answering Device (lintad) is a fax and voicemail application. Lintad uses a softmodem as a soundcard attached to the phoneline to play greetings and record messages. Messages and faxes are made available to browersers via Apache and PHP.
  2. Linux Voicemail/OpenUMS - The purpose of this project is to create an open source voicemail/unified messaging system that runs on Linux that has the ability to integrate with business telephone systems.
  3. VOCP System - VOCP is a complete messaging solution for voice modems, with voicemail, fax, email pager, DTMF command shell and Text-to-Speech support, 3 GUIs and a web interface. Send and receive faxes and voicemail, listen to emails and execute programs on the host.
  4. OpenVXI - The Open VXI VoiceXML interpreter is a portable open source library that interprets the VoiceXML dialog markup language. It is designed to serve as a reference for parties interested in understanding how VoiceXML markup might be executed.

Speech Software

  1. The Festival Speech Synthesis System - Festival offers a general framework for building speech synthesis systems as well as including examples of various modules. As a whole it offers full text to speech through a number APIs: from shell level, though a Scheme command interpreter, as a C++ library, from Java, and an Emacs interface. Festival is multi-lingual (currently English (British and American), and Spanish) though English is the most advanced. The system is written in C++ and uses the Edinburgh Speech Tools Library for low level architecture and has a Scheme (SIOD) based command interpreter for control. Documentation is given in the FSF texinfo format which can generate, a printed manual, info files and HTML.
  2. OpenSALT - SALT (Speech Application Language Tags) is a lighweight markup language that integrates speech services into standard markup languages such as HTML. SALT supports the authoring of multi-modal dialogs as well as voice-only dialogs and is suitable for the development of applications across desktop and telephony platforms. SALT is defined through the efforts of the SALT Forum, of which Carnegie Mellon is a contributor. The OpenSALT project makes available a SALT 1.0 compliant open-source browser based on the open source Mozilla web browser and make use of open source Sphinx recognition and Festival synthesis software. Their first Windows release is available for download. A Linux version will follow when a fully featured Windows version is complete. They will subsequently focus on developing a version suitable for mobile devices and a version for telephony-based systems.
  3. CMU Sphinx Projects - The packages that the CMU Sphinx Group is releasing are a set of reasonably mature, world-class speech components that provide a basic level of technology to anyone interested in creating speech-using applications without the once-prohibitive initial investment cost in research and development; the same components are open to peer review by all researchers in the field, and are used for linguistic research as well.

Fax Servers

  1. HylaFAX - HylaFAX is an enterprise-class system for sending and receiving facsimiles as well as for sending alpha-numeric pages. The software is designed around a client-server architecture. Fax modems may reside on a single machine on a network and clients can submit an outbound job from any other machine on the network. Client software is designed to be lightweight and easy to port.
  2. AstFax - AstFax provides an outgoing email to fax gateway for the Asterisk PBX package. Incoming fax to email can also be configured so your Asterisk server can act as both an outgoing and incoming fax server.

Development Stacks

  1. OpenSS7 - OpenSS7 provides a robust and GPL’ed SS7, SIGTRAN, ISDN and VoIP stack for Linux and other UN*X operating systems.
  2. ooh323c - Objective Systems Open H.323 for C (ooh323c) is a simple H.323 protocol stack developed in C. The ASN.1 PER messaging code was developed using the ASN1C compiler using a modified version of our core run-time libraries. Additional open source components as well as code developed in-house were added to produce a functioning stack. The goal is to produce a reusable framework that contains the signaling logic to allow channels to be created and terminated for different H.323 applications. ooH323c is now included as an add-on to the Asterisk open source PBX.
  3. ++Skype Library - ++Skype library is a new, modern way to develop platform independent Skype add-on software. The ++Skype is a C++ library of thoroughly designed classes that can help you to build platform-independent add-on software. Be sure to read the documentation, as this software requires several tools and libraries not included in this article.
  4. OpenBloX™ - The OpenBloX™ framework is an Open Source set of directories and files, implementing in a whole or part of the 3GPP and 3GPP2 Diameter specifications. The package contain at minimum the Diameter base protocol as described by IETF RFC 3588 and any extensions provided to support upper layers as specified by the 3GPP specifications, such as Rx, Gx, Ro, Cx, Sh and other 3GPP defined interfaces.

Middleware

  1. MobiCent - Mobicents is the first and only open source VoIP Platform certified for JSLEE 1.0 compliance. Mobicents brings to telecom applications a robust component model and execution environment. It compliments J2EE to enable convergence of voice, video and data in next generation intelligent applications.
  2. Ernie - Software application that integrates Web 2.0 design principals with next generation communications technologies, including VoIP, presence and web languages such as Python. LAMP developers are Ernie’s primary users.
  3. SIP Thor - SIP Thor is based on P2PSIP technology that enables scalability with no single point of failure. SIP Thor is based on P2PSIP, a set of technologies that combines exiting IETF standards like SIP, DNS and ENUM with Peer-To-Peer techniques like distributed hash tables (DHT).

10 Must Have Linux Applications

In the wild wild west world of Linux applications, it is easy to become overwhelmed with the amount of applications that are available. Sometimes it comes down to simple trial and error. Through my own process of trying out different applications I have come up with a list of 10 that I believe are a must have for any Linux user. Some are fairly obvious, some are just for fun, and some are very robust and useful.

1. Firefox
Probably the most obvious and well known of all Open Source software, so let’s go ahead and get it out of the way first. Firefox is a free open source browser that is extremely flexible and user friendly. I’m a big fan of software that can be customized to run and look exactly how a user wants it to, and with extensions and themes Firefox has done just that.

2. Open Office
Documents, spreadsheets, and presentations. Oh My! Open Office is an entire office suite that is completely free and performs like a champ. Something that I didn’t realize when I first started using OO was that it can open MS Office documents. So switching to OO doesn’t require you to start over with all of your existing documents, you can pick up right where you left off.

3. Neverball
Now that we have talked about Office software and we have done some work, let’s have some fun. Neverball is clone of the game “Super Monkey Ball”. You use your mouse to tilt the floor to roll a ball through an obstacle course, while grabbing coins before time runs out. Neverball is a little bit of stategy mixed with a little bit of action and a lot of patience.

4. Amarok
Organize your music. Amarok is a full feature music management system. Create play lists, find songs, access devices (such as an iPod), view album information via the contextual menus, and much much more. Amarok has it all.

src=”http://pagead2.googlesyndication.com/pagead/show_ads.js”>

5. GIMP
GIMP is the GNU Image Manipulation Program. It is a piece of software for photo retouching, image composition, and image resizing. Although similar to Photoshop, GIMP is not quite up to Photoshop’s level quite yet. For being open source and completely free, GIMP does have some pretty impressive features.

6. Azureus
Although this may not be a “must have” application, I believe it will be in the future. BitTorrent is becoming a more and more popular means of distributing files throughout the Internet. In fact, many Linux distributions are spread via BitTorrent. Azureus is a powerful Java based client that has a multitude of features (most of which I will never use) that put the user in command of torrents.

7. Celestia
Probably the best description of Celestia that I can come up with is “Universe Simulator”. With this program you can literally fly around to thousands and thousands of locations throughout the known universe. Explore plants, stars, galaxies. The sky is not the limit. There are also a large variety of add-on packs for Celestia that allow you to add textures new features and fantasy objects such as the Death Star from Star Wars.

8. VLC
VLC is a wicked cool media player. It will play a wide variety of formats such as MPEG, AVI, WMV, ASF, MP4, OGG, DVD’s, VCD’s, and many many more. It can also be used as a server to stream video. It also comes with all the bells and whistles of a good media player such as visualization, a variety of outputs and a plethora of configuration options.

9. Tomboy
Tomboy is a simple desktop note taking application for Linux. Easy to use, but with potential to help you organize and track ideas and information so it doesn’t become lost in the shuffle.

10. F-Spot
Need a full featured photo-management system for the gnome desktop? F-Spot is your man. F-Spot is easy to use, can read a number of different formats, and can be used to do some minor editing. One of the best features of F-Spot is it’s ability to export to sites such as a Flickr, 23, or Picasa Web.

Saturday, April 21, 2007

Linux 101

Your operating system is the software that manages both the hardware and software resources of your computer. It is used to interface with your hardware, manage memory and run applications. Without it you wouldn’t be able to browse the Internet, burn CD’s, listen to music or do any of the other activities that you associate with modern personal computers.

The most commonly used operating system which I’m sure you’ve all heard of is Microsoft Windows. There is a very good chance that you are using it right now to read this article. Although it is a great piece of software and used by a lot of people (it is estimated around 90% of all the computers in the world run a version of Windows) it also happens to be very expensive.

Most people aren’t aware that there are actually alternatives to Microsoft Windows available. They too can interface with hardware, manage memory and run applications just like Microsoft Windows but there is one important difference. Many of the alternatives are available for free!

Linux is an operating system that is available for free. It is what is known as open source, its source code is freely available for anyone to modify and as a result the operating system is very flexible; it runs on a variety of different platforms. It is commonly used in machines such as mobile phones and ATM’s and it’s now becoming quite popular in the personal computing market as an alternative to Windows.

The core of the Linux operating system (known as its kernel) was created as by a Finnish student named Linus Torvalds. At the time Torvalds was using an operating system known as Minix for his studies but because the author didn’t permit others to change it, Torvalds went about creating a replacement. Torvalds received the help of many other developers from across the Internet and Linux quickly grew into a fully functional and free operating system.

Distributions
Linux has now become the most commonly used alternative operating system running on a variety of different platforms. It is used in mobiles phones, ATM’s and even supercomputers. Many people have taken the freely available code behind Linux and modified it to create their own Linux distribution, and if you wish to try Linux out for yourself it is a distribution that you need to get your hands on.

There are a huge variety of different distributions available with new ones being developed everyday. Distributions are available for specific platforms (such as 64 bit processors) and specific uses (such as distributions aimed for the use in the classroom) so it is important that you choose the right distribution for your needs.

Ubuntu Linux

According to the Ubuntu website, Ubuntu is an African word meaning “humanity to others”. It is the Ubuntu organisations aim to bring the spirit of Ubuntu to the software world.

Ubuntu Linux is a complete Linux distribution suitable for both desktop and server use that is available for free. It includes a rich and easy to use graphical user interface and over 16,000 pieces of software.

Mandriva Linux

Mandriva Linux (formerly known as Mandrake Linux) is a popular distribution amongst new Linux users and people who seek an alternative to Microsoft Windows. It was created in 1998 with the goal of making Linux accessible to everyone and includes a large software library and easy-to-use interface.

Debian GNU/Linux

Debian GNU/Linux is a completely free Linux distribution started by Ian Murdock in 1993. This distribution is praised for its thorough documentation and excellent community resources. This distribution is very stable and software installation is extremely simple with a special tool named apt-get.

Gentoo Linux

Gentoo Linux is what is known as a source-based distribution. The installation provides packages to install for a very basic Linux system but the rest of the operating system must be configured by the user, with programs and applications needed to be compiled from source. This benefits the user in that the operating system is optimized for their hardware but this method of installation is tedious and can be quite difficult. As a result Gentoo is bad choice of distribution for someone who is new to the world of Linux.

Xandros Linux

Xandros Linux is designed for beginners and is by the far the most user-friendly Linux distribution available. It works out of the box without any configuration and includes a variety of useful tools and utilities. The only disadvantage with this Linux distribution is that it isn’t usually free; the Standard edition costs $40 and the Deluxe edition costs $99. At the time of writing there is a special free edition available; the limited Open Circulation Edition that is available for download from their site if it is used for personal use.

Support

So you have picked the distribution for you, what now? You need to install your Linux distribution onto your computer. The majority of the time, this is a simple and fast procedure and you can get your new system up and running within half an hour. However, as with any piece of software, you may run into problems when using your new operating system or even when installing it. Due to Linux typically being open-source, there is a lot of support available online to help you with any problems you may run into.

· LinuxQuestions.org is a large, friendly and active Linux community forum where you can seek the help of thousands of other Linux users. The best place to seek help regarding Linux.

· LinuxLinks.com is a large categorized archive of links to hundreds of websites all about Linux.

· LinuxPlanet.com is a website publishing articles aimed at people who are new to the world of Linux.

· UbuntuForums.org is the official community support forums of the Ubuntu Linux distribution. Excellent resource for all new Ubuntu users!

· Forums.gentoo.org is the home of the informative and useful Gentoo discussion forums. For anyone who is having issues with the Gentoo Linux distribution this is the place to start.

The thought of using a new Linux distribution may be scary to some but from reading the above I’m sure you have realised that this isn’t the case. There are literally hundreds of different distributions to cater for your specific needs and combining with the huge amount of support available, Linux is the best alternative to Microsoft Windows available.