HP-UX C SIP Stack Programmer's Guide (Novembery 2007)
282 HP-UX C SIP Stack Programmer’s Guide
Implementing REFER-related Application Callbacks
RvSipSubscriptionSubstate eSubsState;
RvSipSubscriptionReason eNotifyReason;
RvInt32 expires = UNDEFINED;
RvInt16 notifyResponseCode;
RvStatus rv = RV_OK;
RvSipNotifyHandle hNotify;
switch (eReason)
{
case RVSIP_SUBS_REFER_NOTIFY_READY_REASON_1XX_RESPONSE_MSG_RCVD:
case RVSIP_SUBS_REFER_NOTIFY_READY_REASON_INITIAL_NOTIFY:
notifyResponseCode = responseCode;
eSubsState = RVSIP_SUBSCRIPTION_SUBSTATE_ACTIVE;
expires = 50;
break;
case RVSIP_SUBS_REFER_NOTIFY_READY_REASON_FINAL_RESPONSE_MSG_RCVD:
notifyResponseCode = responseCode;
eSubsState = RVSIP_SUBSCRIPTION_SUBSTATE_TERMINATED;
eNotifyReason = RVSIP_SUBSCRIPTION_REASON_NORESOURCE;
break;
case RVSIP_SUBS_REFER_NOTIFY_READY_REASON_TIMEOUT:
case RVSIP_SUBS_REFER_NOTIFY_READY_REASON_ERROR_TERMINATION:
notifyResponseCode = 503;
eSubsState = RVSIP_SUBSCRIPTION_SUBSTATE_TERMINATED;
eNotifyReason = RVSIP_SUBSCRIPTION_REASON_NORESOURCE;
break;
case RVSIP_SUBS_REFER_NOTIFY_READY_REASON_UNDEFINED:
default:
return;
}
/* create the notification object */
rv = RvSipSubsCreateNotify(hSubs, NULL, &hNotify);
if (RV_OK != rv)
{
printf("Failed to create notification");
return;
}
/*initialize the notification object*/
rv = RvSipNotifySetSubscriptionStateParams(hNotify,eSubsState, eReason, expiresParamVal);
if (RV_OK != rv)