/** * Sends a SUBSCRIBE message to a sip URI. * * @param hLine The handle to the line. * @param szUri Sip address of the person to subscribe to * @param winfo 0: Subscribe for presence 1: Subscribe for watcher info * @param hSub The handle to this subscription */ MY_DLLEXPORT OWPL_RESULT owplPresenceSubscribe(OWPL_LINE hLine, const char* szUri, const int winfo, OWPL_SUB *hSub) { char UriBuf[100]; char MsgBodyBuf[500]; char ProxyBuf[100]; int n = sizeof(UriBuf); int i; // SPIKE_SPIKE_SIP_SIMPLE if (phcfg.pim_disabled) { return OWPL_RESULT_SUCCESS; } owplLineGetUri(hLine, UriBuf, &n); n = sizeof(ProxyBuf); owplLineGetProxy(hLine, ProxyBuf, &n); eXosip_lock(); i = eXosip_subscribe(szUri, UriBuf, ProxyBuf, winfo); eXosip_unlock(); if (i < 0) { return OWPL_RESULT_FAILURE; } if (hSub) { *hSub = i; } return OWPL_RESULT_SUCCESS; }
/** * Sends a SUBSCRIBE message to a sip URI. * * @param hLine The handle to the line. * @param szUri Sip address of the person to subscribe to * @param winfo 0: Subscribe for presence 1: Subscribe for watcher info * @param hSub The handle to this subscription */ OWPL_RESULT owplPresenceSubscribe(OWPL_LINE hLine, const char* szUri, const int winfo, OWPL_SUB *hSub) { OWSIPAccount account ; char UriBuf[100]; char ProxyBuf[100]; int n = sizeof(UriBuf); int i; // SPIKE_SPIKE_SIP_SIMPLE if (phcfg.pim_disabled) { return OWPL_RESULT_SUCCESS; } account = owplLineSipAccountGet (hLine) ; if (account <= 0) { return OWPL_RESULT_INVALID_ARGS ; } owplLineGetUri(hLine, UriBuf, &n); n = sizeof(ProxyBuf); owplLineGetProxy(hLine, ProxyBuf, &n); eXosip_lock(); i = eXosip_subscribe(account, (char *)szUri, UriBuf, ProxyBuf, winfo); eXosip_unlock(); if (i < 0) { return OWPL_RESULT_FAILURE; } if (hSub) { *hSub = i; } return OWPL_RESULT_SUCCESS; }