Today there exist soft phones which are software based telephones on e.g. a PC. The soft phone comprises a telephony interface, which is a user interface for controlling telephony features e.g. making a call. There is a value in combining the telephony interface with a web browser, embedded in the soft phone, to create more advanced and user friendly services.
As an example, a user is having a voice conference with several participants. By using the web interface, the server can distribute information to the user via a web page disclosed on the client by means of the web browser. Such information may comprise a list of participants and who is currently speaking. To push the web page that displays this information, a method described in draft-ietf-sipping-app-interaction-framework-05 (www.ietf.org/internet-drafts/draft-ietf-sipping-app-interaction-framework-05.txt) can be used. This method enables a conference application to send a SIP (Session Initiation Protocol) REFER message to the user's terminal indicating which web page to display.
In order to be able to show who is currently speaking, the web page must be updated each time someone talks. This could be achieved by using existing solutions, such as HTTP server push technology, automatic browser refresh (which is a pull technology), or AJAX.
HTTP server push (e.g. a server initiated update sent to the client) is a technology used by Netscape based on a persistent HTTP connection between the client and the web server. Whenever the web server wants to update the client, it sends a new HTML document over the existing HTTP connection, i.e. the client is only updated when there is new information available.
Pull technology means that the client requests updated information from the web server with a predefined time interval between each request, e.g. once a minute. This means that there is always a delay before the client is updated. It also means that the client unnecessarily sends requests even when there is no updated information.
AJAX is a technology supported by leading browsers, e.g. Internet Explorer, Firefox/Mozilla and Opera. It enables a script in a web page to send an HTTP (HyperText Transfer Protocol) request to a web server that return XML formatted data. This data can contain e.g. the current speaker. The benefit of this is that the script in the browser need only update the part of the web page that should be changed (in this case the icon that indicates the current speaker). AJAX is combined with push or pull technology.
Unless AJAX is used, the whole page must be sent each time an update is needed, e.g. when the indication of who is talking should be updated, or another participant has joined the conference.
Pull technology is extremely resource consuming on the server and network, and there is always a delay before the client is updated with new information.
HTTP server push is generally not supported by browsers. If a conference application as discussed above should be offered to mobile users using a smart phone it would be unrealistic to require support for HTTP server push.
AJAX requires both an advanced web browser and web server. Only leading web browsers support this technology. Also, an embedded device often has a very limited web browser that most likely does not support AJAX. An “embedded device” is a piece of hardware containing a computer such as a phone, petrol pump, or cash point. If pull technology is used, the problems described earlier in conjunction the pull technology applies. If push technology is used this puts tough demands on the web server, that must support persistent TCP connections from each browser instance on all active devices. There is also a risk that the TCP connection from the browser to the web server is broken due to e.g. temporary lack of radio coverage.
The technology described in draft-ietf-sipping-app-interaction-framework-05 can not be used to update the user interface since there is no support for an asynchronous push. A new REFER request to the same user would create a new web browser rather than updating existing components.