Showing posts with label Technologies. Show all posts
Showing posts with label Technologies. Show all posts

Sunday, August 14, 2011

IPv6 | Wireline Networking Technologies and Packetization



IPv6, specified in RFC 2460, was created to address a few design issues with the previous IPv4. The major issue to be addressed is the limited number of IPv4 addresses. As the Internet grew, many devices that were not counted on originally to have networking support were given it, and IP addresses were allocated in large chunks to organizations, whereas many of the later addresses in the chunks went unused, being reserved for future growth. The people behind IPv6 decided, not without controversy, that more addresses were needed. As a result, they created the most defining feature of IPv6.
Each address in IPv6 is 128 bits. The address fields are split up into very large ranges and subfields, with the understanding that these large fields are to be used to simplify network allocation. IPv6 addresses are written in hexadecimal notation, rather than decimal, and are separated every four digits by colons. For example, one address might be 1080:0:0:0:8:800:200C:407A, where it is understood that leading zeros can be omitted. There is a shortcut, as well, where long ranges of zeros can be written with the double colon, ::. Thus, 1080::8:800:200C:407A specifies the same address as the earlier one.
As with IPv4, there are a few ranges, specified in slash notation, which are set aside for other purposes. The address ::1 represents the loopback address. Addresses of the form FE80::/10 are link-local addresses. Addresses of the form FC00::/8 are private addresses. The multicast address space is of the form FF00::/120. Finally, for backward compatibility, IPv6 specifies how to embed IPv4 addresses into this space. If the left 96 bits of the address are left zero, the right 32 bits are the IPv4 address. This allows the machine using 192.168.0.10, say, to use the IPv6 address ::192.168.0.10 (they allow the dotted decimal notion just for this). This means that the machine ::192.168.0.10 understands and can receive IPv6, but was assigned only an IPv4 address by the administrator. On the other hand, machines that speak only IPv4 and yet have had packets converted to IPv6 by some router are also given an address. If 192.168.0.10 belonged to this group, it would receive the IPv6 address ::FFFF:192.168.0.10. The FFFF is used to signify that the machine cannot speak IPv6.
The IPv6 header is given in Table 1.




Table 1: IPv6 Packet Format 
Version/Flow
Payload Length
Next Header
Hop Limit
Source
Destination
Options
Data
4 bytes
2 bytes
1 byte
1 byte
16 bytes
16 bytes
optional
variable
The Version/Flow field (Table 2) species important quality-of-service information about the flow. The version, of course, is 6. The Traffic Class specifies the priority of the packet. The Flow Tabel specifies which flow this packet belongs to. The Payload Tength specifies how long the packet is from the end of the IPv6 header to the end. Thus, this is the length of the options and the data. (Note that, in IPv4, the options are counted in the header, not the payload.) The Next Header field specifies the type of the header following the IPv6 header, or if there is no IPv6 option following, then this specifies the protocol of the higher-layer unit this packet carriers. The Hop Limit is the TTL, but for IPv6. The Source and Destination addresses have the same meaning as in IPv4.
Table 2: The Version/Flow field 




 
Version
Traffic Class
Flow Label
Bit:
0-3
4-11
12-31
IPv6 is routed in the same way as IPv4 is, although there is a lot more definition in how devices learn of routes. In IPv6, devices are able to learn of routers by their own advertisements, using a special protocol for IPv6 administrative communications (ICMPv6, as opposed to ICMPv4 used with IPv4).
IPv6 is a major factor in government or public organization networks, and has an impact in voice mobility in those environments. Many private voice mobility networks, however, can still safely use IPv4.


 UDP

The User Datagram Protocol, or UDP, is defined in RFC 768. The purpose of UDP is to provide a notion of ports, or mailboxes, on each IP device, so that multiple applications caexist on the same machine. A UDP port is a 16-bit value, assigned by the application opening the port. Packets arriving for a UDP port are placed into a queue used just for the application that has the port open: these queues, and the ports they are attached to, are generally called sockets. UDP-based applications often have well-known, assigned port numbers. Common UDP applications for voice mobility are SIP on port 5060, DNS on port 53, and RADIUS, on port 1812.
Every socket has a port, even those that do not need a well-known one. Ports can be assigned automatically, according to whatever might be free at the time, These are calledephemeral ports.
UDP embeds directly into an IPv4 or IPv6 packet. The format of the UDP header is shown in Table 3.




