Category: Office Automation

Introducing PogoPlug: Cloud Computing for $100 per Terabyte

Introducing PogoPlug

Ever wished you could build and manage your own Cloud Computing Center with minimal cost and no recurring charges… ever? Well, today’s your lucky day.

It takes a lot to get us excited about a new product offering. But this one is a real winner! For under $130, Cloud Engines provides you your very own PogoPlug 2.0 device that connects to your router and shares up to four USB drives over the Internet. At today’s prices and ignoring sales tax, that means you can put eight terabytes of Cloud Storage on line for a one-time cost of about $100/terabyte. To give you a point of reference, Google will rent you the same space for $256/terabyte… per year. And Google is one of the least expensive Cloud Computing resources out there. Here’s the math for naysayers:

4 – WalMart1 2TB WD MyBook Drives @ $169 each = $676
1 – PogoPlug 2.0 Device @ $129 each = $129
ONE-TIME, NON-RECURRING COST: $805/8TB or $100/TB

For those that don’t need 8 terabytes, the 2 terabyte setup including the drive and PogoPlug device is still just over half the one-year rental rate of equivalent storage from Google. And, just to be clear, this isn’t merely a storage device (like Amazon S3) requiring downloads before the files can actually be used. PogoPlug’s software makes these USB drives an integral part of your Desktop just like any other attached storage devices. Think WebDAV! So it makes a perfect home for your music, movie, and photo collections. There also are loads of Open Source applications for PogoPlug for those that like to tinker. And you can use PogoPlug to keep synchronized backups of your important files.

Other Options. Be aware that for about $50 less, you can purchase the Seagate FreeAgent DockStar Network Adapter which includes a single year of PogoPlug Internet support. After that, it’s $30 annually. Translation: By the end of the second year, you’re better off with the PogoPlug. So the choice is a No-Brainer in our book. But, the fact that Seagate is also standing behind the PogoPlug design should make everyone sleep more soundly.

Deployment. After a one-minute, one-time setup over the Internet, you can securely access all of your USB drive resources via PogoPlug using either a web browser or one of several free desktop applications that are available for Windows, Mac OS X, Linux as well as Android phones, iPhones, and (earlier today) Blackberrys. And you get free support and a terrific forum. The device works flawlessly behind either a DSL or cable modem AND a NAT-based router so there are no firewall issues to address. Just enter the serial number on the bottom of your device when you access the PogoPlug web site, and configuration is automatic.

Uploading Files. One of PogoPlug’s slickest features is its automatic cataloging of files which are uploaded. Once uploaded, you can view your Music, Movies, and Pictures by simply clicking on one of the buttons. Photos are cataloged into directories by the month in which the photos were taken. Music is indexed by artist, album, and genre. In addition, music by artist, album and genre as well as photo albums can be shared by entering email addresses for those that can access the materials, by enabling public viewing (assuming you have legal rights to do so), or by sharing items using your Twitter, Facebook, and MySpace credentials. We’ve shared a photo album just to give you an idea of how this works. The security and logistical nuts and bolts all are managed by Cloud Engines’ servers. You can review and modify the materials you’re sharing by clicking on the Files I Share link in your browser. Finally you can automatically alert those with share privileges when folder content is updated. Very slick!

Give PogoPlug a try. By clicking on one of our links, you also help support the Nerd Vittles project. We think you’ll be as thrilled as we are with this terrific new creation. Enjoy!




Need help with Asterisk®? Visit the PBX in a Flash Forum.
Or Try the New, Free PBX in a Flash Conference Bridge.


whos.amung.us If you’re wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what’s happening. It’s a terrific resource both for us and for you.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! After the free hour of outbound calling, Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

  1. The in-store pricing at WalMart is actually cheaper than on line for these particular drives. []

Apple’s iPad: A Home Run for Education

We’ve been anything but a cheerleader for Apple lately. And that applies in spades to the iPad. If you follow us on Twitter, here’s a sampling of our comments since the iPad was introduced last week.

The Computer Illiterate’s Dream Machine: Meet the iPad. http://bit.ly/c9sPED

Thinking you’ll slip your existing AT&T or T-Mobile SIM into Apple’s new iPad? Think again. http://bit.ly/9M8mbk

iPad: The Good http://tr.im/ipadg, The Bad http://tr.im/ipadb, and The Ugly http://tr.im/ipadu

iPad: Uh, but wait, No Camera http://tr.im/ipadc, No Flash http://tr.im/ipadf, No Multitasking http://tr.im/ipadm. No thanks.

Funny: Hitler’s take on the iPad. http://tr.im/ipadah

Why Apple Doesn’t Want Flash on the iPhone and iPad? It Finally Makes $ense. http://tr.im/theflash

The Vote That Really Matters: A 16-year-old’s view of Apple’s iPad: iFail http://tr.im/ipad16 (via @scobleizer)

Michael Dell demos what the iPad coulda/woulda/shoulda been. http://bit.ly/czYPww (via @engadget) #android Mini5

iPad Web Surfing: Here’s what the future holds. http://tr.im/noflash (via @gadgetweb) #surfsdown

RT @cultofmac: “Pundits On The iPad’s Closed System: It’s Doom For PCs, No It’s Great” http://bit.ly/cpFV4v

Apple iPad Micro SIM guarantees that you’ll be paying for two wireless data plans instead of one. http://bit.ly/bYipZP

Funny: iPad v. A Rock http://bit.ly/b50XP2 (via @TechCrunch)

RT @TechmemeFH: Apple reinventing file access, wireless sharing for iPad (Prince McLean/AppleInsider) http://bit.ly/awHJzG

Today’s Math Lesson: Hulu + Flash = Free Internet Movies. iPad – Flash = Megabucks for Apple from iTunes Movie Store sales

RT @dcagle: The library of the future, courtesy of the iPad http://bit.ly/bFvDAE #apple #toon

So what’s with the headline? Have we changed our mind? Well, no. It’s a lousy machine for us and for anyone above the age of puberty. But sometimes you need to look beyond the forest to find the nugget in the trees. And we’ve found the iPad’s Sweet Spot: It’s Lower School Education, Stupid!

For all the reasons that make the iPad an undesirable computing device for adults, it turns out these same qualities make it an almost perfect learning platform for young children, ages 3 to 12. In fact, we think it has the potential to revolutionize preschool and elementary education.

For openers, we can all probably agree that the key to a good education is good teachers. And that’s especially true when it comes to computer education. The problem, of course, is that teachers of young children don’t have the time or the resources to keep up with computer technology because they’re so busy doing all the things that parents should actually be doing to raise their kids. So, other than turning kids loose with a computer game, PCs have been all but worthless in lower school education because the teachers never had time to master the devices themselves. The iPad fixes that because of its incredibly simple learning curve. Any teacher can master the richness of the iPad interface in an hour. And it turns out that’s probably true for young children as well. If you don’t believe it, hand a kid your iPhone and come back in an hour.

A computer is important in early education because it’s much more patient and individually focused than any teacher ever could be. A computer doesn’t care how many times it takes a kid to master a specific topic. And, for young children, they need the repetition at their own pace until they actually get it. The iPad can handle all of these repetitive tasks while freeing the teacher up for observation and pinpoint coaching. So it levels the playing field by getting the “slow learners” up to speed without the usual frustrations of dealing with kids with different levels of comprehension. And the iPad accomplishes this while making education fun instead of frustrating!

Young kids learn with their hands. Walk in any lower school classroom if you don’t believe it. The iPad is a hands-on device. You use your hands literally for everything: a mouse, a navigation instrument, a drawing tool, and for writing and typing. So it’s a natural for kids, just like a hammer.

If you’ve ever visited a Montessori school, you’ll come away appreciating how critically important group collaboration can be to early education. Working in teams enhances learning in so many ways. The iPad is a natural collaboration tool. It can be used to encourage kids to jointly develop rich multimedia reports pulling from the web, their textbooks, images, and their classmates. iWork for iPad at $9.95 per application is the perfect development tool. And, as Steve Jobs demonstrated, the iPad makes a perfect presentation tool. Teaching kids to stand in front of their peers and tell a story is probably the single most important thing kids can learn in elementary education. You learn a lot more teaching others than you’ll ever learn as a student. Most of today’s adults never got it… nor did they have the opportunity that the iPad presents.

We could write a book about the advantages which would flow from getting rid of hardback books. Not only would it save trees and natural resources, but it also could turn books into living, breathing educational tools with rich multimedia presentations instead of static images. Instead of kids lugging around a backpack full of textbooks which will be obsolete in a year or two, they could carry an iPad with all of their learning tools, their schedules, their homework, and their presentations. Think about the possibilities, and you’ll come to appreciate why the iPad really could revolutionize education as we know it. We hope so. Go talk to the educators in your community and get them excited about this Golden Opportunity. You’re only young once!

For a well-balanced, thought-provoking review of the iPad, head over to emergent by design.

We’ll leave you with Neil Curtis’ 3-minute, adjective-laced version of Steve Jobs’ iPad Introduction. And, just in case you missed the Grammy Awards last night, there was an iPad Presentation there as well. Funny stuff!


