Digital Voice Port Configuration

This article focuses on digital voice port configuration in relation to VoIP implementation. There are a number of different components that need to be designed and configured when setting up a VoIP network, one of which is the voice port. The voice port is located at the intersection of the network between the packet based network and the traditional telephony network. In addition to physically connecting these two network types, a voice port is responsible for correctly translating voice calls and signaling. As the name suggests, digital voice ports transport the voice information between devices using digital methods. This article focuses on T1 and E1 voice port configuration.

T1 and E1 Voice Port Types

Some background information on the operations of both T1 and E1 circuits is required to fully understand the digital voice port configuration details in this article. Both T1 and E1 contain a number of 64-kbps channels (DS0) which are used for each path of voice. A T1 circuit has a total of 24 of these channels, and an E1 has a total of 30 (usable).

When configuring a voice port, it is possible to separate the physical channels on a specific circuit and create several logical voice ports with different parameters. Digital voice ports operate by emulating analog voice port types (e.g., FXS, FXO or E&M) on a channel by channel basis. For example, it is possible to configure the first 4 channels of a T1 to emulate FXS and the next 4 channels to emulate E&M.

Emulation Methods

There are two different methods that can be used to emulate analog voice ports over digital port types; these different methods include Common Channel Signaling (CCS) and Channel Associated Signaling (CAS). To make things simple, the configuration in this article will focus on the CAS method as it uses the same individual channel to signal and to transport the voice (robbed bit signaling), and does not require much additional configuration. CCS is more commonly used on the PSTN (Public Switched Telephone Network) and typically utilizes Integrated Services Digital Network (ISDN) configurations which would require a separate article.

Codec Complexity

The next thing to understand is how to alter the configured codec complexity supported. By default, routers are configured to support codecs with medium complexity (these codecs are shown in Table 1). This simply determines the number of calls that can be supported by the voice equipment installed in the router (Digital Signal Processors, or DSP). Depending on the specific implementation, different codecs which require different processing capabilities can be used across a voice network. Table 1 below shows some of the most commonly used voice codecs and how they rank in terms of complexity.

Complexity Codecs
Medium G.711, G.726, G.729 Annex A, G.729 Annex A with Annex B and Fax Relay
High G.723, H.728, G.729, G.729 Annex B, GSMEFR, DSMFR,

Table 1 – Codec Complexity

T1/E1 Controllers

When configuring a T1 or E1 controller to be used with CAS (and not PRI), there are a number of different ways that the controller can be set up, depending on the configuration of the equipment that the router is connected to. For example, as stated above, it is possible to configure only a certain number of channels to be used and set up in a specific way; this is all done when configuring the controller. It’s also important to understand the basics of the specific framing, coding and clocking methods that will be configured on the controller.

For T1, the different framing methods include Superframe (SF) or Extended Superframe (ESF). For E1, the different framing methods include whether to use a cyclic redundancy check (CRC4). The use of the ESF and CRC4 framing formats is more commonly seen, but be aware that there are other options.

As with framing methods, there are a couple of different line coding methods that can be selected based on the specific situation. For T1, the options include Alternate Mark Inversion (AMI) or bipolar with eight-zero substitution (B8ZS). B8ZS is actually just a modification on AMI that differs in how multiple (8) zeros are passed over a line. For E1, the options include AMI or high density bipolar of order 3 (HDB3). Again HDB3 is actually another modification on AMU that differs in how multiple (4) zeros are passed over the line.

One of the most overlooked T1/E1 considerations (or circuits in general really) is how the circuit is clocked. So why is clocking important?  Both T1 and E1 circuits at the physical level provide separate channels by assigning specific slices of time that a channel is allowed to pass information. If the transmitter and the receiver do not agree on when a specific channel should be passing information, errors quickly are shown at the receiving end. When configuring clock settings, there are two main configuration options to use, the internal clock of the router or the clock coming from an external interface (i.e., the PSTN). As the internal clock on most equipment is not that accurate by itself, it is best to take the clock from a higher clock source. If no separate clocking equipment is implemented inside an organization, this higher clock source is almost always the service provider or a line to the PSTN.  It is also important to ensure that the backplane of the configured router is also clocked based on the highest source available. However, by default, the backplane uses the internal clock for the backplane. When configuring voice on these routers, this is even more of an issue as the voice traffic must pass between the receiving interfaces and a DSP and then back to the transmitting interface. If the clock sources are different between each of these, an issue with clocking can arise.

