[PATCH] small but numerous changes to userguide.xml, one concern with CFLAGS and configure.in script

Guillaume Cottenceau <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Hi,

Here are some small changes to userguide.xml. Most of them are
typing typos, or english fixes suggestions; the remaining is
technical fixes which all have been tested ('enable' for
'disable' in configure parameters, more arguments overriding
needed for make-install, missing sdb in dlr-storage list, mix
between 'denied' and 'allowed' lists descriptions, adding that
some Sequoia GSM modems must not be autodetected, no 'host'
parameter for the fake smsc configuration (it will bind the local
port anyway), misused '(o)' for some parameters, specify %d
directly in url-encoded form for dlr-url example).



I have one concern with the following statement of userguide.xml,
appearing after discussing how we may add CFLAGS for compiling:

   (You may, at your preference, use even stricter checking
   options.)

The shown example is CFLAGS='-Wall -O2 -g', which works. However,
adding -Werror (the first and most useful "stricter checking
option" which came to my mind) doesn't work, because AC_PROG_CC
produces code which outputs warnings, at least with my gcc-3.3.2:

main(){return(0);}

Giving:

configure:884: warning: return type defaults to `int'

This is because the configure script is generated with the old
autoconf-2.13. Generating with autoconf-2.58 doesn't have such a
problem - however, it has others, most of which I could fix in
configure.in, but still AC_CHECK_LIB won't work for `log' in -lm
because of conflicting type in declaration...

I think that using -Werror with the autotools is not currently
possible except by doing some checks manually, which is not a
very nice benefit.

And anyway, I have seen in archives for this list that doing some
autotools refinements (namely using automake) was planned some
time ago, but apparently not yet done, so I suppose that
switching to a configure script generated by autoconf-2.58 would
not be accepted until then.

Therefore, even if that's really minor, one might consider
changing the above quoted sentence from the userguide to
something like "You may, at your preference, use even stricter
checking options, but please note that -Werror and -W can't
currently be used".

However, I can still submit the changes to configure.in that fix
warnings in compile tests; there is additionally a name change
for some substituted make variables, because LIBOBJS seems a
reserved word for autoconf-2.58 yelling about it:

configure.in:133: error: do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.



-- 
Guillaume Cottenceau
userguide.diff (text/x-patch, 34.7 KB)
Index: doc/userguide/userguide.xml
===================================================================
RCS file: /home/cvs/gateway/doc/userguide/userguide.xml,v
retrieving revision 1.267
diff -u -r1.267 userguide.xml
--- doc/userguide/userguide.xml	26 Feb 2004 15:07:30 -0000	1.267
+++ doc/userguide/userguide.xml	16 Apr 2004 09:18:48 -0000
@@ -558,8 +558,9 @@
 
 	<listitem><para><literal>--disable-docs (default is --enable-docs)</literal>
 
-	    Use this option if you don't have docbook installed and/or 
-	    you want to save some time and cpu cicles. 
+	    Use this option if you want to save some time and cpu cycles (note
+            that not having docbook installed is not a failure case - docs
+            won't be built, that's all).
 	    Pre-generated documentation is available on Kannel's site.
 	    Default behaviour is to build documentation, b.e., converting the User Guide and
 	    the Architecture Guide from the DocBook markup language to
@@ -583,7 +584,7 @@
 
 	<listitem><para><literal>--enable-assertions / --disable-assertions</literal>
 
-	    Turn on or off runtime assertion checking.  <literal>enable</literal> makes
+	    Turn on or off runtime assertion checking.  <literal>disable</literal> makes
 	    Kannel faster, but gives less information if it crashes.
 	    Default value is dependent on <literal>--with-defaults</literal>.
 	    </para></listitem>
@@ -674,12 +675,13 @@
 	done by using <command>make</command> again:
 	
 	<screen><userinput>
-	make bindir=<replaceable>/path/to/directory</replaceable> install
+	make bindir=<replaceable>/path/to/bindir</replaceable> sbindir=<replaceable>/path/to/sbindir</replaceable> mandir=<replaceable>/path/to/mandir</replaceable> includedir=<replaceable>/path/to/includedir</replaceable> libdir=<replaceable>/path/to/libdir</replaceable> install
 	</userinput></screen>
 
-	Replace <replaceable>/path/to/directory</replaceable> with the
-	pathname of the actual directory where the programs should be
-	installed. The programs that are installed are (as filenames
+	Replace each <replaceable>/path/to/..</replaceable> with the
+	pathname of the actual directory where the files should be
+	installed. The core Kannel programs that are installed, in the
+        directory specified by <literal>sbindir</literal> are (as filenames
 	from the root of the source directory):
 	
 	<simplelist>
@@ -689,7 +691,9 @@
 	</simplelist>
 	
 	The version number of the gateway is added to the file names
-	during installation. This makes it easier to have several
+	during installation if the <literal>--enable-suffix</literal> option
+        was provided to the configure script. This makes it easier to 
+        have several
 	versions installed, and makes it easy to go back to an older
 	version if the new version proves problematic.</para>
 	
@@ -998,7 +1002,7 @@
 	<para>A configuration file consists of groups of configuration variables. Groups are
 	separated by empty lines, and each variable is defined on its
 	own line. Each group in Kannel configuration is distinguished
-	with a group variable. Comments are lines that begin with a number sign
+	with a group variable. Comments are lines that begin with a hash mark
 	(<literal>#</literal>) and are ignored (they don't, for example,
 	separate groups of variables).</para>
 	
@@ -1124,9 +1128,10 @@
    use Kannel as an SMS gateway, or WAP gateway, or both. Thus, one or
    more of the optional configuration variables are used. In following
    list (as in any other similar lists), all mandatory variables are
-   marked with <literal>(m)</literal>, while conditionally mandatory
+   marked with <literal>(m)</literal>, conditionally mandatory
    (variables which must be set in certain cases) are marked with
-   <literal>(c)</literal>.</para>
+   <literal>(c)</literal>, and all optional ssl-enabling boolean
+   directives with <literal>(o)</literal>.</para>
 
 
  <table frame="none">
@@ -1161,7 +1166,7 @@
      <entry valign="bottom">
         If set to true a SSL-enabled administration HTTP server
 		  will be used instead of the default unsecure plain HTTP
-		  server. To access the administration pacges you will have
+		  server. To access the administration pages you will have
 		  to use a HTTP client that is capable of talking to such
 		  a server. Use the "https://" scheme to access the
 		  secured HTTP server. Defaults to "no".
@@ -1207,7 +1212,7 @@
 	     If set to true, the smsbox connection module will be SSL-enabled.
 		  Your smsboxes will have to connect using SSL to the bearerbox
 		  then. This is used to secure communication between bearerbox
-		  and smsboxes in case they are in seperate networks operated and
+		  and smsboxes in case they are in separate networks operated and
 		  the TCP communication is not secured on a lower network layer.
 		  Defaults to "no".
      </entry></row>
@@ -1225,7 +1230,7 @@
 	     If set to true, the wapbox connection module will be SSL-enabled.
 		  Your wapboxes will have to connect using SSL to the bearerbox
 		  then. This is used to secure communication between bearerbox
-		  and wapboxes in case they are in seperate networks operated and
+		  and wapboxes in case they are in separate networks operated and
 		  the TCP communication is not secured on a lower network layer.
 		  Defaults to "no".
      </entry></row>
@@ -1237,7 +1242,10 @@
         addresses. Each list can have several addresses, 
         separated with semicolons (';'). An asterisk ('*') can be used
         as a wildcard in place of any ONE number, so *.*.*.*
-        matches any IP.
+        matches any IP. Note that <literal>box-allow-ip</literal> has higher
+        "priority" than <literal>box-deny-ip</literal>, hence a typical
+        configuration is to set *.*.*.* in the deny list and the few IPs
+        allowed to access Kannel in the allow list.
      </entry></row>
     <row><entry><literal>box-allow-ip</literal></entry></row>
 
@@ -1272,7 +1280,7 @@
      <entry>number 0..5</entry>
      <entry valign="bottom">
         Minimum level of logfile events logged. 0 is for 'debug', 1
-        'info', 2 'warning, 3 'error' and 4 'panic' (see Command Line
+        'info', 2 'warning', 3 'error' and 4 'panic' (see Command Line
         Options)
      </entry></row>
 
@@ -1296,8 +1304,8 @@
     <row><entry><literal>access-log-format</literal></entry>
      <entry>string</entry>
      <entry valign="bottom">
-		  String defining a custom log file line format. May use escape codes as defined
-		  later on to substitute values of the messages into the log entry. If no
+		  String defining a custom log file line format. May use <xref linkend="escape-codes" endterm="escape-codes">
+		  to substitute values of the messages into the log entry. If no
 		  custom log format is used the standard format will be:
 		  <literal>"%t %l [SMSC:%i] [SVC:%n] [ACT:%A] [BINF:%B] [from:%p] [to:%P] 
 		           [flags:%m:%c:%M:%C:%d] [msg:%L:%b] [udh:%U:%u]"</literal>
@@ -1413,17 +1421,18 @@
      <entry valign="bottom">
      This file contains the certificates Kannel is willing to trust when
      working as a HTTPS client. If this option is not set, certificates
-     are not validated and those the identity of the server is not proven.
+     are not validated and thus the identity of the server is not proven.
 	  </entry>
     </row>
 
     <row><entry><literal>dlr-storage</literal></entry>
      <entry>type</entry>
      <entry valign="bottom">
-        Defines the way DLRs are stored. If you have build-in external 
+        Defines the way DLRs are stored. If you have built-in external 
 		  DLR storage support, i.e. using MySQL you may define here the
 		  alternative storage type like 'mysql'. Supported types are:
-		  internal, mysql, oracle. By default this is set to 'internal'.
+		  internal, mysql, oracle, sdb. By default this is set to
+                  'internal'.
      </entry></row>
 
      <row><entry><literal>maximum-queue-length</literal></entry>
@@ -1640,8 +1649,8 @@
 
    <row><entry><literal>-P</literal></entry>
         <entry morerows="1" valign="bottom">
-             Start watcher process. This process watch a child process and if child process
-             crached will restart them automaticaly.
+             Start watcher process. This process watches a child process,
+             and if child process crashes, it will restart it automatically.
         </entry></row>
    <row><entry><literal>--parachute</literal></entry></row>
 
@@ -1668,7 +1677,7 @@
 
     <orderedlist numeration="loweralpha">
      <listitem><para>
-       Running. The gateway accepts, proceeds and relies 
+       Running. The gateway accepts, proceeds and transmits 
        messages normally. This is the default state for the bearerbox.
      </para></listitem>
      <listitem><para>
@@ -1687,14 +1696,14 @@
 
      <listitem><para>
    Full. Gateway does not accept any messages from SMS centers, because 
-   <literal>maximum-queue-length</literal> is achieved.
+   <literal>maximum-queue-length</literal> is reached.
      </para></listitem>
 
      <listitem><para>
    Shutdown. When the gateway is brought down, it does not accept any
    new messages from SMS centers and UDP ports, but processes all
-   systems already in the system. As soon as any queues are emptied,
-   the system exits
+   messages already in the system. As soon as queues are emptied,
+   the system exits.
 
    </para></listitem>
     </orderedlist>
@@ -1713,15 +1722,15 @@
 <title>HTTP administration</title>
 
 <para>Kannel can be controlled via an HTTP administration interface. All
-commands are done as normal HTTP queries, so they can be easily done
+commands are done as normal HTTP queries, so they can easily be done
 from command line like this:
 
 	<screen><userinput>
 	lynx -dump "http://localhost:12345/shutdown?password=bar"
 	</userinput></screen>
 
-...in which the '12345' is the configured admin-port in Kannel
-configuration file (see above). For most commands, admin-password is required as a
+...in which '12345' is the configured admin-port in Kannel
+configuration file (see above). For most commands, admin-password is required as an
 argument as shown above. In addition, HTTP administration can
 be denied from certain IP addresses, as explained in configuration
 chapter.</para>
@@ -1734,7 +1743,7 @@
   <title>Kannel HTTP Administration Commands</title>
   <tgroup cols="2">
   <tbody>
-   <row><entry><literal>status or status.txt</literal></entry>
+   <row><entry><literal>status</literal> or <literal>status.txt</literal></entry>
    <entry valign="bottom">
         Get the current status of the gateway in a text version. Tells the current 
 	state (see above) and total number of messages relied and queueing 
@@ -1756,7 +1765,7 @@
         WML version of status
    </entry></row>
 
-   <row><entry><literal>store-status or store-status.txt</literal></entry>
+   <row><entry><literal>store-status</literal> or <literal>store-status.txt</literal></entry>
    <entry valign="bottom">
         Get the current content of the store queue of the gateway 
 		  in a text version. No password required, unless
@@ -2024,7 +2033,7 @@
     <para>This chapter tells you how to set Kannel up to deliver the MSISDN
 	 number of the WAP device using the WAP gateway.</para>
 
-	 <para>Mostly this feature is interested because the WAP protocol stack
+	 <para>Mostly this feature is interesting because the WAP protocol stack
 	 itself does not provide such a protocol layer bridging of information.
 	 In case you want to know which unique MSISDN is used by the WAP device
 	 your HTTP application is currently interacting, then you can pick this
@@ -2106,7 +2115,7 @@
      </entry></row>
 
    <row><entry><literal>remote-host</literal></entry>
-     <entry><literal>FQDN or IP address</literal></entry>
+     <entry><literal>FQDN</literal> or <literal>IP address</literal></entry>
      <entry valign="bottom">
 	    Specifies the remote RADIUS server to which we forward the 
 		 accounting packets. If none is given, then no forwarding of
@@ -2188,7 +2197,9 @@
 
     <para>If you do not have such access, you can still
     use Kannel as an SMS gateway via <emphasis>phone-as-SMSC</emphasis> 
-    feature, by using a GSM phone as a virtual SMS center.</para>
+    feature, by using a GSM phone or modem as a virtual SMS center.
+    You may also use the "fake" SMSC provided with Kannel, see the
+    appropriate chapter for more information about it.</para>
 
     <para>In addition to an SMS center (real or virtual), you need some
     server to handle any SMS requests received. This server then has
@@ -2202,7 +2213,7 @@
 <sect1>
 <title>SMS gateway configuration</title>
 
-  <para>To set up a SMS Kannel, you have to edit the 'core' group in the
+  <para>To set up an SMS Kannel, you have to edit the 'core' group in the
   configuration file, and define an 'smsbox' group plus one or more
   'sms-service' groups, plus possibly one or more 'sendsms-user' groups.</para>
 
@@ -2222,8 +2233,8 @@
 
     <para>To set up the SMS center at Kannel, you have to add a 'smsc'
     group into configuration file. 
-    This group must include all the data needed to connect
-    that SMS center. You may also want to define an ID
+    This group must include all the data needed to connect to
+    the SMS center. You may also want to define an ID
     (identification) name for the SMSC, for logging and routing
     purposes.</para>
 
@@ -2236,7 +2247,7 @@
 
     <para>Common 'smsc' group variables are defined in the following
     table. The first two (<literal>group</literal> and
-    <literal>smsc</literal>) are mandatory, but rest can be used if
+    <literal>smsc</literal>) are mandatory, though the rest can be used if
     needed.</para>
 
  <table frame="none">
@@ -2313,7 +2324,7 @@
         A list of phone number prefixes which are accepted to be
         sent through this SMSC. Multiple entries are separated with 
         semicolon (';'). For example, "040;050" prevents sending of
-        any SMS message with prefix of 040 or 050 through this SMSC.
+        any SMS message with prefix other than 040 or 050 through this SMSC.
 	If denied-prefix is unset, only these numbers are allowed. If
 	set, number are allowed if present in allowed or not in 
 	denied list.
@@ -2376,7 +2387,7 @@
      <entry>filename</entry>
      <entry valign="bottom">
         A file in which to write a log of the given smsc output. Hence
- 		  this allows to log smsc specific entries to a seperate file.
+ 		  this allows to log smsc specific entries to a separate file.
      </entry></row>
 
     <row><entry><literal>log-level</literal></entry>
@@ -3388,7 +3399,7 @@
   <warning><para>See <xref linkend="upgrading-notes"> for changes.</para></warning>
 
   <para>This driver allows a GSM Modem or Phone to be connected to Kannel 
-  and work as a virtual SMSC</para>
+  and work as a virtual SMSC.</para>
 
 <programlisting>
 group = smsc
@@ -3411,8 +3422,9 @@
      <entry valign="bottom">
         Modems from different manufacturers have slightly different
         behaviour. We need to know what type of modem is used. Use "auto"
-        or omit parameter to have Kannel detect the modem type automatically.
-        (some types should not be autodetected like the Nokia Premicell).
+        or omit parameter to have Kannel detect the modem type automatically
+        (some types should not be autodetected like the Nokia Premicell or
+        some Sequoia modems).
      </entry></row>
 
    <row><entry><literal>device (m)</literal></entry>
@@ -3511,8 +3523,9 @@
    <row><entry><literal>id</literal></entry>
      <entry><literal>string</literal></entry>
      <entry valign="bottom">
-     	This is the the id that should be used in
-	<literal>modemtype</literal> variable from AT2
+     	This is the id that should be used in
+	<literal>modemtype</literal> variable from the
+        <literal>at</literal> group described above.
      </entry></row>
 
    <row><entry><literal>name</literal></entry>
@@ -3535,7 +3548,7 @@
      	Second string to use to detect the modem. For example,
 	if the modem replies with "SIEMENS MODEM M20", 
 	<literal>detect-string</literal> could be "SIEMENS" 
-	and <literal>detect-strign2</literal> "M20"
+	and <literal>detect-string2</literal> "M20"
      </entry></row>
 
    <row><entry><literal>init-string</literal></entry>
@@ -3635,12 +3648,12 @@
 
    <para><emphasis>A note about delivery reports and GSM modems:</emphasis>
    while it is possible (and supported) to receive delivery reports on GSM 
-   modems, it may not work for you. if you encounter problems, check that your 
+   modems, it may not work for you. If you encounter problems, check that your 
    modem's init string (if not the default) is set to correctly allow the modem 
-   to send delivery reports using unsolicted notification (check your modem's 
-   manual). If the init-string is not set as si, some modems will store delivery 
+   to send delivery reports using unsolicited notification (check your modem's 
+   manual). If the init-string is not set that way, some modems will store delivery 
    reports to SIM memory, to get at which you will need to enable sim-buffering. 
-   finally your GSM network provider may not support delivery reports to mobile 
+   Finally your GSM network provider may not support delivery reports to mobile 
    units.</para>
 
 </sect2>
@@ -3652,6 +3665,9 @@
   <para>Fake SMSC is a simple protocol to test out Kannel. It is not
   a real SMS center, and cannot be used to send or receive SMS
   messages from real phones. So, it is ONLY used for testing purposes.
+  Use the <literal>test/fakesmsc</literal> binary to connect to bearerbox
+  with that protocol, and send/receive test messages. Please refer to the
+  relevant appendix for instructions on how to use fakesmsc.
   </para>
 
 <programlisting>
@@ -3668,13 +3684,6 @@
      <entry>Description</entry>
    </row></thead><tbody>
 
-   <row><entry><literal>host (m)</literal></entry>
-     <entry><literal>hostname</literal></entry>
-     <entry valign="bottom">
-        Machine that runs the SMSC. As IP (100.100.100.100) 
-        or hostname (their.machine.here)
-     </entry></row>
-
    <row><entry><literal>port (m)</literal></entry>
      <entry><literal>port-number</literal></entry>
      <entry valign="bottom">
@@ -3823,7 +3832,7 @@
     <para>If you have several SMS center connections (multiple
     operators or a number of GSM modems) you need to configure one smsc
     group per SMS center (or GSM modem). When doing this, you might
-    want to use routing systems to rout messages to specific centers -
+    want to use routing systems to route messages to specific centers -
     for example, you have 2 operator SMS centers, and the other is
     much faster and cheaper to use.</para>
 
@@ -4423,14 +4432,14 @@
 <sect1>
 <title>External delivery report (DLR) storage</title>
 
-   <para>Delivery reports are supported by default internaly, which
+   <para>Delivery reports are supported by default internally, which
 	means all DLRs are stored in the memory of the bearerbox process.
 	This is problematic if bearerbox crashes or you take the process
 	down in a controlled way, but there are still DLRs open. Therefore
-	you may use external DLR storage places, i.e. a MySQL database.
+	you may use external DLR storage places, i.e. a database.
 	</para>
 	<para>Following are the supported DLR storage types and how to use
-	them:</para>
+	them.</para>
 
 	<sect2>
 	<title>Internal DLR storage</title>
@@ -4569,8 +4578,8 @@
   <para>In case you use different MySQL connections for several storage
   issues, i.e. one for DLR and another different one for sms-service you
   may use the <literal>include</literal> configuration statement to extract
-  the MySQL related configuration groups to a seperate <literal>mysql.conf
-  </literal> file.
+  the MySQL related configuration groups to a separate
+  <literal>mysql.conf</literal> file.
   </para>
 
 </sect3>
@@ -4611,8 +4620,9 @@
 </programlisting>
 
 	</para>
-  <para>Beware that you have the DB support build in your LibSDB
-  installation when trying to use a specific DB type within the URL.
+  <para>Make sure that you have the DB support built in your LibSDB
+  installation when trying to use a specific DB type within the URL (if not,
+  bearerbox will refuse to start with a nice message "No driver for URL").
   </para>
 
 	</sect2>
@@ -4660,8 +4670,8 @@
         <sect2>
 	<title>DLR database field configuration</title>
 	<para>For external database storage of DLR information in relational
-	database management systems (RDMS) you will have tospecify which table
-	field are used to represend the stored data. This is done via the
+	database management systems (RDMS) you will have to specify which table
+	fields are used to represend the stored data. This is done via the
 	<literal>dlr-db</literal> group as follows:
 	</para>
 
@@ -4809,7 +4819,7 @@
    ...but you would most probably want to define 'sendsms-port' to be
    able to use SMS push.</para>
 
-   <para>SMSBox inherits from core the following fields:
+   <para>SMSBox inherits from the 'core' group the following fields:
 <programlisting>
 smsbox-port
 http-proxy-port
@@ -4844,13 +4854,13 @@
         The machine in which the bearerbox is. 
      </entry></row>
 
-   <row><entry><literal>smsbox-id (o)</literal></entry>
+   <row><entry><literal>smsbox-id</literal></entry>
      <entry>string</entry>
      <entry valign="bottom">
         Optional smsbox instance identifier. This is used to 
- 		  identify an smsbox connected to an bearerbox for the purpose
+ 		  identify an smsbox connected to a bearerbox for the purpose
 		  of having smsbox specific routing inside bearerbox. So if you
-		  you own boxes that do pass messages into bearerbox for delivery
+		  own boxes that do pass messages into bearerbox for delivery,
 		  you may want that answers to those are routed back to your 
 		  specific smsbox instance, i.e. SMPP or EMI proxying boxes.
      </entry></row>
@@ -4871,17 +4881,17 @@
 		  core group. Defaults to "no".
      </entry></row>
 
-	 <row><entry><literal>sendsms-url (o)</literal></entry>
+	 <row><entry><literal>sendsms-url</literal></entry>
      <entry>url</entry>
      <entry valign="bottom">
-	     URL locating the sendsms service. Defaults to <literal>
+	     Optional. URL locating the sendsms service. Defaults to <literal>
         /cgi-bin/sendsms</literal>.
      </entry></row>
 
-	 <row><entry><literal>sendota-url (o)</literal></entry>
+	 <row><entry><literal>sendota-url</literal></entry>
      <entry>url</entry>
      <entry valign="bottom">
-	     URL locating the sendota service. Defaults to <literal>
+	     Optional. URL locating the sendota service. Defaults to <literal>
         /cgi-bin/sendota</literal>.
      </entry></row>
 	
@@ -5049,20 +5059,20 @@
   </para>
 
   <para>The smsbox routing solves this for the inbound direction. In
-  certain scenarios you want that bearerbox to know to which smsbox
+  certain scenarios you want that bearerbox know to which smsbox
   instance it should pass messages. I.e. if you implement our own boxes
   that pass messages to bearerbox and expect to receive messages defined
   on certain rules, like receiver number or smsc-id. This is the case
-  for EMI/UCP and SMPP proxys that can be written easly using smsbox
+  for EMI/UCP and SMPP proxys that can be written easily using smsbox
   routing facility.
   </para>
 
   <para>If you smppbox handles the SMPP specific communication to your
-  EMSEs, and if an client send a submit_sm PDU, smppbox would transform
+  EMSEs, and if a client sends a submit_sm PDU, smppbox would transform
   the message into Kannel message representation and inject the message to
   bearerbox as if it would be an smsbox. As you want to assign your clients
   shortcuts for certain networks or route any inbound traffic from a certain
-  smsc link connected to bearerbox, you need to seperate in the scope of 
+  smsc link connected to bearerbox, you need to separate in the scope of 
   bearerbox where the inbound message will be going to. An example may
   look like this:
 
@@ -5077,10 +5087,10 @@
 shortcuts = "1111;2222;3333"
 </programlisting>
 
-	which means and inbound message with receiver number 1111, 2222 or 3333
+	which means that an inbound message with receiver number 1111, 2222 or 3333
 	will be delivered to the smsbox instance that has identified itself
 	via the id "mysmsc" to bearerbox. Using this routing the smsbox instance
-	(which may be an EMI/UCP or SMPP proxy) is able to send a deliver_sm PDU
+	(which may be an EMI/UCP or SMPP proxy) is able to send a deliver_sm PDU.
 	</para>
 
    <para>smsbox-route inherits from core the following fields:
@@ -5113,7 +5123,7 @@
      <entry>word-list</entry>
      <entry valign="bottom">
         If set, specifies from which smsc-ids all inbound messages should
-		  be routed to this smsbox instance. List contains smsc-ids seperated
+		  be routed to this smsbox instance. List contains smsc-ids separated
 		  by semicolon (";"). This rule may be used to pull any smsc specific
 		  message stream to an smsbox instance.
      </entry></row>
@@ -5122,7 +5132,7 @@
      <entry>number-list</entry>
      <entry valign="bottom">
         If set, specifies which receiver numbers for inbound messages should
-		  be routed to this smsbox instance. List contains numbers seperated
+		  be routed to this smsbox instance. List contains numbers separated
 		  by semicolon (";"). This rule may be used to pull receiver number
 		  specific message streams to an smsbox instance.
      </entry></row>
@@ -5568,7 +5578,7 @@
 
 
  <table frame="none">
-  <title>Parameters (Escape Codes)</title>
+  <title id="escape-codes">Parameters (Escape Codes)</title>
   <tgroup cols="2">
   <tbody>
 
@@ -5593,7 +5603,7 @@
 
 <row><entry><literal>%r</literal></entry><entry>
 words not yet used by %s; e.g., if the message
-                         is "FOO BAR FOOBAR BAZ", and the has been one %s,
+                         is "FOO BAR FOOBAR BAZ", and there has been one %s,
                          %r will mean "FOOBAR BAZ"
 </entry></row>
 
@@ -5820,10 +5830,10 @@
    <row><entry><literal>deferred</literal></entry>
    <entry><literal>X-Kannel-Deferred</literal></entry></row>
 
-   <row><entry><literal>dlrmask</literal></entry>
+   <row><entry><literal>dlr-mask</literal></entry>
    <entry><literal>X-Kannel-DLR-Mask</literal></entry></row>
 
-   <row><entry><literal>dlrurl</literal></entry>
+   <row><entry><literal>dlr-url</literal></entry>
    <entry><literal>X-Kannel-DLR-Url</literal></entry></row>
 
    <row><entry><literal>account</literal></entry>
@@ -5845,7 +5855,7 @@
 <sect3 id="kannelpost">
 <title id="kannelpost.title">Kannel POST</title>
 
-	<para>Kannel can do POST if <literal>service</literal> is
+	<para>Kannel can do POST if <literal>service</literal>
 	contains a <literal>post-url="..."</literal>.</para>
 
 <table frame="none">
@@ -5915,9 +5925,9 @@
    <entry><literal>X-Kannel-Service</literal></entry>
    <entry></entry></row>
 
-   <row><entry><literal>%a or %r (text)</literal></entry>
+   <row><entry><literal>%a</literal> or <literal>%r (text)</literal></entry>
    <entry>request body</entry>
-   <entry>Kannel send all words (%a) unless <literal>strip-keyword</literal> is true</entry></row>
+   <entry>Kannel sends all words (%a) unless <literal>strip-keyword</literal> is true</entry></row>
 
    <row><entry><literal>%C (charset)</literal></entry>
    <entry>present in <literal>Content-Type</literal> <literal>HTTP</literal></entry>
@@ -6028,7 +6038,7 @@
    <literal>sendsms-port</literal> into the 'smsbox' group and define one or
    more 'sendsms-user' groups. Each of these groups define one
    account, which can be used for the SMS push, via HTTP interface (see
-   below)</para>
+   below).</para>
 
  <table frame="none">
   <title>SendSMS-User Group Variables</title>
