Chapter 8. The Dial-up Networking Profile

Introduction

We are becoming more and more mobile in our use of data connectivity and the ability to access information on the move is now as important as being in the office with everything on hand. The Dial-up Networking Profile provides the ability for a user to remotely connect to their data services; for example, to gain access to an Internet Service Provider (ISP) or to access the corporate Local Area Network (LAN).

It is certainly not a new concept, but the introduction of a wireless Internet bridge is used to remove the need to physically connect your mobile phone or modem to a notebook or Personal Digital Assistant (PDA). The profile provides the capability of a data terminal (DT) device to form a wireless bridge with a gateway (GW). Once the connection with the remote service has been established, an Internet bridge is then created. Figure 8-1 and Figure 8-2 show the various scenarios that are supported by this profile.

The dial-up networking usage model allows the notebook to behave as our data terminal device; where it can create a wireless bridge with the mobile phone, which then acts as our gateway.

Figure 8-1. The dial-up networking usage model allows the notebook to behave as our data terminal device; where it can create a wireless bridge with the mobile phone, which then acts as our gateway.

In this illustration, the dial-up networking usage model allows the notebook to behave as our data terminal device; it can create a wireless bridge with the wireless modem, which then acts as our gateway.

Figure 8-2. In this illustration, the dial-up networking usage model allows the notebook to behave as our data terminal device; it can create a wireless bridge with the wireless modem, which then acts as our gateway.

The profile does not make the range of Internet-related protocols explicit [such as, Transmission Control Protocol (TCP), Internet Protocol (IP) and Point-to-Point Protocol (PPP)] and places no restriction on their use. This is solely due to the fact that the Dial-up Networking Profile outlines the capability to enable the wireless bridge. Indirectly, the Internet-related protocols are supported through various dial-up type applications. There are also numerous similarities to the LAN Access Profile; these are explained in the following section.

Comparing Dial-up Networking with the LAN Access Profile

One question often asked is: what are the differences between the Dial-up Networking and the LAN Access Profiles, Chapter 10? In reality, there is little difference between the two: both profiles depend upon the Serial Port Profile; both enable an IP stack to be supported and both require a PPP implementation. The subtlety in comparison exists primarily in how the Bluetooth link is established; take a look at Figure 8-3. It shows the components of the modem driver and the modem emulator, which sit within the data terminal and gateway, respectively. Essentially, the modem component completes a direct serial cable connection between the DT and GW, forming a wireless bridge. Whereas, the LAN Access Profile provides the direct services of a LAN through a LAN Access Point (LAP).

The components of the Dial-up Networking and LAN Access Profiles are shown to illustrate the subtle difference between the two. The same applications can be used for both profiles.

Figure 8-3. The components of the Dial-up Networking and LAN Access Profiles are shown to illustrate the subtle difference between the two. The same applications can be used for both profiles.

The circumstances that determine the different usage can be best illustrated by considering a user sitting in an office where a fixed [1] access point is readily available and where the user can make use of the services available via a LAP. However, in the Dial-up Networking instance, a user may use his or her mobile phone to access those same services across a public telephone network and is not reliant upon a static location. Essentially, the two profiles provide greater flexibility and mobility depending on your current situation.

The PPP implementation in both profiles is similar and sets out to achieve the same goals, but the Dial-up Networking Profile requires the use of AT commands to enable control and dialling. We discuss this aspect of the profile in more detail later on in this chapter.

Usage Models

This section now considers our existing usage models through scenarios that may be typical for the Dial-up Networking Profile. We begin by exploring the existing models, where a notebook or PDA communicates with a mobile phone or wireless modem to obtain a dial-up service.

The scenarios provided in Figure 8-1 and Figure 8-2 represent our existing usage models. The role of a notebook or PDA acting as a DT initiates a one-to-one communications link with another Bluetooth-enabled device where it takes on the role of a GW. The formation of a wireless Internet bridge is created which, in turn, completes the connection. The formation of a wireless bridge between the notebook and PDA (or modem) demonstrates the fundamental Bluetooth philosophy, that is, removing the need for cables. [2] A dial-up application on the DT is used to initiate the dial-up connection, with the Bluetooth application serving as the underlying transport. In the following section, we provide clarification on the notion of a wireless Internet bridge and explain how it fits within the Dial-up Networking Profile.

The Wireless Bridge

A wireless bridge is used here to describe the nature of the cableless connection between the DT and GW; this is fundamental to and dominates the profile. Earlier in our introduction, we touched upon the need to connect a cable between a notebook and a mobile phone. This scenario allows the notebook (DT) to perform a dial-up connection through the mobile phone (GW) and then on to a remote service. In this instance, we will access the services provided by an ISP.

To support this profile, a two-piece Bluetooth protocol stack is required to complete the wireless bridge. In Figure 8-4, we can see what components of the stack are needed to form the DT and GW wireless relationship. Both the Dial-up Networking and Fax Profiles require the use of the AT Command component, which in turn controls the GW.

This model shows the combination of dial-up networking and facsimile services that are realised in the Bluetooth protocol stack. Essentially, this forms our two-piece stack.

Figure 8-4. This model shows the combination of dial-up networking and facsimile services that are realised in the Bluetooth protocol stack. Essentially, this forms our two-piece stack.

The Internet Bridge

Once our wireless bridge has been successfully established, the dial-up application on the DT would take part in PPP authentication and would subsequently, upon successful negotiation, allow the user to gain access to the services provided. The Internet Bridge is used to describe the complete and successful connection between the DT and the remote services transported via the GW.

Profile Principles

The Dial-up Networking Profile provides two new roles: a DT device and a GW device. The GW provides the ability for a DT to connect and to provide remote services; this is achieved by providing modem emulation, where AT commands are used to enable control and dialling. The modem emulation and driver are provided above RFCOMM, where RFCOMM provides serial port capabilities by emulating RS232; see the Serial Port Profile, Chapter 6, for more detailed information. The DT incorporates a dial-up networking application, housing the range of networking protocols such as PPP, IP and TCP. Figure 8-5 demonstrates the architecture of the components that would make up the complete dial-up networking model.

The core components of the Bluetooth protocol stack are shown, illustrating how the components of the Dial-up Networking Profile are integrated.

Figure 8-5. The core components of the Bluetooth protocol stack are shown, illustrating how the components of the Dial-up Networking Profile are integrated.

In a similar structure to the LAN Access Profile, Chapter 10, the DT would incorporate a PPP Client and the remote service would incorporate a PPP Server. This would provide the PPP authentication for accessing the network.