Some Recent Nerd Vittles Articles of Interest…

Surfing the Google Wave

Original image courtesy of Squidoo.com... with apologies We’ve spent a week getting to know Google Wave using Chrome along with 100,000 of our closest friends. We wanted to give you a status report. Hype aside, Google Wave is an incredible tool when used for the right purpose. If you’ve been asleep or hiding under a rock for the past two weeks and missed the party, here’s a quick summary of Google’s latest invention. It’s a bird, it’s a plane… actually it’s a collaboration and communications platform that brings the full richness of Web 2.0 to your desktop. Some have suggested that it’s what email would look like if it were invented today. Our discussion focuses on the web-based Wave client, but Google Wave also is an open source development toolkit, and we’ll get to that one day soon.

Much has been written about Google Wave’s capabilities, and we won’t repeat that here. Instead, we want to address Google Wave’s potential and what we see as some of the present shortcomings of the product. We fully appreciate that this is a preview, and many of our concerns may yet be addressed before Google Wave becomes available to the general public. We can’t help chuckling at the realization that, in less than 30 years, we’ve now come full circle in data processing. What began as mainframe computing evolved into personal computing. And now Google Wave brings us much closer to being back where we started except for a state-of-the-art user interface and a new name: Cloud Computing. If IBM had addressed the user interface issues with mainframe computing, they probably never would have lost their market in the first place.

The screenshot above really can’t do justice to the richness of the client interface because you truly need a monitor as wide as your desk to get the most out of Google Wave. No, you won’t be using this on your cellphone or PDA… at least not well. For openers, Google Wave provides real-time collaboration so you actually see folks typing into various message threads (called waves) in the Land of Google. When you create a new wave, you “invite” other people in your Contacts to the wave. This puts the wave at the top of their Inbox in bold-faced type, akin to what Gmail would do with an incoming email.

There’s another frame to the right of your Inbox which actually displays the complete wave that you have selected so you’re never really jumping back and forth between selecting waves and reading them. What takes a bit of getting used to is the fact that both your Inbox and the wave you are currently reading may be changing every second with input from literally dozens of your associates or strangers if the wave you’re reading happened to be designated as public.

There’s one other dramatic difference in waves and threads of email messages. Other folks can change your stuff. As a collaboration tool with close associates, this might be desirable. With public waves, it would be a nightmare in the real world. And we don’t consider the 100,000 Google Wave previewers the real world. They are for the most part well-behaved probably out of fear that they’d be booted out if they behaved badly. That isn’t the real world as we all know. And the current Google Wave design would let a single creep destroy virtually every public wave in minutes using bots and malicious changes to documents. As presently designed, there would be little recourse other than replaying what your wave used to look like. You really can’t put Humpty back together again as some have already discovered.

Richard Nixon learned the hard way that tape recorders can be a blessing and a curse. Much has been made of the capability Google Wave offers to replay a wave so that you can playback the development of a thread of messages and see who added or deleted what and when. Google has touted the fact that everything is preserved. Well, not quite. First, there’s no capability at least presently to scroll back to a certain place in the timeline and recreate a new wave up to there. The most you can retrieve is a single posting. Second, anybody with access to the wave can use this timeline feature so wave restoration wouldn’t necessarily be desirable unless it were restricted to the original author of the wave. And, third, at least at Google someone knows how to cheat the system and delete stuff from the timeline. We only discovered this in reviewing the first public porn wave which started out prim and proper enough but quickly gathered steam when someone posted a collection of NSFW (or anywhere else) photos from their favorite collection. Within a few minutes, the postings quietly disappeared. Being the careful reviewer that we are, we immediately reached for the Playback button to check the history of the wave. Sure enough, the raunchy photos were still there. But, by the next morning, they had completely vanished from the chronology. So much for the official stance that nothing ever disappears. The real disappointment with the replay function is the lack of any capability to restore an entire wave. Because only individual messages (known as blips) can be recovered, this would prove to be next to worthless in a complex wave with hundreds of postings.

That brings us to the issue of whether public waves really make sense given the world in which we live. The good news is it works much better than IRC because of the richness of the content with attachments and hyperlinks. But, at least for public waves, the ability to edit someone else’s stuff would have to go. We try not to focus on legal nightmares in reviewing new software, but one can’t help wondering what would happen if one were to post something complimentary about a neighbor in a public wave and then another neighbor altered your posting by falsely accusing the individual of sleeping around with half of the neighborhood. Obviously, there’s still a good bit of work to do on the security front and in deciding whether allowing others to amend someone else’s postings is a good idea. Whether Google gets the security piece right will ultimately determine the success of Google Wave.

For public waves, it’s a no-brainer. You just can’t! And, to be honest, in reviewing hundreds of public waves in the preview, we can’t recall a single instance where this functionality would have been necessary. In a true (private) collaborative project, it would be wonderful but color-coding of text or some other method of identifying who wrote what would be absolutely essential from both a practical and legal standpoint. Both Microsoft Word and WordPerfect have had this capability forever. The simple way in Google Wave would be to add user’s pictures with a colored border and matching colored text whenever they make changes to someone else’s posting. With this addition, Google Wave could become a wonderful collaborative tool in both legal and technical environments.

And, speaking of word processing, Google Wave falls a bit short on the word processing scale. Despite the richness of Google’s knol platform, some of that functionality still is not available in Google Wave. The text editing and formatting is much akin to what’s available in a typical email client. You can change fonts, adjust color, indent, add hyperlinks and images, but that’s about as far as it goes. There are no headers, footers, footnotes, etc. So you can’t easily transform a wave into a formatted document for printing at this juncture. But that may come as development continues.

There are a few other things still on our Wish List. First, we’d love for Google Wave to evolve into a tool that can replace today’s forums which are not much more functional than BBS software was two decades ago. Once there is administrator control of rollback and protection of waves by granular access rights to functions, bots, and gadgets as well as the ability to block users and ranges of IP addresses, this should happen. Second, we obviously want the ability to include either read-only or read-write access to waves in a blog or web site. We already have the web site functionality working (see below for a sample), but you currently need a Google Wave account to access it. Third, we really want to assimilate all of the tools we use into the Google Wave Desktop so that everything is accessible in one place. That’s what Cloud Computing is all about, and Google Wave comes closer than anything else in meeting that need. You already can access Gmail on your Google Wave desktop and any web site that can be framed can be included in a wave as an iFrame. That doesn’t leave much once the security feature set is in place to protect all the components.

Finally, we’ll close with a brief mention of the coolest feature of Google Wave. That is its expandability which is enabled by incorporating bots and gadgets into any wave. As you might imagine, these extensions can do almost anything… good or bad. Here’s a short list of what has been developed and what’s already on the radar in just a few short weeks:

Chatbots
Eliza – ogenex@appspot.com – An implementation of the Eliza chatbot borrowed from the NLTK.
Elize – elizarobot@appspot.com – Is one of the first robots that was created by non Googler and is very useful if you are feeling alone in your Google Wave client.
Rude chatbot – notatory@appspot.com – An obnoxious chatbot borrowed from the Natural Language Processing Toolkit.
TooAngel Wave – In Progress – tooangel-wave@appspot.com – A self learning robot, that will respond to a reply in a more humanoid way

Conversion
BotURL – boturl@appspot.com – A URL Linker that replaces full URLs with hyperlinks.
Calcbot – calcbot@appspot.com – This bot will do in place calculations for simple mathematical expressions and allow you to use user defined variables.
Cartoony – cartoonybot@appspot.com – Replaces the text of every submitted blip with a cartoon balloon that contains the text instead. Colors the balloons based on username.
Dice Bot – dice-bot@appspot.com – Dice-rolling bot. Dice Bot will replace XdY (X is the number of dice; Y is the number of sides) with the results of those rolls.
Flippy – flippy-wave@appspot.com – Turns text upside-down.
Fnordlinky – fnordlinks@appspot.com – Replaces “PMID <number>” with article information from PubMed.
Hearty Emobot – hearty-emobot@appspot.com – Replaces ASCII art with wingding characters.
i-cron – i-cron@appspot.com – Evaluates Python expressions. Looks at blips in event, searches for CALC() macros and executes Python code using exec().
Insulty – megabytemb123@appspot.com – Information Needed
IPA Bot – ipa-bot@appspot.com – Changes normal letters into special characters used for phonetics.
Piratify
– piratify@appspot.com – Turns whatever you type into “Pirate Speak” .. Arrrr.
Plotzie – plotzie@appspot.com – Plots sparklines from your data.
Shortee – Wish – Change “c u l8r” to “see you later” etc.
Swedish Chef – borkforceone@appspot.com – Changes english into Swedish-Chef Speak. Bork! Bork!
Syntaxy – kasyntaxy@appspot.com – Syntaxy does blip-by-blip syntax highlighting for a variety of languages including Python, Java, C, C++, html, css and javascript.
Watexy – watexy@appspot.com – Use LaTeX mathematical language in your Waves!
Wikify – wikifier@appspot.com – Replaces specific marked up text with a link to Wikipedia or a description relevant to the marked text.