@@ -6050,7 +6060,7 @@
    <row><entry><literal>username (m)</literal></entry>
      <entry>string</entry>
      <entry valign="bottom">
-       Name for the user/account. 
+       Name for the user/account
      </entry></row>
 
    <row><entry><literal>password (m)</literal></entry>
@@ -6062,7 +6072,7 @@
    <row><entry><literal>name</literal></entry>
      <entry>string</entry>
      <entry valign="bottom">
-       As in 'sms-service' groups.
+       As in 'sms-service' groups
      </entry></row>
 
    <row><entry><literal>user-deny-ip</literal></entry>
@@ -6129,10 +6139,10 @@
      <entry valign="bottom">
         A list of phone number prefixes which are accepted to be
         sent using this username. Multiple entries are separated with 
-        semicolon (';'). For example, "040;050" prevents sending of
+        semicolon (';'). For example, "040;050" allows sending of
         any SMS message with prefix of 040 or 050 through this SMSC.
-	If denied-prefix is unset, only this numbers are allowed. If
-	set, number are allowed if present in allowed or not in 
+	If denied-prefix is unset, only these numbers are allowed. If
+	set, a number is allowed if present in allowed or not in 
 	denied list.
      </entry></row>
 
@@ -6162,8 +6172,10 @@
     <row><entry><literal>dlr-url</literal></entry>
      <entry>URL</entry>
      <entry valign="bottom">
-	URL to be fetched if a <literal>dlrmask</literal> CGI 
-	parameter is present.
+	URL to be fetched if a <literal>dlr-mask</literal> CGI 
+	parameter is present. <xref linkend="escape-codes"
+        endterm="escape-codes">
+        substitution is performed.
      </entry></row>
 
      <row><entry><literal>allowed-prefix-regex</literal></entry>
@@ -6236,8 +6248,8 @@
 
    <para>To enable Over-The-Air configuration of phones or other client
    devices that support the protocol you need to configure a <literal>
-   sendsms-user</literal>.<literal>ota-setting</literal> group is not 
-   necessary, you can send settings to the phone as a XML document, but
+   sendsms-user</literal>. <literal>ota-setting</literal> group is not 
+   necessary, you can send settings to the phone as an XML document, but
    this method is perhaps more suitable for continous provisioning.
    </para>
 
@@ -6323,7 +6335,7 @@
      </entry></row>
 
    <row><entry><literal>pppsecurity</literal></entry>
-     <entry><literal>on or off</literal></entry>
+     <entry><literal>on</literal> or <literal>off</literal></entry>
      <entry valign="bottom">
        Enable CHAP authentication if set to on, PAP otherwise
      </entry></row>
@@ -6610,8 +6622,10 @@
    <entry><literal>phone number list</literal></entry>
    <entry valign="bottom">
         Phone number of the receiver. To send to multiple receivers,
