Add new built-in app 'SetAMAFlags'
authorJeremy McNamara <jj@nufone.net>
Mon, 28 Jun 2004 03:48:53 +0000 (03:48 +0000)
committerJeremy McNamara <jj@nufone.net>
Mon, 28 Jun 2004 03:48:53 +0000 (03:48 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3328 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cdr.c
pbx.c

diff --git a/cdr.c b/cdr.c
index fb948f7..76dc4de 100755 (executable)
--- a/cdr.c
+++ b/cdr.c
@@ -377,6 +377,18 @@ int ast_cdr_setaccount(struct ast_channel *chan, char *account)
        return 0;
 }
 
+int ast_cdr_setamaflags(struct ast_channel *chan, char *flag)
+{
+       struct ast_cdr *cdr = chan->cdr;
+       int newflag;
+
+       newflag = ast_cdr_amaflags2int(flag);
+       if (newflag) {
+               cdr->amaflags = newflag;
+       }
+       return 0;
+}
+
 int ast_cdr_setuserfield(struct ast_channel *chan, char *userfield)
 {
        struct ast_cdr *cdr = chan->cdr;
diff --git a/pbx.c b/pbx.c
index f0e988e..7344dd3 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
@@ -166,6 +166,7 @@ static int pbx_builtin_waitexten(struct ast_channel *, void *);
 static int pbx_builtin_setlanguage(struct ast_channel *, void *);
 static int pbx_builtin_resetcdr(struct ast_channel *, void *);
 static int pbx_builtin_setaccount(struct ast_channel *, void *);
+static int pbx_builtin_setamaflags(struct ast_channel *, void *);
 static int pbx_builtin_ringing(struct ast_channel *, void *);
 static int pbx_builtin_progress(struct ast_channel *, void *);
 static int pbx_builtin_congestion(struct ast_channel *, void *);
@@ -320,6 +321,11 @@ static struct pbx_builtin {
 "  SetAccount([account]):  Set  the  channel account code for billing\n"
 "purposes. Always returns 0.\n"  },
 
+       { "SetAMAFlags", pbx_builtin_setamaflags,
+"Sets AMA Flags",
+"  SetAMAFlags([flag]):  Set  the  channel AMA Flags for billing\n"
+"purposes. Always returns 0.\n"  },
+
        { "SetGlobalVar", pbx_builtin_setglobalvar,
 "Set variable to value",
 "  SetGlobalVar(#n=value): Sets global variable n to value" },
@@ -4267,7 +4273,7 @@ static int pbx_builtin_resetcdr(struct ast_channel *chan, void *data)
 
 static int pbx_builtin_setaccount(struct ast_channel *chan, void *data)
 {
-       /* Copy the language as specified */
+       /* Copy the account code  as specified */
        if (data)
                ast_cdr_setaccount(chan, (char *)data);
        else
@@ -4275,6 +4281,16 @@ static int pbx_builtin_setaccount(struct ast_channel *chan, void *data)
        return 0;
 }
 
+static int pbx_builtin_setamaflags(struct ast_channel *chan, void *data)
+{
+       /* Copy the AMA Flags as specified */
+       if (data)
+               ast_cdr_setamaflags(chan, (char *)data);
+       else
+               ast_cdr_setamaflags(chan, "");
+       return 0;
+}
+
 static int pbx_builtin_hangup(struct ast_channel *chan, void *data)
 {
        /* Just return non-zero and it will hang up */