ARI: Make double subscribe respond with success
authorKinsey Moore <kmoore@digium.com>
Tue, 28 Jan 2014 19:19:08 +0000 (19:19 +0000)
committerKinsey Moore <kmoore@digium.com>
Tue, 28 Jan 2014 19:19:08 +0000 (19:19 +0000)
Currently, attempting to subscribe an application to a device state
that it has already subscribed to will generate a 500 error response.
This will now be treated as a subscription refresh even though ARI
subscriptions don't currently support lifetimes and will respond with
the normal response for a successful subscription (200 OK).

(closes issue ASTERISK-23143)
Reported by: Matt Jordan
........

Merged revisions 406775 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@406778 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_stasis_device_state.c

index 01b10d3..0130909 100644 (file)
@@ -326,8 +326,8 @@ static int subscribe_device_state(struct stasis_app *app, void *obj)
        ast_debug(3, "Subscribing to device %s", sub->device_name);
 
        if (is_subscribed_device_state(app, sub->device_name)) {
-               ast_log(LOG_WARNING, "Already subscribed to %s\n", sub->device_name);
-               return -1;
+               ast_debug(3, "App %s is already subscribed to %s\n", stasis_app_name(app), sub->device_name);
+               return 0;
        }
 
        if (!(sub->sub = stasis_subscribe(