Table 8-1. The list of behavioural characteristics that are typical for this profile.

CONFIGURATION

ROLE

DESCRIPTION

DeviceA

DT

A device acting as a data terminal, which may take the form of a notebook or PDA. In this particular context, the device is described as initiating the connection with the accepting device.

Initiator

This configuration describes the device that instigates the original connection or the device that wishes to initiate communication over an existing link.

DeviceB

GW

A device that behaves as a gateway, where it manages incoming and outgoing external communication though AT Command control signalling. It is also the party that accepts incoming connections from the data terminal.

Acceptor

This configuration describes the process of the device accepting the initiated communication from DeviceA.

In Table 8-1, clarification is provided with regard to the roles used within the context of this profile. In general, DeviceA represents the initiating party and DeviceB represents the accepting party. The terms are often used interchangeably when describing specific operations and are provided here for reference.

In this chapter, the DT is referred to as DeviceA, or the initiator; and the GW is the acceptor and forms DeviceB; DeviceA will remain master, since the GW is permitted to accept only one connection. A GW device is considered to be the Data Circuit Endpoint (DCE) and the DT takes the Data Terminal Equipment (DTE) role in this conventional mapping.

User Expectations

Data Terminal

Today, we can openly source products that are capable of supporting the Dial-up Networking Profile; these can be typically found within a PDA, notebook or mobile phone. If you recall from our earlier discussion, the Dial-up Networking Profile is essentially a two-piece solution.

Bluetooth Profiles supports the general philosophy of a good user experience. Therefore, it is important to consider how the user would experience the connection and use of a GW. In later sections, we consider the specific experiences of connecting, terminating and losing connections and how the user may experience such operations.

We will consider the typical attributes that may make up a service discovery of a GW. The user experience in this particular example is a screen shot from the DT, which clearly shows that the mobile phone is capable of supporting dial-up networking (see Figure 8-6).

The screen shot shows a typical set of attributes that may be seen when discovering GWs (the 3Com Bluetooth Connection Manager has discovered the services available from a mobile phone).

Figure 8-6. The screen shot shows a typical set of attributes that may be seen when discovering GWs (the 3Com Bluetooth Connection Manager has discovered the services available from a mobile phone).

Connecting to a Gateway

The GW as a mobile phone should be initially enabled, where parameters such as limited discovery and range can be defined; this would help limit unauthorised access to the GW. As a wireless modem, similar security features can be employed in addition to the passkey requirement.

In both instances, a passkey would be requested to enable authentication of the DT and GW. There may be other instances where the passkey may have to be provided, again possibly due to connection timeouts and/or the mobile phone being re-enabled for dial-up use. It may be recommended that a timeout occur after a defined period to, again, ensure and help with unauthorised access. Previously, we touched upon the ability of the GW to only accept a connection from one DT at any time. This feature restricts use from other intruders—suffice to say that if it is being used by you, then there is a strong possibility that it is not being used by anyone else.

Once the user has the ability to connect to a device, he or she may continue to make use of the services it provides. By using a double-click [3] or right-click, the user begins the process of connecting to the dial-up networking service. This is shown in Figure 8-7.

Right-clicking the devices icon causes a pop-up menu to appear offering the ability to connect to the device; in this illustration, we can see the user connecting to a service which is offering dial-up networking capabilities. (Courtesy of TDK Systems Europe.)

Figure 8-7. Right-clicking the devices icon causes a pop-up menu to appear offering the ability to connect to the device; in this illustration, we can see the user connecting to a service which is offering dial-up networking capabilities. (Courtesy of TDK Systems Europe.)

Prior to using the GW, a user may be required to enter a Bluetooth Passkey. In Figure 8-8, we show the user being prompted with a dialog box requesting the entry of a passkey.

The user is requested to enter his or her passkey to authenticate with the GW device.

Figure 8-8. The user is requested to enter his or her passkey to authenticate with the GW device.

Underlying all of this high-level user interaction is a sequence of events, which lead up to the moment of connection. Figure 8-9 illustrates the message sequences that typically occur during a connection set-up. Other implementations may differ slightly, depending upon the user’s specific requirements. [4]

The events which takes place during a connection with a DT and a GW.

Figure 8-9. The events which takes place during a connection with a DT and a GW.

During connection establishment, the user may be informed of the dial-up as it progresses. In Figure 8-10, we show the user being informed of the progress of the dial-up connection. In Figure 8-11, we now illustrate that the user is being prompted to enter a username and password; this is to comply with PPP authentication.

The connection has successfully progressed to the next level; here, the user is now informed of the GW actually dialling the service. (Courtesy of TDK Systems Europe.)

Figure 8-10. The connection has successfully progressed to the next level; here, the user is now informed of the GW actually dialling the service. (Courtesy of TDK Systems Europe.)

The dial-up connection was successful, and now the user is prompted to enter their username and password. (Courtesy of TDK Systems Europe.)

Figure 8-11. The dial-up connection was successful, and now the user is prompted to enter their username and password. (Courtesy of TDK Systems Europe.)

In Figure 8-12, we now show that PPP authentication is being verified with the remote service; Figure 8-13 shows the registering of the connected computer onto the remote network.

The username and password for PPP authentication is being verified by the remote network. (Courtesy of TDK Systems Europe.)

Figure 8-12. The username and password for PPP authentication is being verified by the remote network. (Courtesy of TDK Systems Europe.)

PPP authentication was successful. The computer can now be registered with the remote network. (Courtesy of TDK Systems Europe.)

Figure 8-13. PPP authentication was successful. The computer can now be registered with the remote network. (Courtesy of TDK Systems Europe.)

Ending a Connection with a Gateway

Once a connection is established with a GW and its services are no longer required, the user may terminate the session. As shown in Figure 8-14, the user is able to double-click or right-click on the connected device’s icon and select disconnect from the pop-up menu to terminate the connection.

Right-clicking the device’s icon causes a pop-up menu to appear offering the ability to disconnect. In this illustration, we can see the user disconnecting from the dial-up service which, in turn, will disconnect the GW. (Courtesy of TDK Systems Europe.)

Figure 8-14. Right-clicking the device’s icon causes a pop-up menu to appear offering the ability to disconnect. In this illustration, we can see the user disconnecting from the dial-up service which, in turn, will disconnect the GW. (Courtesy of TDK Systems Europe.)

Other forms of disconnection may occur if the quality-of-service (QoS) can no longer be maintained by the remote service; an instance of this specific example may occur when the remote network to which the GW is connected is unexpectedly lost. It is important to remember in such a situation that the appropriate information about the current connection must be conveyed to the user, since the DT may offer a reconnection at a later time.

