Dialogic IP Phone 05-2239-009 User Manual

Page of 604
The following code snippet illustrates how an application constructs and sends a SUBSCRIBE 
request.
void CSubNotMgr::SendSIPSubscribe (char* pRequestURI, 
                                   char* pTo, 
                                   char* pFrom, 
                                   char* pExpire, 
                                   char* pEvent,
                                   char* pCallID)
{
   char        str[MAX_STRING_SIZE];
   sprintf(str, "<--- Sending SIP SUBSCRIBE\n");
   printandlog(ALL_DEVICES, MISC, NULL, str, 0);
   GC_PARM_BLKP  parmblkp = NULL;   // input parameter block pointer 
   GC_PARM_BLKP  retblkp = NULL;    // return parameter block
   GC_INFO       gc_error_info;     // GlobalCall error information data 
   int           retval = GC_SUCCESS;
   gc_util_insert_parm_val(&parmblkp,
                           IPSET_MSG_SIP,
                           IPPARM_MSGTYPE,
                           sizeof(int),
                           IP_MSGTYPE_SIP_SUBSCRIBE);
   // Insert SIP request URI field 
   if (pRequestURI)
   {
      gc_util_insert_parm_ref_ex(&parmblkp,
                                 IPSET_SIP_MSGINFO,
                                 IPPARM_REQUEST_URI,
                                 (unsigned long)(strlen(pRequestURI)),
                                 pRequestURI);
   }
   // Insert SIP To field 
   if (pTo)
   {
      gc_util_insert_parm_ref_ex(&parmblkp,
                                 IPSET_SIP_MSGINFO,
                                 IPPARM_TO_DISPLAY,
                                 (unsigned long)(strlen(pTo)),
                                 pTo);
   }
   // Insert SIP From field 
   if (pFrom)
   {
      gc_util_insert_parm_ref_ex(&parmblkp,
                                 IPSET_SIP_MSGINFO,
                                 IPPARM_FROM_DISPLAY,
                                 (unsigned long)(strlen(pFrom)),
                                 pFrom);
   }
   // Insert SIP Expire field 
   if (pExpire)
   {
      gc_util_insert_parm_ref_ex(&parmblkp,
                                 IPSET_SIP_MSGINFO,
                                 IPPARM_EXPIRES_HDR,
                                 (unsigned long)(strlen(pExpire)),
                                 pExpire);
   }