Activate DND (Do Not Disturb), Check Status & Register complaint


Few months ago, I moved from Airtel to Idea and suddenly I started getting a lot of telemarketing calls. It wasted a lot of my time as I was under the impression, DND was active on my account.

It turned out that Airtel removed me from DND when I decided to get away from them. Among telemarketing calls, there were calls from Airtel also.

Check Status


You may call 1909 to enquire current status and know your NDNC registration date.

I prefer the online way. You can check DND status online using this official link for any number!

Below is what I saw for my number:


As you can see, DND was de-activated on my number on January 9, 2014. I switched from Airtel to Idea around same date.

Does it happen always? Do you expect DND to get deactivated when you switch from one provider to another provider? Not sure. I have one more number and when we switched it from BSNL to Idea, it’s DND remained active!


If you are getting calls from number starting with 0140 then you may not be on DND or getting a call from somebody who doesn’t respect DND!

Activate DND (Do Not Disturb)


As I was removed from DND, I had to activate it again.


To Stop ALL Calls

Send SMS with the message Start 0 to 1909.

You can will get a reply by SMS asking for confirmation. Send another message with a letter Y to confirm.

If you don’t like typing, you can also call 1909 from your mobile and follow instructions.


To allow calls of particular category

Category selection 0 in Start 0 blocks all categories. If you wan’t to allow some categories only, below is a list of category numbers.

  1. Banking/Insurance/Financial products/credit cards
  2. Real Estate
  3. Education
  4. Health
  5. Consumer goods and automobiles
  6. Communication/Broadcasting/Entertainment/IT
  7. Tourism and Leisure

To allow category specific calls, type Start 1 for Banking/Insurance, etc category.

You can specify multiple category as well by typing Start 1,2 in SMS.


Register a complaint

If DND is active on your number and you are still getting calls, you can register a complaint about calls to your service provider.I was under the impression that complaints need to be made directly to TRAI or some government authority.


You can send a SMS to 1909 in following format to register your complain.

the unsolicited commercial communication, XXXXXXXXXX, dd/mm/yy

Or another format:

COMP TEL NO XXXXXXXXXX, dd/mm/yy, Time hh:mm

Replace XXXXXXXXXX by number from which you received call and dd/mm/yy and hh:mm with date & time, respectively.

Check complaint status

You will get a complaint number, whose status can be tracked online from

Android App

There is an Android App to register complains easily here. (thanks anantshri)

Important Notes

If you are moving from one service provider to another service provider, under MNP (mobile number portability) scheme. and you suddenly starts getting a lot of telemarketing calls, it’s better to check your number’s DND status online.

Links: Check DNS Status | Track Complaint Status

Source: Most info in this article can be found on official site –


Our Journey with AdSense Ends!

Update: July 3, 2013

Our reader Rajat informed that the ban was lifted. AdSense team also confirmed the same with following reply:

Adserving has been enabled for your site. Please allow up to 48 hours for ads to start showing again. The site was taken down because the Policy team was undertaking an exercise to try & prevent old blacklisted sites from re-entering the network via new pubs who take over the sites.

Not sure, how to decrypt their message? Can you decrypt it?


This is first time I am writing a post this year (2013) on Devils’ Workshop. And I have some bad news!

It looks like our domain is banned by Google AdSense. We did not get any email or any confirmation from Google AdSense as yet. But AdSense dashboard is showing zero earning for me and few guest bloggers since yesterday (June 25).

I thought it is better that I tell you about this myself, no matter how bad it may sound.


Banned (or not banned)

I talked with few blogger friends, and they are all very sure that Google AdSense team sends email when they ban domains/accounts.

Since we did not hear from Google AdSense about this we are clueless. We did not get any email or any warnings in our AdSense account about this. But I used Amit Agarwal’s AdSense Sanbox tool and also another tool Both tools say AdSense ban is there!

So for now, we are assuming DW is banned!

What we don’t know is – if this ban is temporary or permanent.


How it might have happened?

