diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-04-09 16:38:37 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-04-09 16:38:37 +0000 |
commit | 07d8da88112b3b31ee52b6a1b383435c577227f9 (patch) | |
tree | 19dda650cef74dfb1a92ddc402675d821035d4bf | |
parent | 3e658ba1694dfecea45182861877b0ed91a735f6 (diff) |
Permit zero-length text messages in SIP.
(Related to an issue posted to the -users list, subject "AEL2, BASE64_DECODE and hexadecimal")
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@187362 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | apps/app_sendtext.c | 4 | ||||
-rw-r--r-- | channels/chan_sip.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/apps/app_sendtext.c b/apps/app_sendtext.c index af4fcade5..e64bf03ee 100644 --- a/apps/app_sendtext.c +++ b/apps/app_sendtext.c @@ -78,7 +78,9 @@ static int sendtext_exec(struct ast_channel *chan, void *data) u = ast_module_user_add(chan); - if (ast_strlen_zero(data)) { + /* NOT ast_strlen_zero, because some protocols (e.g. SIP) MUST be able to + * send a zero-length message. */ + if (!data) { ast_log(LOG_WARNING, "SendText requires an argument (text[|options])\n"); ast_module_user_remove(u); return -1; diff --git a/channels/chan_sip.c b/channels/chan_sip.c index ebdb2d3a0..599007747 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2413,7 +2413,9 @@ static int sip_sendtext(struct ast_channel *ast, const char *text) ast_verbose("Sending text %s on %s\n", text, ast->name); if (!p) return -1; - if (ast_strlen_zero(text)) + /* NOT ast_strlen_zero, because a zero-length message is specifically + * allowed by RFC 3428 (See section 10, Examples) */ + if (!text) return 0; if (debug) ast_verbose("Really sending text %s on %s\n", text, ast->name); |