]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add getvar
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 9 Jan 2007 00:39:11 +0000 (00:39 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 9 Jan 2007 00:39:11 +0000 (00:39 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3931 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/event_handlers/mod_event_socket/mod_event_socket.c

index 4eebbf76cfec98858789ff456fd42589f83d856e..df0885cd8c648101630b5af7c90d7a7204a83041 100644 (file)
@@ -613,6 +613,9 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t *event
 
 
     if (listener->session) {
+        switch_channel_t *channel = switch_core_session_get_channel(listener->session);
+        assert(channel != NULL);
+
         if (!strncasecmp(cmd, "connect", 7)) {
             snprintf(reply, reply_len, "+OK");
             goto done;
@@ -628,6 +631,21 @@ static switch_status_t parse_command(listener_t *listener, switch_event_t *event
                 snprintf(reply, reply_len, "+OK");
             }
             goto done;
+        } else if (!strncasecmp(cmd, "getvar", 6)) {
+            char *arg;
+            char *val = "";
+            
+            strip_cr(cmd);
+
+            if ((arg = strchr(cmd, ' '))) {
+                *arg++ = '\0';
+                if (!(val = switch_channel_get_variable(channel, arg))) {
+                    val = "";
+                }
+
+            }
+            snprintf(reply, reply_len, val);
+            goto done;
         } else if (!strncasecmp(cmd, "myevents", 8)) {
             listener->event_list[SWITCH_EVENT_CHANNEL_CREATE] = 1;
             listener->event_list[SWITCH_EVENT_CHANNEL_DESTROY] = 1;