Dialogic 05-2239-009 User Manual

Page of 604
Dialogic
®
 Global Call IP Technology Guide — November 2007
373
Dialogic Corporation
Third Party Call Control (3PCC) Operations and Multimedia Support
   // insert the body 
   if (gc_util_insert_parm_val(&gcParmBlk_mime, 
                               IPSET_MIME, 
                               IPPARM_MIME_PART_BODY, 
                               sizeof(unsigned long), 
                               (unsigned long)(c_iFrameRequest)) < 0) 
   { 
      agwReport(ERROR_GCALL, s_eType, "SendIFrameRequest() -> gc_util_insert_parm_val() 
                failed on %s for IPPARM_MIME_PART_BODY ", m_devName);
      bOk = false; 
   } 
   // insert the list of parmBlks into the top level parmBlk 
   if (gc_util_insert_parm_val(&gcParmBlk_mime1, 
                               IPSET_MIME, 
                               IPPARM_MIME_PART, 
                               sizeof(unsigned long), 
                               (unsigned long)gcParmBlk_mime) < 0) 
   { 
      agwReport(ERROR_GCALL, s_eType, "SendIFrameRequest() -> gc_util_insert_parm_val()
                failed on %s for IPPARM_MIME_PART", m_devName);
      bOk = false; 
   } 
   // now set it on the device 
   if (gc_SetUserInfo(GCTGT_GCLIB_CRN, 
                      m_gcCurrentCrn, 
                      gcParmBlk_mime1, 
                      GC_SINGLECALL) < 0) // for this call only 
   { 
      agwReport(ERROR_GCALL, s_eType, "gc_SetUserInfo() failed on %s for MIME body in INFO"); 
      bOk = false; 
   } 
   // insert the message type 
   if (gc_util_insert_parm_val(&gcParmBlk_info, 
                               IPSET_MSG_SIP, 
                               IPPARM_MSGTYPE, 
                               sizeof(int), 
                               IP_MSGTYPE_SIP_INFO) < 0) 
   { 
      agwReport(ERROR_GCALL, s_eType, "SendIFrameRequest() -> gc_util_insert_parm_val() 
                failed on %s for SIP INFO", m_devName);
      bOk = false; 
   } 
   if (gc_Extension(GCTGT_GCLIB_CRN, 
                    m_gcCurrentCrn, 
                    IPEXTID_SENDMSG, 
                    gcParmBlk_info, 
                    NULL, 
                    EV_ASYNC) < 0) 
   { 
      agwReport(ERROR_GCALL, s_eType, "SendIFrameRequest() -> gc_Extension failed"); 
      bOk = false; 
   } 
   gc_util_delete_parm_blk(gcParmBlk_info); 
   gc_util_delete_parm_blk(gcParmBlk_mime); 
   return bOk; 
}