--- ../org/gateway-1.0.3/gw/smsbox_req.c	Fri Oct  6 12:59:27 2000
+++ ../gateway-1.0.3/gw/smsbox_req.c	Wed Feb  6 10:00:42 2002
@@ -87,6 +87,7 @@
 		*temp, *replytext;
 	List *request_headers, *reply_headers;
 	int status;
+  FILE *f;
 
 	gw_assert(msg != NULL);
 	gw_assert(msg_type(msg) == smart_sms);
@@ -115,6 +116,28 @@
 		     ret);
 		break;
 
+	case TRANSTYPE_EXECUTE:
+		alog("SMS request sender:%s request: '%s' processed by '%s'",
+		     octstr_get_cstr(msg->smart_sms.receiver),
+		     octstr_get_cstr(msg->smart_sms.msgdata),
+		     pattern);
+
+		info(0, "executing %s", pattern);
+
+    f = popen(pattern, "r");
+		gw_free(pattern);
+
+    if (f == 0) {
+        info(0, "popen failed %d %s", errno, strerror(errno));
+        ret = octstr_create("");
+    } else {
+        replytext = octstr_read(f);
+        ret = gw_strdup(octstr_get_cstr(replytext));
+        octstr_destroy(replytext);
+        pclose(f);
+    }
+		break;
+
 	case TRANSTYPE_URL:
 		url = octstr_create(pattern);
 		request_headers = list_create();
