This feature implements held call management by defaulting to "External hold" behavior and automatically switching to "Local hold" behavior if the attempt to hold the call in the switch fails. This ensures that held call management can be transparently supported without the user having to be aware of whether or not the HOLD service is provisioned in the switch. The software always attempts to use the method which is most efficient in terms of resource usage first (i.e. the method that allows two calls to use one channel). The fact that switching to "local hold" is dynamic is particularly useful given that the failure of a particular HOLD request may be due to a transient condition. The methods can also be used to answer requests for other features on the line such as conference or transfer to other parties.