]> sjero.net Git - linphone/blobdiff - coreapi/sal_eXosip2.c
take in account closed incoming subscriptions
[linphone] / coreapi / sal_eXosip2.c
index 5f337b3fa0b468dcb3d0d25a7d92e2cfc7dc235a..17eb3c0042a6ac12bc558ebdcdef407a8370ee35 100644 (file)
@@ -1308,6 +1308,10 @@ static bool_t process_event(Sal *sal, eXosip_event_t *ev){
                        ms_message("CALL_SUBSCRIPTION_NEW ");
                        sal_exosip_subscription_recv(sal,ev);
                        break;
+               case EXOSIP_IN_SUBSCRIPTION_RELEASED:
+                       ms_message("CALL_SUBSCRIPTION_NEW ");
+                       sal_exosip_in_subscription_closed(sal,ev);
+                       break;
                case EXOSIP_SUBSCRIPTION_UPDATE:
                        ms_message("CALL_SUBSCRIPTION_UPDATE");
                        break;
@@ -1323,6 +1327,14 @@ static bool_t process_event(Sal *sal, eXosip_event_t *ev){
                        ms_message("EXOSIP_SUBSCRIPTION_CLOSED\n");
                        sal_exosip_subscription_closed(sal,ev);
                        break;
+               case EXOSIP_SUBSCRIPTION_REQUESTFAILURE:   /**< announce a request failure      */
+                       if (ev->response && (ev->response->status_code == 407 || ev->response->status_code == 401)){
+                               return process_authentication(sal,ev);
+                       }
+       case EXOSIP_SUBSCRIPTION_SERVERFAILURE:
+               case EXOSIP_SUBSCRIPTION_GLOBALFAILURE:
+                       sal_exosip_subscription_closed(sal,ev);
+                       break;
                case EXOSIP_CALL_RELEASED:
                        ms_message("CALL_RELEASED\n");
                        call_released(sal, ev);
@@ -1351,7 +1363,7 @@ static bool_t process_event(Sal *sal, eXosip_event_t *ev){
                        }
                        break;
                default:
-                       ms_message("Unhandled exosip event ! %i");
+                       ms_message("Unhandled exosip event ! %i",ev->type);
                        break;
        }
        return TRUE;