It looks like a guest blogger on DW abused AdSense terms. May be he/she clicked on own ads on own article displayed on

It might be possible that Google AdSense contacted him/her about incident but the person did not reply hence AdSense team might have banned entire domain.

Google AdSense Fault

I believe before banning a domain, Google AdSense should contact domain owner. A single domain can have ads from multiple accounts. Its wrong thing to punish everybody for mistake of one miscreant.


I already wrote to Google AdSense but its highly unlikely that they will reply to a relatively small site like DW!

Possible Workaround

While working at rtCamp, I have encountered many cases, where blog owners changed their domain name because old one was blocked by AdSense. So a certain workaround is to change domain name for this site.

But this solution is not acceptable to us. Changing domain is a kind of decision which must come from inside and backed by some sane reasoning. This domain is part of our identity. We cannot change it for few bucks!

Also, what if Google AdSense bans new domain as well? We refuse to let Google detect how we run our affairs.


So we have decided to live with the ban rather than changing our domain just for the sake of Google AdSense.

How will this affect us?

This is the first question Aditya asked me. Well answer is bit long so let me divide it in sections.

About financial loss

As you may be aware, DW is run by rtCamp. In terms of revenue, DW’s contribution to rtCamp’s revenue is around 1%. So financially, rtCamp can afford to run DW without AdSense or even without ads.

In fact, sometime back we even thought about going ad-free. That is why we removed BuySellAds, Technorati, Kontera, etc. But AdSense stuck here as it was used by many guest bloggers under revenue-sharing program.

So financially it will not affect DW or its team – editors and pay-per-post authors. It might affect guest bloggers though.

About Revenue-Sharing Program

Back in 2008, when guest authors started contributing to DW regularly, we started “Your Posts. Your AdSense Ads.” program. In that program, guest bloggers were given opportunity to run their Google AdSense ads on their blog posts published on DW.

Before starting it, I discussed about risk-involved with Amit Agarwal through his forum, other users at AdSense forum and bloggers friends about possible risk. Getting banned was the number one risk we were considering back then.

As Google AdSense is no more here, “Your Posts. Your AdSense Ads.” program closes automatically. Of course, if Google AdSense rectifies their mistake, then our revenue-sharing program will be back.

To Old Guest Bloggers

First, I want to thank you for all contributions you have made to DW in last 6-years. Its a long time fellas! 🙂

Next, I personally apologise to everyone whose AdSense ads were running on DW. It is beyond my control to reach AdSense team and get this issue rectified.

As your AdSense ads were showing directly on DW, I have no idea about how much monetary loss this will result on your side.

But, in case you have a feeling that DW let you down, we have thought about few ways to compensate your loss as listed below. Feel free to suggest your ideas using comment form below. I did not get enough time to think about this aspect in details.

Moving your posts to your blog

If you wish to move your articles to your own blog or any other blog of your choice, please let us know.

  1. We will generate WXR file of your posts & comments which you can import on other blog.
  2. After that, just send us list of old-DW URL’s and URL’s on new site.
  3. We will setup 301 redirection on our server. We will maintain these re-directions till DW exists.

One-time Compensation

If you are tracking AdSense revenue from DW Channel, then you already have idea how much you are earning from DW. If you do not have your own blog or do not want to go with above option, then we can compensate you in the form of rtCamp store coupons.

We are planning to offer $10 credit for every published post.

rtCamp Store is small as of now but within 6 months you will see nice premium WordPress themes & plugins. Good thing about coupons we will provide is:

  1. They will have NO expiry date.
  2. You can share them with anyone. In fact resell them at lower price to convert them for real bucks!
  3. You can use a coupon till its balance/credit lasts across multiple purchases.
  4. If your coupon value is high, you can request multiple coupons of smaller values.

Sticking Around…

I don’t know about copyright laws much, but whatever you have contributed should be owned by you. So your posts on DW will be yours.

There is no rush to make a choice. You can decide any-time.

Those who like to stick to DW, without AdSense, are more than welcome to do so. 🙂