One other such instance of a terminated connection may occur when a connection is lost due to the DT moving out of range from a GW. Section 8.4.1.3, Losing a Connection with a GW, looks at the sequence of events surrounding this possibility and considers how the user should experience this event.

Losing a Connection with a Gateway

It is hard to imagine an instance where a connection would be lost with a GW. However, if the GW is taken out of radio range, or the carrier is unexpectedly lost, then the DT must be able to appropriately manage the user interface aspects and, of course, the application should eventually allow the user to reconnect at a later stage.

In Figure 8-15, the device status is clearly shown when right-clicking the device icon to select its properties. As we saw in an earlier illustration, the device status is also shown alongside the icon (see Figure 8-7). A seamless reconnection can be achieved if both the DT and GW remember their previous respective sessions, where the reconnection time can be dramatically reduced.

The user has chosen to query the device status. (Courtesy of TDK Systems Europe.)

Figure 8-15. The user has chosen to query the device status. (Courtesy of TDK Systems Europe.)

Gateway

The simplicity of a mobile phone as a GW enables the user to place it in an area where it does not need to be in direct line-of-sight with your PDA or notebook, although it should be within suitable radio range. One classic and most often referred to example is the briefcase trick. Here, the user can place the GW into a briefcase or a jacket pocket and make use of the services discreetly. Similarly, wireless modems can be fixed in any location.

Accepting a Connection from a DT

The GW undertakes a series of events that enable a DT to successfully access its service; Figure 8-16 illustrates these events. When a DT wishes to connect to a GW it initiates bonding, where the GW must accept this request; encryption may also be used on the link.

The events that place during an incoming connection from a DT.

Figure 8-16. The events that place during an incoming connection from a DT.

Refusing a Connection from a DT

The GW would refuse a connection from a DT in such an instance where the GW refuses to accept bonding, or when an incorrect passkey has been entered. A connection may also be refused if the PPP authentication was unsuccessful.

Lifting the Lid

Dependencies

Now that we have covered aspects of existing and future usage models and their respective user expectations, lets take an opportunity to explore in greater depth the dependencies of which this particular profile is comprised. In Figure 8-17 we provide a conceptual illustration representing the dependencies that make up the Dial-up Networking Profile; the areas that are shaded are relevant to this profile. In this instance, the profile depends upon the basic functionality offered to us by the Generic Access Profile, Chapter 2, the Service Discovery Application Profile, Chapter 3 and the Serial Port Profile, Chapter 6. We now move on to explore the core requirements of these dependent components and reflect upon any variances from their original functionality that may occur.

The dependent components of the Bluetooth protocol stack that make up the Dial-up Networking Profile. The areas that are shaded are relevant to this profile.

Figure 8-17. The dependent components of the Bluetooth protocol stack that make up the Dial-up Networking Profile. The areas that are shaded are relevant to this profile.

Generic Access

The Dial-up Networking Profile relies upon the capabilities provided by the Generic Access Profile, Chapter 2. In our earlier chapter we learned that a level of basic functionality is achieved through establishing a set of rules and procedures. These rules govern the behaviour of such devices and relate to their connectivity, discoverability and common characteristics at the user interface level, with some additional emphasis provided for security. Commonality is established between products through the use of these rules and procedures, resulting in a positive user experience.

Now let’s take a look at the behavioural aspects of Bluetooth-enabled devices as outlined by the Generic Access Profile, Chapter 2.

In Table 8-2, the basic set of procedures is illustrated identifying functional expectations which, in turn, govern its operation. These procedures help determine the context within which the device would operate.

Table 8-2. The core set of procedures as required by most profiles.

PROCEDURES

DESCRIPTION

Discoverability Mode

This mode prescribes the overall discoverability of a device, allowing it to be placed into a non-discoverable, limited, or general discoverable mode. This mode would allow devices to become generally available to other users or they can be restricted to personal use.

Connectability Mode

When determining a baseband connectable state, this mode is used to place a device into a connectable or non-connectable mode.

Pairing

Pairable and non-pairable modes are used to realise the security aspects when operating or intending to use a device. A device may require authentication and, as such, the user would be required to enter a Bluetooth Passkey. The pairing procedure starts the link key generation process which, in turn, allows authentication to take place.

In Table 8-3, we consider the specific set of operations that are required for this profile. In the table you will notice features are marked with M (Mandatory), O (Optional), X (Excluded), C (Conditional) and N/A (Not Applicable); these will determine what is expected from the features of the Generic Access Profile.

Security is an important aspect for Bluetooth-enabled devices. Table 8-4 identifies the security requirements for this profile. The Generic Access Profile, Chapter 2, taught us that Security Mode 1 is a non-secure mode, where Bluetooth-enabled devices will never initiate any security procedures. Security Modes 2 and 3 initiate different levels of security at various stages of connection. In this instance, the profile mandates that support should be provided for at least Security Mode 2 or 3.

Table 8-3. The illustration shows specific modes of operation that this profile depends upon to realise its compliant implementation.

MODES

DT

GW

Non-discoverable

N/A

O

Limited Discoverable

N/A

O

General Discoverable

N/A

O

Non-connectable

N/A

X

Connectable

N/A

M

Non-pairable

M

O

Pairable

O

M

Finally, in our consideration of the basic rules and procedures that are required from the Generic Access Profile, we consider the idle mode procedures, which outline behavioural characteristics when DeviceA chooses to initiate them against DeviceB. The procedures that are listed in Table 8-5 provide a clearly indicates how a device should operate when performing such an activity; let us take our bonding procedure as an example. The term bonding is very much associated with the pairing process; however, bonding occurs when the user has the intent to initiate a trusted relationship with DeviceB.

With this intent, the user is prompted to enter a Bluetooth Passkey. This, in turn, instigates the pairing process, that is, the generation of the link keys, where subsequent authentication can then occur. In summary, there are a specific set of events associated with a procedure and, in the Generic Access Profile, Chapter 2, we further explore how each procedure is conducted.

The provision of a well structured FHS packet is the mechanism for device discoverability and this is shown in Figure 8-18. This packet is used to identify the remote device, where information such as BD_ADDR and clock offsets is determined. You may also notice from this packet that the Class of Device (CoD) field is also provided. This information is relayed to the user interface which, in turn, provides common characteristics about discovered devices. During the discovery mechanism the CoD is used to learn more about the type of device and what it may be capable of providing. This structure of information is depicted in Figure 8-19 and is made up of 3 bytes (or 24-bits as shown). The following sections now consider the Dial-up Networking attributes, which will ultimately make use of the Service, Major and Minor Device Classes fields.