-   separate each entry with <emphasis>space</emphasis> (' ', '+'
-   url-encoded) - but note that this can be deactivated via
+   separate each entry with <emphasis>space</emphasis>
+   ('<literal> </literal>', '%20' url-encoded) or <emphasis>plus</emphasis>
+   ('<literal>+</literal>', '%2B' url-encoded)
+   - but note that this can be deactivated via
    <literal>sendsms-chars</literal> in the 'smsbox' group.
    </entry></row>
 
@@ -6735,7 +6749,9 @@
    <entry><literal>string (url)</literal></entry>
    <entry valign="bottom">
 	   Optional. If <literal>dlr-mask</literal> is given, this is the url to
-	   be fetched. (Must be urlencoded)
+	   be fetched. It must be urlencoded. As usual,
+           <xref linkend="escape-codes" endterm="escape-codes">
+           substitution is performed.
    </entry></row>
 
    <row><entry><literal>pid</literal></entry>
@@ -7606,7 +7622,7 @@
 		</para></listitem>
    </orderedlist>
 
-	That is why you can specify seperate certification files within
+	That is why you can specify separate certification files within
 	the core group to be used for the HTTP sides.</para>
 
 	<para>You can use one or both sides of the SSL support. There 
@@ -7714,21 +7730,21 @@
 	<listitem><para>8: smsc submit</para></listitem>
 	<listitem><para>16: smsc reject</para></listitem>
 	</itemizedlist>
