Dump Asterisk Realtime Voicemail users into Voicemail.conf

digium-logoWhile I’ve been lazy about updating my site, I have not been lazy with writing new scripts and coming up with ideas to write about.

The first in the set that I’m going to make public is a script to dump your Asterisk Realtime Voicemail database users into a flat voicemail.conf file. I used this technique while troubleshooting to revert back to the standard setup while I was working on the realtime config.

#!/bin/bash
function get_mailbox {
 
   mailbox=$( mysql -u dbuser --password=dbpass asterisk -e "select mailbox from voicemail_users where uniqueid = '$i'")
   mailbox=`echo $mailbox | awk '{print $2}'`
 
}
 
function get_password {
 
    password=$(mysql -u dbuser --password=dbpass asterisk -e "select password from voicemail_users where uniqueid = '$i'")
    password=`echo $password | awk '{print $2}'`
 
}
 
function get_fullname {
 
    name=$(mysql -u dbuser --password=dbpass asterisk -e "select fullname from voicemail_users where uniqueid = '$i'")
    name=`echo $name | awk '{print $2}'`
 
}
 
function get_email {
 
    email=$(mysql -u dbuser --password=dbpass asterisk -e "select email from voicemail_users where uniqueid = '$i'")
    email=`echo $email | awk '{print $2}'`
 
}
 
function write_file {
 
    echo "$mailbox => $password,$name,$email,,attach=yes|saycid=no|envelope=no|delete=no" >> /root/test_dump.txt
 
}
 
for (( i=1; i<=151; i++))
do
get_mailbox
get_password
get_fullname
get_email
write_file
done

Asterisk Voicemail Check Disk Usage Script

digium-logoThis latest script was written to prevent 3:00am phone calls. I was recently called because our voicemail server was beginning to run out of disk space. The following script simply scans the voicemail directory, if a user is over 100MB it looks up their extension in the asterisk database and then sends them an email notification to clean it out. Below is the script:

#!/bin/bash
 
#set the maximum disk usage for a user to approx 100MB
size_limit=100000
 
function send_email () {
 
    subject="Voicemail Over Limit"
    message="/tmp/emailmessage.txt.$f"
 
    echo "Hello $name, " > $message
    echo " " >> $message
    echo "This is a notification that your voicemail is currently over the allowed limit.  You are currently using $humansize.  Please either manually delete the voicemails, or you can send an email to patb@codero.com for help with wiping all of the new and saved voicemails in your mailbox." >> $message
    echo " " >> $message
    echo "Thank you," >> $message
    echo "Admin" >> $message
 
    /bin/mail -s "$subject" "$email" < $message
}
 
for f in $(ls /var/spool/asterisk/voicemail/default/)
do
  size=$(du -s /var/spool/asterisk/voicemail/default/$f | awk '{print $1}')
  if [ "$size" -gt "$size_limit" ]
    then
 
        humansize=$(du -sh /var/spool/asterisk/voicemail/default/$f | awk '{print $1}')
        #Query the database for the users email address
        email=$(mysql -u asterisk --password=dbpassword asterisk -e "select email from voicemail_users where mailbox = '$f'")
        #Parse just the email address out of the above query
        email=$(echo $email | awk '{print $2}' )
 
        name=$(mysql -u asterisk --password=dbpassword asterisk -e "select fullname from voicemail_users where mailbox = '$f'")
        name=$(echo $name | awk '{print $2,$3}' )
        #echo "$name    $f  $email  $humansize"
        send_email $email $name $humansize
  fi
    # take action on each file. $f store current file name
done

Got root? How to hack a Palm Pre

150p_0c_1bI just got root on my palm pre! Thanks to the guys and gals over at webos-internals.org, it’s extremely easy, but I found the documentation a bit cryptic so I thought I’d give it a shot.

Overview:

This guide was written for windows xp, I personally used windows xp pro 64bit with no problems.

Getting Started:

  1. First you need to download and install the Palm SDK
  2. Next, put your Palm Pre into “dev” mode. Go to the Launcher application (where you see the list of all your apps) and type the following:
    upupdowndownleftrightleftrightbastart
    Once you type in the last letter of the code, an option will come up to enable dev mode. Go ahead and enable it and then it will reboot your phone. (I made the mistake of enabling dev mode on the emulator and not actually getting root on my pre, don’t be dumb like me).
  3. Once rebooted, simply plug the Palm Pre into your computer that has the SDK on it. When prompted, set the mode to ‘Just Charge”.
  4. Next just open up a command prompt and issue the following command:
    novacom -t open tty://
  5. Now you’re connected as root!
  6. Finally, if you want to maintain root access on the pre you should run this script from the guys over at webos-internals.org it will prompt you for input and install an SSH server on the phone for you. Be sure to check out some of the sweet homebrew apps and keep hacking!