Digital Voice Port Configuration

Set up of specific T1/E1 controller settings will be included in this article, since they are required for the configuration of a voice port.  What will not be included in this article is detailed information about the different emulated analog voice port settings (i.e., FXO/FXS specific settings). However, this information can be found in the Analog Voice Port Confguration article.

Codec Complexity Configuration

The codec complexity configuration of a device is itself not that complicated. However, this can only be performed when no existing DS0-groups exist (see next section). If these groups do exist, they must be removed from the configuration completely before the codec complexity configuration can be modified (this can take a lot of time depending on the specific configuration used).

As with all configurations, the user must start in global configuration mode; the command syntax for this is shown below:

router#configure terminal

The next step is to enter the voice card configuration mode. Depending on the specific hardware configuration, it is possible that the steps laid out here will have to be done on multiple cards; the command syntax for this is shown below:

router(config)#voice-card slot

The final step includes the command that actually changes the supported codec complexity; the command syntax for this is shown below:

router(config-voicecard)#codec complexity {high | medium}

Controller Configuration

When configuring a T1 or E1 controller, the first things that are configured include the framing of the line coding and the clock source; the configuration below will be shown in this order.

When first configuring a new T1/E1 line card, it must be set to be either a T1 or E1 card; the command syntax for this is shown below:

router(config)#card type {t1 | e1}

The next step is to enter the configuration mode for the specific port on the card; the command syntax for this is shown below:

router(config)#controller {t1 | e1} slot/port

Before configuring the line framing, it is important to find out the type of framing that is being used on the other side of the connection (if this is not controlled inside the same company), ensure that the framing on both sides of the connection is the same or the line will not operate.  The command syntax required to configure line framing is shown below:

router(config-controller)#framing {sf |esf}


router(config-controller)#framing {crc4 |no-crc4}

The next step involves the configuration of line coding. As with line framing, ensure that the parameters match on both ends of the line.  The command syntax required to configure line coding is shown below:

router(config-controller)#linecode {ami | b8zs)


router(config-controller)#linecode {ami | h3b3)

The clocking configuration is next to be configured; ensure that the best clock source available is known before configuration is completed. This way, the best possible connection will be made from the beginning and any potential issues with clocking will be minimized. The command syntax required to configure the clock source is shown below:

router(config-controller)#clock source {line {primary | secondary} | internal}

The next step involves the configuration of the specific channels to be used for a new voice port and what type of analog signaling method will be emulated. It is possible to create multiple voice ports from a single voice controller by using portions of channels that are configured into separate voice ports. The command syntax required to configure the clock source is shown below:

router(config-controller)#ds0-group ds0-group-number timeslots timeslot-list type {e&m-delay-dial | e&m-fgd | e&m-immediate-start |e&m-wink-start | ext-sig | fgd-eana | fxo-ground-start | fxo-loop-start | fxs-ground-start | fxs-loop-start}

Because the command shown above can be rather confusing, a short example will be shown that attempts to clarify how it is used. In the configuration below, a single controller will be split into two separate voice ports; the first will utilize the first 12 channels (1-12) of a T1 and the second will utilize the last 12 channels (13-24). The first of these voice ports will be configured to emulate a FXS analog voice port using loop start (if this term is not familiar, see the Analog Voice Port Configuration article), the second of these voice ports will be configured to emulate an E&M analog voice port using wink start.

router(config)#card type t1

router(config)#controller t1 1/0

router(config-controller)#framing esf

router(config-controller)#linecode b8zs

router(config-controller)#clock source line primary

router(config-controller)#ds0-group 1 timeslots 1-12 type fxs-loop-start

router(config-controller)#ds0-group 2 timeslots 13-24 type e&m-wink-start


The key to understanding the configuration of digital voice ports is knowledge of the underlying circuit. Configuration should then be based on the requirements of the implementation and what is available. Hopefully, the information in this article helps to clarify some of the basics of digital voice port configuration in relation to VoIP implementation.