-	If you want multiple report types, you simply add the values togeter. For example if you want to get delivery success and/or failure
-	you set the dlrmask value to 1+2. and so on. If you specify dlrmask on the URL you pass on to
-	Kannel you also need to specify dlrurl. dlrurlshould contain the URL to which
-	Kannel should place a HTTP requests once the delivery report is ready to be delivered back to your system.
+	If you want multiple report types, you simply add the values together. For example if you want to get delivery success and/or failure
+	you set the <literal>dlr-mask</literal> value to 1+2. And so on. Beside <literal>dlr-mask</literal>,
+        you also need to specify <literal>dlr-url</literal>,
+	which is where Kannel will place an HTTP request once the delivery report is ready to be delivered back to your system.
 	</para>
 	<para>
-	An example transaction would work as following.
-	<itemizedlist>
-	<listitem><para>1. you send a message using dlrmaks=7 and dlrurl=http://www.xyz.com/cgi/dlr.php?type=%d</para></listitem>
-	<listitem><para>2. Kannel forwards the message to the SMSC and keeps track of the message</para></listitem>
-	<listitem><para>3. The SMSC can not reach the phone and thus returns a buffered message</para></listitem>
-	<listitem><para>4. Kannel calls http://www.xyz.com/cgi/dlr.php?type=4 to indicate the message being buffered</para></listitem>
-	<listitem><para>5. The phone is switched on and the SMS gets delivered from the SMSC. The SMSC reports this to Kannel</para></listitem>
-	<listitem><para>4. Kannel calls http://www.xyz.com/cgi/dlr.php?type=2 to indicate the final success</para></listitem>
-	</itemizedlist>
+	An example transaction would work as following:
+	<orderedlist>
+	<listitem><para>You send a message using <literal>dlr-mask=7</literal> and <literal>dlr-url=http://www.xyz.com/cgi/dlr.php?type=%25d</literal> - note: <literal>%25d</literal> is the URL-encoded for <literal>%d</literal></para></listitem>
+	<listitem><para>Kannel forwards the message to the SMSC and keeps track of the message</para></listitem>
+	<listitem><para>The SMSC can not reach the phone and thus returns a buffered message</para></listitem>
+	<listitem><para>Kannel calls <literal>http://www.xyz.com/cgi/dlr.php?type=4</literal> to indicate that the message is being buffered</para></listitem>
+	<listitem><para>The phone is switched on, and the SMS gets delivered from the SMSC. The SMSC reports this to Kannel.</para></listitem>
+	<listitem><para>Kannel calls <literal>http://www.xyz.com/cgi/dlr.php?type=2</literal> to indicate the final success</para></listitem>
+	</orderedlist>
 	Depending on the SMSC type not all type of messages are supported. For example a CIMD SMSC does
 	not support buffered messages. Also some SMSC drivers have not implemented all DLR types.
 	</para>