Table 3: UDP Packet Format 
Source Port
Destination Port
Length
Checksum
Data
2 bytes
2 bytes
2 bytes
2 bytes
variable
The Source Port is a 16-bit value of the socket sending the UDP packet. It is allowed to be 0, although that is rarely seen; ephemeral ports are far more common. The Destination Port is that of the socket that needs to receive the packet. The length field specifies the entire length of the UDP datagram, from the Source Port to the end of the Data. This is redundant in IP, because IP records the length of its payload, and the UDP packet is the only thing that needs to fit. The checksum is an optional field for UDP, which covers the data of the packet, as well as the UDP header and a few fields of the IPv4 or IPv6 header (such as source, destination, protocol, and length).
UDP suffers from the same problems as the underlying IP technology does. Packets can get dropped or reordered. Applications that depend on UDP, such as SIP and RTP, need to make plans for when packets do get lost. This is a major portion of voice mobility.


TCP

The Transmission Control Protocol (TCP) is the heavy-duty older sibling of UDP. TCP, specified in a number of RFCs and other sources, is a protocol designed to correct for the vagaries of IP's underlying delivery, for use in data applications.
Unlike UDP and IP, TCP provides the view to the using application that it is a byte stream, not a packet datagram service. Of course, TCP is implemented with packets. This means that TCP must ensure that packet loss and reordering do not get revealed to the end application, and so some notion of reliable transport is necessary. Furthermore, because TCP is the dominant protocol for data, it must deal with trying to avoid overwhelming the network that it is being used in. Therefore, TCP is also charged with congestion control— being able to avoid creating congestion that brings down a network—while finding the best throughput it can.
The header structure for TCP is given in Table 4.




Table 4: TCP Packet Format 
Source Port
Dest. Port
Sequence
Ack.
Flags
Window
Checksum
Urgent
Options
Data
2 bytes
2 bytes
4 bytes
4 bytes
2 bytes
2 bytes
2 bytes
2 bytes
Optional
variable
The Source and Destination ports are similar to TCP, and well-known ports are allocated in the same range. No TCP port can be zero, however, and the UDP port and TCP port with the same number are actually independent; only convention suggests that an application use the same number for both. Examples of well-known TCP ports are SSH on 22 and HTTP on 80. The Sequence and the Acknowledgement fields are used for defining the flow state. The Window field specifies how many bytes of room the receiver has to hold onto out-of-order data. The checksum, mandatory, covers the data, TCP header, and certain fields of the IP header. The urgent field is almost always zero, but was conceived as a way that TCP could send important data in a side channel. Options are possible after that, and then the data comes. Unlike UDP, TCP does not provide the length explicitly, as IP already does.
The flags (see Table 5) are divided up into the Data Offset, which specifies how long the options will be by when the first bit of data will appear. The CWR and ECE flags are not often used, and are for network congestion notification. The URG flag is for whether the Urgent field is meaningful. The ACK flag is used for every packet that is a response to another. The PSH flag is set when this particular packet was the result of the application saying that it wants to flush its send buffer. Small writes to the sending TCP socket do not cause packets to come out right away, unless that feature is specifically requested. Rather, the sender's operating system holds on to the data for a bit, hoping to get a larger chunk, which is more efficient to send. The application can flush that holding on, however, and the resulting packet will have the PSH bit set. RST is set when the sender has know idea about the socket the packet is coming in for. SYN is used to set up a TCP flow, and FIN is used to tear it down.




Table 5: The TCP Flags Field 
 