The structure of the FHS packet used only for reference to illustrate the position of the Class of Device structure.

Figure 8-18. The structure of the FHS packet used only for reference to illustrate the position of the Class of Device structure.

The structure of the class of device, illustrating the Minor Device, Major Device and Service Class fields and their respective lengths.

Figure 8-19. The structure of the class of device, illustrating the Minor Device, Major Device and Service Class fields and their respective lengths.

Service Class

This high-level form of defining a Bluetooth device identifies where in the Service Class field the Dial-up Networking Profile resides; see Table 8-6 which, in turn, determines the category of service; here, the category of service falls within Telephony.

Table 8-4. The illustration shows specific security procedures that this profile depends upon to realise its compliant implementation.

PROCEDURE

DT

GW

Authentication

M

M

Security Mode 1

N/A

X

Security Mode 2

C

C

Security Mode 3

C

C

Table 8-5. The illustration shows specific behavioural procedures that this profile depends upon to realise its compliant implementation.

PROCEDURE

DT

GW

General Inquiry

M

N/A

Limited Inquiry

O

N/A

Name Discovery

O

N/A

Device Discovery

O

N/A

Bonding

M

M

Table 8-6. The Service Class categorisation for the Dial-up Networking Profile.

 

SERVICE CLASS

23

22

21

20

19

18

17

16

15

14

13

Bit # of CoD

0

1

0

0

0

0

0

0

0

0

0

Telephony

Major Device Class

This high-level form of defining a Bluetooth device identifies where in the Major Device Class the Dial-up Networking Profile resides; see Table 8-7 which, in turn, determines the major class grouping. Here, the category falls within phone, since a mobile phone providing modem emulation may be used.

Minor Device Class

The Minor Device Class in this profile is used to convey further contexts for the setting within the major class grouping, see Table 8-8. Here, the bit may be set appropriately for Mobile Phone or Wireless Modem to denote the type of service available to the user.

Service Discovery

In the Service Discovery Application Profile, Chapter 3, we introduced the characteristics of the mechanisms used to retrieve service information from a remote device. Typically, a client will initiate inquiry and discovery procedures in order to learn of the devices in radio range. A client would then make use of an application, which would embody the functionality of the underlying Service Discovery Protocol (SDP). The Service Discovery Application (SrvDscApp) uses an SDP Client to instigate a request to the remote device, where the SDP Server will respond; as such, the DT and GW must employ the use of an SDP client and server, respectively, as illustrated in Table 8-9.

PDUs are used to instruct the SDP server to undertake browsing procedures and to retrieve service record information; you may recall that these PDUs carry payloads about requests containing AttributeIDs and AttributeValues describing what exactly is being sought. As we previously discussed, the client and server operate a request and response paradigm. SDAP will construct PDUs containing information relating to the AttributeID and AttributeValues, which, in turn, instruct the server to carry out its operation. The various request and response PDUs required are shown in Table 8-10, where features indicated are described as mandatory (M), optional (O) and excluded (X).

Table 8-7. The Major Device Class for the Dial-up Networking Profile.

 

MAJOR DEVICE CLASS

12

11

10

9

8

Bit # of CoD

0

0

0

1

0

Phone

Table 8-8. The Minor Device Class for the Dial-up Networking Profile.

 

MINOR DEVICE CLASS

7

6

5

4

3

2

Bit # of CoD

0

0

0

0

0

1

Mobile Phone

0

0

0

1

0

0

Wireless Modem

A service record is maintained for each service a device is capable of supporting and, as such, a Service Record Handle is created to uniquely identify this. The ServiceRecordHandle is a 32-bit unsigned integer and is stored on the SDP server. The service record shown in Table 8-11 identifies a GW device and provides a list of AttributeIDs, which ultimately identify the service for the Dial-up Networking Profile. A minimum of two attributes are required to make a service record; these are ServiceRecordHandle, and a ServiceClassIDList, where it must contain at least one UUID.

When browsing for services on the remote device, a local device constructs a search pattern using a Universally Unique Identifier (UUID). A UUID is a 128-bit value, which has been shortened for use within Bluetooth applications. The shortcut has been provided by first establishing a Bluetooth Base UUID, which we discussed in the Service Discovery Application Profile, Chapter 3.

The UUIDs that have been presented so far in this chapter are aliases and take the form of what is referred to as a 16-bit UUID or a 32-bit UUID but, in turn, they all should refer to the 128-bit notation. These UUIDs have been assigned and can be referenced in the Bluetooth Special Interest Group, Bluetooth Assigned Numbers, v1.1, February 2001. For the search pattern to be successful, they all need to be converted to the 128-bit notation, since they will all be compared at this range. An arithmetic conversion algorithm is used to construct the 128-bit value.

Table 8-9. As a minimum, the local device must support the use of a client application and the remote device must support the use of a server.

FEATURE

DT

GW

SDP Client

M

X

SDP Server

X

M

Table 8-10. The list of PDUs that are required for the operation of the Dial-up Networking Profile.

PDU

DT

GW

SDP_ErrorResponse

X

M

SDP_ServiceSearchRequest

M

X

SDP_ServiceSearchResponse

X

M

SDP_ServiceAttributeRequest

M

X

SDP_ServiceAttributeResponse

X

M

SDP_ServiceSearchAttributeRequest

O

X

SDP_ServiceSearchAttributeRequest

X

O

Table 8-12 summarises the service class UUIDs used to identify the particular profile in use; this also correlates with the identification of the device during a device discovery procedure, as previously outlined in our earlier Section 8.5.1.1, Generic Access.

As part of the service record, the dependent underlying protocols are also identified. The local device retrieves this information in order to fully understand the exact requirements needed to fulfil the service. The Dial-up Networking Profile is dependent on the protocols as shown in Table 8-13, which also shows their associated UUID values.

RFCOMM

The conceptual and functional nature of RFCOMM was introduced in the Serial Port Profile, Chapter 6. In it, we discussed how it provides an emulated serial port presence. Several distinctions were made between the various types of applications. The purpose of making these distinctions was to enable clarification and understanding of RFCOMM’s composition. In this particular application context, the creation of an emulated serial port would be transparent to the user. The Dial-up Networking Profile is dependent upon the operation of the Serial Port Profile and as such, is required to establish an emulated serial port as part of its communication link with the remote device.

