Dialogic IP Phone 05-2239-009 用户手册

下载
页码 604
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; 
   }