Data Offset
Reserved
CWR
ECE
URG
ACK
PSH
RST
SYN
FIN
Bit:
0-3
4-7
8
9
10
11
12
13
14
15
TCP needs to keep track of flow state, in order to provide the appearance of a stream. The TCP stream is a two-way channel, symmetric in the sense that no one side is favored over the other. Each side keeps sender state and receiver state. A part of that state is that every byte in the TCP stream, since the stream began, is given an increasing sequence number. As packets are pushed out to the network by the sender, the sender keeps copies of those packets. When the receiver gets a packet, it acknowledges it by sending a packet with the ACK flag set, and the Acknowledgment field to the sequence number of the highest byte it has received before a break in the sequence occurs. This acknowledgment can come back as a part of the next return-direction data packet, but if none are queued, then ACKs are generated in their own, otherwise empty, packets every 200ms. This process is called delayed acknowledgment. If the acknowledgment is never received by the sender, the sender has to assume that either the original data packet, or the acknowledgment itself, got lost. The sender will then retry the packet some time later. Once a packet has an acknowledgment received for it, the sender will finally free up the packet. On the receive side, the receiver cannot send information back to the application unless there is a contiguous run of bytes at the head of the reassembly buffer. If not, the buffer holds onto the bytes, and advertises the hole in the next acknowledgment.
TCP uses sophisticated flow control techniques to prevent the sender from sending too much. The basic flow control technique is that the sender cannot have any more outstanding packets sent than the window size it hears on any given TCP packet in return. This prevents the receive buffer from being overrun. On top of that, however, TCP engages in congestion control. The sender specifically tries to measure the round-trip time of the network, and its loss rate. Because TCP is a handshaking protocol, and the sender cannot send when the window is full unless it receives an acknowledgment first, TCP will perform most optimally if it can stick enough packets in the wire to fill the round trip time. If, after a round trip time elapses, an acknowledgment does not come in for a packet, the sender can assume the packet did not arrive and retransmit it right away. However, what if the network is congested? In that case, switches and routers can start dropping packets. TCP reacts to that packet loss. Its first method is to avoid flooding the line to begin with. With TCP, past success begets future success. To make that work, TCP starts of slowly, sending one packet at a time. Every acknowledgement gives it more confidence, and a reason to send one more packet than before in the next round trip. This process, called slow start, continues until the network finally drops a packet. Once a packet is dropped, the sender will notice it, because subsequent packets that are sent to the receiver will cause duplicate acknowledgments, as the hole that the loss created prevents the receiver from acknowledging the later sequence numbers, and yet the receiver is required to send an acknowledgment. The back-to-back duplicates cause TCP to back off, by cutting its congestion window—the number of packets it thinks it can have outstanding every round trip—in half. The sender then tries to ease back in, by growing its congestion window once every round trip time. This process is finely tuned to ensure that the network does not become overly crowded by aggressive behavior. In the early days of the Internet, this did, in fact, happen and was the motivation behind introducing congestion control.
Because TCP refuses to allow any loss, it is required to block the sender and receiver until it can resolve outstanding packet matters. This makes TCP generally inappropriate for voice mobility. Interestingly, TCP can be used for the signaling protocols, such as with Secure SIP, as long as the applications that use it are prepared to handle cases on lossy networks where the application gets stuck. Also, TCP is being used increasingly for video, mostly because of applications such as consumer-oriented video sharing services, which make the assumption that simplicity is best.

Wednesday, August 10, 2011

The Internet Protocol (IP) | IPv4



Ethernet defines how devices can be physically connected. But users do not know the Ethernet addresses of the devices providing the services they wish to use. More intelligence is needed to separate out the physical addressing, replacing it with logical addressing that an administrator can decide on, and allow multiple physical networks to be connected. The Internet Protocol (IP) defines how this addressing and packet formatting is to occur.
IP was originally specified in RFC 791 and expanded upon later, and comes in two versions: version 4 (IPv4) and version 6 (IPv6). The two main concepts for IP are the IP addressand IP frame.

IPv4
IPv4 is the version used most often on the Internet today, by a wide margin. IPv4 uses a four-byte address written out as dotted decimal numbers, such as 192.168.0.1. These addresses are given out by an international agency in blocks for large organizations to use. Generally, individual IP addresses are provided to organizations by their Internet service providers. Ranges of addresses tend to be specified using the slash notation. For example, 192.168.0.0/16 means that the upper 16 bits are what was written, and the rest are within the range defined by allowing the remaining lower bits to be set to any value.
Of the 32-bit address space, some of the addresses have special meanings. The 127.0.0.0/8 address range is for loopback networking, and, when used as a destination, are kept internally to the machine that is doing the sending. This allows an IP device to send packets to itself. The 169.254.0.0/16 range is for link-local addresses, meaning that their use cannot extend past the Ethernet switching network they are used on. In addition, 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 are all private addresses. These are the addresses most commonly used in voice mobility networks within the enterprise. They are not valid on the public Internet itself, but are designed for private networks based on IP. The 224.0.0.0/4 network is used for multicast traffic: each address is a different multicast group. Finally, the 255.255.255.255 address is the link-local broadcast address, meant to go out to all devices on the Ethernet switching network (and using the FF:FF:FF:FF:FF:FF Ethernet broadcast address for the underlying packet).
IPv4 runs on Ethernet by setting the Ethernet type to 0×0800. The IP packet has a header and payload, as shown in Table 1.



Table 1: IPv4 Packet Format




Table 2: The Version/Header Length Field
 
Version
Header Length
Bit
0-3
4-7
The Version/Header Length field is specified in Table 2. For IPv4, the version is always 4. The header length measures how long the header is (up to the data field), in four-byte increments. The Type of Service/Diffserv Code Point (TOS/DSCP) field is used to specify the quality-of-service properties of the packet. The Total Length measures the entire length of the packet, and will come into play with fragmentation. The Identification field is used to track which fragments belong to the same overall packet; between separate packets, most devices tend to increment this by one, although this is not required. The Fragment field specifies what the offset is for this fragment in the entire packet. The TTL (Time To Live) field is used for forwarding, and specifies how many times this packet can be forwarded before it is dropped. The Protocol field specifies what higher-layer protocol is used on top of IP for this packet. The Header Checksum is a literal one's complement 16-bit sum of the header of the packet, and is used to detect if the underlying network flips a bit by mistake. (The Ethernet CRC is adequate for that purpose, so this field, although always set and always checked, is not terribly useful.) Finally, to the interesting information. The Source and Destination fields hold the IP addresses of the originator and final destination of this packet. The header ends here, and is followed by the next protocol's headers or data. This entire set of bytes is the payload of the underling Ethernet frame.
IP is designed to be relayed, or forwarded, between computers, across different network segments, and across the world if needed. This is the major distinction for IP, as it hasallowed the Internet to be constructed from an assembly of smaller networks. The idea is that any IP-connected device that has multiple links can forward messages if configured to do so. Each link has its own IP address, as required. When an packet comes in for an IP address that is not that of the machine (how that happens will be mentioned in a moment), the device will look up a routing table to find out where the next machine is that this packet needs to go to. IP forwarding works on the concept of longest-prefix matching. Because there are too many IP addresses for a machine to know about, and because the IP address space tends to be organized in ranges, the forwarding device (arouter in this context) looks up a series of routing rules that it has configured. Each routing rule is set up as a network prefix (as specifiable by slash notation), and the IP address of a machine that is on one of the links the router has. This address is the next hop. Because a destination address might match more than one rule, the one rule that matches the most leading bits-the longest prefix-will win, and that next hop will be used.
This concept of next hops explains why a router or machine may get a packet for a different destination IP address than it uses for itself. If another machine is set up to forward packets to it—and any machine can be set up to forward to any other, without restriction, so long as both are on the same switching network—then the first machine will get packets for other devices. The concept of prefix routing makes sense when you think of most enterprise routers. Enterprises, all but the largest, usually have a limited number of address ranges that are used locally. All of the rest, every other one, is out on the Internet. Connecting the enterprise to the Internet is one Internet router. The enterprise routers thus need only to have forwarding rules for the address ranges that they have in the enterprise, plus one route, called a default route, that tells the IP address of the Internet router. This default route uses a 0.0.0.0/0 prefix, meaning that every address matches, because the prefix is trivially short. Therefore, longest-prefix matching ensures that the default route matches last. Nonrouters will normally only have this default route, because they will not forward other devices' traffic. In this way, locally generated traffic is forwarded, even when other traffic will not be. The final bit of information to know is that not all traffic is forwarded on to next hops. Each link into the system has not only an IP address but asubnet mask, or a prefix that specifies what other IP addresses are directly on that link. For example, using the same slash notation, 192.168.10.20/24 states that the IP address of the link is 192.168.10.20, and all IP addresses starting with 192.168.10 are directly on the link, and do not need to be routed to the next hop. Those direct-link addresses belong to the same subnet. Every time the frame is forwarded, the TTL is reduced by one. Once it hits zero, the packet is dropped, rather than forwarded. Nothing else is modified while the packet is forwarded—the source and destination addresses are always those of the originator and the final destination of the packet.
Because IP runs on top of Ethernet, there must be a way to map IP addresses to Ethernet addresses. Every IP address has an Ethernet address—that of the Ethernet device the IP address was assigned to. When a sender needs to send out an IP packet, and it has used its forwarding logic to figure out which link the next hop or final destination is on, the sender needs to use a resolution protocol to ask the devices on the network for which one has the IP address it needs. The protocol is called the Address Resolution Protocol(ARP). ARP runs on a different Ethernet protocol type 0×0806. The idea is that each sender maintains an ARP cache. This cache stores the Ethernet address that is known for a given IP address. The cache is updated whenever another device sends a packet to the first one, as the Ethernet source address is assumed to be bound to the IP source address, so long as that IP address is on the same subnet. However, if the cache does not have an address mapping that is needed, the sender will send an ARP request to the network. These ARP requests are broadcasted using Ethernet, and any device that receives the ARP request and has that IP address is required to respond, unicast to the ARP sender, acknowledging the binding with another ARP message. The format of an ARP message is shown in Table 3.