The term cable replacement application was introduced in our earlier chapter and distinguishes between the different scenarios available. It refers to specific Bluetooth applications that create implicit emulated serial ports, which remain transparent to the user to complete the creation of a communications link.

Specific detail has been provided to illustrate how data is communicated over an emulated serial port connection, whereby a Data Link Connection (DLC) is established between two peer devices, namely DT and GW. We have also looked at the fields that make up our service record for this profile. The ProtocolDescriptorList field is used to describe the set of protocols that the profile intends to use and, as such, the RFCOMM protocol identifier contains a parameter, which contains the Server Channel number.

Table 8-11. The list of mandatory and configurable items that make up this profile’s service discovery record.

ATTRIBUTE

DESCRIPTION

ServiceRecordHandle

With an AttributeID of 0x0000, this uniquely identifies this service record within the SDP server on the GW device.

ServiceClassIDList 
  ServiceClass0 
  ServiceClass1 

With an AttributeID of 0x0001, the following ServiceClass0 would contain the UUID for the Dial-up Networking and the ServiceClass1 would identify the Generic Networking service classes. Their respective UUID values are summarised in Table 8-12.

ProtocolDescriptorList 
  Protocol0 
  Protocol1 
    ParameterFor1 

With an AttributeID of 0x0004, the following Protocol0 would contain an UUID for the protocol L2CAP, whereas in Protocol1 an UUID would contain the protocol identifier for RFCOMM. Their respective UUID values are summarised in Table 8-13. The ParameterFor1 would contain the relevant server channel number for the RFCOMM transport.

BluetoothProfile
DescriptorList 
  Profile0 
    ParameterFor0 

With an AttributeID of 0x0009, the following Profile0 would identify the UUID for Dial-up Networking service class, which is summarised in Table 8-12. The ParameterFor0 accommodates the version number supported by this profile.

ServiceName

With a base AttributeID of 0x0006, this attribute has an offset of 0x0000. It is a configurable item and has an AttributeValue of a Text string, where its default setting is Dial-up Networking.

AudioFeedbackSupport

With an AttributeID of 0x0305, this attribute identifies whether or not the GW device is capable of providing audio feedback. The AttributeValue is constructed using a Boolean, where the default setting is FALSE.

Table 8-12. The list of service classes that match a corresponding profile. This correlates with our previous Generic Access section.

CLASSES

UUID

Dial-upNetworking

0x1103

GenericNetworking

0x1201

The Server Channel is used in combination with a Data Link Connection Identifier (DLCI), which is then used to uniquely identify the active DLC. This connection is then mapped onto a connectionless orientated L2CAP Channel Identifier (CID).

In this section we highlight the specific features that are required to realise a compliant Dial-up Networking Profile. Table 8-14 and Table 8-15 illustrate the features or capabilities that are expected from the Serial Port Profile.

The use of the RLS command is encouraged to keep peer devices informed of any state change. In one such instance, an emulated serial port may interface to a Type II application (physical serial port), where overruns or parity errors may occur. An application that makes use of RS232 port configuration parameters should expose these settings through an appropriate API function; this is of particular relevance when interfacing to Type II applications.

AT Command Control

In Section 8.3, Profile Principles, we introduced an illustration, which identifies the modem emulation and driver components that are created with the help of RFCOMM. It is above this that a dial-up application would reside, using the serial port emulation provided by RFCOMM. The DT and GW would be capable of supporting the commands and responses, as defined in the International Telecommunication Union (ITU-T) Telecommunications Sector v.250. [5] In Table 8-16 and Table 8-17, we identify the supported commands and responses, respectively.

Call Progress and Audio Feedback

In our earlier discussion, we introduced the capability of audio feedback, which may be provided during a call progress and is subject to the capability of the GW and DT. If, during a connection establishment, the SCO link fails, the call and ACL establishment may still proceed regardless. Furthermore, the GW has the responsibility to manage and establish the SCO connection, see Section 8.5.1.5.2, SCO Links.

Table 8-13. The list of protocols that are used in this profile; their associated UUID values are also shown.

PROTOCOL

UUID

RFCOMM

0x0003

L2CAP

0x0100

Table 8-14. The set of capabilities that are required from the initiating party, denoted here by the DT device.

PROCEDURE

DT

GW

Initialise an RFCOMM Session

M

X

Terminate an RFCOMM Session

M

M

Establish a new DLC Connection

M

X

Disconnect a DLC Connection

M

M

Emulate RS232 Control Signals

C

C

Transfer Data

M

M

Test Command

X

X

Flow Control

C

C

RLS

O

O

PN

O

O

RPN

O

O

Table 8-15. The set of capabilities that are required from the responder party, denoted here by the GW device.

PROCEDURE

DT

GW

Initialise an RFCOMM Session

X

M

Terminate an RFCOMM Session

M

M

Establish a new DLC Connection

X

M

Disconnect a DLC Connection

M

M

Emulate RS232 Control Signals

M

M

Transfer Data

N/A

N/A

Test Command

M

M

Flow Control

M

M

RLS

M

M

PN

M

M

RPN

M

M

Table 8-16. The command set that is required and is mandatory for use in the gateway.

COMMAND

DESCRIPTION

&C

Received line signal detector.

&D

Data Terminal Ready

&F

Set to factory defaults

+GCAP

Request complete capabilities list

+GMI

Request manufacturer’s identification

+GMM

Request model identification

+GMR

Request revision identification

A

Answer

D

Dial

E

Command Echo

H

Hook control

L

Monitor speaker loudness

M

Monitor speaker mode

O

Return to online data state

P

Select pulse dialling

Q

Result code suppression

S0

Automatic answer

S10

Automatic disconnect delay

S3

Command line termination character

S4

Response formatting character

S5

Command line editing character

S6

Pause before blind dialling

S7

Connection complete timeout

S8

Comma dial modifier time

T

Select tone dialling

V

DCE response format

X

Call progress monitoring control

Z

Reset to default configuration

Table 8-17. The responses that may be produced during any command sequence. These are mandatory implementations for this profile.

RESPONSE

DESCRIPTION

OK

Acknowledges execution of a command as defined in the previous table.

CONNECT

A connection has been established.

RING

The DCE has detected an incoming call signal from the network.

NO CARRIER

The connection has been terminated, or the attempt to establish a connection has failed.

ERROR

An error has occurred during a command operation.

NO DIALTONE

There was no dial tone detected prior to dialling.

BUSY

When a dial attempt was made, the busy signal was detected.

L2CAP