@@ -8222,7 +8238,7 @@
   &#60;/push-message&#62;
 &#60;/pap&#62;
        </programlisting>
-       <para>Note address-value format. It is contains type and value, 
+       <para>Note address-value format. It contains type and value, 
        because PAP protocol supports different address formats.</para>
        <para>You must use <literal>test_ppg</literal>'s -a and -c flags
        when pushing messages to Toolkit. -A defines the client application
configure-remove-most-warnings.patch (text/x-patch, 2.4 KB)
Index: configure.in
===================================================================
RCS file: /home/cvs/gateway/configure.in,v
retrieving revision 1.138
diff -u -r1.138 configure.in
--- configure.in	20 Jan 2004 18:51:14 -0000	1.138
+++ configure.in	15 Apr 2004 12:29:37 -0000
@@ -130,8 +130,8 @@
 dnl Checks for library functions.
 
 AC_CHECK_FUNCS(gettimeofday select socket strdup getopt_long localtime_r gmtime_r backtrace srandom)
-AC_CHECK_FUNC(getopt, , LIBOBJS="$LIBOBJS utils/attgetopt.o")
-AC_SUBST(LIBOBJS)
+AC_CHECK_FUNC(getopt, , GWLIBOBJS="$GWLIBOBJS utils/attgetopt.o")
+AC_SUBST(GWLIBOBJS)
 
 dnl Check if we have reentrant gethostbyname and which one
 AC_CHECK_FUNC(gethostbyname_r, [ AC_FUNC_WHICH_GETHOSTBYNAME_R ], [
@@ -148,7 +148,7 @@
 #include <sys/types.h>
 #endif
 #include <$1>
-], [$2 foo;],
+], [$2 foo; (void)foo;],
 			gw_cv_type_$3=yes, gw_cv_type_$3=no))
 	if test $gw_cv_type_$3 = yes; then
 		AC_DEFINE($3, 1, $4)