To AdSense

Its a bitter feeling to be honest. The part where you did not care to inform domain owner.

But I thank you for allowing us to run AdSense revenue-sharing program for almost 6 years. Had we got banned back in 2008, my life could have been made a lot more difficult.

So dear AdSense, I will always remember your critical role in shaping my life. Thank you for that! No hard feelings here.


Remove Sync.Me “cheap call” spam from your iPhone Contacts

Not so long time ago, I was a happy Sync.Me user. It was named SmartSync then and as far as I remember was among top application in Apple’s App Store.

Out of the blue in one of its update they added support for some VOIP-service. As they already had access to my iPhone contact-book, they without my permission added a “cheap call” URL-field to every contact in my iPhone. You can see it below:

Initially, I ignored it but it created issues during next sync. This “cheap call” link on next-sync got added to my Mac’s Contacts book (Address-book on old Mac OS version). From their it got synced to my Google Contacts!

When I tried contacting Sync.Me support, I did not get reply for 5-days. After that, their support team said that cheap-call feature is pulled so that I need to wait for few weeks after which they will add an option to remove cheap-call fields from my contacts!


AppleScript came to rescue

Sometime back I learned little-bit of AppleScript using it I first tried creating my own small AppleScript to clean this mess. When I stuck, I  started googling which lead me to amazing AppleScripts collection by Trevor.

I used Trevor’s Remove Emails for Label script and after some minor changes got it working to remove this “cheap call” spam from my contacts.

How-To Use This!

  1. Open Contacts Application on your Mac.
  2. Take a backup of your contacts. Use File >> Export >> Contacts Archive... option.
  3. Download this AppleScript file.
  4. You will see RemoveURLsByLabel.scpt file on your Mac. Just click it and it will open with AppleScript Editor application.
  5. Now, go to your Contact and select contacts from which you would like to remove “cheap call” field. You can select all contacts. Script will not make any changes to contacts which do not have “cheap call” field.
  6. After selecting one or more or all contacts, go to AppleScript Editor and click Run button.  
  7. The script will first remind you to backup your contacts, then it will prompt for URL label name. Default is “cheap call” which should work fine. For non-english users, if label name is something else, type/paste it there. 
  8. Just hit OK. Script will take some time to finish if you have large contact-book. At the end of it, you will see “cheap-call” spam gone!
  9. Sync your Mac contacts to iPhone. Feel free to run this script again, if this field re-appears because of syncing to some other resource.

What’s Next…

I have removed Sync.Me. They might add an option to remove it in future but I hate it when some app leaves its shit in my contact book. I removed this application for now.

I am now using iOS6’s built-in Facebook/Twitter Sync options. iOS6 sync’s less data as compared to Sync.Me but I am happy with less data rather than more spam in my contact book!

Github Link: AppleScript to remove cheap-call spam by Sync.Me


Starting WordPress-Nginx Tutorial Series

(cross-posted from rtCamp blog)

It has been almost 3 years that we moved our high-traffic blog Devils Workshop to Nginx – one of the fastest web server out there.

When I started with Nginx, there was very less help available. I spent most of my time on Nginx IRC channel, mailing lists and forums.

What looked like a crazy move then, seems totally worth now. We handle almost half-million hits daily for more than 20 sites hosted on our dedicated server without any slowdown or downtime. I feel proud to switch to Nginx much earlier. As an early mover, I leaned way too many things myself as there was no alternative then.


Today, as a server-administrator, I feel that I have learned enough to authoritatively write down my own findings here as a series of articles. I hope you will find this helpful.

You can find more details about this series, its content and other details here.

I will be publishing one article everyday on rtCamp’s blog. You can subscribe to rtCamp’s blog easily.

At any time, you can use our free support forum if you need some technical help. Comments will be kept open to discuss article itself.

I hope you will find this series useful. 🙂

Link: Official rtCamp Post with more details


Killing Zombie Processes on Linux

You can’t kill zombie processes by sending them “kill -9” directly. Because zombies are already dead!