Table 3: ARP Message Format
For Ethernet networks, the Hardware Type is always 1, and the Protocol Type is always 0×800. The Hardware size is the length of the Ethernet address, 6. The Protocol Size is the length of the IP address, 4. There are two opcodes: 1 is for a request, and 2 is for a reply. Finally, the addresses state the mapping that is requested or being answered for. When a machine requests to find out which other device has an IP address, it will send its Ethernet and IP addresses as Sender, and the IP address it is looking for as Target, with the Target Ethernet set to 0. The respondent will fill in its Ethernet and IP address as sender, the original requester's Ethernet and IP as target, and then send the response back.
With ARP, the binding of IP addresses to Ethernet addresses can be dynamic and changing.
Earlier, the concept of fragmentation was alluded to. IP provides a service that lets a packet be split across a number of smaller packets. The reason for this is that IP is meant to be carried over a wide variety of link-layer technologies, not just Ethernet, and those technologies may have a different maximum payload size. To make sure that a packet that is of a valid length that is sent in one network can arrive safely at the other, the concept of fragmentation was introduced. The router, or sender who has a packet which is too large, and which does not already have the "Do Not Fragment" bit in its Fragment field set, will divide the packet into two or more smaller ones, each with a copy of the original IP header.
The data fields will be the individual segments, with the offset of the first byte of the data field from the start of the original (or reassembled) packet being given in the Fragment field. The fragments are sent over the network, and the receiver is required to reassemble all of the fragments before sending it up to the higher layers. The receiver knows that it has reached the end of the fragment chain by looking at the "More Fragment" bit in the Fragment field. The last fragment will not have that bit set. All fragments of an original packet share that packet's original Identification field. The maximum size of an IP packet, including all headers, is 65,535 bytes.
IP, like most other packet networking technologies, makes no guarantees as to whether a packet will arrive at its destination. Packets may arrive with arbitrary delays, and may even come out of order (although this is to be discouraged). This best-effort delivery guarantee-the network will try, but will not commit resources up front-is key to IP's success. It, unfortunately, also runs counter to the goals of voice.
Clearly, IPv4 is the bread-and-butter protocol for voice mobility. What was presented here was a brief, high-level survey, and readers are encouraged to fill any major gaps in understanding before undertaking major roles in voice mobility networks.

Thursday, May 19, 2011

The Anatomy of a Voice Call | Voice Mobility Technologies


Placing a call may seem very simple to us modern users of voice mobility. Remove the phone from your pocket, purse, automobile cup holder, or wherever you may keep your phone, find the name of the person you wish to call, and press the Send or Yes button to dial the caller. However, underneath that simple experience lies a vast wealth of technology, with electronic gears turning to produce a sound that not only sounds like a human, but is actually recognizable as the person on the other end of the phone, even if you are driving at 65 miles an hour down the interstate.
The voice call is made of a number of moving parts. Figure 1 illustrates the basic example.

