summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorOlle Johansson <oej@edvina.net>2006-05-19 08:20:01 +0000
committerOlle Johansson <oej@edvina.net>2006-05-19 08:20:01 +0000
commit1783cb3a91aa23e714a6cc0fd228afe4bda55adc (patch)
tree675adf5ba6d1fe7e3e98d643bd4b4282eadd47c6 /channels
parent908c1538405df9d6ae96bf4a976226d6915a197c (diff)
Adding send_text capability to chan_local
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@28520 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_local.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 4854f49b3..17fc36ae6 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -76,6 +76,7 @@ static int local_write(struct ast_channel *ast, struct ast_frame *f);
static int local_indicate(struct ast_channel *ast, int condition, const void *data, size_t datalen);
static int local_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
static int local_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen);
+static int local_sendtext(struct ast_channel *ast, const char *text);
static int local_devicestate(void *data);
/* PBX interface structure for channel registration */
@@ -95,6 +96,7 @@ static const struct ast_channel_tech local_tech = {
.indicate = local_indicate,
.fixup = local_fixup,
.send_html = local_sendhtml,
+ .send_text = local_sendtext,
.devicestate = local_devicestate,
};
@@ -319,6 +321,22 @@ static int local_digit(struct ast_channel *ast, char digit)
return res;
}
+static int local_sendtext(struct ast_channel *ast, const char *text)
+{
+ struct local_pvt *p = ast->tech_pvt;
+ int res = -1;
+ struct ast_frame f = { AST_FRAME_TEXT, };
+ int isoutbound;
+
+ ast_mutex_lock(&p->lock);
+ isoutbound = IS_OUTBOUND(ast, p);
+ f.data = (char *) text;
+ f.datalen = strlen(text) + 1;
+ res = local_queue_frame(p, isoutbound, &f, ast);
+ ast_mutex_unlock(&p->lock);
+ return res;
+}
+
static int local_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen)
{
struct local_pvt *p = ast->tech_pvt;