So its better to kill their “parent” process, unless inits init process.

Run following command…

ps -el | grep Z

Look for PPID

5 Z     0  2756  2755  0  80   0 -     0 exit   ?        00:00:00 php-fpm <defunct>

If PPID is not 1 then you are lucky.

You can kill parent process by running following command:

kill -9 2755

Thats it!




PHP5.4, Imagemagick & Pecl Installation [Ubuntu]

After upgrading to PHP 5.4.x, by using source compilation method, I realised our PHP was missing imagemagick extension.

ImageMagick is replacement for php’s default GD library which WordPress uses for creating thumbnails on the fly. Using ImageMagick WordPress plugin, you can tell WordPress to use ImageMagick rather than PHP’s default GD library. But for this to work your PHP must have ImageMagick extension enabled.

Installing & Enabling ImageMagick using Pecl

You need install ImageMagick package first

apt-get install imagemagick libmagick9-dev php5-imagick

If you get error:

Package ‘libmagick9-dev’ has no installation candidate


apt-get install imagemagick libmagickwand-dev php5-imagick

Installation is just 1-command job (usually)

pecl install imagick

But at the time of writing this post, when running above command against php5.4.x, installation will fail with following error:

/tmp/pear/temp/imagick/imagick_class.c:9534:2: error: 'struct _php_core_globals' has no member named 'safe_mode'

By default, pecl attempt to install stable build of imagick which as of today is not ready for PHP5.4. But they already have RC build here –

To force, pecl to install RC build, run following command:

pear config-set preferred_state beta

Now you can attempt installation again:

pecl install imagick

This time it should work! You will see output like below:

 Build process completed successfully
 Installing '/opt/php5/lib/php/extensions/no-debug-non-zts-20100525/'
 Installing '/opt/php5/include/php/ext/imagick/php_imagick.h'
 Installing '/opt/php5/include/php/ext/imagick/php_imagick_shared.h'
 Installing '/opt/php5/include/php/ext/imagick/php_imagick_defs.h'
 install ok: channel://
 configuration option "php_ini" is not set to php.ini location
 You should add "" to php.ini

As suggested by last line, do not forget to add following line in php.ini

You may need to restart PHP-FPM or your web server.

service php5-fpm restart


[Editorial] Aditya Kane Completes 3 Years with DW

Dear DW readers,

It seems like ages that I have posted an editorial here!

Aditya Kane completes 3 years!

Well, I feel ashamed to share this good news little late!

Aditya Kane, our Editor-in-Chief has completed 3 years with Devils Workshop 3 days back (on August 26)

Thanks Aditya for safeguarding DW against all spammers and greedy evils. I don’t care what Google Analytics, Alexa or AdSense stats tell about your performance.


Pride cannot be measured by any tool and I am proud to have you as Editor-in-Chief at DW… 🙂

My Status Update!


From last few weeks, I am finding some time to purse my oldest hobby i.e. writing here on Devils Workshop. I posted few articles recently mostly on Ubuntu and server-administration stuff. Well these things are what I am doing these days mainly. I always find it hard to write about things that I am not involved in. So in future you may not read about windows, facebook, social-media, wordpress-coding from me.

I am heading a wordpress company but on daily basis I am not coding anything on WordPress since long. So no wordpress-coding articles from me! I spend my free time with Ubuntu, Nginx and sever administration stuff. Also, I am learning Ruby (and Rails). So my articles will be mostly related to this…

Things that are changing…

As I am finding some time to spend here on DW, we restored our support forum back. Feel free to use it – I will try to personally answer any query related to my knowledge domain within 24-hours (except weekends!) I am married now, so weekends are sometimes reserved… 😉

To reduce load on Aditya’s shoulders, our Editor-in-Chief, we have changed our contact page with new guidelines. Updated contact page is here –

We already removed most ads except Google AdSense. In our continued attempt to enhance reading experience on DW, we may remove few more stuff (ads, widgets, etc) in coming days.