The L2CAP layer provides transparency for the upper-layers of the stack from the layers typically found within the host controller. L2CAP payloads are passed to the Host Controller Interface [6] (HCI), which is then subsequently passed onto the Link Manager Protocol (LMP). The range of upper-layers, which include RFCOMM, SDP and the Telephony Control Protocol Specification (TCS) all make use of the capabilities offered to us by L2CAP. Its primary role is to provide protocol multiplexing, allowing numerous simultaneous connections to be made; it also provides the ability for segmentation and reassembly. This refers to the ability to manage large payloads in the application, which may need to be fragmented into smaller payloads for the lower-layers to manage; these are then transmitted over the air-interface. Finally, the L2CAP layer exchanges Quality of Service (QoS) information, ensuring that sufficient resources are available and that both Bluetooth devices are attaining the best service.

In Table 8-18, we summarise the broad capabilities that are expected from L2CAP. In the table, you will notice features are marked with M (Mandatory), O (Optional), X (Excluded), C (Conditional) and N/A (Not Applicable); these will determine what is expected from the features at the L2CAP layer.

Table 8-18. The illustration shows specific procedures that this profile depends upon to realise its compliant implementation.

PROCEDURE

DT

GW

Connection-orientated Channel

M

M

Connectionless Channel

X

X

Connection Establishment

M

M

Configuration

M

M

Connection Termination

M

M

Echo

M

M

Command Rejection

M

M

Maximum Transmission Unit

M

M

Flush Timeout

M

M

Quality of Service

O

O

Channel Types

In Table 8-18, we have identified that Connection-Orientated Channels are mandatory, whereas Connectionless Channels are excluded; this type of channel is aimed at broadcasting, where all devices may be targeted. L2CAP uses Protocol Data Units (PDUs) to transport connection, signalling and configuration options, which will be discussed in a moment. The higher-layers of the Bluetooth protocol stack will instigate a connection with L2CAP using the L2CA_ConnectReq request packet, where the corresponding result is contained within the L2CA_ConnectRsp response packet. An L2CA_ConnectRspNeg negative response packet is used to denote a response, where the connection with the remote device was unsuccessful. Since our profile resides above L2CAP and employs its services, we are only concerned with the upper protocol layer of L2CAP. This higher functionality is offered to us through a series of L2CAP events and is denoted through the prefix L2CA_ (see Table 8-19).

When creating an L2CAP connection between two devices, a Protocol/Service Multiplexor (PSM) value is used to denote the higher-layer protocol that is using the connection; Table 8-20 identifies these values and the corresponding protocol they represent. The value of 0x0003 (RFCOMM) is used for this profile.

Signalling

When establishing communication with a remote device, a signalling channel is created and reserved for use during connection, disconnection and configuration of subsequent L2CAP connections. A channel is used to describe the communication and data flow that exists between L2CAP entities and Table 8-21 illustrates the range of CIDs that are used to identify the channel type.

Table 8-19. The range of prototypes used to illustrate how L2CAP is architected and how interaction between higher- and lower-layers is achieved. For this discussion, our concern here is with the higher-layer.

PROTOTYPE

DESCRIPTION

L2CA_

This prefix prototype is used to denote the higherlayer interaction, typically used by RFCOMM, SDP, and TCS

L2CAP_

This prefix is used to denote peer-to-peer signalling interaction of L2CAP entities.

LP_

Finally, this prefix denotes lower-layer interaction, where L2CAP interfaces with the LMP layer.

Table 8-20. The PSM values that are used to identify the higher-layer protocol.

PSM

DESCRIPTION

0x0001

SDP

0x0003

RFCOMM

0x0005

TCS-BIN

0x0007

TCS-BIN-CORDLESS

Table 8-21. The CIDs that are used to represent the logical channel.

CID

DESCRIPTION

0x0000

Null

0x0001

Signalling Channel

0x0002

Connectionless Reception Channel

0x0003 to 0x003F

Reserved

0x0040 to 0xFFFF

Dynamically Allocated

As we can see in Table 8-18, Connection Establishment and Termination is mandatory in the local device, although the remote device may be capable of initiating and terminating a connection to the local device. The L2CA_DisconnectReq request packet is used to terminate the connection with the remote device and an L2CA_ DisconnectRsp response packet is used to ascertain the result of the termination, although all disconnection requests must be completed successfully. The support of Configuration is shown as mandatory and we will discuss these specific options further in the following section. Finally, Echo and Command Rejection are both mandatory for a compliant Dial-up Networking Profile.

Configuration Options

In establishing a connection with the remote device, the channel is subject to configuration and the higher-layer prototype L2CA_ ConfigReq request packet is used to carry configuration requests. Its associated response is contained within the L2CA_ConfigRsp packet; an L2CA_ConfigRspNeg packet is used to denote a negative response during configuration where, for example, the suggested Maximum Transmission Unit (MTU) is too large. In Table 8-18, we identify that the MTU and Flush Timeout parameters are mandatory, whereas the QoS is optional.

The default MTU setting for the signalling channel is 48 bytes, whereas other channels may be capable of transferring larger payloads; essentially, the MTU determines the size of payloads that are capable of being exchanged between two devices. During configuration, the local device will inform the remote device that it is potentially capable of accepting larger payloads. If the remote device is unwilling to accept a larger MTU, then the local device is informed with the response contained within the L2CA_ConfigRspNeg packet.

When L2CA_ request and response packets are being exchanged, the Flush Timeout parameter is used to determine how long the local device is prepared to continue to transmit an L2CAP fragment before it gives up; the packet is subsequently flushed or, in other words, discarded. The suggested Flush Timeout value is sent during the L2CA_ ConfigReq request packet. However, if no value is set, then the default value is used. The Dial-up Networking Profile uses the default value of 0xFFFF.

As we have already mentioned, the QoS configuration is optional. If it is used during an L2CA_ConfigReq request, then the best effort service is established as a default. The available services that support an L2CAP channel are shown in Table 8-22. However, if the QoS service is set at Guaranteed, then parameters such Token Rate, Token Bucket, Peak Bandwidth, Latency and Delay Variation are used to determine an acceptable guaranteed service, where the L2CA_ConnectRspNeg will indicate that these values are unacceptable. These parameters are then subject to further negotiation.

Link Manager

The Link Manager (LM) layer sits between the HCI and the Link Controller (LC), although on a hostless system the LM will have direct interaction with L2CAP. It accepts commands from HCI and translates them into operations for the LC, where Asynchronous Connectionless (ACL) and Synchronous Connection-Orientated (SCO) links are created and established. It is during this stage of ACL and SCO establishment that a master-slave switch would be performed, as governed by the requirements of this profile. The LM is also responsible for placing the device into a low-power mode, which includes hold, sniff and park.

