This document helps you understand the issues that surround Foreign Exchange Office (FXO) disconnection problems and provides guidance to correct this problem. It also briefly describes the known methods of signaling that have been created to deal with the issue and how these can be implemented in various Cisco IOS® Software releases. This is not a configuration document. It is a guide to help you understand the key issues that might be involved and the variations of the implementation by release.
Further reading of the documentation related to the various Cisco IOS Software releases discussed in this document is recommended to ensure correct configuration of the features.
Basic knowledge of voice signaling is required to understand this document better. For more information about the voice signalling techniques, refer to Voice Network Signaling and Control.
For a better understanding of FXO voice interface cards, refer to Understanding FXO Voice Interface Cards.
This document is not restricted to any specific software and hardware versions. It discusses the issues with the FXO Disconnect problem and is relevant to FXO voice interface cards.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
When loop-start signaling is used, a router's FXO interface looks like a phone to the switch (private branch exchange (PBX), public switched telephone network (PSTN), Key-System) it connects to. The FXO interface closes the loop to indicate off-hook. The switch always provides a battery so there is no disconnect supervision from the switch side. Since a switch expects a phone user (example of an FXO interface) to hang up the phone when the call is terminated (on either side), it also expects the FXO port on the router to hang-up. This "human intervention" is not built into the router. The FXO port expects the switch to tell it when to hang-up (or remove the battery to indicate on-hook). Because of this, there is no guarantee that a near-end or far-end FXO port disconnects the call once either end of the call hangs-up.
The most common symptoms of this problem are phones that continue to ring when the caller has cleared, or FXO ports that remain busy after the previous call should have been cleared.
Note: When the Gateway uses H.323 Fast Start, the OpenLogicalChannel message timer expires before Cisco CallManager can respond with the acknowledgement (ACK) and the IP address of the remote phone. Therefore, the Gateway sends the disconnect before Cisco CallManager can route the call. If incoming calls from FXO are disconnected, you should use Slow Start (which is the default unless you check the Enable Inbound FastStart on the Gateway Configuration page). This will give enough time for the OpenLogicalChannelAck to arrive before the Gateway sends the disconnect.
As a simple rule-of-thumb, if the local router has an FXO port and it originates the call out of an FXO port, it has control over that call and can provide the local disconnect. If the local router has an FXO port and it receives the call, it requires that the connected switch provide this disconnect signal.
Note: All scenarios assume that no Supervisory Disconnect features are configured on the PBXes.
Phone-A calls phone-B. Phone-B does not answer. Phone-A then goes on-hook, but phone-B continues to ring because the router's FXO has no signaling information of the change (going on-hook) made by phone-A. If the call is answered, it stays active until phone-B hangs-up, regardless of the actions of phone-A.
Phone-B calls phone-A. When the users hang-up, or if phone-B hangs-up before phone-A answers, the call is disconnected because the router's FXO port originated the call. However, if phone-A hangs-up before phone-B, the call remains up until phone-B hangs-up.
This is the worst possible scenario because calls placed in either direction results in the router receiving a call on its' FXO port. In the case of a call that comes in from the PSTN, it might not be as bad. This is because the PSTN switch often provides a disconnect (ground-start or power-denial) and the far-end router ends the call from its' FXO port. However, calls to the PSTN will have the same problems that are discussed throughout this document, because the call comes into the router's FXO port.
Ground-start signaling can be used on the FXO port of the router if the switch is capable of providing a ground-start connection. When configured, the switch removes the ground from the connection and the FXO port goes on-hook. This option is available on the Cisco 1750, 2600, 3600, 3700 and MC3810 series multiservice routers.
Power denial detection is an interruption of line power from the switch or PBX to the FXO port, which lasts at least 350 ms. The FXO interface on the router detects that power is no longer present and interprets this as a supervisory disconnect indication. This is available on the Cisco 1750, 2600, 3600, 3700 and MC3810 series router analog FXO ports in all versions of Cisco IOS which have voice support. This figure provides an illustration:
Battery reversal is implemented by reversing the battery polarity on the PBX. This is done initially when the call is connected (far-end answer), with the polarity reversed throughout the entire conversation. When the far-end disconnects, the battery polarity is changed back to normal to indicate call disconnect. PBX uses the battery reversal indication to start billing.
Note: Foreign Exchange Station (FXS) ports normally reverse the battery upon call connection. Therefore, if an FXS port is connected to an FXO port that does not support battery reversal detection, you should disable battery reversal on the FXS port to prevent unexpected behavior.
Supervisory Tone is the audible frequencies that a PBX can produce to indicate that a call has been released (caller back on-hook) and the connection should be disconnected. The tones are different in most countries. The router's FXO port can be configured to interpret the tones as Supervisory Disconnect and disconnect the call.
In this Supervisory Tone Disconnect example figure, the call is made to the far-end.
|| Ground-start Signaling Disconnect
|| Power Denial-based Supervisory Disconnect
|| Battery Reversal
|| Tone-based Supervisory Disconnect
The supervisory disconnect signal command turns on support for power denial recognition. This is the default configuration. Configuring the no supervisory disconnect signal command turns off support for power denial in this release, and also enables support for basic supervisory tone disconnection. Refer to Configure the FXO Port to Support Supervisory Tone Disconnection.
FXO_Paper(config-voice)#supervisory disconnect signal
To configure support for battery reversal, the battery-reversal command is applied to the voice port. This feature was supported on the Cisco MC3810 series router from launch. The Cisco 2600/3600 platforms were first supported in Cisco IOS Software Release 12.0(7)XK (integrated in Cisco IOS Software Release 12.1(3)T) and needs the addition of special FXO hardware VIC-2FXO-M1 and VIC-2FXO-M2.
For more information on the VIC-2FXO-M1 and VIC-2FXO-M2, refer to Understanding FXO Voice Interface Cards.
For more information on configuring battery-reversal, refer to Voice Port Enhancements in Cisco 2600 and 3600 Series Routers and MC3810 Series Concentrators.
Supervisory tone disconnection was first supported in Cisco IOS Software Release 11.3MA. Activation was with the configuration of the no supervisory disconnect signal command. In this release the detection was minimal, with the FXO only being able to detect a 600 hertz tone as the disconnect signal.
FXO_Paper(config-voice)#no supervisory disconnect signal
The supervisory tone detection was changed in Cisco IOS Software Release 12.1(3)T to give more detailed support. The command line interface (CLI) was also changed. From this release, it is now possible to configure the disconnect tones to be detected either continuously during calls (by configuring the mid-call command), or only during call setup (by using the pre-connect command in the configuration). Detection of anytone (configured by the anytone command) operates only during call set-up. If you configure detection of anytone, you must also enable echo cancellation to prevent disconnection due to the detection of the router's own ringback tone.
Another new feature is the ability to create voice classes. This allows the various components that are used to construct a tone to be configured to match the tone created by PBXs from various countries. Because there are numerous commands that can make a voice class, it is beyond the scope of this document to explain their functionality. Consult the release documentation for detailed information.
FXO_Paper #configure terminal
FXO_Paper(config-voiceport)#supervisory disconnect dualtone pre-connect voice-class 90
FXO_Paper(config)# voice class dualtone 90
FXO_Paper(config-voice-class)# freq-pair 1 350 440
FXO_Paper(config-voice-class)# freq-pair 2 480 850
FXO_Paper(config-voice-class)# freq-pair 3 1000 1250
FXO_Paper(config-voice-class)# freq-max-deviation 10
FXO_Paper(config-voice-class)# freq-max-power 6
FXO_Paper(config-voice-class)# freq-min-power 25
FXO_Paper(config-voice-class)# freq-power-twist 15
FXO_Paper(config-voice-class)# freq-max-delay 16
FXO_Paper(config-voice-class)# cadence-min-on-time 50
FXO_Paper(config-voice-class)# cadence-max-off-time 500
FXO_Paper(config-voice-class)# cadence-list 1 100 100 300 300 100 200 200 200
FXO_Paper(config-voice-class)# cadence-list 2 100 200 100 400 100 200 300 300
FXO_Paper(config-voice-class)# cadence-variation 8
Note: All the commands other than the freq-pair command under the voice class dualtone command mode are hidden.
Note: The supervisory disconnect dualtone command is modified and improved from Cisco IOS Software Releases 12.1(5)XM and 12.2(2)T.
Cisco IOS Software Releases 12.1(5)XM and 12.2(2)T introduced many improvements and changes. These include a change to the command line, the addition of "Tone Detection Tolerance" Classes, changes to the custom voice class configuration, enabling the creation of Customized Cptones, and the ability to use the predefined country specific call progress tones. The predefined country specific call progress tones provide a means of not having to configure a custom voice class. This significantly reduces the overall configuration needed to deploy the feature. This is configured by applying the cptone locale command to the voice port. It is recommended that this method be initially tried first before attempting to use any custom configurations.
This is a sample configuration. Note the inclusion of the commands timeouts wait-release 5 and timeouts call-disconnect 5. The defaults of these timers are thirty seconds and sixty seconds, which can prove to be excessive in normal use. Therefore, the timers should be reduced to suit the local condition. As a guide, five seconds can be considered as a more satisfactory value for both.
FXO_Paper(config-voiceport)#supervisory disconnect dualtone mid-call
FXO_Paper(config-voiceport)#timeouts wait-release 5
FXO_Paper(config-voiceport)#timeouts call-disconnect 5
Note: The timeouts call-disconnect command is hidden in Cisco IOS Software Release 12.1(5)XM.
FXO disconnect supervision is not supported on local hair pinned calls between analog voice ports (FXS and FXO) on Cisco MC3810 series concentrators because the digital signal processor (DSP) is bypassed. If hair pinning is turned off with the no voice local-bypass global configuration command, FXO disconnect supervision is supported.
The Cisco MC3810 series concentrators must be equipped with high-performance compression modules (HCMs) to support tone detection. Standard voice compression modules (VCMs) do not support the FXO Disconnect Supervision feature.
Note: To configure non-default tone detection tolerances, use the voice class dualtone-detect-params command. For more information, refer to FXO Disconnect Supervision.
Note: For more information on any of the commands in this document, refer to the Command Lookup Tool (registered customers only) .