Games
Hangman – wavehangman@appspot.com – Play Hangman.
Roshambo – roshambowave@appspot.com – Play Roshambo (Rock / Paper / Scissors).
Speedy – Wish – Track the words per minute of all participants, competitive typing!

Groups
Groupy – groupy-robot@appspot.com – Robot to manage groups.

Integration
drop.io – mikeswaverobot@appspot.com – Creates a drop and puts the info into the wave whenever the robot is added as a participant.
OpenAustralia – In Progress – A robot to allow interaction with the OpenAustralia web site.
PlonieBot – In Progress – ploniebot@appspot.com – Brings wave document editing capabilities to the Plone CMS
Poppy – In Progress – poppywave@appspot.com – Helps bridge Google Wave conversations to email users outside the Wave.
Rssybot – rssybot@appspot.com – Turn google wave into an RSS reader!
Starify – starifybot@appspot.com – Lets you star waves, in sort of bookmarking style.
Tweety the Twitbot – tweety-wave@appspot.com – You can access your Twitter account.
Twiliobot – twiliobot@appspot.com – Transforms phone numbers into click-to-call links. If user clicks a link, a call is placed to his phone and to the number in the link. The call can be transcribed and inserted into the wave as text with a link to the audio.
Wave-Email – In Progress – wave-email@appspot.com – Provide an extension to Google Wave which will allow the integration of both sending and receiving emails.
Wave Live Messenger – wavelivemessenger@appspot.com – Allows you to chat to your windows live messenger contacts from inside a wave.

Language
PhilBot – Wish – A suggested solution to the problem of waves with languages you can’t read.
Rosy Etta – rosy@wavesandbox.com – Translator (40 Languages).

Polling
Polly the Pollster – polly-wave@appspot.com – Poll Bot.

Search / Aggregation
Dr Maps – dr-maps@appspot.com – Updates a wave by inserting a map associated to an address.
Dr Weather – shiny-sky@appspot.com – Gives the weather for a City
Embedded Search Results – wave-sandbox@appspot.com – Web and Image searches inline.
FML Blipper – fmlblipper@appspot.com – displays random FML story from www.fmylife.com
Grauniady – grauniady@appspot.com – Searches the latest items from The Guardian for a given phrase.
Stocky – stocky-wave@appspot.com – Detects stock symbols from a wave and updates it with the live stock price.
Wavethingy – wavethingy@appspot.com – Searches Amazon for DVDs and books, and gives the author a cut of any purchases made off the links.
Yelpy – yelpful@appspot.com – Searches Yelp with a user defined location and category.

Utilities
AmazonBot – amazon-withwaves-com@appspot.com – Enables social product research and shopping on Amazon.com. Wave participants can share products & reviews with contacts in real-time thanks to automatic queries by the AmazonBot against conversation keywords. The AmazonBot gadget can detect products and return inline product links or a custom full product browser.
Bloggy
– blog-wave@appspot.com – Information Needed
Bit.ly Bot – bitly-bot@appspot.com – Shortens the url using bitly.
Botty – Wish – Will automatically add a set of useful bots to a wave according to a collection of bots (so they don’t have to individually be added when you use them all the time.
CountColon – countcolon@appspot.com – Adds text statistics to your blips (words, lines, etc.)
Companion Sphere – companionsphere@appspot.com – Collection of geek utils, first working verb is “lookup” for wikipedia/wiktionary one-line descriptions.
Databot – Wish – Will start as soon as the GData interface is published.
Emoticony – emoticonbot@appspot.com – Replaces text representations of emoticons with the relevant image.
JBREAKOUT – jbreakout@appspot.com – Debug utility that reports event triggers.
Maison – maison@appspot.com – Makes blips public at http://maison.appspot.com.
Multi – multi-wave@appspot.com – A quote collector. Reply a blip you want to quote with ‘quote this’ and randomly display a quote with ‘quote <wave @account.com>’. The bot is still being under development but you can try playing with it.
Natural Language Processing – knowledge-books@appspot.com – Adds blips with NLP analysis.
Nokar – lab2market@appspot.com – Has many features such as translations, image insertion, insert last tweets etc.
Posterous – posterous-robot@appspot.com – A robot for posterous.com user to post blog in Google Wave. Here is how to write a blog using Google Wave Robot for Posterous.
Publisher – wave-publisher@appspot.com – Information Needed
Skimmy – wave-skimmy@appspot.com – Converts text emoticons, from : ) to img. Has a bookmarklet which creates a popup menu to insert emoticons for which the code is unknown.
Smiley – smiley-bot@appspot.com – Changes the smiley symbols to smiley images.
Smiley – In Progress – smiley-robot@appspot.com – Changes the smiley symbols to smiley images.
Style Chart – stylechart@appspot.com – Inserts a chart into a wave.

Wave Management
Bouncy – bouncy-wave@appspot.com – Allows you to remove robots from a wave. Doesn’t seem to work on real people though, and laughs if you try to ask it to kick itself out. To get it to kick a bot out, type “bounce:name@domain.com”
Linear – Wish – Enforce all replies to be to the main wave. If a user replies to a reply, remove it and place it as a reply to the main wavelet.
Read Onlie – readonliebot@appspot.com – Records the original wave content. Whenever it’s edited, the content is replaced with the original. Simple as that.
Seekdroid – seekdroid@appspot.com – You can list Robots, add them and find them out, easy to use. In continuous development. Website with all the information seekdroid.appspot.com.
Sweepy – sweepy-wave@appspot.com – Remove empty, whitespace-only blips.
Taggy – taggy-wave@appspot.com – Recognize #hashtags and add them as tags to the wave.
Tocgen – tocgen@appspot.com – Table of Contents auto-generated and updated based on the h1,h2,h3,h4 in a wave.
Twitusernames – twitusernames@appspot.com – Replaces all Twitter @username with links to the Twitter accounts.

Gadget Utilities
Ajax Animator – In Progress – http://antimatter15.com/ajaxanimator/wave/manifest.xml – A fully integrated multi-user web based vector graphic animation authoring environment.
AmazonBot Gadgett – http://amazon-withwaves-com.appspot.com/gadgets/AmazonProductList.xml – The AmazonBot gadget can detect products and return inline product links or a custom full product browser.
Bidder – http://wave-api.appspot.com/public/gadgets/bidder.xml – Simple Auction.
Checky – http://wave-gadgets.appspot.com/checky.xml – Basecamp-like checklists with drag-and-drop.
Click me – http://wave-api.appspot.com/public/gadgets/hellowave.xml – Shows a button with a counter. Each time the button gets clicked, the counter is incremented by one. Shows off how the state interaction works.
HTML – http://wave-ide.appspot.com/html.xml – Embed any HTML into a wave.
iFrame – http://wave-ide.appspot.com/iframe.xml – Embed any web page into a wave.
iWave – http://gadget.wave.to/iWave/iWave.xml – Allows you to create a profile on wave to make wave just a little more personal. Uses facebook connect to retrieve your details if you sign in.
Licensing – In Progress – http://wave-license.appspot.com/license_gadget.xml – Creative Commons RDF Embedding – Planning Stage.
Maps – http://hosting.gmodules.com/ig/gadgets/file/101415471413908368316/mappy.xml -Embed Google Map.
Napkin – http://my-wave-gadgets.appspot.com/wave/NapkinGadget.xml – Example of Flash/Flex Wave Gadget, similar to Whiteboard gadget above – source on Google Code.
QuakeBot – In Progress – Server information on the Quake 3 protocol.
Raffly – http://raffly.googlecode.com/svn/trunk/sandbox/raffly-xml1/raffly.xml – Insert this gadget to select a random participant from your wave to be the winner. The winner of what? Well that’s up to you :-)
Ratings – http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/gadgets/ratings/ratings.xml – Lets participants rate and review a topic (movie, restaurant, etc) in a wave and shows a tally of the result.
Slashdot Gadget – http://www.m1cr0sux0r.com/slashdot.xml – Loads latest Headlines from Slashdot.
Troco – An experimental peer-to-peer currency – http://troco.ourproject.org/gadget/org.ourproject.troco.client.TrocoWaveGadget.gadget.xml – Aims to provide a decentralized complementary community currency system, that is, a peer-to-peer currency system. Also you can see it as an IOU or promissory note based system. More info click here.
Vector Editor – http://jsvectoreditor.googlecode.com/svn/trunk/wave/vectoreditor.xml – A cross platform collaborative real time vector graphics editor.
Whiteboard – http://vps.michaelrose.id.au/canvas.xml – Draw on a virtual whiteboard.
Who is Coming? – http://wave-api.appspot.com/public/gadgets/areyouin/gadget.xml -Show a list of all people that have said whether they will come or not.

Gadget Games
Backgammon – Wish – Remove all of one’s own checkers from the board before one’s opponent can do the same. [Wikipedia]
Battleship – Wish – Displays different board based on user.
Boxes – In Progress – Connect lines to make boxes and win.
Connect 4/Four-in-a-row – In Progress – sdunster@wavesandbox.com – http://www.sdunster.com/wave/four.xml – 2 users + observers, turn locking, just waiting to write win-detection code.
Floodit – http://gadget.wave.to/floodit/game.xml – 2 player race to fill a board with colors.
Magnetic Poetry – http://hosting.gmodules.com/ig/gadgets/file/107558585548952247431/fridge-11.xml – Re-arrange random words to form poetry.
Match them colors! – In Progress – Match 3 / gem matching game.
Othello – Wish – Play Reversi.
Sudoku – http://blah.appspot.com/wave/sudoku/sudoku.xml – Play Sudoku.
The Button – http://hyperthese.net/wave-gadgets/the-button.xml – A useless (I mean USELESS) game.

Hooks
CVS integration – Wish – CVS history can be converted into a wave with playback.
GIT integration – Wish – GIT history can be imported and played back (dffs).
SVN integration – Wish – SVN History can be converted into a wave with playback.

Appearance
Google Wave Scrollbars – http://www.uniformedopinion.com/google-wave-native-scrollbars-extension/google-wave.crx – Changes the wave scrollbars to the default system scrollbars.


Enhanced Google Maps. In case you haven’t noticed, we’ve added yet another Google Map to Nerd Vittles. Now, in addition to showing our location with Google Latitude, we also are displaying your location based upon your IP address. We’ll show you how to add something similar to any LAMP-based Linux system in coming weeks. It’s a powerful technology that has enormous potential. If you’re unfamiliar with Google Maps, click on the Hybrid and Satellite buttons and then check out the scaling and navigation options. Double-click to zoom. Incredible!


whos.amung.us If you’re wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what’s happening. It’s a terrific resource both for us and for you.



Need help with Asterisk®? Visit the PBX in a Flash Forum.
Or Try the New, Free PBX in a Flash Conference Bridge.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! After the free hour of outbound calling, Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…


For those of you that already have Google Wave accounts, here’s a sample of how a wave will look in a WordPress posting. You can even add content to the wave! This works in Safari and Chrome most of the time, Firefox some of the time (if you turn on Accept 3d Party Cookies), and IE almost never. For those of you that are not part of the Google Wave preview, you’ll just have to wait patiently until Google turns on at least read-only access to this functionality:

Introducing the Cisco 7970 WonderPhone … Or Is It?

Cisco 7970

We didn't know quite how to begin this article so we decided to try and find a picture that sums up what you're up against installing a Cisco 7970 color IP telephone with Asterisk®. The disturbing part of this photo is that it shows the lengths to which Cisco will go to provide literally picture-perfect documentation for how to hang this phone on a wall while there is close to ZERO documentation for how to use it as a SIP telephone with anything other than Cisco's proprietary CallManager telephone system. It's almost like they don't want it used that way. LOL! Since the entire world is moving to SIP, Cisco obviously needed to be able to say they supported SIP ... but just barely. If you've never had to deal with Cisco or, better yet, Cisco's web site, lucky you! For those of us that ran Internet services in a former life, there was Cisco or Cisco when it came to routers. Luckily, that's not the case in the IP telephony business, and fortunately it's now changed in the router business as well. Guess why? Creativity and software quality have gone down the rat hole. And Cisco shareholders wonder why their company is losing market share.

It wasn't quite right to reduce Cisco's beautiful (and I do mean beautiful) new COLOR IP telephone to a nuts-and-bolts image. But we're trying to paint a picture of how it works, not how it looks. The good news for Asterisk users is that IF you ever get the 7970 working with your Asterisk system, you'll never go back. The quality of calls with the Cisco 7970G is head-and-shoulders above all of the competition. Embarrassingly good! Having said that, it's more than a little disappointing to encounter Version 8 of their SIP firmware and discover that it functions about like a .8 beta release of most telephony software. Many things don't work. Some buttons still crash the phone. And it appears that Cisco has little or no intention to make things much better ever. You might be asking, "Why would a company act like this?" It's really pretty simple: monopoly (they wish!) and money (ditto!). The phone can be purchased for under $500 from many on line retailers such as our favorite (shown above). The CallManager license adds another $250 to the retail price of each and every phone. You'd want a monopoly, too, with that sort of pricing structure.

SPECIAL NOTE: We have one, gently used Cisco 7970 for sale. It actually was used to prepare this article. Make us an offer, or we'll make you a deal you can't refuse. If you're interested, contact us.

So how do we get the damn phone to work with Asterisk? Well, here's where it gets a little tricky. The first thing you should do is watch Kerry Garrison's great video on setting up the phone. You'll find it at AsteriskTutorials.com. What you'll learn in the tutorial is that most of the configuration of the phone is done through XML config files which are ordinary text files with nested (special) keywords in brackets that tell the phone how and what to do when. You then copy these config files to a TFTP server and reboot the phone after pointing it to the IP address of your TFTP server. If you don't have a TFTP server, Kerry will even tell you about a great one for Windows that you can download for free: TFTPd32.

Welcome to TFTP Hell. As with everything Cisco, there are a few instant gotcha's with the installation process. First, Cisco provides no documentation with the phone and has published no documentation on the XML config files. Why? Monopoly and Money. The official answer would be that you don't need to know nothin' 'bout no stinkin' config files. Just use (buy!) their CallManager, and it generates the config files out of thin air. Now you get it. The only problem with the Cisco Scenario is that then your phone will only talk to the CallManager, not Asterisk. In fairness, we should note that Cisco documentation is available for the SIP firmware on the phone, but it all pertains to CallManager. Big surprise there. And, by the way, be sure to order the phone with SIP firmware, not SCCP, and a 7970 Power Supply or you're really S.O.L. with a dim phone to boot. So it's Go Back to Go time.

The second gotcha is that the phone has to know where to find the TFTP server before you can change anything. You can't manually set the TFTP IP address with something like telnet or ssh. That would be too simple. You can set it on the phone keypad provided the existing firmware is configured to allow changes. The default firmware load isn't. So what's left? Well, you'll need a DHCP server that understands Option 66. Most don't. What Option 66 does is store the IP address of your favorite TFTP server so that when a client obtains an IP address for IP access, it also can obtain an IP address for a TFTP server containing updated config files... or new firmware. If you don't have a router with DHCP that supports Option 66, not to worry. TFTPd32 includes it as well.

Gotcha #3 is that you can't just run TFTPd32 on your LAN and expect things to work. Why? Because your existing LAN probably already has a DHCP server (without Option 66) that's already handing out IP addresses. Can't we just disable our existing DHCP server? Absolutely, but you'll wipe out any preconfigured IP addresses that depend upon your DHCP pool of IP numbers which is the way most mere mortals reserve IP addresses on LANs without having to manually configure IP addresses, and subnet masks, and DNS server addresses for every device on your LAN. So ... the quickest, pain-free way to get started is to boot up a Windows machine on your network. Then replace the network cable connected to your PC with a crossover cable. Now connect the other end of the crossover cable to your shiny new Cisco phone. When the phone is rebooted, it will find the only remaining DHCP server in town (with Option 66 which you must set to match the first number in your DHCP pool since this number will be grabbed by your Windows machine when you plug in the crossover cable): the TFTPd32 DHCP server. If this sounds convoluted, hang on to your hat 'cause we're just getting started. Remember, we haven't changed anything yet!

Cisco 7970The Right Way, The Wrong Way, and The Cisco Way. While we're on a roll with DHCP and TFTP, let's assume for a moment that we already have your phone making calls through your Asterisk server which it isn't, of course. Now you've decided that you'd like a different ring tone or picture on your phone. Can the phone handle it? Absolutely. Is it intuitive? No way. To perform either of these feats of magic, the drill goes something like this. You create another XML config file for both the pictures and the ring tones. Then you load the config files in a secret place on your TFTP server. Then you copy your new ring tones and cover art to the same secret locations. Now you go to each phone and drill down through layer after layer of menu options until you finally come to a screen which will display available ring tones or background images. The phone then will kick off a TFTP session using your TFTP server (which hopefully is still on line). Once it retrieves the file names or thumbnails after querying the XML config file, you get a list of choices. Highlight the desired choice and the phone makes another TFTP connection to download the desired file into your phone. Rube Goldberg would be proud of what Cisco engineers have been able to dream up. I'd fire all of them. Here's a silly idea. Ever heard of HTTP and a web page. There's even HTML support already on the damn phone. Of course, it doesn't work, but who cares. Why fix it when you can dream up an installation scenario like this one? Who in their right mind would ever design an installation system which forces you to keep an insecure TFTP server running on your network all the time?

Call us picky, but here's another little detail. One disgruntled employee with a crossover cable and a notebook computer running TFTPd, and your entire Cisco phone system runs the very real risk of being toast. The problem with Option 66 is that whoever has physical access to your phones can wreak all sorts of havoc since the phones will connect to any available TFTP server. Holding down the pound key for 10 seconds while the phone reboots and then pressing all 12 buttons on the phone's dialpad (in order), and your phone is now MY PHONE. And, this is from a company that has been thinking about network security longer than almost anybody. We should point out that there is a phonePassword field in the config file which defaults to blank, and it may or may not help on the security front. My guess is that most companies never touch it. And, with the ink barely dry on our maintenance contract and given the other configuration quirks of this phone, we were reluctant to test this password feature for fear of turning the device into little more than a boat anchor. We'll leave that testing for you to try out on your new $500 phone. If there's some other, more obtuse security feature (such as tftpDefault) that we've missed, we're pretty confident that some diehard Cisco cheerleader will point it out to us in a comment shortly. In the meantime, we'll continue our head scratching. Memo to Cisco: There are lots of reasons that folks expect documentation with their equipment. Not the least of these is SECURITY.

Earth to Asterisk. Can You Read Me? Well, enough of the Cisco bashing. We really do want to get this phone working with Asterisk. And did we mention? We wouldn't trade the Cisco 7970 for ANY other phone on the planet. The voice quality with both the headset and the speakerphone is that good! For openers, to use the phone with Asterisk, you'll need at least Asterisk 1.2 to get any connectivity. Asterisk 1.09 won't cut it. And the 7970 ought to work fine with any version of TrixBox as well as Asterisk@Home versions going back to 2.0, all of which include at least Asterisk 1.2. Now for the fun part.

First, download the Sample Config Files from Kerry Garrison's AsteriskTutorials.com site. Unzip the file which will give you a configs folder with three files. Turn your phone over and write down the MAC address which is the number beginning with 00 and consists of 12 hex digits. Rename the SEP000E84E8E3D5.cnf.xml file substituting the MAC address you wrote down for 000E84E8E3D5 in the existing file name. If this config file name doesn't include the actual MAC adddress of your phone, your phone won't process any updates. Now press the Settings button on your phone. It's the one on the right side with a check mark on it. Then press 5, 3 and write down the version of the firmware that's loaded on your phone. If it doesn't start with SIP, send it back and tell the vendor that you requested a Cisco 7970 with SIP firmware. Unless the firmware version is SIP70.8-0-3S, you'll need to change the firmware version in both the SEP config file we renamed above and also in the XMLDefault.cnf.xml file. Use the Windows TextEdit program to search for SIP70.8-0-3S and replace it with the firmware version you wrote down.

Before we get too far along, let's be sure that your phone is locked in such a way that you can't manually specify a TFTP server's IP address. Press the Settings button again and then 2, 8. A closed padlock should appear in the upper right corner of the display. Pressing **# will attempt to unlock the phone. The padlock should open within a few seconds. If so, there may also be a new, gold Edit tab above the second (of six) softkey buttons on your phone. If the Edit button is not dimmed out, then you can press it and manually enter an IP address for a TFTP server. Otherwise, you'll need to go through the knuckle drill we 've previously outlined using a crossover cable. Be aware that each time you change or reenter the TFTP IP address, your phone will automatically reconnect to the TFTP server to check for updates as soon as you Save the IP address. This is worth remembering because it's an easy way to force a config reload on your phone.

We're almost ready to set up an extension to connect to your Asterisk server. But first, you'll need to be sure you have created an available SIP extension on your Asterisk system. Using AMP or freePBX, choose the Extensions option and Add a new SIP extension. Choose an available extension number and password. In the Device Options section, set the qualify field to No and set the mailbox option to something like 500@default instead of 500@device (using your chosen extension number, of course). Set up a voicemail account with the same password you specified for the extension. Then Submit your changes and click the Red Bar to reload Asterisk.

Now we're ready to edit the SEPxxxxxxxxxxxx.cnf.xml file using NotePad. First, search for 192.168.5.50 and replace every instance with the internal IP address of your Asterisk box. It should come as no surprise that Cisco has a different way of handling SIP connections through NAT and a firewall, and it's not yet compatible with the way the rest of the world (including Asterisk) do it. So, for the time being, forget using a 7970 outside your firewall unless you enjoy Water Torture. Beginning on line 10 of the file, you'll see two entries that look like this:

<datetemplate>M/D/Y</datetemplate>
<timezone>Pacific Standard/Daylight Time</timezone>

The top line tells the phone to display the date as MO/DA/YR with time in 24-hour military time. If you'd prefer a 12-hour clock with am and pm indications, add a lower case a immediately after the Y. Change Pacific on the second line to match your time zone. Leave the rest of it alone unless you live in a freaky Daylight Savings location. If you do, you'll know what I'm talking about. Otherwise, don't worry about it.

The 7970 theoretically can support 8 extensions on the eight buttons along the top right side of the phone. That only seems to work if all the designated extensions are housed on the same Asterisk server, i.e. one IP address. Here's what a typical entry for an extension should look like. To add another one, just duplicate the code, increment the line button number, and enter the appropriate settings for the next extension.

<line button="1">
<featureID>9</featureID>
<featureLabel>Ext. 400</featureLabel>
<proxy>192.168.0.108</proxy>
<port>5060</port>
<name>400</name>
<displayName>Ward Mundy</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName>400</authName>
<authPassword>1234</authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>*97</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>7b452e87-4496-4762-e11f-b26751a1884b</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>

We've shown the entries that worked for us. Most of the entries can be left alone. Just change the Proxy entry to the IP address of your Asterisk box. Then enter your extension number in featureLabel, name, and authName. Enter a displayName for calls from this extension, and enter your extension password in authPassword.

In addition to using these eight buttons for Extensions, you also can use them for Speed Dial entries. And these entries can be any sequence that your Asterisk server understands. For example, you could assign *8 to a button to do a Call Pickup. Here's what the entry would look like to assign this to the eighth button:

<line button="8">
<featureID>2</featureID>
<featureLabel>Call Pickup</featureLabel>
<speedDialNumber>*8</speedDialNumber>
</line>

Aside from assuring that the featureID code is 2, you can assign a Speed Dial entry to any button number and label it any way you choose. The speedDialNumber should be the exact string of numbers you would normally dial to place the call using the dialpad of your phone.

There are some other entries in the Config file, you'll want to take a look at. Near the bottom of the file you'll find settingsAccess. If this is set to zero, you'll want to change it to 1 so that you can avoid the TFTP knuckle drill we've outlined above. Once this configuration change is loaded into the phone, you should be able to manually enter a TFTP IP address as we described above.

Finally, there's a group of entries in the vendorConfig section of the file that determine when the 7970's display will be active and for how long. The entries look like this:

<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>08:00</displayOnTime>
<displayOnDuration>10:30</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>

These are self-explanatory for the most part. The first line tells the phone which days of the week not to turn on the display automatically. If you want it on every day, delete 1,7. The displayOnTime tells the phone what time of day in your time zone to turn on the display (24 hour clock). The next line tells the phone how many hours and minutes to leave the display lit. And the last line tells the phone how long to leave the phone lit up when you manually turn on the display by pressing the sixth Display button (which will display a green light when the phone display is off).

To load the configuration changes we've made above, just copy the three files in your Config directory to the default directory you set up on your TFTP server. Then unplug the phone and plug it back in once you have your TFTP server with its DHCP server configured and running.

After reading the next paragraph, we think you'll understand why we're abbreviating the implementation step with this phone. I'd venture to say that not one of our daily readers is going to buy this phone after reading our review. If some of you prove us wrong with your comments, we'll be glad to add the missing pieces. Or you can go here and find most of the information you'll need to get started. Here are a few helpful hints on replacing the default photo and ring tone on the phone. A link for dozens of ring tones appears earlier in the column. Step 2 is to create a distinctiveringlist.xml file and put it in the root directory of your TFTP server together with the .raw sound files. In the XML file, you merely list the sound files. And it looks like this:

<CiscoIPPhoneRingList>
<Ring>
<DisplayName>Fun 1</DisplayName>
<FileName>CTU1.raw</FileName>
</Ring>
</CiscoIPPhoneRingList>

To load a new Ring Tone for your first extension, crank up the TFTP server. Then press the Settings button on your phone followed by 1, 1, 2. Then follow the prompts to Select your desired Ring Tone for each extension.

You do something similar for photos except you need two PNG images for each photo you want to make available for display on the phone. One is a thumbnail (80x53) and the other is the photo itself (320x212 in 12 bit color). Don't worry about the 12 bits. The phone will convert 16 bit images, but keep the full-size images relatively small, e.g. 100K. Once you have your photos, create a Desktops folder off the root directory of your TFTP server. Then create a subdirectory inside it called 320x212x12. Using Notepad, create an XML file there and name it List.xml. Capitalization matters! Sample entries are shown below. Now copy all of your images to the 320x212x12 folder.

<CiscoIPPhoneImageList>
<ImageItem Image="TFTP:Desktops/320x212x12/MyGirlsTN.png" URL="TFTP:Desktops/320x212x12/MyGirls.png"/>
</CiscoIPPhoneImageList>

To change the desktop photo, crank up your TFTP server. Then press the Settings button on the phone followed by 1, 2. Then pick the desired photo and press the Select button. Save your change and you're done.

