The Symbian OS (779886), страница 50
Текст из файла (страница 50)
See Figure 9.12.Table 9.4 Comms Framework Utilities ComponentsComponent NameDevelopment NameComms FrameworkCOMMSFWComms ElementsELEMENTSMBuf ManagerMBUFMANComms FrameworkUtilitiesCommsFrmwk.CommsElmnts.MBufMgr.Figure 9.12 Comms Framework Utilities componentsCOMMS FRAMEWORK219• The Comms Framework provides the framework base classes andutilities that support the communications architecture based on theComms Root Server, including base classes that define CommsProvider Modules (the addressing and binding mechanism used bythe Comms Root Server to identify and load modules), the messagedefinitions and communications channel queue abstraction used tocommunicate between modules and the Comms Root Server, andthread-creation support.• The Comms Elements are an internal library of ready-made programming patterns, for example state machines and message parsers, thatare used within communications services and are made available asreusable objects.• The MBuf Manager defines and manages MBufs, a communicationsspecific shared-memory mechanism allowing provider modules (i.e.multiple threads within the primary communications process) to sharememory buffers and therefore avoid unnecessary copying of messagesand data.
For example, MBufs can contain data packets as well asarbitrary C++ objects.Baseband Abstraction CollectionThe Baseband Channel Adaptor (BCA) provides an abstraction of theactual channel used to communicate with the baseband processor, foruse by communications components (which, therefore, don’t need tounderstand the actual channel implementation) and a plug-in frameworkfor a hardware-specific interface implementation module. The actualchannel is dependent on the hardware design and may comprise aphysical fast serial link, USB or other fast bus, a shared memory or evena shared register protocol.
See Figure 9.13.Table 9.5 Baseband Abstraction ComponentsComponent NameDevelopment NameBaseband Channel AdaptorBCABasebandAbstractionBsebndChnl.AdapterFrmwk.Figure 9.13Baseband Abstraction components220THE COMMS SERVICES BLOCK9.7 Telephony ServicesThe telephony architecture was designed to provide flexible support fora wide variety of possible phone types, including conventional analogmodems, GSM phones and even desktop phones containing an integratedSymbian OS device.Like other communications services, the Telephony Services block isorganized around a primary server and framework, the ETel TelephonyServer, supported by protocol implementations for specific services,low-level plug-in modules implementing hardware adaptation interfacesdefined by the framework and some assorted high-level utilities.The design principle for ETel was to abstract a small core set ofuniversal telephony functionality as the Core API, while providing aflexible extension mechanism to enable support to be added for specificservice and network types at both the client interface, enabling supportfor custom services and at the hardware interface, enabling support fordifferent telephone-baseband implementations.
The straightforward goalof the Core API is to enable telephony clients to pass information over ageneric phone link.From this starting point, support has evolved from basic Hayes modemcontrol (AT commands) through GSM 2G standards, to 2.5G (GPRS,EDGE) and CDMA (for the North American market and other markets,such as Korea, that initially adopted CDMA rather than GSM), and toTelephony UtilitiesTelephony ServerSMS Protocol PluginsTelephony ServerPluginsSMS UtilitiesTelephony ReferencePlatformTelephony ServicesFigure 9.14 Telephony Services componentsTELEPHONY SERVICES2213G UMTS and CDMA2000 (respectively the 3G evolutions of GSM andCDMA).From an initial emphasis on dial-up and modem connections, providing a fully integrated telephony service became important as SymbianOS moved onto mobile phones.
More recently as mobile telephony hasevolved towards packet-based networks, support for high-bandwidth dataservices has become important. See Figure 9.14.While the basic phone services in Symbian OS are quite mature andwere well established by Symbian OS v6, incremental enhancementshave been introduced with almost every release since.ArchitectureTelephony Services are structured around the ETel Telephony Server.ETel provides a core set of common, network-independent telephonyservices that abstract control of telephony devices either connected to orintegrated into a Symbian OS phone and enable client access to phoneservices. ETel is implemented as an extensible framework into whichmodules can be added to extend the core functionality at the client level.The ETel framework also defines the low-level, hardware adaptationinterfaces and provides the mechanisms that support hardware adaptationplug-in implementation modules (TSY files).Conceptually, the ETel core API is extensible in two directions: in thedirection of hardware, supporting new networks, baseband implementations and other hardware evolutions, and, in the client API direction,enabling new services to be supported.While extensibility implies flexibility, it also implies a significantdivision of labor between Symbian and licensees to extend the telephonysupport appropriately for a given phone or family of phones:• On the Symbian side, the ETel server core and Multimode frameworksupport extensions for new standards (which is how the initial GSMonly support has been extended first through CDMA and then to 3GUMTS and CDMA2000) and expose the TSY provider module plug-inAPI.• On the licensee side, the Telephony Application and low-level TSYprovider modules support platform- and device-specific customization.Licensees implement a custom TSY and any additional custom APIsthey choose to add to support unique features of their own telephonyhardware.In addition, licensees provide engine support and custom UIs, forexample, for phone security (such as PIN-based locking of the phoneapplication), and the phone application itself, which must include a222THE COMMS SERVICES BLOCKplatform-specific user interface and must also support comprehensiveuser-interface-independent functions including handling networks, audio,contacts, logging and call handling, number parsing, and so on.
Telephony Services includes a number of libraries and utilities that providebasic support for such functions.Note that the ‘licensee’ may be either a platform vendor such as S60or UIQ, providing a pre-integrated user interface and application suitesolution to its customers, a phone vendor (or consortium such as FOMA)creating a bespoke UI and applications, a third-party developer of aphone application, or a hardware partner providing a packaged phonehardware solution.Evolution of Mobile ServicesMobile phone services and technologies have evolved rapidly, as has theglobal market for mobile phones, including significant cycles of boomand bust. Basic mobile network technologies have evolved from ‘plainold’ GSM through GSM Phase 2+, otherwise known as 2.5G (GSM,GPRS, EDGE), to UMTS 3G, with similar evolutions from CDMA to 3GCDMA2000.
Symbian OS has tracked these evolutions. It enables controlof landline and mobile phone modems and supports wireless telephonystandards for all markets.GSM uses a packetized but synchronous Time-Division MultipleAccess (TDMA) approach to sharing available bandwidth between multiple users. Voice is digitally encoded and transmitted as digital packets intimeslots (frames) at a data rate approximating 19 200 baud (equivalentto modem speeds from around the late 1980s).Support for basic GSM services requires support for receiving andmaking voice calls, receiving and sending SMS messages, showing thatSMS messages have been received, and receiving and making circuitswitched data calls, for example fax calls. GPRS adds the requirement tosupport making and receiving packet-switched data calls.EDGE and 3G networks extend these requirements to include, forexample, both one-way and two-way audio and video calls includingsupport for two-way tele-conferencing; streaming of audio and videoto a phone; interactive, session-like two-way request–response (for webbrowsing or remote database query); and background data delivery forexample of SMS messages.GPRS and EDGE add packet data services by stitching together multiple GSM voice channels to create a higher bandwidth channel.
GPRSprovides data rates up to 170 kbps, which EDGE improves by a factorof three (either in speed or in the number of simultaneous subscriberssupported at GPRS data rates).Both GSM and CDMA remain circuit-oriented, voice-centric technologies. UMTS evolves GSM to use Wideband CDMA to gain higherTELEPHONY SERVICES223data rates. Unlike GSM or CDMA, UMTS is fully packet-switched, notcircuit-switched.Historically, CDMA has dominated the North American market, whileGSM originated as a European standard that has had widespread globaluptake. GSM has also recently increased its market share in many CDMAdominated markets to become a second-line network technology.Telephony ServerThe ETel Telephony Server manages access to telephony functions ona Symbian OS device, regardless of the details of the available phonehardware.
Indeed, there may be no onboard phone hardware, as was thecase in the first Symbian OS devices. As well as supporting fully featuredmobile phones, ETel supports the use of data ports thus enabling two-boxsolutions, for example using a mobile phone as a modem via infrared orBluetooth, which was an early use case.The server implements the standard Symbian OS client–server framework, providing a client-side API (as a separate DLL to which clients link).The server also implements the CPM interface and is thus a communications provider that is managed and run by the Comms Root Server andwhich provides thread management and communications channels forfast communication with other communications server threads.The basic abstractions made available by the Telephony Server arephones, lines and calls. The server also provides an extension framework,which is used to add extended client services and a low-level hardwareadaptation interface that is implemented by hardware adaptation plug-inmodules.
Clients open a server session with the Telephony Server andthen open sub-sessions with phone, line and call objects.The Core API includes generic functions for requesting the capabilitiesor status of the phone hardware and making and managing voice, dataand fax calls.Basic telephony extensions supporting GSM/GPRS are implementedby the ETel Multimode extension and other extension modules supplyfurther CDMA, messaging, 3GPP packet data and fax-specific extensions.Collaborating components are all realized inside sub-sessions or the rootETel server session to a client, that is created when the ETel server isstarted by the Comms Root Server in response to a client request.The ETel Server and Core API, together with the Fax Client–Server,formed the basis of the original telephony implementation in ER5.
TheETel Core API was rearchitected in Symbian OS v7 when the otherextensions were introduced and most were further enhanced in SymbianOS v8.ETel Third-Party APIThe ETel third-party API was introduced in Symbian OS v7 to provide a restricted but common ‘safe subset’ of telephony functionality to224THE COMMS SERVICES BLOCKthird-party (i.e. non-licensee and partner) application developers. It wassignificantly extended in Symbian OS v8, adding support for multiplevoice calls, better access to onboard and network status information andsystem notifications and events, and access to IMEI and IMSI numbers.Telephony MessagingThe ETel Multimode extension includes generic support for telephonymessaging, with specific implementations (for example for GSM, CDMAand WAP) implemented as Socket Server protocol-module plug-ins, providing a common sockets-based interface to messaging clients.