Table 8-22. The range of service definitions that are used during QoS.

SERVICE

DESCRIPTION

No Traffic

This indicates that the channel will not be sending any traffic and, as such, any parameter can be ignored.

Best Effort

This default value attempts to achieve a minimum service with the local remote device, where no guarantees are offered.

Guaranteed

With this service definition, we indicate that we wish to achieve the maximum bandwidth permitted. This is, of course, subject to the nature of a wireless environment.

In providing general error management, devices that operate mandatory procedures during interoperability must either acknowledge their support or provide the initiator with a reason for procedure failure. The LMP_Detach Protocol Data Unit (PDU) is used to inform the device of the error that occurred; typically, the reason unsupported LMP feature (0x1A) is reported (see Appendix A).

In the next section, we take an opportunity to explore the dependencies that make up the Dial-up Networking Profile, where we provide a narrative of the capabilities that are expected at this level. In Table 8-23, we identify the capabilities that are required from this layer and, in the following sub-sections, discuss the specific procedures in more detail.

Capabilities

Table 8-23 summarises the broad capabilities that are expected from the LM. In the table, you will notice procedures are marked with M (Mandatory), O (Optional), X (Excluded), C (Conditional) and N/A (Not Applicable); these will determine what is expected from the procedures at the LM. A set of profile deviations are included in the table, which is above the common set of procedures expected at LM.

Table 8-23. The conditional requirements that are required for a compliant Dial-up Networking Profile.

PROCEDURES

DT

GW

SCO Links

C

C

The provision of SCO links, as previously discussed, is based on the capabilities of the DT and GW. If these devices are capable of providing audio feedback, then support for SCO Links should be provided.

SCO Links

A SCO link is set up using the HCI_Add_SCO_ Connection command (see Table 8-24), where a series of Voice_Setting parameters are used to denote the type of SCO channel and the audio coding schemes. The Voice_Setting parameters are written using the HCI_Write_Voice_Setting command and are shown in Table 8-25.

It is assumed that the partying devices have an existing ACL communications link, where pairing, authentication and encryption (if required) have already taken place. The ACL Connection_Handle parameter is used, in part, to then create our SCO connection using the HCI_Add_SCO_Connection command. Although, the host controller generates a Command_Status event, it does not indicate that the SCO connection has been created. The host controller for both devices uses the Connection_Complete event to notify both hosts whether the SCO connection has been successful or not, where the new Connection_Handle and Link_Type identify the new connection. You may also wish to note that the Packet_Type parameter is used to specify the type of high quality voice transmission, where HV1, HV2 or HV3 can be requested over the SCO link.

Table 8-24. The commands and events that are used in combination to create a SCO connection. The Host Controller first sends the Command_Status event. When the connection has been established, the Connection_Complete event is generated on both devices.

COMMAND

PARAMETERS

HCI_Add_SCO_Connection

Connection_Handle

Packet_Type

EVENT

PARAMETERS

Command_Status

Status

Num_HCI_Command_Packets

Command_OpCode

Connection_Complete

Status

Connection_Handle

BD_ADDR

Link_Type

Encryption_Mode

Table 8-25. The commands and events that are used in combination to write the voice setting parameters for a SCO link.

COMMAND

PARAMETERS

HCI_Write_Voice_Setting

Voice_Setting

EVENT

PARAMETERS

Command_Complete

Num_HCI_Command_Packets

Command_OpCode

Return_Parameters

The Voice_Setting parameters are shown in more detail in Table 8-26; the parameter makes use of two bytes, but only the first ten bits are useful. The HCI_Write_ Voice_Setting command also returns a Status of whether the command succeeded or not. The Voice_Setting parameters define the behaviour of all SCO connections that are active between partying devices.

Table 8-26. The Voice_Setting parameters that are used to define the behaviour of all active SCO connections.

 

PARAMETERS

9

8

7

6

5

4

3

2

1

0

Bit # of Voice Setting Parameters

0

0

0

0

0

0

0

0

0

0

Linear

0

0

0

0

0

0

0

0

0

1

µ-Law Baseband Coding

0

0

0

0

0

0

0

0

1

0

A-Law Baseband Coding

0

0

0

0

0

0

0

0

0

0

1’s Complement

0

0

0

0

0

0

0

1

0

0

2’s Complement

0

0

0

0

0

0

1

0

0

0

Sign-magnitude

0

0

0

0

0

0

0

0

0

0

8-bit Input for Linear PCM

0

0

0

0

0

1

0

0

0

0

16-bit Input for Linear PCM

0

0

x

x

x

0

0

0

0

0

Used for denoting the PCM Bit Offset

0

0

0

0

0

0

0

0

0

0

CVSD air-coding format

0

1

0

0

0

0

0

0

0

0

µ-Law air-coding format

1

0

0

0

0

0

0

0

0

0

A-Law air coding format

Link Controller

The Link Controller (LC) layer is the lowest layer depicted in the profile dependencies and has responsibilityfor a large number of core capabilities. It manages air-to-interface transactions and determines the fundamental timing of ACL and SCO data packet transmission and reception, as well as coordinating effort at its upper-edge with the LM. It also encompasses the management of the various packet types and the various inquiry and paging procedures that are available. The following subsections provide clarity with regard to the capabilities that are a requirement at the LC level for the Dial-up Networking Profile. In our understanding of the dependencies, we begin by examining the supported capabilities further. If you are a developer providing profile-specific applications, then it is unlikely that you will engage in a large part of this component, although in some audio-related applications, direct access may be required, where a faster transport mechanism can be supported. Nevertheless, many manufacturers have architected an audio-specific API for intelligible access to this component.

Capabilities

Table 8-27 summarises the broad capabilities that are expected from the LC. In the table, you will notice features are marked with M (Mandatory), O (Optional), X (Excluded), C (Conditional) and N/A (Not Applicable); these will determine what is expected from the features at the Link Controller.

Inquiry and Inquiry Scan

