HAWHAW: Developing WEB, WAP and Voice Enabled content portal

When developing any mobile content portal we generally think about the accessibility of that portal through the mobile browsers (like Nokia, Openwave, i-mode browsers, AvantGo in PDA etc) which generally uses markup languages like WML, HDML, cHTML, XHTML etc. But how about if a general markup language can serve all the necessity even the VoiceXML output also. HAWHAW is such a toolkit to create universal mobile portals which can be accessible through the Web, mobile as well as through the voice browsers.

One of the major concentrations of mobile CMS developer is to ensure the markup adaptability of his/her developed code so that the browser gets the compatible markup language and can present the portal content in correct format. Even if as the time advances new version of browsers are adapting Web 2.0 but it will take some more time to complete this process. So yet in the market there exists the mobile browsers from the old days. HDML, the predecessor of WML, is widely used in North America and Japan. Most of the mobile browsers in Japan supports cHTML as their markup language. But it is not an easy task for the developer to prepare a version of his code for each markup language. Here comes the concept like: code once and access from everywhere even from Voice browsers also. HAWHAW (HTML And WML Hybrid Adapted Webserver) focuses on this issue. HAWHAW is not only the one in this markup conversion race. There are some other like WALL (the Wireless Abstraction Library by Luca Passani). But as far I know HAWHAW is unique in the sector of producing voice enabled output (eg. VoiceXML). So through HAWHAW it is possible to design mobile service that feature synthesized speech, digitized audio, recognition of spoken and DTMF key input, recording of spoken input etc as well as the same portal can be browsed from the conventional web and mobile browsers.

2. HAWHAW Components:

HAWHAW toolkit consists of three components:

  • hawhaw.inc: PHP class library
  • HAWHAW XML: HAWHAW markup language. It is a markup language and is not a standard. So using the HAWHAW XML directly will not work.
  • hawxy.php: HAWXY (XML proXY HAWXY) takes the input HAWHAW XML file and HAWXYfy it to produce the appropriate markup language (WML,HDML,cHTML or VoiceXML etc) for the requesting browser.

Now that we already know about the benefits of HAWHAW in the following sections I will describe on how you can code in HAWHAW and test those locally.

3. HAWHAW Yourself:

The pre-requisites for running HAWHAW code is: your system must be able to run PHP code.
I istalled apache2triad for which I got PHP and Apache installed. Apache2triad is a distribution of some of the most popular open source servers and interpreters for developing and providing web content using windows.

3.1 Architecture of a HAWHAW code:

As HAWHAW is an XML language so the first line must be there followed by <hawhaw> </hawhaw> tags. And each HAWHAW page is represented as a deck so comes the <deck> </deck> tags in between <hawhaw> </hawhaw>.

3.2 Example Code:

3.3 Expected Output:

In any web or mobile browser it will display the text Temperature:26C.

In any voice browser you will listen the audio version of the text The temperature is 26 degree centigrade today.

3.4 Preparation:

Now follow the following steps:

  1. Download the HAWHAW files (hawhaw.inc and hawxy.php).
  2. Save the files inside YOUR_PHP_ROOT/HAWHAW folder.
  3. Now open any editor, copy the above code save it as HAWHAWTEST.xml inside YOUR_PHP_ROOT/HAWHAW folder.
  4. So now the full path of your HAWHAW code is http://127.0.0.1 /HAWHAW/HAWHAWTEST.xml
  5. But as HAWHAW XML is not standard, so you can not use it as an executable URL. You must pass this code to HAWHAW proxy so that hawxy.php can convert this HAWHAW XML into the appropriate markup language which is recognizable for the requesting browser.
  6. To HOXIFY your HAWHAW XML the executable URL will be as follows:
    http:// 127.0.0.1/HAWHAW/hawxy.php?code=http://127.0.0.1/HAWHAW/hawhawtest.xml

4. Testing your code:

Now are ready to test and can test your code to see the effect browsing from web browser, mobile browser or voice browser.

4.1. Test from Web Browser:

Open Internet Explorer, paste the above executable URL and press GO. You should see something like as follows:

4.2. Test from mobile browsers:

To test this I used Openwave Phone Simulator. The output seems like as follows:

4.3. Test from VOICE browsers:

I used FREE voice browser Prophecy 7.0.301.5 from Voxeo. The procedure is:

  1. Install Prophecy 7.0.301.5. You will see icon in the system tray.
  2. Click on the system tray icon and select Prophecy Home which will pop-up a webpage.
  3. In this page there is a link titled “Administration”. Click and open the Administration page which will ask for userid and password (userid: admin and password:admin).
  4. After login go to the menu Call Routing.In the Default URL box paste the above executable URL(http:// 127.0.0.1/HAWHAW/hawxy.php?code=http://127.0.0.1/HAWHAW/hawhawtest.xml) and save. And the Default Type will be VOICEXML.

  5. Now from system tray icon, click and open SIP Phone. In the dial string type sip:vxml@127.0.0.1 and press dial. You will listen the audio version of this page.

5. Conclusion:

HAWHAW can be best tool for the development of informative portal (eg. real time news headline, weather update etc) which the mobile subscribers can access through several channels (WEB, mobile browsers and Voice browsers etc). There are some major drawback of HAWHAW. It is not good when you work with image in the mobile portal. But in total it is very much helpful when you want to prepare a multi source content portal.

6. Related Links:


Exclusive tips, how-tos, news and comment

Receive monthly updates on the world of mobile dev.

Other Products

Market leading device intelligence for the web, app and MNO ecosystems
DeviceAtlas - Device Intelligence

Real-time identification of fraudulent and misrepresented traffic
DeviceAssure - Device Verification

A free tool for developers, designers and marketers to test website performance
mobiReady - Evaluate your websites’ mobile readiness

© 2024 DeviceAtlas Limited. All rights reserved.

This is a website of DeviceAtlas Limited, a private company limited by shares, incorporated and registered in the Republic of Ireland with registered number 398040 and registered office at 6th Floor, 2 Grand Canal Square, Dublin 2, Ireland