In theory, there are all sorts of other neat things you should be able to do with this phone. For example, there's a message waiting light. Doesn't work. Then there's a stutter dial tone with message waiting. Doesn't work. The phone is designed to display a listing of Phonebook Entries out of an XML file on your web site when you press the Directory button. Doesn't work. It's also supposed to display a page of helpful tips when you hit the question mark button. Doesn't work. Then there's the ability to run a web-based XML application. No cigar there either. And, when you answer a call on the phone, don't dare press the Transfer button unless you like watching core dumps. Fortunately, # transfers still work with Asterisk. Well, you get the idea. And this is Version 8? Can you even imagine what Version 1 looked like? And the sad part of all of this: the Cisco 7970 probably has the best voice quality of any telephone we've ever used. And we've used lots of them. Here's how we've decided to use the phone in our pure-VoIP environment. It's a variant of the old adage: "Don't Call Us, We'll Call You." We put the 7970 on a separate table in our high tech office and, whenever we need to talk to someone important, we'll call from our cushiest chair using this phone. For the rest of our incoming calls and our voicemail, we'll use another phone ... that works and better supports IP telephony but sounds more like a cellphone call. So, if you get a crystal-clear call from us, you can stand a little taller knowing how important you are. It's a call from the Cisco 7970!

The Hobson's Choice for most folks boils down to this. Do you want great sounding IP phone calls with a phone that costs two to five times as much as other IP phones while giving up virtually every other feature that has made IP telephony great? While it will let you retrieve your voicemail messages from your Asterisk server, unfortunately you'll never know you have a message unless you dial in regularly and manually check. This phone has been pitched as the perfect phone for the busy executive. The first busy executive that misses an important meeting because the message waiting lamp never lit up, and this phone would be out the window. Too bad!

Perhaps more than any other American company, Cisco is responsible for getting IP telephony off the ground. So it's especially disappointing to see what an absolutely crappy job they've passed off to the Internet community as their SIP offering. If you're one of their corporate customers, we hope you'll take the time to drop a line to John Chambers at Cisco and give him your thoughts. Cisco didn't get to where they are today with software that just barely passes the smell test.


Nerd Vittles Fan Club Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map compliments of Google. In making your entry, you can choose an icon: guy, gal, nerd, or geek. For those that don't know the difference in the last two, here's the best definition we've found: "a nerd is very similar to a geek, but with more RAM and a faster modem." We're always looking for the best BBQ joints on the planet. So, if you know of one, add it to the map while you're visiting as well.

Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) and take any or all of them for a spin. The sound quality may not be perfect due to performance limitations of our ancient Intel 386 demo machine. But the price is right.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!

Get Your Email By Telephone: Introducing MailCall for Asterisk

NOTE: For those using an Asterisk® 1.4-based system, read our new tutorial. Things are different.

For those that served in the military, there are at least two things you'll probably never forget: the lousy food and mail call. We don't have a solution for the lousy food, but we've got a terrific enhancement for mail call. We've named it MailCall for Asterisk, and it joins dozens of other telephony applications named MailCall with one important difference. Ours is FREE! What do it do? Well, it reads your email messages to you over the telephone. All you have to do is dial up your Asterisk server from any touchtone telephone. Can it handle multiple email accounts? Absolutely. Do the email accounts have to be on the Asterisk server? Nope. Does it work with POP3 and IMAP mail accounts? Yep. Which email messages can it speak? We've tried it successfully with messages from Yahoo, and HotMail, and Google Mail, and Comcast Mail, and RoadRunner, and Outlook Express, and Notes Mail, and Entourage. And it works with plain text messages as well as those with attachments although it doesn't deal with the attachments. No, it can't tell you what kind of picture is lurking in your inbox. Maybe someday. If you happen to be running a current version of TrixBox, then deploying MailCall for Asterisk will take you about 15 minutes. For other versions of Asterisk, you'll need to install Apache, PHP, the php-imap library, and the Flite voice processing system. You can scratch around on Nerd Vittles for most of the tutorials. But the easiest way to get this up and running quickly is to install TrixBox and get the latest updates using our tutorial from last week. You can't beat FREE!

Overview. The way MailCall for Asterisk works is pretty straight-forward. You add a code snippet to the extensions_trixbox.conf config file for each mail account you wish to activate. This is where you tell Asterisk which extension to dial to play back your messages. Then you drop a PHP script into the AGI script directory. Finally you create a configuration file for each email account you wish to set up. The config file tells MailCall the name of your provider, your username, your email password, and the 4-digit password you wish to use to access your messages by phone. Once you reload Asterisk, you'll be off to the races.

Dial the extension and enter your password for this account. MailCall for Asterisk will connect to your mail server and tell you how many messages are sitting in your mailbox. Press 1 to play the most recent message. After it plays, you can press 5 to replay the message, press 6 to play the next most recent message in your mailbox, press 4 to play the previous message (if any), press 0 to retrieve a specific message, press * for a list of options, or press # to exit. These are the same buttons you press for these functions in the Asterisk voicemail system, Comedian Mail. We tried not to reinvent the wheel although the options aren't especially intuitive. We've also built a quick-and-dirty web interface to let you test access to your email accounts. The idea is to get PHP working with your email account and then copy the config file settings to your MailCall config file. You'll find it easier to debug connection problems using a web browser rather than using a telephone.

Try It, You'll Like It. At the risk of bringing our clunker TrixBox development server (with a whopping 128MB of RAM) to its knees, we decided to make it easy for you to see how MailCall for Asterisk works. You can call our Stanaphone number and take it for a spin for up to two minutes. Just dial the number shown in the left margin and enter 1111 as your password. Wait for each prompt to complete before making a selection with your touchtone phone. And understand that the sound quality may not be perfect due to performance limitations of this very old Intel 386 machine. We'll show you how to set up something similar toward the end of this article... hopefully with better hardware. For those that have made a recent donation to Nerd Vittles, thank you! We've raised almost enough money to replace the 386 machine ... with a 486. Hi tech, indeed!

Getting Started. Let's take first things first. Before proceeding with the installation, make sure you are running at least TrixBox 1.1.1 by pointing a web browser at the IP address of your TrixBox server. If you're running an earlier version, log into your server as root, and type trixbox-update.sh update twice to get everything current. Then reboot. If you're running pure Asterisk on some other type of Linux box, come back the day after tomorrow when you finish installing and configuring Apache, PHP, the php-imap library with all dependencies, SendMail, and the Flite speech synthesis engine. Once you get all of the pieces properly configured and talking to each other, you'll be in the same place as those that used our tutorial last week to install TrixBox 1.1.1 at no cost in about an hour.

Installing the Web Interface. To install the web interface that you'll use for testing PHP access to your email account, log into your TrixBox server as root and issue the following commands:

cd /var/www/html
mkdir readmail
cd readmail
wget http://nerdvittles.com/mailcall/webstuff.zip
unzip webstuff.zip
rm -f webstuff.zip
cp config.php config.bak.php

Testing Your First Mail Account. While you're still in the readmail directory, let's set up your first email account to make sure everything is working. If you've configured an email account previously in Outlook Express or some other mail reader, take a look at your configuration there and write down the settings. We'll need to know the fully-qualified domain name for your mail server, the type of mail account you have (POP3 or IMAP), the port used to access your mail and whether it's encrypted, and your username and email password. Here's what the settings for Gmail accounts should look like:

$MAILSERVER="pop.gmail.com:995/pop3/ssl";
$USER = "yourname@gmail.com" ;
$PW = "yourpassword" ;

If your email domain is hosted by a hosting provider such as our favorite, BlueHost, then here's the way the settings should look for your POP3 account:

$MAILSERVER="yourdomain.org:110/pop3";
$USER = "username+yourdomain.org" ;
$PW = "password" ;

For an IMAP mail account, the settings should look something like the following:

$MAILSERVER="yourdomain.org:143/imap";
$USER = "username+yourdomain.org" ;
$PW = "password" ;

Some ISPs require both your username and the domain as your login name. Others only want your account name. Whatever is working with your current mail client to successfully retrieve your email is what you should use here. Note that you must add both :portnumber and either /pop3 or /imap onto the end of your mail domain entry. We've made a duplicate of the config.php file for you just in case you mess up. Once you have your settings in hand, edit the config.php file in the readmail folder: nano -w config.php. Make the necessary entries and be sure you preserve the quotes around the entries as well as the semicolon at the end of each line. When you're finished, save your changes: Ctrl-X, Y, then Enter. Now open a web browser and go to http://IPaddressOfYourTrixBox/readmail/. You should get a list of messages in your Inbox. When you click on a message, it should display in the browser. Get this working first before proceeding. Don't worry if some of the messages don't look quite right. We made some improvements in the MailCall application after the web interface was completed.

Newbie Alert: We ALWAYS love to hear from the Nerd Vittles Fan Club but ... If you have problems getting this to work, DON'T SEND ME EMAILS ASKING FOR HELP. Post your setup and your problem on the TrixBox Help Forum and someone (maybe even me) will respond. This assists not only you but also anyone else with a similar problem. The blog format used for Nerd Vittles just isn't suitable for tech support ... and neither am I usually.

Modifying Your TrixBox Dialplan. As indicated above, we need to add some code to the extensions_trixbox.conf file for each mail account you want to access. The basic code looks like this:

