MY_DLLEXPORT OWPL_RESULT owplPresenceUnsubscribe(const char * szRemoteUri) { OWPL_SUB hSub; int i = 0; // SPIKE_SPIKE_SIP_SIMPLE if (phcfg.pim_disabled) { return OWPL_RESULT_SUCCESS; } if(szRemoteUri == NULL || strlen(szRemoteUri) <= 0) { return OWPL_RESULT_INVALID_ARGS; } eXosip_lock(); i = eXosip_get_subscribe_id(szRemoteUri, &hSub); if(i == 0) { i = eXosip_subscribe_close(hSub); } eXosip_unlock(); if(i != 0) { owplFireSubscriptionEvent(hSub, OWPL_SUBSCRIPTION_CLOSE_FAILED, SUBSCRIPTION_CAUSE_UNKNOWN, szRemoteUri); } else { owplFireSubscriptionEvent(hSub, OWPL_SUBSCRIPTION_CLOSED, SUBSCRIPTION_CAUSE_NORMAL, szRemoteUri); } return OWPL_RESULT_SUCCESS; }
OWPL_RESULT owplPresenceUnsubscribe(OWPL_SUB hSub) { int i = 0; // SPIKE_SPIKE_SIP_SIMPLE if (phcfg.pim_disabled) { return OWPL_RESULT_SUCCESS; } eXosip_lock(); i = eXosip_subscribe_close(hSub); eXosip_unlock(); if(i != 0) { owplFireSubscriptionEvent(hSub, OWPL_SUBSCRIPTION_CLOSE_FAILED, SUBSCRIPTION_CAUSE_UNKNOWN, NULL, NULL); } else { owplFireSubscriptionEvent(hSub, OWPL_SUBSCRIPTION_CLOSED, SUBSCRIPTION_CAUSE_NORMAL, NULL, NULL); } return OWPL_RESULT_SUCCESS; }