]> sjero.net Git - linphone/commitdiff
start to fix bugs for presence support.
authorSimon Morlat <simon.morlat@linphone.org>
Tue, 16 Mar 2010 09:50:54 +0000 (10:50 +0100)
committerSimon Morlat <simon.morlat@linphone.org>
Tue, 16 Mar 2010 09:50:54 +0000 (10:50 +0100)
coreapi/friend.c
coreapi/sal_eXosip2.c
coreapi/sal_eXosip2_presence.c

index 080dffb4ed7463d2bee6271489b7b7f327101fc8..a4ca5484006a7abd9fe2e227b4db0670c3a002c6 100644 (file)
@@ -141,8 +141,10 @@ void __linphone_friend_do_subscribe(LinphoneFriend *fr){
        if (fr->outsub==NULL){
                /* people for which we don't have yet an answer should appear as offline */
                fr->status=LINPHONE_STATUS_OFFLINE;
+               /*
                if (fr->lc->vtable.notify_recv)
                        fr->lc->vtable.notify_recv(fr->lc,(LinphoneFriend*)fr);
+                */
        }else{
                sal_op_release(fr->outsub);
                fr->outsub=NULL;
index cf6074db522c5049b1426f0801a12612eccb9fbd..f8a45edb9def0328b88668ffaba9dd70a6ded4c1 100644 (file)
@@ -1310,7 +1310,7 @@ static bool_t process_event(Sal *sal, eXosip_event_t *ev){
                        sal_exosip_notify_recv(sal,ev);
                        break;
                case EXOSIP_SUBSCRIPTION_ANSWERED:
-                       ms_message("EXOSIP_SUBSCRIPTION_ANSWERED, ev->sid=%i\n",ev->sid);
+                       ms_message("EXOSIP_SUBSCRIPTION_ANSWERED, ev->sid=%i, ev->did=%i\n",ev->sid,ev->did);
                        sal_exosip_subscription_answered(sal,ev);
                        break;
                case EXOSIP_SUBSCRIPTION_CLOSED:
index d4ab7ba4181efc5749bae00b24471ecb0527e1ab..f6c85b5f2cb86f0504788d5ceffa94952b18ec54 100644 (file)
@@ -122,7 +122,8 @@ int sal_unsubscribe(SalOp *op){
        if (msg){
                osip_message_set_expires(msg,"0");
                eXosip_subscribe_send_refresh_request(op->did,msg);
-       }else ms_error("Could not build subscribe refresh request !");
+       }else ms_error("Could not build subscribe refresh request ! op->sid=%i, op->did=%i",
+               op->sid,op->did);
        eXosip_unlock();
        return 0;
 }
@@ -130,8 +131,8 @@ int sal_unsubscribe(SalOp *op){
 int sal_subscribe_accept(SalOp *op){
        osip_message_t *msg;
        eXosip_lock();
-       eXosip_insubscription_build_answer(op->tid,202,&msg);
-       eXosip_insubscription_send_answer(op->tid,202,msg);
+       eXosip_insubscription_build_answer(op->tid,200,&msg);
+       eXosip_insubscription_send_answer(op->tid,200,msg);
        eXosip_unlock();
        return 0;
 }
@@ -636,8 +637,6 @@ void sal_exosip_notify_recv(Sal *sal, eXosip_event_t *ev){
        osip_from_to_str(from,&tmp);
        if (strstr(body->body,"pending")!=NULL){
                estatus=SalPresenceOffline;
-       }else if ((strstr(body->body,"online")!=NULL) || (strstr(body->body,"open")!=NULL)) {
-               estatus=SalPresenceOnline;
        }else if (strstr(body->body,"busy")!=NULL){
                estatus=SalPresenceBusy;
        }else if (strstr(body->body,"berightback")!=NULL
@@ -653,6 +652,8 @@ void sal_exosip_notify_recv(Sal *sal, eXosip_event_t *ev){
                estatus=SalPresenceOuttolunch;
        }else if (strstr(body->body,"closed")!=NULL){
                estatus=SalPresenceOffline;
+       }else if ((strstr(body->body,"online")!=NULL) || (strstr(body->body,"open")!=NULL)) {
+               estatus=SalPresenceOnline;
        }else{
                estatus=SalPresenceOffline;
        }