Friday, December 7, 2007

FOIP (Fax Over IP) Explained

As internet technology emerges rapidly and many organizations continue to build out and expand their new IP infrastructure, VoIP is moving into wider adoption with fax over IP (FoIP) ramping up quickly.

Both technologies bring traditional telephony applications into data network environments, allowing organizations to transport phone conversation or fax data calls over them. This consolidation of data and communications resources provides an opportunity to leverage a single unified common broadband resource and employ the Internet and company Intranets for cost-effective voice, fax and data transmissions.


The following benefits are the most significant when implementing or considering a FoIP solution:
  • Total Cost of Ownership (TCO) savings due to network consolidation
  • Ability to push a consistent fax solution throughout the entire network including remote locations
  • Improved IT management
  • Device/application integration

Who will benefit first from adopting FoIP?

Mainly organizations whose planning to transition to an all IP-based collaboration environment as they will benefits much on ROI (return on the investment) of consolidating voice, fax and data communication.

If you are seriously looking to expand your communication infrastructure to readily adopt IP support, look for choices that include hardware-based PSTN; hardware-based FoIP and software-based FoIP (T.37 or T.38) options.

Quoting Pete Davidson from Davidson Consulting, the market for FoIP systems started to show up in force in 2005…this led to a market that grew by 180% to $31 million!
“The voice over Internet protocol (VoIP) market is a booming field. According to a recent report by TeleGeography, the industry's second-quarter revenue jumped 173% over the prior year to $607 million.” — Investor’s Business Daily, Oct. 3, 2006
“Enterprise VoIP adoption in North America will more than double in 2010. VoIP adoption will triple by 2010 among small organizations in North America.” —Infonetic’s Research “User Plans for VoIP”, May 2006.


Technical Overview

Compressing fax signals is different from compressing voice signals, so a new standard (T.38) has been created for this. If the VoIP adapter and gateway are T.38 compliant, most fax machines can simply be plugged into the VoIP adapter instead of a regular phone line.

T.38 is an ITU recommendation for sending fax messages over IP networks in real time. The T.38 fax relay standard was devised in 1998 as a way to permit faxes to be transported across IP networks between existing Group 3 (G3) fax terminals. T.4 and related fax standards were published by the ITU in 1980, before the rise of the internet. In the late 90s, VoIP, or Voice over IP, began to gain ground as an alternative to the conventional Public Switched Telephone Network. However, because most VoIP systems are optimized (through their use of bandwidth-saving compression) for voice rather than data calls, conventional fax machines worked poorly or not at all on them. Thus, some way of transmitting fax over IP was needed.

See also: List of free Internet Fax Service providers

Friday, November 30, 2007

HTML 5

HTML 5 will be the 5th major revision of the core language of the World Wide Web, the HTML. It were started back in 2004 by a group known as WHATWG. HTML 5 was adopted as the starting point of the work of the new HTML working group of the W3C in 2007 and an HTML 5 W3C Working Draft was published on November 15th, 2007.

HTML 5 is a new version of HTML 4.01 and XHTML 1.0 addressing many of the issues of those specifications while at the same time enhancing (X)HTML to more adequately address Web applications. Besides defining a markup language that can be written in both HTML (HTML5) and XML (XHTML5) it also defines many APIs that form the basis of the Web architecture. These APIs are known to some as "DOM Level 0" and have never been documented. Yet they are extremely important for browser vendors to support existing Web content and for authors to be able to build Web applications.

Some major differences between HTML 4 and HTML 5:

  • New parsing rules oriented towards flexible parsing and compatibility
  • New elements – section, video, progress, nav, meter, time, aside, canvas
  • New Input attributes – time, email, url
  • New Attributes – ping, charset, async
  • Global attributes (that can be applied for every element) – id, tabindex, repeat
  • Some ancient Elements are being dropped – center, font, strike

A HTML 5 browser should be flexible in handling incorrect syntax, unlike with XHTML, where the browser must refuse to render a document at all even if there is just one illegal character or missing close tag. HTML 5 is designed such that old HTML-4 browsers can safely ignore new HTML 5 constructs. Unlike with HTML 4, the HTML 5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax.

