Dialogic Dialogic Global Call IP IP Phone User Manual


 
/* Get MIME type info, this has to be the first parameter */
if(IPSET_MIME == ParmDataExt.set_ID && IPPARM_MIME_PART_TYPE == ParmDataExt.parm_ID)
{
printf("\t Content-Type = %s\n", (char*)ParmDataExt.pData);
}
else
{
/* error condition */
printf("\n !!! first parameter in MIME part is not MIME type!!!\n");
return -1;
}
/* Get the rest of MIME info*/
while (GC_SUCCESS == gc_util_next_parm_ex(parmblkp, &ParmDataExt))
{
switch(ParmDataExt.set_ID)
{
case IPSET_MIME:
switch(ParmDataExt.parm_ID)
{
case IPPARM_MIME_PART_TYPE:
/* duplicate MIME part, error out */
printf("\n!!!Duplicate MIME part error!!!\n");
return -1;
break;
case IPPARM_MIME_PART_BODY_SIZE:
/* Get MIME part body size */
bodySize = *(UINT32*)(ParmDataExt.pData);
printf("\t MIME part body Size = %d\n", bodySize);
break;
case IPPARM_MIME_PART_HEADER:
/* Get MIME part header */
printf("\t MIME part header = %s\n", (char*)ParmDataExt.pData);
break;
case IPPARM_MIME_PART_BODY:
/* get body buffer pointer */
bodyBuff = (char*)(*(UINT32*)(ParmDataExt.pData));
/* copy MIME part body */
if(bodySize>0)
{
/* allocate memory */
appBuff = (char*)malloc(bodySize+1);
memcpy(appBuff, bodyBuff, bodySize);
}
else
{
/*error body size must be available*/
printf("\n!!! Body Size not available error !!!\n");
return -1;
}
/* Null terminated */
appBuff[bodySize] = '\0';
/* Only print the buffer content as string */
/* For binary data the buffer is not printable*/
printf("\t MIME part Body:\n%s\n",appBuff);
/* Free allocated memory*/
free(appBuff);
break;
}
break;