RTP Codec Selection with VXML <transfer/>

When <transfer/> is enabled, the IP Media Server sends a SIP INVITE with an SDP offer to the URI specified in the VoiceXML script. The contents of this offer, combined with capabilities of the called device, determine the type of media streams established. By default, the offer would match the capabilities of the existing, inbound call leg.

For example, if the inbound leg has both audio and video streams, the SDP offer might include media lines for both. In addition, customers have requested application-level control to override this standard behavior. With such control, the application can force an audio-only call even if the called device supports video.

To enable this control, the IP Media Server supports a proprietary VXML attribute named video of the <transfer/> tag. This attribute has two supported values: allow and suppress .

The table below shows the media streams that are included in the SDP offer based on the negotiated SDP of the inbound call and the value of the video attribute. The default value of the video attribute is allow .

SDP Offer Sent in Outbound SIP INVITE

Video Attribute Values

 

Allow Value

Suppress Value

Inbound Leg Negotiated SDP

Audio

Audio

Audio

Audio+Video

Audio+Video

Audio

The called device on the outbound leg generates an SDP answer based on the IP Media Server's offer and its own capabilities. This answer determines the actual media streams that are created. So, the video attribute cannot guarantee that video media are used; only that the option is presented.

The IP Media Server also allows the client application to determine what media types were negotiated on the outbound call. The client application uses this function for billing purposes. A custom shadow variable to <transfer/> provides this information.

The IP Media Server standard supports:

<transfer name="name".../> shadow variables name$.duration, name$.inputmode and name$.utterance

The IP Media Server also supports the proprietary:

name$.media.

If the transfer did not connect to the far end, the value for the media shadow variable is "" . If the media is connected with audio only, then the media shadow variable is set to audio . If the media is connected with both audio and video, then the shadow variable is set to audio+video .