HTML 5 provides a number of new elements and attributes (known as tags) that reflect typical usage on modern web sites. Some of them are technically similar to <div> and <span> tags, but have a semantic meaning, for example <nav> (website navigation block) and <footer>. Such tags would facilitate indexing by search engines and handling by small-screen devices or voice readers for people with seeing difficulties. Other elements provide new functionality through a standardized interface, such as the <audio> and <video> elements.

The new HTML 5 specifications will also incorporate WebForms 2.0 which expands the traditional HTML form model to support new types and features. One of the big additions to the Web Forms model introduced with this specification is primitive type (such extensive set of date/time data types, email, url) and validity checking. More major changes: controls can be placed outside <form></form> tags, forms can be nested inside another form, new data attribute to fetch information from external resources, repeating form control model, ability to set value range, masked-input capability using pattern, and many more improvements.

Other elements have been dropped, such as the purely presentational elements <center> and <font>, whose effects can be handled in Cascading Stylesheets (CSS).

RSS Explained


What Is RSS?

Really Simple Syndication (RSS) (formally acronym of "RDF Site Summary") is a format for sharing content among different websites, based on XML format. Sites can syndicate “feeds” (content) and Internet users can use an application called an RSS reader or aggregator to download feeds. There are many such readers available, most at no cost.

Using RSS, webmasters can put their content into a standardized format, which can be viewed and organized through RSS-aware software or automatically conveyed as new content on another website dynamically through embedded RSS Feed Reader (usually written in Javascript using AJAX or parsed by server side scripting such PHP-based XML aggregator).

More information about RSS can be obtained from Wikipedia at http://en.wikipedia.org/wiki/.rss

Monday, November 19, 2007

PHP Easter Egg

PHP "Easter Egg"

If you add the code "?=PHPE9568F36-D428-11d2-A769-00AA001ACF42" (without quotes) to the end of any URL that is a PHP page, you will see a funny picture on most servers. Also on April 1st (April Fool's Day), the picture will replace the PHP logo on any phpinfo() page. If the PHP directive expose_php is set to be "off" in php.ini, then the PHP eggs will not show, but it is "on" by default, and many webhosting servers do not change it. If you see such a URL in your website logs, it may be because someone is trying to determine if your server is running PHP and attempting to discover weaknesses in your system. By setting expose_php = off in the php.ini configuration file, you will reduce the amount of information available to them. If the PHP easteregg is active (the URL shows the image), then scanning the website with Nitko web server scanner will give the warning message, "PHP reveals potentially sensitive information via certain HTTP requests which contain specific QUERY strings."

These are the four QUERY strings you can add to the end of a PHP web page to view a (somewhat) hidden image or web page:

(1) ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
This one is the most interesting, and displays an "easter egg" image of either a rabbit in a house, a brown dog in the grass, a black Scottish Terrier dog, a sloppy child-crayon-colored php logo, or a guy with breadsticks (looks like pencils or french fries) sticking out of his mouth like a walrus. The original dog was Stig Bakken's (Stig is one of the PHP developers); the newer dog is Zeev Suraski's dog (the link goes to his blog entry about the dog, called Scotch or Scottie, that died August 30, 2005); and the guy is Thies Arntzen (the logo image was taken from a picture from the PHP Developers' Meeting that the PHP Group held in January 2000). The five images are shown below. Anyone know whose rabbit it is, or more details on these? The black dog, colored logo, and rabbit pictures are 10 pixels shorter than the other two images.

PHP easter egg dog PHPE9568F36-D428-11d2-A769-00AA001ACF42 PHP easteregg Scottish Terrier dog PHP easter eggs: child crayon-colored php logo
PHP easter egg dude PHP easter egg rabbit

(2) ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
This is used by the phpinfo function to display the PHP logo, but works on other PHP pages.

PHP logo PHPE9568F34-D428-11d2-A769-00AA001ACF42

(3) ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
This is used by the phpinfo() function to display the Zend logo, but also works on other PHP-parsed pages.

Zend engine logo PHPE9568F35-D428-11d2-A769-00AA001ACF42

(4) ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
This displays the PHP development credits, and is linked to from any phpinfo() page with text "PHP Credits".

The only truly hidden image is the first one above. The other three are called from the web page produced by the phpinfo() function.

For the first code above, other online sources claim it displays a rabbit in PHP versions 5.0 and 5.01, a dog in 4.3.0 and higher (below 5.0), and the funny PHP coder guy in PHP versions 4.0 through 4.2.3. Below are the images I saw for these PHP versions:

PHPCODER GUY WITH BREADSTICKS (Thies C. Arntzen):
PHP Version 4.0.1pl2
PHP Version 4.1.2 *
PHP Version 4.2.2 *

BROWN DOG IN GRASS:
PHP4u Version 3.0, Based on PHP-4.3.2
PHP Version 4.3.2
PHP Version 4.3.3
PHP Version 4.3.8
PHP Version 4.3.9
PHP Version 4.3.10

BLACK SCOTTISH TERRIER DOG:
PHP Version 4.3.11
PHP Version 4.4.0
PHP Version 4.4.1
PHP Version 4.4.2
PHP Version 4.4.3
PHP Version 4.4.4
PHP Version 5.0.5-2ubuntu1.1
PHP Version 5.0.5-pl3-gentoo
PHP Version 5.1.0
PHP Version 5.1.2

RABBIT:
PHP Version 4.3.1 *
PHP Version 5.0.0 *
PHP Version 5.0.3 *

COLORED PHP LOGO:
PHP Version 5.1.4
PHP Version 5.2.0

* = Not on my server, but got PHP version given in the HTTP header.

The first code above, ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42, is returned by the hidden function (undocumented in the php.net online manual) php_egg_logo_guid(). PHP_EGG_LOGO_GUID is defined as a preprocessor macro in php-src/ext/standard/info.h, line 54, and referenced in 3 files:

php-src/ext/standard/info.c (lines 988 and 1032)
php-src/ext/standard/info.h (line 54)
php-src/main/php_logos.c (line 59).


Below are the four codes' definitions in the php source within php-source/ext/standard/info.h (lines 53 to 56):

#define PHP_LOGO_GUID "PHPE9568F34-D428-11d2-A769-00AA001ACF42"
#define PHP_EGG_LOGO_GUID "PHPE9568F36-D428-11d2-A769-00AA001ACF42"
#define ZEND_LOGO_GUID "PHPE9568F35-D428-11d2-A769-00AA001ACF42"
#define PHP_CREDITS_GUID "PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000"

Sunday, November 18, 2007

VoIP Explanation

Voice over IP Explained

For those who have never heard about the potential of VoIP, be prepared to radically change the way you think about your current long-distance calling plan. VoIP (Voice over Internet Protocol) is very simply, a method for taking ordinary analog audio signals and turning them into digital signals that can be sent over the Internet.

So what? Well, for those of you who are already paying a monthly fee for an Internet connection, this means that you can use that same connection to place free long distance phone calls. This process works by using already available VoIP software to make phone calls over the Internet, essentially circumventing phone companies and their service charges.

Interestingly, VoIP is not an entirely new thing. In fact, a number of providing companies have been around for some time. But it has only been with the more recent explosion of high-speed internet access usage, that VoIP has gotten any attention. Now the major telephone carriers are setting up their own VoIP calling plans throughout the US, another testament to the potential of the technology.

How VoIP Is Used

While there are a number of ways that VoIP is currently being used, most individual callers fall into one of three categories: ATA, IP Phones, and Computer-to-Computer.

ATA or Analog Telephone Adaptor, is the most common way of using VoIP. This adaptor actually allows you to hook up the phone that is already in your house, to your computer, and then your Internet connection. What the ATA does, is turn the analog signals your phone sends out into digital signals that can be sent over the Internet. Setting up this system is quite simple. It simply requires that you order an ATA (its an adaptor remember), plug the cable from your phone which would normally go into the wall socket into the ATA, and then the ATA gets plugged into your computer, which is connected to the internet. Some ATAs include software that has to be installed on your computer before its ready, but basically it's quite a simple process. Then you are ready to make some calls.

The next type of VoIP usage utilizes IP Phones instead of your home phone. The IP Phone looks just like a normal phone, with all the same buttons and cradle, the only difference is that instead of having a normal wall jack connector, it has an Ethernet connector. This means, that instead of plugging in your IP phone to the wall jack like you would with a regular analog phone, it gets plugged directly into your router. This option allows you to circumvent your personal computer, and it also means that you will not have to install any software, because its all built in to the handset. In addition, the fact that Wi-Fi IP phones will soon be available, which will allow subscribing callers to make VoIP calls from any Wi-Fi hot spot, make this option an exciting possibility.

The simplest and cheapest way to use VoIP is through computer-to-computer calls. These calls are entirely free, meaning no calling plan whatsoever. The only thing you need, is the software which can be found for free on the internet, a good internet connection, a microphone, speakers, and a sound card. Except for your monthly internet service fee, there is literally no cost for making these calls, no matter how many you make.

For large companies, VoIP also offers some very unique possibilities. Some larger companies are already utilizing the technology by conducting all intra-office calls through a VoIP network. Because the quality of sound is comparable to and in some cases surpasses that of analog service, some international companies are using VoIP to route international calls through the branch of their company nearest the call's destination and then completing it on an analog system. This allows them to pay local rates internationally and still utilize the same intra-office VoIP network that they would if they were calling someone in the next cubicle over.

Other Advantages of VoIP

While your current long-distance plan covers you for only one location, say calls made from your office, with VoIP, you can make a call anywhere that you can get a broadband connection. That is because all three methods above, unlike analog calls, send the call information via the Internet. This means you can make calls from home, on vacation, on business trips, and almost anywhere else. Anywhere you go, with VoIP you can bring your home phone along with you. In the same way, computer-to-computer connections mean that as long as you have your laptop and a connection, you're ready to go.

There are also some nifty benefits to having your calls transmitted over the Internet. For example, some VoIP service providers allow you to check your voicemail via your e-mail, while others allow you to attach voice messages to your e-mails.

How VoIP Works

The current phone system relies on a reliable but largely inefficient method for connecting calls known as circuit switching. This technique, which has been used for over 100 years, means that when a call is made between two people a connection is maintained in both directions between callers for the duration of the call. This dual directional characteristic gives the system the name circuit.

If, for example, you made a 30-minute call the circuit would be continuously open, and thus used, between the two phones. Up until about 1960, this meant that every call had to have an actual dedicated wire connecting the two phones. Thus a long distance call cost so much, because you were paying for pieces of copper wire to be connected all the way from your phone to the destination phone, and for that connection to remain constant throughout the call. Today, however, your analog call is converted after leaving your house to a digital signal, where your call can be combined with many others on a single fiber optic cable. While this system is certainly an improvement over the past copper wire system, it is still quite inefficient. This inefficiency is due in part to the fact that the telephone line can't distinguish between useful talking and unneeded silences. For example, in a typical conversation while one person is talking the other person is listening. Thus the current analog system uses roughly half its space sending useless messages like this silence. But there is also more information, even down to pauses in speech, which under a more efficient system can be effectively cut out rather than wasting the circuit space. This idea of only transmitting the noisy bits of a telephone call and saving a great deal on circuit space, is the basis of Packet-Switching, the alternative method to circuit switching that the VoIP phone system uses.

Packet-Switching is the same method that you use when you view a website. For example, as you read this website, your computer is not maintaining a constant connection to the site, but rather making connections to send and receive information only on an as needed basis (such as when you click on a link). Just as this system allows the transfer of information over the Internet to work so quickly, so also does it work in the VoIP system. While circuit switching maintains a constant and open connection, packet switching opens connections just long enough to send bits of data called packets from one computer to another. This allows the network to send your call (in packets) along the least congested and cheapest lines available, while also keeping your computer or IP phone, free to send and receive messages and calls with other computers. This way of sending information, not to mention data compression, makes the amount of information which must be transmitted for every call at least 3-4 times less for VoIP than the exact same call in a conventional telephone system. For this reason, VoIP is so much cheaper than conventional calling plans.

The Future of VoIP

While most analysts believe it will be at least a decade before companies and telephone providers make the full switch to VoIP, the potential for the technology's use today is already quite astounding. A report by the Forrester Research Group predicts that by the end of 2006, nearly 5 million U.S. households will be using VoIP phone service. With the savings and flexibility that the technology already offers, and new advances just ahead on the horizon, we can expect those numbers will only increase in the future.