exten => 555,1,Answer
exten => 555,2,Wait(1)
exten => 555,3,DigitTimeout(7)
exten => 555,4,ResponseTimeout(10)
exten => 555,5,Flite("At the beep enter your e-mail password.")
exten => 555,6,Read(PWCODE,beep,4)
exten => 555,7,Flite("Please hold a moment.")
exten => 555,8,AGI(nv-mailcall.php|${PWCODE})
exten => 555,9,Flite("Thank you for calling. Good bye.")
exten => 555,10,Hangup

The only change you need to make is in the extension number (555) on each line. This tells Asterisk what number you'll be calling to retrieve your messages. If you want to access more than one email account, then you simply duplicate the above code with different extension numbers. Just be sure that all 10 lines of each code snippet have the same extension number. If you don't like four-digit phone passwords, you can change the length to anything that makes you sleep well (in line 6 above). Now open up the TrixBox web interface by pointing a web browser at your TrixBox server. Then choose Config Edit on the main Configuration and Administration screen. Once phpconfig opens, click on extensions_trixbox.conf. Add the above code in the [from-internal-trixbox] context (section) of the file. And click the Update button once you've adjusted the extension number to meet your needs.

Installing MailCall for Asterisk. Now we're ready to install the actual application. Log into your server as root and issue the following commands in order:

cd /var/lib/asterisk/agi-bin
wget http://nerdvittles.com/mailcall/mailcall.zip
unzip mailcall.zip
rm -f mailcall.zip
cp nv-config-555.php nv-config.php
chown asterisk:asterisk nv*.php
chmod 775 nv*.php

The zip file contained two files: nv-mailcall.php (the MailCall for Asterisk application) and nv-config-555.php (the email config file for extension 555). And we made a backup copy of the config file: nv-config.php. The important point here is that you must create a config file for each mail account you wish to access, and it must be named correctly, or nothing works. The file name is important because that's how the application retrieves information about your mail account. The file naming syntax is pretty obvious: nv-config-extensiontocall.php. Just make sure your config file name matches the extension you used in the dialplan code above. Once you get the config file named correctly, edit the file and personalize it to your mail settings which we tested with the web interface. Be sure to also replace the phone password entry of 1111 with a four-digit numeric password that you will use to access your email. Save your changes and then reload Asterisk: amportal restart. Now pick up a phone on your Asterisk system and dial 555. Presto! You've got email!

Remote Access to MailCall for Asterisk. You may or may not want access to MailCall from phones outside your Asterisk system. If you do, here's a simple way to implement it. In a nutshell, you'll want to set up an account with a provider such as Stanaphone which provides a free DID number and free incoming calls. Or just add an extra DID number to your TelaSIP account. Then add an extension number to your system using freePBX and configure it to always forward calls to 555 or whatever number you used for MailCall. Finally, create an Incoming Route in freePBX which sends incoming calls on the Stanaphone or TelaSIP DID number to extension 500. Why not just forward the calls to 555 directly? Because freePBX doesn't know about the 555 extension since it's embedded in the extensions_trixbox.conf file.

We covered the Stanaphone setup process in our TrixBox tutorial. Once you get it set up, add a new extension to your system (e.g. 500). Then pick up a phone on your system and dial *72. When prompted for the extension, enter 500 or whatever new extension you created. When prompted for the forwarding number, enter 555 or whatever extension you used for MailCall. Next choose Setup->Inbound Routes->Add Incoming Route in freePBX. Add entries that look like this using your new DID number:

DID Number 3473451234
CallerID Number [leave blank]
Zaptel Channel [leave blank]
FAX Extension freePBX default
FAX Email [leave blank]
FAX Detection Type nvfax
Pause After Answer 2
Privacy Manager no
Alert Info [leave blank]
Destination Core: 500

Click the Submit button when you finish and then the Red Bar to reload Asterisk. Now you can dial your Stanaphone number from any phone anywhere to access your email. This is exactly how the Nerd Vittles MailCall demo works.

Adding Additional Mail Accounts to MailCall for Asterisk. Now you'll want to set up a way for the Little Mrs. to check her email, too. Call it an early Valentine's present. Step 1 is to add 10 more lines of dialplan code (as we did above) to your extensions_trixbox.conf file using a new extension number, e.g. 556. Second, add a new MailCall config file in /var/lib/asterisk/agi-bin for this extension, e.g. nv-config-556.php. Third, edit the new config file to personalize it to your spouse's email settings and add a dial up password. Finally, restart Asterisk: amportal restart. Now dial the extension and be sure it works. Then impress the Little Mrs.

MailCall for Asterisk Wish List. This is just version 1 of what we hope will be a long-running hit application for the Asterisk community. Your feedback can help us with future versions. If there are messages that don't get decoded properly, post a comment and let us know where the message came from and its format. And leave a valid email address so that we can get back to you to obtain a copy of the message. Your email address does NOT get published in the comment. We'd also appreciate your posting a comment if you have a suggestion for version two: subject first then play message option, the ability to delete messages, function to reply to messages with canned text messages or reply to messages with voice recordings, the ability to send new messages to one or more prestored email addresses. The sky's the limit and the price is right! So let us hear from you. And keep the donations coming! We've got a new fishing boat to pay for.

P.S. to Software Developers and Those That Need Them. We get lots of emails and queries about development of PHP and AGI scripts for Asterisk and TrixBox. This is as good a time as any to reveal our dirty little secret and clue you in on just how easy application development is on the TrixBox platform with its underlying Linux, Apache, PHP, SendMail, and Perl engines. If you do a little Googling for mailcall, you'll quickly learn that there are dozens of commercial products out there that will read you your email for a fee. The starting price is about $100 a year per mail account and quickly escalates depending upon how proprietary your operating environment is and how personalized you want your service. Let's compare that to the TrixBox solution we've provided today. While MailCall for Asterisk is still admittedly a little rough around the edges, we're almost embarrassed to tell you that there is less than two days development work in this project. And that includes most of the time to write this article. So, if you're a developer, get on the bandwagon. We'll be glad to feature your projects on Nerd Vittles. If you're a company with a phone system that could use a facelift, let us know. We'll try to put you in touch with a starving artist that can really make your day without bankrupting your company. Enjoy!


Nerd Vittles Fan Club Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map compliments of Google. In making your entry, you can choose an icon: guy, gal, nerd, or geek. For those that don't know the difference in the last two, here's the best definition we've found: "a nerd is very similar to a geek, but with more RAM and a faster modem." We're always looking for the best BBQ joints on the planet. So, if you know of one, add it to the map while you're visiting as well.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!


Some Recent Nerd Vittles Articles of Interest...

ISP-In-A-Box: The $500 Mac mini (WebDAV and Web Folders 101)

Microsoft deserves a lot of credit for popularizing the idea of Web Folders, but the open source movement gets the accolades for making WebDAV work reliably across all the computing platforms. If you didn't already know, WebDAV stands for Web-based Distributed Authoring and Versioning. Simply put, it is an HTTP protocol extension that allows people anywhere on the Internet to collaboratively edit and manage documents and other files using the same protocol and port used for surfing the web. In the Mac world, WebDAV provides a Disk Volume on your Desktop that "looks and feels" like any other networked hard disk. In the Windows world, WebDAV provides a Web Folder which can be used like any other mapped drive in Network Neighborhood. If you're still a little fuzzy about the WebDAV concept, think of how you link to another drive on your local area network. WebDAV gives you the same functionality across the entire Internet with virtually the same ease of use. Depending upon user privileges, of course, you can copy files to and from a WebDAV volume, and the protocol imposes versioning control through file locking to assure that multiple people don't change the same file at the same time. Panther and Tiger versions of Mac OS X provide both a WebDAV client and server, and today we'll walk you through configuring and using both the client and the server on your Mac. Because of the number of folks that also use Windows machines at the office, we'll also briefly touch upon how to access your Mac WebDAV resources and set up a Web Folder from a Windows XP machine.

HOW-TO Use the WebDAV Client on the Mac. We're going to start by walking through the set up process for connecting to a WebDAV server resource anywhere on the Internet. To connect to a WebDAV resource from a Mac, press Command-K from Finder. Then enter a Server Address in the following format: http://192.168.0.103/dav/. This tells Finder to use the HTTP protocol to establish a link to an IP address and folder that you designate. You also can use a fully-qualified domain name in lieu of an IP address. Typically, you'll be prompted for a username and password, and then a new volume will appear on your Desktop which can be used just like your local hard disk. When you finish using the resource, CTRL-Click on the volume and Eject it. It's that simple.

HOW-TO Use Web Folders on a Windows PC. The Windows process is a bit different as you might expect, but the results are the same. Once connected, you'll have a mapped drive that can be used just like any other network drive. The simplest way is to map a drive (see inset). To access Web Folders and save your settings, we're going to use the Add Network Place Wizard. You can access it in several ways. Either Right-Click on Network Neighborhood and choose Map Drive. Or from My Network Places, choose Add a network place. Or from Windows Explorer, choose Tools->Map Network Drive. Now click "Sign up for online storage or connect to a network server" at the bottom of the window.

