diff --git a/pbx/pbx_realtime.c b/pbx/pbx_realtime.c index 4b70da11fb..453f336198 100755 --- a/pbx/pbx_realtime.c +++ b/pbx/pbx_realtime.c @@ -34,6 +34,10 @@ #include <string.h> #include <errno.h> +#define MODE_MATCH 0 +#define MODE_MATCHMORE 1 +#define MODE_CANMATCH 2 + static char *tdesc = "Realtime Switch"; /* Realtime switch looks up extensions in the supplied realtime table. @@ -79,7 +83,7 @@ static char *tdesc = "Realtime Switch"; } else \ res = -1; -static struct ast_variable *realtime_switch_common(const char *table, const char *context, const char *exten, int priority) +static struct ast_variable *realtime_switch_common(const char *table, const char *context, const char *exten, int priority, int mode) { struct ast_variable *var; char pri[20]; @@ -91,7 +95,7 @@ static struct ast_variable *realtime_switch_common(const char *table, const char static int realtime_exists(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data) { - REALTIME_COMMON; + REALTIME_COMMON(MODE_MATCH); if (var) ast_destroy_realtime(var); if (var) res = 1; @@ -100,7 +104,7 @@ static int realtime_exists(struct ast_channel *chan, const char *context, const static int realtime_canmatch(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data) { - REALTIME_COMMON; + REALTIME_COMMON(MODE_CANMATCH); if (var) ast_destroy_realtime(var); if (var) res = 1; @@ -113,7 +117,7 @@ static int realtime_exec(struct ast_channel *chan, const char *context, const ch char *appdata=""; struct ast_app *a; struct ast_variable *v; - REALTIME_COMMON; + REALTIME_COMMON(MODE_MATCH); if (var) { v = var; while(v) { @@ -137,7 +141,7 @@ static int realtime_exec(struct ast_channel *chan, const char *context, const ch static int realtime_matchmore(struct ast_channel *chan, const char *context, const char *exten, int priority, const char *callerid, const char *data) { - REALTIME_COMMON; + REALTIME_COMMON(MODE_MATCHMORE); if (var) ast_destroy_realtime(var); return res > 0 ? res : 0; }