Compiling ghostscript 8.71 from sources

In a recent project, where we are working on converting PDF based newspapers to interactive image slideshows, we came across an issue with ghostscript version 9.05. This version was breaking rendering of some Marathi fonts present in PDF.

When tested on ghostscript version 8.71, conversion was working properly. So we decided to downgrade ghostscript from version 9.05 to 8.71 on our server running Ubuntu 12.04 LS. Below are steps we followed.

Compiling ghostscript 8.71 from sources

Download sources from


Uncompress downloaded source code & change to directory.

tar xvf ghostscript-8.71.tar.gz
cd ghostscript-8.71

Configure it (I used all defaults)


Start compilation with


If you encounter following error:

./base/gp_unix.c:148:2: warning: implicit declaration of function ‘gettimeofday’ [-Wimplicit-function-declaration]
make: *** [obj/gp_unix.o] Error 1

Compile using


Finally install compiled binaries using

make install

At this point you will ghostscript will be installed at /usr/local/bin/gs

There are other methods to install old versions also, but compilation is safer alternative IMHO.

About the project:

rtCamp is working on an exciting project to connect WordPress with conventional newspaper publishing. The project is in early stages and a sample can be seen at (Note: you may see some text in images broken if you visit this on Aug 24 or Aug 25 as all images are recreated using ghostscript 8.71 right now)



Remove Microsoft Office 2008/2011 Completely from Mac

If you are feeling your Mac is running “slow” AND if you have Microsoft Office installed, then you can try removing Microsoft Office. I removed it (Microsoft Office) and my Mac got all its speed back. To confirm this, my other friends also noticed considerable speed improvement for Mac, when they removed Microsoft office.

Microsoft Office 2008

For Microsoft Office 2008, Microsoft provides a small tool called “Remove Office” under /Applications/Microsoft Office 2008/Additional Tools. At first, it may look like it does remove office completely as its name suggest but that is not true. You need to follow official 2008 uninstallation instructions posted by Microsoft here.

Microsoft Office 2011


For Office 2011, Microsoft doesn’t provide any “Remove Office” tools! You need to follow official 2011 uninstallation instructions posted by Microsoft here. I know instructions are quite lengthy and cumbersome for average users but that only official way.

(Unofficial) Uninstaller for Microsoft office 2011

Unofficially, you can use a third party tool I found here – I found it after my job was done so I could not test it. But it seem to work as you can see from comments on this post.

Alternatives to Microsoft Office…


For Mac, there are many alternatives. I found all of them very disappointing to be honest.

Its not speed-issue only about Microsoft Office.They have many more issues so no votes for Microsoft Office anyway!

For word files, I use Mac’s “Preview” application as default application to “open” documents. 99% of the time I need to “read” only word files I come across.

If I need to “write”, I prefer Google Docs. In cases where I need to “edit” existing word files, I either upload them on Google Docs or open with them on LibreOffice. I use LibreOffice for opening Powerpoint as well as Excel files also.

Sometimes LibreOffice breaks formatting but this occasional breaking of formatting is better than using a slow Mac always! 🙂


Change Ubuntu Server Timezone

If you are using a Ubuntu VPS or dedicated server, then you may have noticed emails coming from server doesn’t match your local timezone.

Below are 2 methods to quickly fix this issue…

Method#1 – Interactive Mode

Just run following command…

dpkg-reconfigure tzdata

and it will show a list of timezone from where you can select your timezone

Method#2 – Non-Interactive mode

In this method you need to provide value of timezone manually.You can find timezone values here.

sudo echo "Asia/Kolkata" > /etc/timezone
sudo dpkg-reconfigure --frontend noninteractive tzdata

After running above command I got following output:

Current default time zone: 'Asia/Kolkata'
Local time is now: Thu Jul 12 18:56:32 IST 2012.
Universal Time is now: Thu Jul 12 13:26:32 UTC 2012.

Why 2 methods?

Non-interactive way comes handy if you want to change timezone programatically. 😉