When the Add Network Place Wizard appears, you'll be prompted for where to create the network place. Select "Choose another network location" and click Next. For the Internet address, use the same syntax as on the Mac: http://192.168.0.103/dav/ and click Next. Give your network place a name and click Next then Finish. Your new Web Folder will now appear in My Network Places. Just click on it to connect. Here's the gotcha with WebDAV on the Windows platform. If you access a Web Folder by IP address, when you're prompted for a username and password to log in, the username must be in email format: john@doe.org. Another "Better Idea" from our friends at Micro$oft. So when you create usernames on your Mac, keep this in mind if you want Windows users to be able to access the resources reliably. It doesn't matter what the email username or domain is, but it has to be in email format. When you finish using a web folder, be sure to disconnect. Open Windows Explorer, choose Tools->Disconnect Network Drive, and select the Web Folder you wish to disconnect.

Connecting to a WebDAV Resource. We've temporarily set up a sample WebDAV server on one of our Tiger-enhanced Macs so that you can experiment with WebDAV access from your favorite Mac, Linux, or Windows machine. For reasons which should be obvious, we've disabled writing to our WebDAV server only because we didn't want our hard disk filled up by some anonymous bozo in the middle of the night. We're also going to provide a single username and password for everyone to use. It should be stressed that neither of these scenarios is typical. First, the usual purpose of a WebDAV server is to facilitate collaboration which means all authorized users should be able to read and write to the volume. Second, you usually don't provide access to a WebDAV server for anonymous users. That's what web sites are for. But this is Wiki World, and we wanted to show you how these things are put together before you roll your own. So bear with the constraints recognizing that, when you set up your own WebDAV server, it will be much more robust.

To access the system, follow one of the client access methods outlined above. The web address using Windows is http://webify.us. For Macs, use http://dav.webify.us:82. When prompted for a username and password, use bozo for the username and forlife as the password. If you have problems with the username on a Windows PC, use bozo@webify.us. Don't forget to disconnect when you are finished playing. NOTE: This system (only) will be down for a move to its new permanent location from Thursday afternoon, May 26 until Saturday morning, May 28. Our apologies.

That about covers using a WebDAV client. For step-by-step instructions on creating your own WebDAV server on your Mac, here's a reprint of the article from our former Tiger Vittles site.

ISP-In-A-Box: Building a WebDAV Server for Remote Access

Ever wished you had several gigs of off-site disk storage so you could safely back up all your most important data and use it for remote access or collaboration. One option, of course, is a .Mac account which gives you 125MB of iDisk storage space and other goodies for $99 a year. You can increase your iDisk to a gigabyte for an additional $49.95 a year, a bargain compared to some commercial sites. Here’s another approach that’ll save you hundreds of dollars a year. Find a friend with a Mac and an Internet connection and swap several gigs of storage space on your friend’s Mac for several gigs of storage space on yours. Then follow along here, and we’ll show both of you how to build and use WebDAV servers to do exactly what the commercial firms are doing. And you can use the Apache software that’s already installed with Mac OS X Tiger.

As you now know, WebDAV stands for Web-based Distributed Authoring and Versioning. Simply put, it is an HTTP protocol extension that allows people anywhere on the Internet to collaboratively edit and manage documents and other files using the same protocol and port used for surfing the web. In the Mac world, WebDAV provides a Disk Volume on your Desktop that “looks and feels” like any other networked hard disk. In the Windows world, WebDAV is called Web Folders. They can be used like any other mapped drive in Network Neighborhood. If you’re still a little fuzzy about the WebDAV concept, think of how you link to another drive on your local area network. WebDAV gives you the same functionality across the entire Internet with virtually the same ease of use. Depending upon user privileges, of course, you can copy files to and from a WebDAV volume, and the protocol imposes versioning control through file locking to assure that multiple people don’t change the same file at the same time. Panther and Tiger versions of Mac OS X provide both a WebDAV client and server. Nerd Vittles walked you through configuring and using the WebDAV clients. So let’s tackle the WebDAV server setup now. This works with Tiger or Panther by the way.

In a nutshell, the WebDAV server setup goes like this. We’ll create a new subdirectory in the web server’s storage folder which we’ll use for WebDAV read and write access. Then we’ll set up a username and password system to support WebDAV access. Next we’ll activate the WebDAV mods in Apache which already are installed on your Mac. We’ll then reconfigure Apache a bit to support WebDAV formatting. And finally we’ll restart our web server and presto, WebDAV. You don’t need to be a Rocket Scientist to do this, but you do have to get your hands dirty with a command-line editor, Pico. If you’ve followed other Nerd Vittles tutorials, then this one will be a breeze. Just be sure you edit carefully and, if something does go wrong, copy your backup Apache config file back over the edited one and try again. Apache errors don’t get reported in System Preferences->Sharing when you activate your personal web server. If you have problems and want to see what’s going on, activate and then run WebMin (which we previously covered at Nerd Vittles and upgraded here last week for Tiger). Using your browser, access WebMin and choose Servers->Apache Webserver. Then start and stop the web server from there. Errors will be reported with the line number in the config file that’s causing the problem. Ctrl-C in Pico will tell you what line number you’re on in the config file. If this sounds like I’ve had recent experience, you’d be correct. But you won’t have to pull your hair out. I’ve already done that with mine.

Creating a WebDAV Folder.
Open a Terminal window, and switch to root access: sudo su. Then navigate to the root of your web server folders: cd /Library/WebServer/Documents. Create a new WebDAV folder: mkdir dav. Change the permissions of the folder’s group to match the Apache group: chgrp -R www dav. If you want to provide write access to users who connect to your WebDAV folder, then change the permissions to allow it: chmod 775 dav.

Building a Password File. We already built a password file in the Web Sites 101 tutorial on Nerd Vittles. We used that password file to manage web site access to various web directories. You probably don’t want to use the same password file for WebDAV unless you are building this just for yourself. The only trick to password files is you want to put the file where Apache can read it but your web visitors cannot. And you want to be careful not to insert blank lines in the file with just a colon. That basically lets everyone in. The format for the file is username:password, each on a separate line. And the passwords are encrypted. Here’s how to do it.

Open a Terminal window and switch to root access: sudo su. Now move to the directory where we’ll put the password file: cd /usr/local. We’re going to name this password file dav.pw so we can remember what it’s for. To create the file and erase any existing file without warning type: htpasswd -c dav.pw admin. Think up a password you can remember, and you’ll be prompted to type it twice. Now let’s verify that the file was created: cat dav.pw. You should see the word admin, then a colon, and then your encrypted password. To add additional users to the file, just type: htpasswd -m dav.pw username where username is your next user. You’ll be prompted for the password. Remember, if you accidentally use the htpasswd -c syntax a second time, you will overwrite your existing file and all of its entries. So be careful. Finally, remember to make duplicate entries using full email syntax for the username to assure that Windows users can access your DAV resources: htpasswd -m dav.pw joe@schmo.com.

Reconfiguring Apache to Support WebDAV.
Open a Terminal window, and switch to root access: sudo su. Then navigate to the folder with Apache’s configuration file: cd /etc/httpd. First, let’s make a backup copy of the config file in case something goes wrong: cp httpd.conf httpd.conf.dav.save. Now let’s carefully edit the config file: pico httpd.conf. Uncomment the headers_module line by searching for headers (Ctrl-W, headers, enter) and then pressing Ctrl-D while positioned over the # sign at the beginning of the line. Now search for mod_headers (Ctrl-W, mod_headers, enter) and uncomment that line (Ctrl-D while positioned over beginning # sign). Now search for dav_module (Ctrl-W, dav_module, enter) and uncomment the line (Ctrl-D while positioned over beginning # sign). Now search for mod_dav (Ctrl-W, mod_dav, enter) and uncomment the line (Ctrl-D while positioned over beginning # sign). Now press Ctrl-V repeatedly until you get to the bottom of the file. Switch to your web browser and download this WebDav snippet. When the code snippet displays in your web browser, press Command-A then Command-C to copy all of the code to your clipboard. Then switch back to Pico, click at the bottom of the config file, and paste the code snippet into the config file by pressing Command-V. Use the down arrow to move to the BrowserMatch section of the code we just pasted and be sure “redirect-carefully” didn’t end up on a line by itself. If it did, position the cursor over the first letter “r” and press the backspace key to move it back up to the end of the previous line of code. Don’t worry if a dollar sign displays at the end of the line after you move it. This just indicates that additional text is off the screen… the price we pay for using a free editor. Now we should be all set. Save the config file: Ctrl-X, Y, enter. And restart Apache by deselecting and then reselecting Personal Web Sharing from System Preferences->Sharing. Close the Terminal window by typing exit, pressing enter, and then pressing Command-Q.

Testing Your WebDAV Server. To test whether WebDAV is working, switch to your Desktop and, using Finder, press Command-K. When prompted for the server address, type http://localhost/dav and then click the Connect button. Enter your username and password that you created in the dav.pw password file, and a blank dav folder should appear on your Desktop. Drag a file from your Desktop to the folder to be sure everything is working as it should. If you’ve enabled web access through your Mac and router firewalls (which we have previously covered here), then you should be able to access your WebDAV folder from the Internet with your IP address or domain name using the syntax: http://mydomain.com/dav. Enjoy your new WebDAV server. Now all you need is a friend to share it with.

Ringbinder theme by Themocracy