@@ -158,7 +158,7 @@
 dnl GW_HAVE_FUNC_FROM(HDRNAME, FUNC, HAVENAME, DESCRIPTION)
 AC_DEFUN(GW_HAVE_FUNC_FROM, [
 	AC_CACHE_CHECK([for $2 in <$1>], gw_cv_func_$3,
-		AC_TRY_COMPILE([#include <$1>], [void *foo = $2;],
+		AC_TRY_COMPILE([#include <$1>], [void *foo = $2; (void)foo;],
 			gw_cv_func_$3=yes, gw_cv_func_$3=no))
 	if test $gw_cv_func_$3 = yes; then
 		AC_DEFINE($3, 1, $4)
@@ -686,6 +686,7 @@
                        openssl/pem.h openssl/ssl.h openssl/err.h)
       AC_MSG_CHECKING(whether the OpenSSL library is multithread-enabled)
       AC_TRY_RUN([
+        #include <stdlib.h>
         #define OPENSSL_THREAD_DEFINES
         #include <openssl/opensslconf.h>
         int main(void) {
Index: Makefile.in
===================================================================
RCS file: /home/cvs/gateway/Makefile.in,v
retrieving revision 1.72
diff -u -r1.72 Makefile.in
--- Makefile.in	10 Nov 2003 10:46:47 -0000	1.72
+++ Makefile.in	15 Apr 2004 12:29:37 -0000
@@ -73,8 +73,8 @@
 CONFIG_CLEAN_FILES =
 
 
-LIBOBJS=@LIBOBJS@
-LIBSRCS=$(LIBOBJS:.o=.c)
+GWLIBOBJS=@GWLIBOBJS@
+GWLIBSRCS=$(GWLIBOBJS:.o=.c)
 
 LIBS=@LIBS@
 CFLAGS=-D_REENTRANT=1 -I. -Igw @CFLAGS@
@@ -123,8 +123,8 @@
 gwsrcs = $(wildcard gw/*.c) $(wildcard gw/smsc/*.c)
 gwobjs = $(gwsrcs:.c=.o)
 
-libsrcs = $(wildcard gwlib/*.c) $(LIBSRCS)
-libobjs = $(libsrcs:.c=.o) $(LIBOBJS)
+libsrcs = $(wildcard gwlib/*.c) $(GWLIBSRCS)
+libobjs = $(libsrcs:.c=.o) $(GWLIBOBJS)
 
 wapsrcs = $(wildcard wap/*.c) $(wildcard radius/*.c)
 wapobjs = $(wapsrcs:.c=.o)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.