]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3367 --resolve the start was actually broken in the same way, instead of your...
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 23 Jun 2011 19:57:46 +0000 (14:57 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 23 Jun 2011 19:57:46 +0000 (14:57 -0500)
src/mod/applications/mod_spandsp/mod_spandsp.c

index fd2ac7f9475d6e2b84f1feda10bec4f6e90f2769..644f17f1ac11622829fd1fd8f1068530c6c4648b 100644 (file)
@@ -183,23 +183,28 @@ SWITCH_STANDARD_APP(start_tone_detect_app)
 SWITCH_STANDARD_API(start_tone_detect_api)
 {
        switch_status_t status = SWITCH_STATUS_SUCCESS;
+        switch_core_session_t *psession = NULL;
 
        if (zstr(cmd)) {
                stream->write_function(stream, "-ERR missing descriptor name\n");
                return SWITCH_STATUS_SUCCESS;
        }
 
-       if (!session) {
-               stream->write_function(stream, "-ERR no session\n");
-               return SWITCH_STATUS_SUCCESS;
-       }
+    if (!(psession = switch_core_session_locate(cmd))) {
+        stream->write_function(stream, "-ERR Cannot locate session\n");
+        return SWITCH_STATUS_SUCCESS;
+    }
+
+
+       status = callprogress_detector_start(psession, cmd);
 
-       status = callprogress_detector_start(session, cmd);
        if (status == SWITCH_STATUS_SUCCESS) {
                stream->write_function(stream, "+OK started\n");
        } else {
                stream->write_function(stream, "-ERR failed to start tone detector\n");
        }
+    
+    switch_core_session_rwunlock(psession);
 
        return status;
 }
@@ -227,12 +232,22 @@ SWITCH_STANDARD_APP(stop_tone_detect_app)
 SWITCH_STANDARD_API(stop_tone_detect_api)
 {
        switch_status_t status = SWITCH_STATUS_SUCCESS;
-       if (!session) {
-               stream->write_function(stream, "-ERR no session\n");
+        switch_core_session_t *psession = NULL;
+
+       if (zstr(cmd)) {
+               stream->write_function(stream, "-ERR missing descriptor name\n");
                return SWITCH_STATUS_SUCCESS;
        }
-       callprogress_detector_stop(session);
-       stream->write_function(stream, "+OK stopped\n");
+
+    if (!(psession = switch_core_session_locate(cmd))) {
+        stream->write_function(stream, "-ERR Cannot locate session\n");
+        return SWITCH_STATUS_SUCCESS;
+    }
+
+    callprogress_detector_stop(psession);
+    stream->write_function(stream, "+OK stopped\n");
+    switch_core_session_rwunlock(psession);
+    
        return status;
 }