Version 6.6 355 Mediant 800 MSBR
User's Manual 28. Configuring Supplementary Services
28.1 Call Hold and Retrieve
Initiating Call Hold and Retrieve:
Active calls can be put on-hold by pressing the phone's hook-flash button.
The party that initiates the hold is called the holding party; the other party is called the
held party.
After a successful Hold, the holding party hears a dial tone (HELD_TONE defined in
the device's Call Progress Tones file).
Call retrieve can be performed only by the holding party while the call is held and
active.
The holding party performs the retrieve by pressing the telephone's hook-flash button.
After a successful retrieve, the voice is connected again.
Hold is performed by sending a Re-INVITE message with IP address 0.0.0.0 or
a=sendonly in the SDP according to the parameter HoldFormat.
The hold and retrieve functionalities are implemented by re-INVITE messages. The IP
address 0.0.0.0 as the connection IP address or the string ‘a=inactive’ in the received
re-INVITE SDP cause the device to enter Hold state and to play the held tone
(configured in the device) to the PBX/PSTN. If the string ‘a=sendonly’ is received in
the SDP message, the device stops sending RTP packets, but continues to listen to
the incoming RTP packets. Usually, the remote party plays, in this scenario, Music on
Hold (MOH) and the device forwards the MOH to the held party.
Receiving Hold/Retrieve:
When an active call receives a re-INVITE message with either the IP address 0.0.0.0
or the ‘inactive’ string in SDP, the device stops sending RTP and plays a local held
tone.
When an active call receives a re-INVITE message with the ‘sendonly’ string in SDP,
the device stops sending RTP and listens to the remote party. In this mode, it is
expected that on-hold music (or any other hold tone) is played (over IP) by the remote
party.
You can also configure the device to keep a call on-hold for a user-defined time after which
the call is disconnected, using the HeldTimeout parameter.
The device also supports "double call hold" for FXS interfaces where the called party,
which has been placed on-hold by the calling party, can then place the calling party on hold
as well and make a call to another destination. The flowchart below provides an example of
this type of call hold: