summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2008-04-28 22:38:07 +0000
committerMark Michelson <mmichelson@digium.com>2008-04-28 22:38:07 +0000
commit3aad03e5f0dab3f1245eaf069061297248a88de8 (patch)
tree0c9168973e2722b93eff8fad00605d6701b66c07 /main
parenteff8f552b6512094036d9e613f2338c8cfa53ee4 (diff)
Adding a new option 'n' to app_chanspy. This option allows for the name of the spied-on
party to be spoken instead of the channel name or number. This was accomplished by adding a new function pointer to point to a function in app_voicemail which retrieves the name file and plays it. This makes for an easy way that applications may play a user's name should it be necessary. app_directory, in particular, can be simplified greatly by this change. This change comes as a suggestion from Switchvox, which already has this feature. AST-23 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114813 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/app.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/main/app.c b/main/app.c
index 60856ae17..e5c712948 100644
--- a/main/app.c
+++ b/main/app.c
@@ -177,15 +177,18 @@ int ast_app_getdata_full(struct ast_channel *c, char *prompt, char *s, int maxle
static int (*ast_has_voicemail_func)(const char *mailbox, const char *folder) = NULL;
static int (*ast_inboxcount_func)(const char *mailbox, int *newmsgs, int *oldmsgs) = NULL;
+static int (*ast_sayname_func)(struct ast_channel *chan, const char *mailbox, const char *context) = NULL;
static int (*ast_messagecount_func)(const char *context, const char *mailbox, const char *folder) = NULL;
void ast_install_vm_functions(int (*has_voicemail_func)(const char *mailbox, const char *folder),
int (*inboxcount_func)(const char *mailbox, int *newmsgs, int *oldmsgs),
- int (*messagecount_func)(const char *context, const char *mailbox, const char *folder))
+ int (*messagecount_func)(const char *context, const char *mailbox, const char *folder),
+ int (*sayname_func)(struct ast_channel *chan, const char *mailbox, const char *context))
{
ast_has_voicemail_func = has_voicemail_func;
ast_inboxcount_func = inboxcount_func;
ast_messagecount_func = messagecount_func;
+ ast_sayname_func = sayname_func;
}
void ast_uninstall_vm_functions(void)
@@ -193,6 +196,7 @@ void ast_uninstall_vm_functions(void)
ast_has_voicemail_func = NULL;
ast_inboxcount_func = NULL;
ast_messagecount_func = NULL;
+ ast_sayname_func = NULL;
}
int ast_app_has_voicemail(const char *mailbox, const char *folder)
@@ -227,6 +231,13 @@ int ast_app_inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
return 0;
}
+int ast_app_sayname(struct ast_channel *chan, const char *mailbox, const char *context)
+{
+ if (ast_sayname_func)
+ return ast_sayname_func(chan, mailbox, context);
+ return -1;
+}
+
int ast_app_messagecount(const char *context, const char *mailbox, const char *folder)
{
static int warned = 0;