An inquiry procedure is used to learn of the other devices in radio range, where the BD_ADDR and clock offsets are obtained; it is DeviceA that will enter an inquiry substate to perform this procedure. A device that wishes to be discovered (DeviceB) will enter an inquiry scan substate, where the device will respond with an inquiry response. In this state, DeviceB is waiting to receive an Inquiry Access Code (IAC). From an application perspective, these modes of operation are more deeply discussed in the Generic Access Profile, Chapter 2. It is here that specific rules are determined with regard to device behaviour and duration of operation. When devices have been discovered, this information is passed over to the Service Discovery Application Profile, Chapter 3, which manages the specific attributes that make up that device. Here, we are reinforcing the premise that the Bluetooth protocol stack must encompass and support such behavioural procedures for this profile to be considered compliant.

Table 8-27. The summary of capabilities that are required for the LC to enable a compliant Dial-up Networking Profile.

PROCEDURES

DT

GW

Inquiry

M

X

Inquiry Scan

X

M

Paging

M

X

Page Scan

X

M

Packet Types

M

M

Voice Codecs

O

O

Paging and Paging Scan

The inquiry substate and inquiry scan substate procedures are the initial methods used to learn of other devices in radio range; to this extent, the device has discovered sufficient information to gain a connection with the remote device. This is achieved when DeviceA has the intent to create a connection with DeviceB; DeviceA is now placed into a paging substate, where it will periodically transmit the Device Access Code (DAC). The DAC is used to target the device directly and the clock offset is used to gain an idea of the clock cycle of DeviceB. These parameters were originally obtained during our inquiry procedures. If DeviceB wishes to be connected, then it will enter a page scan substate and will respond accordingly to DeviceA. An inquiry procedure may be avoided if the BD_ADDR is already known, although a connection may take a little longer if the clock offset is not known.

Packet Types

Of the numerous packet types available, Table 8-28 identifies those most often used for profile support. There are also a number of common packet types used for general purpose transport; for example, the ID packet is used for inquiry procedures and a POLL packet would be sent by DeviceA to determine if a slave is active on a channel.

Table 8-28. A summary of packet types required for the LC to enable a compliant Dial-up Networking Profile.

PACKET TYPE

DT

GW

DM1

M

M

DH1

M

M

DM3

M

M

DH3

M

M

DM5

M

M

DH5

M

M

HV1

X

X

HV2

X

X

HV3

O

O

DV

X

X

Table 8-29. A summary of voice codec schemes available for voice-related profiles.

VOICE CODEC

DT

GW

CVSD

O

O

A-Law

O

O

µ-Law

O

O

The DM1 packet type is used to transmit control data over any connection, but may also be used to transport a genuine payload. HV1, HV2 and HV3 are various SCO packet types to carry audio-specific data, where a DV packet can combine ACL and SCO specific data; their support in this profile is reflected in Table 8-28. Various ACL packet types are also available; in fact, seven types including the DM1 type are attributed to carrying user-specific data. These include DH1, DM3, DH3, DM5, DH5, and AUX1. Similarly, Table 8-28 summarises their support in this profile.

Voice Codecs

Table 8-29 summarises voice codec support in this profile. Voice coding schemes are used to provide compression and to overcome potential errors in the data transmission. Continuous Variable Slope Delta (CVSD) provides the second scheme, which is particularly efficient for voice communication; it also tolerates potential errors in the audio data. The Pulse Code Modulation (PCM) has two types of logarithmic compression; these are A-law and µ-law, where either compression technique can be applied on the voice channels over the air-interface.

The Point-to-Point Protocol

PPP is typically used for communication between two devices that use a serial interface; it is well described in RFC1661. In the Dial-up Networking context, PPP use is implied with the dial-up networking application. The two applications at either end of the connection will manage the communication and negotiations accordingly.

Summary

  • The Dial-up Networking Profile has many similarities to the LAN Access Profile; both rely on the Generic Access Profile, the Serial Port Profile and have a PPP implementation.

  • The Dial-up Networking Profile provides the use of AT commands to enable control and dialling.

  • The existing usage models allow a DT to make use of the service provided through a GW; these are the two roles that are defined by this profile.

  • The Dial-up Networking Profile provides the ability for a DT and GW to create a wireless bridge, thus creating a two-piece Bluetooth protocol stack.

  • An Internet bridge is created when the DT makes use of the remote network services.

  • PPP, IP and TCP are supported by the dial-up networking application.

  • Bluetooth bonding is mandatory for this profile; failure to provide such support would result in a failed Bluetooth connection.

  • The DT is the initiator of the Bluetooth relationship.

  • There are no specific master or slave roles, although the DT will be the master as it initiated the connection.

  • The DT discovers available GWs in radio range by performing an inquiry.

  • A GW may restrict discoverability to further prevent unauthorised access.

  • The Bluetooth Passkey is used as part of the authentication and encryption process.

  • The service class record must depict the dial-up networking availability in the GW.

  • A Service Discovery record is generated, detailing the parameters that apply to a specific service.

  • The DT dial-up networking application incorporates a PPP Client and the remote service incorporates a PPP Server, both of which are transparent to the profile and the developer.

  • PPP authentication may be required if the remote service requires this, where a username and password must be provided.

  • Modem and driver emulation are provided above RFCOMM making use of the serial port emulation model.

  • The GW must support the use of dialling and control where AT commands are issued to enable dialling and control.

  • An SCO link may be established if it is required and if the GW and DT support this capability.

  • A connection would be established regardless of the success of the SCO connection.



[1] The current v1.1 specification restricts the mobility of a user. In this current state, the user is fixed in one location or in radio range, where the access point resides. However, in the Bluetooth PAN Working Group, a hand-off technique is currently being architected to allow users to maintain that one, initial connection.

[2] The wireless bridge concept is not new. Existing technologies, such as infra-red (IR), provide the ability to communicate with a GW in much the same way as Bluetooth-enabled devices. The advantage of a Bluetooth enabled device is that it does not have to be in line-of-site with the DT; the mobile phone, for example, may be placed in a pocket or kept in a briefcase.

[3] The double-click and right-click operations refer to a mouse that is connected to your client device (in this example, a PC or notebook computer running a Microsoft Windows operating system) and where both operations trigger the same method of access. It is noted that an operation may vary from device to device and, as such, the number of buttons may vary on a mouse and indeed no mouse may be connected. The example just draws your attention to how it may be possible and acknowledges that implementations may differ.

[4] The flexibility of the Bluetooth protocol stack, in particular the various HCI and LMP commands available, allows various methods of creating a successful ACL connection. The text refers to one particular example of a connection set-up.

[5] The new International Telecommunications Union (ITU-T) Telecommunications Recommendation, Series V: Data Communication over the Telephone Network v.25ter, supersedes the original v.250 document.

[6] L2CAP payloads are passed directly onto LMP when implemented on a hostless system.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.139.188