Figure 1: The Anatomy of a Voice Call
Each handset contains all of the technology necessary to place a phone call. The phone must have a microphone to capture the voice call and a speaker to play out the audio from the other party. But beyond that, the phone must have a way of converting the analog voice information into encoded digital signals, using audio codecs with possible compression to ensure that high-fidelity voice quality can be carried over lower-bandwidth links. The phone must also have one or more wireless radios, complete with technology stacks and engines that allow the phone to connect to each of the networks, or even to hand off between the networks. These stacks must fully understand and adequately implement the necessary protocols to provide high voice quality over the network, something easy for voice-oriented technologies but much harder for data-oriented packet-switched networks. Finally, the phones must also support a rich telephony application. This application needs to look like, act like, and have the features of a common telephone, and yet, for voice mobility, must now often store the addresses and phone numbers of crucial contact information, provide access into the enterprise directories, allow for dialing as if in the office, and be manageable by network administrators. Many of these applications are not necessarily native to the phone itself, but created by third-party vendors to tie multiple telephone systems together to appear as one. The telephony applications must support all of the necessary protocols to create a phone call, set up the audio channels, and deal with advanced features such as voicemail and three-way calling.
The call itself is composed of two separate flows of information. The more obvious flow is what is known as the bearer channel. The bearer channel, a term borrowed fromIntegrated Services Digital Network (ISDN) technology, carries the voice of the callers. Looking back to analog telephones, there is only one channel, an analog audio channel that provides both the callers' voices and the necessary tones to tell the caller what to do. Dial tones, busy signals, and other beeps and clicks are used to communicate the number being dialed and the state of the call. In voice mobility networks, however, the audio is kept separate from the communication that is used to set up the call and keep it running. This is known as out-of-band signaling. Voice can be encoded in a variety of ways, and the bearer channel is more likely to be carried in a number of digital formats. The communication about what the phone call is for, how it is being set up, and what state it is in is encoded in the signaling channel. The signaling protocol is used to dial out to set up the call, provide feedback as to whether the other phone is ringing or busy, and to finally set up the bearer channel when the call goes through.
The signaling information needs to go somewhere, and that somewhere is to a telephone switch. For private telephone networks, where the handsets are maintained by the enterprise or organization who owns the network, these switches are also owned by the enterprise and are called private branch exchanges (PBX). The term exchange and switchare interchangeable, and these devices are the electronic equivalent of the old manual switchboard, creating connections between two calls. The PBX (or PBXs) for analog systems are proper switches, with internal analog phone lines that run from the handset directly into the PBX. But for Internet Protocol (IP)-based telephone networks, the PBX is more of the central call manager, providing for the list of extensions—users, basically, as well as the telephone numbers each user has—and the dialing plan—the notion of how to route calls based on the phone numbers dialed. PBXs also implement all of the advanced features of voice mobility calling, including voicemail, call forwarding, and multiple ring.
The PBXs define the internal voice network, but calls need to be able to be routed back onto the real, public telephone network, to allow calls in and out from the outside world. IP PBXs rely on a module or a separate device, known as a media gateway, which has the responsibility of converting the signaling and bearer traffic into a format and onto a wire that is provided by the telephone company. Media gateways thus bridge the inside world to the outside.
Let's get a better look at each component.

The People and Their Devices: Phones

Phones come in a number of shapes and sizes. Some have the latest features for consumers, such as music playing, video recording and camera functions, global positioning, and touch screens with tactile feedback. Some are designed for enterprise users, and have large screens, with strong email access and integration, spreadsheet and document editing capabilities, and large storage for use as a computer away from the laptop. Others are simple and rugged, meant for use in physically demanding environments where the phones need to withstand a beating. Some have nearly no buttons at all, and are even designed for nearly hands-free operation.
All in all, each phone may seem wildly different from the next. But, underneath, they are made of the same stuff: a microphone to pick up voice; a speaker to play it back; maybe another speaker for speakerphone operation or to play ringtones, so as not to deafen the user who happens to have accidentally hung up on a conversation and is being called back; some way to dial; some way to see or hear who is calling; a battery for mobility; and one or more radios to connect back to the network.
Within those components, the description becomes even more common. There is a digital sampler and a codec engine, to convert voice into digital data and back. There is a CPU somewhere, orchestrating everything, along with memory and some nonvolatile storage. The radios have antennas, all folded neatly into the small device. Voice operates the same on every one of these devices, and users will become just as irritated by poor audio quality as they will be pleased by good quality. The best voice mobility network is the one that users forget is even there, or is anything unique or special. They get out of the way, so to speak, and let the voice mobility user do her work.

The Separate Channels: Signaling and Bearer

In the analog telephone days, there was only one line per extension. This analog line has to do everything. It carries the voice, but it also has to ring the phone, send busy or dial tones, and handle the beeps corresponding to each button being pressed.
With digital phone calling, the signaling and bearer channels are separated. All the beeping, humming, and chirping that is meant to tell the caller what is going on with the call is removed from the audio stream and sent separately in the signaling channel. The bearer channel holds the human voice, and nothing else. The advantage of this having been done for IP-based voice mobility networks is that it allows the call setup part of the network to operate differently from the voice encoding and decoding part. IP PBXs may be configured to never carry a single voice packet, because their job is simply to figure out how to route calls—much like how Internet DNS servers are so critical in figuring out what"www.google.com" refers to without carrying a byte of Google's web traffic. Media gateways can be created that specialize in conversion of media formats, and then only need to implement the basic signaling protocols, and do not need to be concerned with advanced PBX features.

