No Custom Parameters
Answers an incoming call, indicating to the remote endpoint that the called party is willing to participate in the call.
When a call is inbound to an script via
IncomingCall, the call is in a ringing state and a script can choose to do one of 5 things:
Reject, or simply do nothing with the call. The practical use of
Answer is to establish a call and media connection with a remote endpoint, essentially bringing a script into a telephony conversation and opening up the ability to utilize the other actions and events in the Call Control and Media Control APIs.
From the perspective of the script instance initiated by the incoming call, the telephony protocol of the call has already been chosen by the time
IncomingCall has been fired. However, any call created by the application via
Barge will use the protocol configured on the partition of the script instance. See Call Routing for more information on how the application server interfaces with the outside world for the routing of calls.
An audio connection between the called destination and media engine is created automatically when one uses
Answer. The application server automatically uses
CreateConnection while the call is being established with the remote endpoint, with the end result of a valid
ConnectionId result data parameter. This
ConnectionId can then be used by the Media Control API.
When the call is hung up by either party, the
ConnectionId is destroyed automatically by the application server.
The script does not have direct control over which media engine is used when answering the call, unless
MmsId is specified. In the case that
MmsId is not specified, the media engine used to process the audio connection is determined by the current
Media Resource Group on the current application partition.
The Call Control API makes every effort to abstract the complexities of the underlying telephony protocol; however, one should consult the Call Control Feature Matrix to understand what Call Control actions and action parameters are valid for each of the four supported protocols. One can set installation and deployment guidelines based on the Call Control actions and action parameters that an application uses; the Call Control Feature Matrix makes developing such guidelines feasible.
Reserve Media Early configuration on the script instance partition specifies whether a media engine connection should be provisioned with
ReserveConnection as soon as the call is initiated, or if the application server should wait to until the media negotiation phase of the call ensues before reserving the connection. The media negotiation phase often comes as the call is answered by the remote endpoint, but can also come before. Due to the small amount of time
AnswerCall usually takes to complete,
Reserve Media Early is less important compared to the impact it has on
|Parameter Name||.NET Type||Default||Description|
|CallId *||Indicates the call to answer with |
|DisplayName||A free string which describes the initiator of the call. Not all telephony protocols support this field; please consult the Call Control Feature Matrix.|
|MmsId||The ID of the media engine to create the connection on.
If no MmsId is specified when using |
|WaitForMedia||Indicates what degree of media negotiation must be established before the call is considered answered. An answered call results in the successful completion of the |
. Note that depending on the value chosen, the result data parameters relating to the negotiated media information may not be valid yet because the media negotiation may not yet be completed.
|Conference||Indicates that this call is to be placed in a conference. If a |
|Hairpin||Indicates that the new conference should be optimized for two parties. A hairpinned conference does not use any conference resources. However, a hairpin conference will be 'promoted', or converted to a true media conference, if a 3rd participant is added to the conference or if a voice operation is performed on the conference itself. In either case, this will cause each participant and conferenced voice operation to use one conference resource. True conferences also have a slightly increased latency over a hairpinned conference.|
|Parameter Name||.NET Type||Description|
|CallId||Indicates the call that was accepted. This is always the same value passed in as the |
|MmsId||Unique identifier used to identify the media engine in control of this connection. A common use for this ID is to ensure that other connections which will ultimately be conferenced with this connection are all created on the same media engine. This correlation is necessary because all connections in a single conference must all reside on the same media engine.|
|ConnectionId||Unique identifier used to identify this connection in all subsequent Media Control API operations. This connection may not be fully connected, and therefore not ready to use in most Media Control API by the time it is returned to the script if |
|ConferenceId||Unique identifier for the conference that this connection was placed in. This field is valid only if |
|MediaTxIP||The IP address that the media engine connection should send audio to. This field can only be relied on if |
|MediaTxPort||The port that the media engine connection should send audio to. This field can only be relied on if |
|MediaTxCodec||The codec that the media engine connection should use when sending audio. This field can only be relied on if |
|MediaTxFramesize||The framesize that the media engine connection should use when sending audio. This field can only be relied on if |
|MediaRxIP||The IP address chosen by the application server for the Rx RTP stream for this connection. This field can only be relied on if |
|MediaRxPort||The port chosen by the application server for the Rx RTP stream for this connection. This field can only be relied on if |
|MediaRxCodec||The codec chosen by the application server for the Rx RTP stream for this connection. This field can only be relied on if |
|MediaRxFramesize||The framesize chosen by the application server for the Rx RTP stream for this connection. This field can only be relied on if |