aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_agent.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-14 00:46:13 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-14 00:46:13 +0000
commit73f73e1e7c0f9a0126ba51bc17532ec279f0556b (patch)
tree89cf1dc28d7673963c6c70416fc9ce732b50c235 /channels/chan_agent.c
parent73fbc1fc891c44aa3b63cde60d0dad0d8b3f696c (diff)
support sending text through agent channels (issue #5295)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6787 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_agent.c')
-rwxr-xr-xchannels/chan_agent.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index ea910c73e..d81aea333 100755
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -244,6 +244,7 @@ static int agent_answer(struct ast_channel *ast);
static struct ast_frame *agent_read(struct ast_channel *ast);
static int agent_write(struct ast_channel *ast, struct ast_frame *f);
static int agent_sendhtml(struct ast_channel *ast, int subclass, const char *data, int datalen);
+static int agent_sendtext(struct ast_channel *ast, const char *text);
static int agent_indicate(struct ast_channel *ast, int condition);
static int agent_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
static struct ast_channel *agent_bridgedchannel(struct ast_channel *chan, struct ast_channel *bridge);
@@ -261,6 +262,7 @@ static const struct ast_channel_tech agent_tech = {
.read = agent_read,
.write = agent_write,
.send_html = agent_sendhtml,
+ .send_text = agent_sendtext,
.exception = agent_read,
.indicate = agent_indicate,
.fixup = agent_fixup,
@@ -558,6 +560,17 @@ static int agent_sendhtml(struct ast_channel *ast, int subclass, const char *dat
return res;
}
+static int agent_sendtext(struct ast_channel *ast, const char *text)
+{
+ struct agent_pvt *p = ast->tech_pvt;
+ int res = -1;
+ ast_mutex_lock(&p->lock);
+ if (p->chan)
+ res = ast_sendtext(p->chan, text);
+ ast_mutex_unlock(&p->lock);
+ return res;
+}
+
static int agent_write(struct ast_channel *ast, struct ast_frame *f)
{
struct agent_pvt *p = ast->tech_pvt;