Dialing Plans and Digits: The Difference between Five- and Ten-Digit Dialing

For all the advancements in the digital age, with email accounts, instant-messaging handles, avatars, and what not, phones still work with the concept of dialing a series of numbers. But not all numbers are created alike. In the telephone network, someone needed to determine what all of the digits mean. This meaning is known as the dialing plan.
Think of the dialing plan as a series of simple rules that tell the phone system when you are done dialing and where the numbers are to go. In the United States, the dialing plan for our public telephone lines specifies that every phone number is seven digits long. Type an extra digit, and the phone ignores it. However, some calls are not in the same area code. This area code concept is a part of the dialing plan. To get to other blocks of phone numbers, outside of the block of numbers that you can dial the most conveniently, you need to dial a "1", followed by the area code, followed by the seven-digit number. Other calls require even more digits. An international call requires dialing "011" before the country code, and then whatever digits are necessary to place a call in that country. And the first "0" must be followed by the first "1" quickly enough to prevent the phone from thinking you are done, and connecting you to the operator. Finally, some calls, like "411", require only three digits. In the office, things can be a bit more complicated. Many people may have four-digit extensions. Only those four need to be dialed. Some companies may use longer extensions, however, with access codes in front of them. Finally, to dial out to the public network, you may need to dial a "9". But not just any "9" will do! The "9" must be followed by a pause, to let the system present a new, outside-world dial tone, where the rest of the digits can be placed.
The dialing plan defines all of this behavior. Every PBX system provides an incredible amount of depth into how these dialing plans can be created, and whether some of the digits are just part of the extension number and others are meant to shift the call over to another PBX somewhere else (like the "9" did to dial outside, but even the "1" for long distance does the same thing) to figure out the meaning.
A lot is mentioned about having four- or five-digit dialing within voice mobility networks. There is an added convenience, and it is true that users of a PBX may not remember the outside number corresponding to an extension, especially if the rest of the number is different for different extensions. (Picture a system in which the 6xxx extensions are reached from outside the office by dialing 487-6xxx, but the 7xxx extensions are reached by dialing 935-7XXX.)

Why PBXs: PBX Features

PBXs serve as a lot more than just the anchor or administrative server of the phone network. They also provide a long list of features that people have come to expect from enterprise phone lines—features that they probably do not have at home, even with today's rich cellphone feature sets.
PBX vendors compete with each other by making the feature set as useful and fancy as possible. There are a number of important PBX features. Some are listed here:
  • Dial-by-name directory: A computer voice system that allows callers to find out an extension and dial it by interactively pressing a few buttons, usually the first portion of the name. This directory is driven by the autoattendant feature.
  • Autoattendant: The automated telephone operator, represented by a series of recorded prompts. Autoattendants allow users to access and even manage their account on the PBX simply by calling in. Autoattendants are also the anchor for the interactive voice response systems that outside callers might get into a call center line, whose PBX is advanced enough to guide callers through the menu of options.
  • Call forwarding: The user can set the line up to forward to another extension, or an outside line, rather than ring the phone. This is useful for when the user is out of the office. Call forwarding is also done automatically when the user does not answer the phone after a certain number of rings.
  • Find-me/Follow-me/Hunting: These three names for broadly the same feature allow the user to have a number of different alternative phone numbers. When the user does not answer his or her primary line after a certain number of rings, the system hunts down the list, forwarding the call to the next number until it gives up.
  • Simultaneous ring: Instead of hunting through a series of numbers, the PBX can call out to each of them at once. The first one to answer gets the incoming call. This is useful when the user has a desk phone and a mobile phone, or multiple other phones, and might be at any of them.
  • Call transferring: Allows the user to send the answered phone call to another phone.
  • Call park: Allows the call that is already in place to be placed on hold and transferred to another extension, where the user can remove the call from hold. Unlike call transferring, which would ring the other phone and cause the user to have to run until voicemail picks up, call parking allows the user to take more time.
  • Call pickup: Allows a user to answer another user's phone when it is ringing by entering their extension number. It can also be used in the same sense as simultaneous ringing can, in that an incoming call to a department might ring multiple extensions, and the first to pick it up wins.
  • Do-not-disturb: Rejects the call before it rings the phone, usually sending it to voicemail or back to whomever transferred the call. Similarly, a user can often use this feature manually on an incoming call by pressing a button on the phone to terminate the incoming call and bounce it back.
  • Voicemail: Answers the phone and records a message.
  • Hold music: PBXs provide a series of options and selections for the caller to be subjected to while on hold. For some unknown reason, even advanced PBXs often play a short, few-second-long segment of supposedly relaxing music in an endless loop. Administrators can, however, often replace the hold music with a prerecorded selection. This is most useful for queuing of calls in call centers, where the hold music might be interspersed with the autoattendant informing the caller of the expected wait time.
  • Time-based policies: PBXs can change their configuration based on the time of day, routing calls to the autoattendant instead of the corporate operator, for example, after hours.
  • Conference calling: PBXs can join together a limited number of lines for ad hoc conferences, such as three-way calling, for which multiple parties are needed to be on at once.
As you can see, PBXs are designed to have a broad series of functions. Thankfully, PBX features are generally independent of voice mobility networking, in the sense that every PBX has a good number of features, and these features will generally work on IP PBXs, no matter what IP-based protocol the user is using. On the other hand, fixed-mobile convergence (FMC) solutions and PBXs do interact

Saturday, October 18, 2008

Wireless Networks - Technologies

Key enabling technologies for wireless communication include digital modulation, data compression, and digital signal processing.

Digital Modulation

Digital modulation is the process of modifying the amplitude, frequency, or phase of a carrier signal using the discrete states (On and Off) of a digital signal.

When modulating a carrier signal using a digital information signal, this causes rapid changes to the carrier wave. These rapid changes result in the creation of other signals that are usually undesirable. As a result, digital modulation usually includes a process of adjusting the maximum rate of change of the input signal (rounding the digital signal edges) and filtering out some of the unwanted signals that are created during the transition.

Figure 1 shows different forms of digital modulation. This diagram shows ASK modulation that turns the carrier signal on and off with the digital signal. FSK modulation shifts the frequency of the carrier signal according to the on and off levels of the digital information signal. The phase shift modulator changes the phase of the carrier signal in accordance with the digital information signal. This diagram also shows that advanced forms of modulation such as QAM can combine amplitude and phase of digital signals.


Figure 1: Digital Modulation

Data Compression
Data compression is a process that is used encoding information so that fewer data bits of information are required to represent a given amount of data. Compression allows the transmission of more data over a given amount of time and circuit capacity. It also reduces the amount of memory required for data storage.

Access Multiplexing
Access multiplexing is a process used by a communications system to coordinate and allow more than one user to access the communication channels within the system. There are four basic access multiplexing technologies used in wireless systems: frequency division multiple access (FDMA), time division multiple access (TDMA), code division multiple access, (CDMA), and space division multiple access (SDMA). Other forms of access multiplexing (such as voice activity multiplexing) use the fundamentals of these access-multiplexing technologies to operate.

FDMA systems use a process of allowing mobile radios to share radio frequency allocation by dividing up that allocation into separate radio channels where each radio device can communicate on a single radio channel during communication. TDMA systems allow several users to share a single radio channel by dividing the channel into time slots. When a mobile radio communicates with a TDMA system, it is assigned a specific time position on the radio channel. By allow several users to use different time positions (time slots) on a single radio channel, TDMA systems increase their ability to serve multiple users with a limited number of radio channels. Code division multiple access (CDMA), a form of spread spectrum communication. CDMA is a method of spreading information signals (typically digital signals) so the frequency bandwidth of the radio channel is much larger than the original information bandwidth.

Some systems coordinate system access on the same radio channels that are used for communication and other systems use a separate (dedicated) control channel. When using a control channel to coordinate access to the system, it is called an access control channel. The access control channel coordinates the random requests for service that is received from users (mobile radios) in the system. The control channel may also transfer identification information that allows the system to determine if the user is authorized to receive access to the system.

Figure 2 shows the common types of channel-multiplexing technologies used in wireless systems. This diagram shows that FDMA systems have multiple communication channels and each user on the system occupies an entire channel. TDMA systems dynamically assign users to one or more time slots on each radio channel. CDMA systems assign users a unique spreading code to minimize the interference receive and cause with other users. SDMA systems focus radio energy to the geographic area where specific users are operating.


Figure 2: Channel Multiplexing