Skip to content
Snippets Groups Projects
Commit 873989db authored by Tilghman Lesher's avatar Tilghman Lesher
Browse files

Enable SendText to send strings in encoded format.

parent 716d3880
No related branches found
No related tags found
No related merge requests found
...@@ -74,22 +74,21 @@ static const char * const app = "SendText"; ...@@ -74,22 +74,21 @@ static const char * const app = "SendText";
static int sendtext_exec(struct ast_channel *chan, const char *data) static int sendtext_exec(struct ast_channel *chan, const char *data)
{ {
int res = 0;
char *status = "UNSUPPORTED"; char *status = "UNSUPPORTED";
char *parse = NULL; struct ast_str *str;
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(text);
);
/* NOT ast_strlen_zero, because some protocols (e.g. SIP) MUST be able to /* NOT ast_strlen_zero, because some protocols (e.g. SIP) MUST be able to
* send a zero-length message. */ * send a zero-length message. */
if (!data) { if (!data) {
ast_log(LOG_WARNING, "SendText requires an argument (text)\n"); ast_log(LOG_WARNING, "SendText requires an argument (text)\n");
return -1; return -1;
} else }
parse = ast_strdupa(data);
if (!(str = ast_str_alloca(strlen(data) + 1))) {
AST_STANDARD_APP_ARGS(args, parse); return -1;
}
ast_str_get_encoded_str(&str, -1, data);
ast_channel_lock(chan); ast_channel_lock(chan);
if (!chan->tech->send_text) { if (!chan->tech->send_text) {
...@@ -100,9 +99,9 @@ static int sendtext_exec(struct ast_channel *chan, const char *data) ...@@ -100,9 +99,9 @@ static int sendtext_exec(struct ast_channel *chan, const char *data)
} }
status = "FAILURE"; status = "FAILURE";
ast_channel_unlock(chan); ast_channel_unlock(chan);
res = ast_sendtext(chan, args.text); if (!ast_sendtext(chan, ast_str_buffer(str))) {
if (!res)
status = "SUCCESS"; status = "SUCCESS";
}
pbx_builtin_setvar_helper(chan, "SENDTEXTSTATUS", status); pbx_builtin_setvar_helper(chan, "SENDTEXTSTATUS", status);
return 0; return 0;
} }
......
...@@ -24,3 +24,5 @@ ...@@ -24,3 +24,5 @@
-- Convert all usage of the signal(2) system API to the more portable sigaction(2) system API. -- Convert all usage of the signal(2) system API to the more portable sigaction(2) system API.
-- Find options and arguments in Asterisk which specify a time period in seconds or milliseconds and convert them to use the new ast_app_parse_timelen() function. -- Find options and arguments in Asterisk which specify a time period in seconds or milliseconds and convert them to use the new ast_app_parse_timelen() function.
-- Find applications and functions in Asterisk that would benefit from being able to encode control characters and extended ASCII and embed calls to ast_get_encoded_char, ast_get_encoded_str, and ast_str_get_encoded_str.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment