Author: mjordan Date: Fri Mar 13 20:53:13 2015 New Revision: 432947 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=432947 Log: apps/app_sms: Add an option to prevent SMS content from being logged
In some countries, privacy laws specify that SMS content cannot be saved by a provider. This patch adds a new option to the SMS application, 'n', which prevents the SMS content from being written to the SMS log. ASTERISK-22591 #close Reported by: Jan Juergens patches: DisableSmsContentLoggingByParam.patch uploaded by Jan Juergens (License 6538) Modified: trunk/CHANGES trunk/apps/app_sms.c Modified: trunk/CHANGES URL: http://svnview.digium.com/svn/asterisk/trunk/CHANGES?view=diff&rev=432947&r1=432946&r2=432947 ============================================================================== --- trunk/CHANGES (original) +++ trunk/CHANGES Fri Mar 13 20:53:13 2015 @@ -25,6 +25,12 @@ - record_options: the options to pass to the MixMonitor application - record_command: a command to execute when recording is finished Note that these options may also be with the CONFBRIDGE function. + +SMS +------------------ + * Added the 'n' option, which prevents the SMS from being written to the log + file. This is needed for those countries with privacy laws that require + providers to not log SMS content. Channel Drivers Modified: trunk/apps/app_sms.c URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_sms.c?view=diff&rev=432947&r1=432946&r2=432947 ============================================================================== --- trunk/apps/app_sms.c (original) +++ trunk/apps/app_sms.c Fri Mar 13 20:53:13 2015 @@ -88,6 +88,9 @@ <option name="o"> <para>The body should be coded as octets not 7-bit symbols.</para> </option> + <option name="n"> + <para>Do not log any SMS content to log file (privacy).</para> + </option> </optionlist> </parameter> <parameter name="addr" /> @@ -220,6 +223,7 @@ unsigned char sent_rel:1; /*!< have sent REL message... */ unsigned char smsc:1; /*!< we are SMSC */ unsigned char rx:1; /*!< this is a received message */ + unsigned char nolog:1; /*!< do not log plain text SMS content (privacy) */ char queue[30]; /*!< queue name */ char oa[20]; /*!< originating address */ char da[20]; /*!< destination address */ @@ -790,20 +794,25 @@ status, h->rx ? 'I' : 'O', h->smsc ? 'S' : 'M', mrs, h->queue, S_OR(h->oa, "-"), S_OR(h->da, "-") ); p = line + strlen(line); - for (n = 0; n < h->udl; n++) { - if (h->ud[n] == '\\') { - *p++ = '\\'; - *p++ = '\\'; - } else if (h->ud[n] == '\n') { - *p++ = '\\'; - *p++ = 'n'; - } else if (h->ud[n] == '\r') { - *p++ = '\\'; - *p++ = 'r'; - } else if (h->ud[n] < 32 || h->ud[n] == 127) { - *p++ = 191; - } else { - *p++ = h->ud[n]; + + if (h->nolog) { + p += snprintf(p, 1000 - strlen(line), "udl=%d", h->udl); + } else { + for (n = 0; n < h->udl; n++) { + if (h->ud[n] == '\\') { + *p++ = '\\'; + *p++ = '\\'; + } else if (h->ud[n] == '\n') { + *p++ = '\\'; + *p++ = 'n'; + } else if (h->ud[n] == '\r') { + *p++ = '\\'; + *p++ = 'r'; + } else if (h->ud[n] < 32 || h->ud[n] == 127) { + *p++ = 191; + } else { + *p++ = h->ud[n]; + } } } *p++ = '\n'; @@ -1853,6 +1862,7 @@ OPTION_PAUSE = (1 << 3), /* pause before sending data, in ms */ OPTION_SRR = (1 << 4), /* set srr */ OPTION_DCS = (1 << 5), /* set dcs */ + OPTIONS_NO_LOG = (1 << 6), /* Don't log SMS content */ }; enum sms_opt_args { @@ -1866,6 +1876,7 @@ AST_APP_OPTION('t', OPTION_TWO), AST_APP_OPTION('r', OPTION_SRR), AST_APP_OPTION('o', OPTION_DCS), + AST_APP_OPTION('n', OPTIONS_NO_LOG), AST_APP_OPTION_ARG('p', OPTION_PAUSE, OPTION_ARG_PAUSE), } ); @@ -1926,6 +1937,7 @@ h.smsc = ast_test_flag(&flags, OPTION_BE_SMSC); h.protocol = ast_test_flag(&flags, OPTION_TWO) ? 2 : 1; + h.nolog = ast_test_flag(&flags, OPTIONS_NO_LOG) ? 1 : 0; if (!ast_strlen_zero(sms_opts[OPTION_ARG_PAUSE])) { h.opause_0 = atoi(sms_opts[OPTION_ARG_PAUSE]); } -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- svn-commits mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/svn-commits