Linux scripts for 3G Internet in Uganda
The most common way Ugandans are accessing the Internet on PC today is via USB 3G modems . All the major Internet service providers in the country; i.e. Orange, MTN, UTL, Airtel, Warid offer 3G internet albeit at very slow speeds. The modem dongles that are commonly sold are Huawei models. Some like Orange carry ZTE models.
I just pushed a set of Linux bash scripts to my github repositories. These CLI PPP scripts can be used to dial an ISP in Uganda and connect to the Internet. If you are the type of person, who uses the Linux command line interface a lot, then these utilities are for you. As long as you modem is recognized by the kernel, you are good to go.
You can use these scripts to automate your connection. These scripts also, provide several statistics on your USB dongle, such as the EMEI, IMSI numbers, lock status, speed capacity etc.
You can find them at ppp-ug
Enjoy!
The Raspberry Pi and Uganda’s Digital TV Migration Update
A raspberry pi kit just got delivered to the labs for testing. I’m looking forward to see what sorts of things a raspberry pi can do for us here in our Uganda.
Unless you’ve been living under a rock; the biggest news this past year in IT hardware has been the raspberry pi. Initially meant to help school kids learn how things work. This project has been a wild success, but mostly with the adult kids. Most appealing is the very small form factor and the $35.00 cost. With all these features, this little board gives you all the computing power you need to do your work plus some pretty cool stuff. Some of the interesting projects out there using the raspberry pi include: a web server to store all you files, a router, a webcam server, a weather station controller, a game arcade system, etc.. You can read more about the Pi here
Meanwhile, Uganda continues to struggle with the Digital TV migration process. After failing to meet the December 2012 regional deadline to switch from analogue to digital TV, the Uganda Communications Commission has now set tentative dates with an assurance that by December 2013, all of Kampala, and major towns in the country will have switched. In my opinion, the targets while attainable are still very ambitious considering that there has been very little done so far to prepare Ugandans for this change. It is hoped that testing of digital TV transmission will begin in May this year. Lets wait and see.
How to install Asterisk 11 – Part 1
Asterisk is the popular open source telephony platform. With just a few hours to spare, you can turn any spare PC in to a world class PBX system. In part 1, I will list the steps involved in installing asterisk using sources. The steps below can be used with RedHat based systems like Fedora. It shouldn’t be that hard to replicate on other Linux distributions like Ubuntu.
Update your system and reboot if there’s a kernel upgrade:
yum update
For Redhat systems, disable selinux:
sed s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
Install required dependencies:
yum -y install make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel
Download current asterisk 11 sources:
cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
Note: Dahdi is only needed if you will be using a telephony card to access the PSTN. Timing provided by dahdi is also no longer needed with the new conferencing capabilities in Asterisk 11
Unpack and install the source packages. Please note that the installation order is very important:
a) dahdi
tar zxvf dahdi-linux-complete-current.tar.gz
cd dahdi-linux-complete*
make && make install
make config (Generates sample configs)
b) libpri
tar zxvf libpri-1.4-current.tar.gz
cd libpri-1.4*
make && make install
c) tar zxvf asterisk-11-current.tar.gz
cd asterisk*
./configure --libdir={LIBDIR} e.g /usr/lib64 (use uname -a to confirm architecture"
make menuselect (optional)
make && make install
make samples (on fresh install only)
make config
Start services
service dahdi start
service asterisk start
Check to ensure is running:
asterisk -vr
In part 2, I will go over how to configure your asterisk server.
Setup an instant messaging server for your office
Email is a great tool for communication and that is why even in the age of social networks, it persists. However, if you work in an office environment that requires constant and real-time communication between users, email may not cut it. Sometimes you just want to send a quick message without clogging your users Inboxes. What you need is an instant messaging system.
There are quite a number of open source based IM messaging servers; however, I like and have used jabberd over the years. Jabberd2 is an open source implementation of the jabber/XMPP protocol used by popular IM clients.
Installation of jabberd2 on Linux is fairly easy, although you need to know your way around the command line interface and how to edit configuration files.
To start with, install jabberd2. On Fedora/CentOs/RedHat systems:
yum install jabberd
After installation, you will find all configuration files located under /etc/jabberd
You will need to edit the files sm.xml s2s.xml c2s.xml, router.xml; and templates/roster.xml to suit your environment. Then setup your user accounts in your preferred driver backend. Detailed configuration instructions can be found here.
Now all you need to do is install an IM client on your users PCs. There are several of these for all platforms. On Linux; favorites include pidgin and empathy
One cool thing with jabberd2, is that it is very extensible and you can add chat rooms functionality; a sort of ‘circles’ – old school style
Git – The open source developer’s favorite version control system
Today, my brother sent me a link to Clay Sirky’s talk on the political ramifications of ‘cooperation without coordination’ on communities – How the internet will one day transform government. Knowing how much an advocate for open source software I am, he couldn’t have picked a good time. I’ve been thinking of recommending an open source tool called git on this blog.
OK, I won’t comment on the politics here, but I encourage you to listen to this talk, even if you’re not a software developer.
Interestingly, Clay Sirky mentions the power of collaborative software development using git, which enables one developer in Edinburgh to collaborate with another developer in Entebbe (Uganda) without them knowing each other.
So what is git? Git is an open source based distributed version control system, that allows software developers to collaborate and share code. Unlike traditional systems that require a central server, with git, anyone can clone a repository and make changes locally, that can be pushed upstream. Git was created by the man who invented Linux i.e. Linus Torvalds, so you know it embodies the open source spirit!
I recently migrated all my software development projects to using git, I am really loving it as it makes keeping track of the projects a lot easier than before.
I won’t delve into how to use git here, but a good How-To can be found at:
Getting Started with Git
If you are an open source developer and you’ve not yet started using git, you are really missing out.
Try it and you’ll not look back.
Open Source and Digital TV Migration Updates in East Africa
Some interesting news stories in our neck of the woods that caught my attention recently:
Kenya is considering moving away from proprietary to open source software solutions for government bodies. As the article suggests, this move is not only a cost saving measure, but opens up opportunities for local software developers. I think other economies should follow this example. Read more
Also in Kenya, the migration to digital TV is moving rapidly, as the authorities increase incentives of importing digital TV ready equipment. Vendors are now able to import either over-the-air channels only set top boxes (STB) or premium channel STBs. This move means the prices of digital TV equipment will go down. Read more
Locally in Uganda, there’s still a whole lot of talk on digital TV migration, as providers still fight over who will distribute the signals. It looks likely that the initial switch date of December 2012, will be missed. A ban on TVs that do not have a DVB-T2 chipset is being implemented starting next year. Read more
How to create an encrypted USB drive in Linux using the command line
Recently, I was tasked to write a backup program for a small office. A key requirement was that the portable backup drive they are using needed to be encrypted since it would have to be ferried off site on a daily basis. The idea was that, if the drive fell in the ‘wrong hands’ during transportation, the client’s data would be secure. With encryption, I was able to meet this need.
I thought I would break the silence with a how-to on encryption using the Linux command line interface – not exciting but quite necessary these days.
Encrypting data in Linux is very simple, and I would highly recommend it for such things as USB flash and portable hard disks. Most Linux distributions come with an encryption tool called cryptsetup.
If you do not have it , install it using yum or apt-get depending on your package manager. For Red hat based distros, use
# yum install cryptsetup
As always, you need to backup your data before you proceed. I will assume you have already created a new partition on your device e.g. /dev/sdX1. If you need to partition, refer to the venerable ‘fdisk’ utility
Create the encrypted volume
# cryptsetup -v -y luksFormat /dev/sdX1
Confirm that you want to proceed by typing “YES”
Enter your passphrase when prompted. You will be asked to verify it
Once you have created the encrypted volume, you can proceed to format it
# cryptsetup luksOpen /dev/sdX1 mydata
# mkfs.ext3 /dev/mapper/mydata
Here you can choose other file formats such as FAT32, EXT4 etc
Create a mount point
# mkdir /mnt/mydata
Mount the new volume
# mount /dev/mapper/mydata /mnt/mydata
You can then write your data to the mounted and encrypted volume at /mnt/mydata
To close the volume
# umount /dev/mapper/mydata
# cryptsetup luksClose mydata
Note: if you are using a desktop such as GNOME, you will be prompted for a passphrase every time you insert the disk, so you do not have to mount the disk manually, but then again, we are talking about the command line here!
That’s it for now
Uganda’s transition to Digital TV. Where are we now? (II)
As reported in one of the local dailies, the Uganda Communications Commission (UCC) has directed TV broadcasters to plan for digital TV using DVBT-2 capable equipment. DVBT-2 is the second generation of of Digital Video Broadcasting and ensures spectrum usage efficiency of up to 50% while providing for better quality HDTV. Uganda joins countries such as South Africa and the UK that have joined this standard. Read more at Daily Monitor
Considering that Uganda is already way behind in meeting the December 2012 migration date, I think this is a good move. The UCC directive may not be warmly welcomed by the existing providers who are using the older DVB-T standard, but I believe, this will open up the market to cheaper alternatives.
Throughout this process, I have been bothered, by the perception among our people that getting digital TV means signing up with one of the pay TV providers like DSTV, Star, Go or Zuku TV. May be the UCC needs to better inform Ugandans that the switch, will only cost one a conversion box or Zero if you already own a TV with a digital TV built-in tuner! By the way, those boxes, now that DVB-T2 is the preferred standard should be cheaper and even affordable when subsidized.
What do you think?
Mobile SMS gateway server using Linux
Like many parts of Africa, SMS messages in Uganda continue to play a big role in the way people communicate. For the majority, the mobile phone is the first tech device and as such the use of SMS messages to send information in bulk and real time makes it ideal in fields such as health. As a Linux administrator, this is something you can do at little or no cost.
I thought, I would share these GSM SMS/WAP gateways available for Linux
1.Kannel: By far the most widely used open source software. It can be used to serve the established user base with SMS capable handsets as well as the early adopters with their WAP terminals. Learn more at:
Kannel
2.SMS Server Tools: SmsTools
3.PointSMS: an easy-to-use program that enables you build your own SMS gateway. Learn more at PontSMS
Setting up an SMS gateway using Linux is fairly easy, and if you use kannel for example, you will be able to send and receive bulk SMS messages in no time. I have tested Kannel with our local mobile operators like Uganda Telecom, and it works pretty well using your typical 3G modem dongles, like Huawei E220, and E173s.
If you are interested in instructions on how to install and configure the server… drop me a comment.
UTL 3G – A painful experience
I’ve recently been testing 3G-based Internet access provided by Uganda Telecom. The test locations were in the Northern suburbs of Kampala. My experience with this connection type was not a good one. Here is why.
Depending on your location, the 3G signal is very weak. Typical strengths range anywhere form 0 to 19%.
The 3G signal seems to degrade through out the day and by 1 pm, the signal goes off. I was able to get the assistance of an engineer, when ever that was the case, however, after 7pm the connection would fail completely.
The Internet connection when successful is painfully slow. So much slow that it feels like your are using a GPRS/2G connection.
I’ve been told that this service by UTL will improve in the future, but for now, I would discourage anyone who wants to use a mobile 3G connection from this ISP.
While the UTL service is unlimited per month and at a competitive rate of 80,000/= (Uganda shillings), it is not worth the trouble.
Save your self the trouble and look at alternatives like Orange Uganda. Next I will see how the service from Orange and the other providers is like.
If yoou have any experience with UTL, and other ISPs, please share your experience in the comments below.