Dialogic Dialogic Global Call IP IP Phone User Manual


 
372 Dialogic
®
Global Call IP Technology Guide — November 2007
Dialogic Corporation
Third Party Call Control (3PCC) Operations and Multimedia Support
5.5.2 Requesting an I-Frame in SIP
SIP provides a way to request the transmission of an Intraframe as defined by the “expired” IETF
draft draft-levin-mmusic-xml-schema-media-control-03. The draft specification defines an XML
schema (shown below) that is attached as a MIME body to a SIP INFO message:
<?xml version="1.0" encoding="utf-8" ?>
<media_control>
<vc_primitive>
<to_encoder>
<picture_fast_update>
</picture_fast_update>
</to_encoder>
</vc_primitive>
</media_control>
The receiving SIP entity re-transmits an Intraframe and acknowledges the INFO message with a
200 OK message. This process is referred to as video picture fast-update.
5.5.3 Global Call Example Code
Note: The Dialogic
®
Global Call API does not support sending of single-part MIME bodies in this
release. The following code example shows sending of a multi-part MIME body.
///////////////////////////////////////////////////////////////////////////////
bool CMMStream::SendIFrameRequest()
{
agwReport(INFO_MSG, s_eType, "SendIFrameRequest()");
GC_PARM_BLKP gcParmBlk_mime = 0;
GC_PARM_BLKP gcParmBlk_mime1 = 0;
GC_PARM_BLKP gcParmBlk_info = 0;
bool bOk = true;
// specify the body type
char *pBodyType = "Content-Type:application/media_control+xml";
if (gc_util_insert_parm_ref(&gcParmBlk_mime,
IPSET_MIME,
IPPARM_MIME_PART_TYPE,
(unsigned char)
(strlen(pBodyType) + 1),
pBodyType) < 0)
{
agwReport(ERROR_GCALL, s_eType, "SendIFrameRequest() -> gc_util_insert_parm_ref()
failed on %s for IPPARM_MIME_PART_TYPE ", m_devName);
bOk = false;
}
// insert the body size
if (gc_util_insert_parm_val(&gcParmBlk_mime,
IPSET_MIME,
IPPARM_MIME_PART_BODY_SIZE,
sizeof(unsigned long),
strlen(c_iFrameRequest)) < 0)
{
agwReport(ERROR_GCALL, s_eType, "SendIFrameRequest() -> gc_util_insert_parm_val()
failed on %s for IPPARM_MIME_PART_BODY_SIZE ", m_devName);
bOk = false;
}