Rick Roll Script is Back!!! Well sorta…

rick-astley-150x150Notice I used 3 exclamations in the title to convey how excited I am. I’ve been working on developing a new platform that I can better monitor for the Rick Roll Script. I’ve setup a new domain called prankforce.com which now hosts the previous script. I’ve spent a lot of time cleaning this bad boy up for production use and I’ve learned quite a bit in the process. After proving to be one of the most popular features on the site, I think that these changes will be welcomed. If you have any suggestions or questions regarding this project, please let me know.

Right now the site has the following features:

  • custom invite script
  • call logging
  • 1 hour wait between prank calls
  • blacklist of phone numbers that can’t be dialed

Coming features:

  • Message Board
  • ability to suggest new audio and vote for other suggestions (reddit style)
  • a decent UI (Sorry I’m not a designer)

Right now the site is by invite only. If want an invite, just send an email to admin@prankforce.com

Debian/Ubuntu Anti-Virus and Root Kit Scan Script

virus_skull2A customer requested this script, once I started working on it I realized how useful this could be. I have this setup on a weekly CRON task. The script is very simple, it updates ClamAV and RKHunter then scans the server with both and mails the results to the specified email address. If you plan on adding this script to your server, you might want to ensure that you have the correct versions of ClamAV and RKHunter.

Click here to download the script

Click Here to see the full post with install instructions

Open Windows Passive Ports With One Command

firewallA friend of mine just sent me the following command to open passive ports on a Windows Machine. This is the easiest way to open Passive on a Windows I’ve seen. NOTE: This only works on Windows Server 2008:

Simply issue the following command:

netsh advfirewall set global StatefulFtp enable

Debian/Apache2 Virtualized Host Script

I wrote this script so that I could quickly create virtualized subdomains on my server. I wrote it so that all you have to do to reuse it is simply change the first 3 lines of the file to match your server. This is version 1.o and I plan to add some more error handling and improvements further down the road. Feel free to contact me with any feedback or suggestions.

Click Here to see the full Post
or
Click Here to download the script

Random Futurama Quote From Shell

Random Futurama Quotes to fill the day. I just found this awesome site: http://commandlinefu.com. There are a lot of great ideas on this site, I recommend you take a few minutes and check it out. Major props to icco of commandlinefu.com:

Just issue the following command:

curl -Is slashdot.org | egrep '^X-(F|B|L)' | cut -d \- -f 2

Here’s the sample output:

[burnsforce.com ~]# curl -Is slashdot.org | egrep '^X-(F|B|L)' | cut -d \- -f 2
Fry: Robots don't go to heaven.

I’d like to integrate this into the /etc/motd file, so everytime I connect to my server via SSH I get a new quote. I have a few ideas but haven’t gotten around to implementing them yet. If you have any suggestions, I’d love to hear them!

Use NMAP To Detect Conficker

I found this gem of an Nmap command yesterday. I was unable to write about this nifty command because my site was offline. But I’m back now!

Important Notes:

You will need to download the latest version of nmap from insecure.org, or you can click here

The command:

nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 [targetnetworks]

Just remove [targetnetworks] and replace that value with the subnet you wish to scan. Since my gateway is 192.168.1.1, I altered the command to scan my network to look like the following:

nmap -PN -T4 -p139,445 -n -v --script=smb-check-vulns --script-args safe=1 192.168.1.*

Analyze the output:

A clean machine should report at the bottom: “Conficker: Likely CLEAN”, while likely infected machines say: “Conficker: Likely INFECTED”. For more advice, see this nmap-dev post by Brandon Enright.

SSI Test Script

Often, when supporting dedicated servers, we need to check if Server Side Includes are working correctly. We wrote this very simple script that we upload on to our customers servers as test.shtml. Here’s the script:

<html>
<head>
<title>SSI Test</title>
</head>
<body>
<!--#echo var="DATE_LOCAL" -->
</body>
</html>

If you do not see the date displayed when browsing to your test.shtml file, check your httpd.conf file and ensure that mod_include is enabled. Restart Apache and test again, you should see the current date on the server.