First pass at AGI registration
authorMark Spencer <markster@digium.com>
Sat, 17 Jul 2004 20:25:39 +0000 (20:25 +0000)
committerMark Spencer <markster@digium.com>
Sat, 17 Jul 2004 20:25:39 +0000 (20:25 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3461 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_agi.c

index ba4ab0e..e96807b 100755 (executable)
@@ -1160,6 +1160,35 @@ static int help_workhorse(int fd, char *match[])
        return 0;
 }
 
+static int agi_register(agi_command *agi)
+{
+       int x;
+       for (x=0;x<MAX_COMMANDS - 1;x++) {
+               if (commands[x].cmda[0] == agi->cmda[0]) {
+                       ast_log(LOG_WARNING, "Command already registered!\n");
+                       return -1;
+               }
+       }
+       for (x=0;x<MAX_COMMANDS - 1;x++) {
+               if (!commands[x].cmda[0]) {
+                       commands[x] = *agi;
+                       return 0;
+               }
+       }
+       ast_log(LOG_WARNING, "No more room for new commands!\n");
+       return -1;
+}
+
+static void agi_unregister(agi_command *agi)
+{
+       int x;
+       for (x=0;x<MAX_COMMANDS - 1;x++) {
+               if (commands[x].cmda[0] == agi->cmda[0]) {
+                       memset(&commands[x], 0, sizeof(agi_command));
+               }
+       }
+}
+
 static agi_command *find_command(char *cmds[], int exact)
 {
        int x;