Browse code

Addpated to 0.8.11 All SGML errors removed SerWeb part is not up-to-date because i do not know it!!

Nils Ohlmeier authored on 22/07/2003 02:29:48
Showing 1 changed files
... ...
@@ -61,7 +61,7 @@
61 61
 		</listitem>
62 62
 		</itemizedlist>
63 63
 		<para>
64
-		This document is a result of a merge of two documents <ulink url="http://www.fitawi.com/ser-Howto.html"></ulink> and <ulink url="http://cvs.berlios.de/cgi-bin/viewcvs.cgi/*checkout*/ser/sip_router/INSTALL?rev=ser_0_8_10&amp;content-type=text/plain"></ulink> with some add-ons, made by NSI team (see text in bold within topics)
64
+		This document is a result of a merge of two documents <ulink url="http://www.fitawi.com/ser-Howto.html"></ulink> and <ulink url="http://cvs.berlios.de/cgi-bin/viewcvs.cgi/*checkout*/ser/sip_router/INSTALL?rev=ser_0_8_10&amp;content-type=text/plain"></ulink> with some add-ons, made by NSI team.
65 65
 		</para>
66 66
 	</section>
67 67
 	<section>
... ...
@@ -116,7 +116,7 @@ Supported architectures:
116 116
 		</itemizedlist>
117 117
 		<para>
118 118
 (For other architectures the Makefiles might need to be edited)
119
-There are various configuration options defined in the Make file.
119
+There are various configuration options defined in the Makefile and Makefile.defs.
120 120
 		</para>
121 121
 	</section>
122 122
 	<section>
... ...
@@ -124,7 +124,7 @@ There are various configuration options defined in the Make file.
124 124
 		<itemizedlist>
125 125
 		<listitem>
126 126
 		<para>
127
-gcc or icc : gcc >= 2.9x; 3.[12] recommended (it will work with older version
127
+gcc or icc : gcc >= 2.9x; >=3.1 recommended (it will work with older version
128 128
 but it might require some options tweaking for best performance)
129 129
 		</para>
130 130
 		</listitem>
... ...
@@ -194,7 +194,7 @@ Installing SER on a RedHat Linux distribution for example, is a simple matter of
194 194
 Example:
195 195
 		</para>
196 196
 		<screen>
197
-		/root>rpm -i ser-08.10-2.i386.rpm
197
+/root>rpm -i ser-08.11-1.i386.rpm
198 198
 		</screen>
199 199
 		<para>
200 200
 Packages for other popular distributions are available, and can be installed using the appropriate package manager for that distribution.
... ...
@@ -203,13 +203,13 @@ Packages for other popular distributions are available, and can be installed usi
203 203
 On many platforms you can start the service with:
204 204
 		</para>
205 205
 		<screen>
206
-	/etc/init.d/ser start
206
+/etc/init.d/ser start
207 207
 		</screen>
208 208
 		<para>
209 209
 		RedHat systems will use:
210 210
 		</para>
211 211
 		<screen>
212
-	/etc/rc.d/init.d/ser start
212
+/etc/rc.d/init.d/ser start
213 213
 		</screen>
214 214
 		<para>
215 215
 You now have a functioning SIP server, but what can you do with it?  At this point not very much.  With an SIP client, such as Microsoft MSN Messenger 4.6, you can register with the server, send Instant Messages to other logged on clients of the same server, and even have voice conversations with them.
... ...
@@ -224,13 +224,13 @@ That sounds pretty good, but maybe you'd like to add a little more security, or
224 224
 To do so, first set the environment variable SIP_DOMAIN to your domain name, e.g., in Bourne shell (bash), call:
225 225
 		</para>
226 226
 		<screen>
227
-		export SIP_DOMAIN=<quote>foo.bar</quote>
227
+export SIP_DOMAIN=<quote>foo.bar</quote>
228 228
 		</screen>
229 229
 		<para>
230 230
 If you wont the system to created this variable automatically, you need to add the line
231 231
 		</para>
232 232
 		<screen>
233
-		export SIP_DOMAIN=<quote>foo.bar</quote>
233
+export SIP_DOMAIN=<quote>foo.bar</quote>
234 234
 		</screen>
235 235
 		<para>
236 236
 		in the end of file /etc/profile.
... ...
@@ -242,13 +242,13 @@ If you are using other than 'localhost' mysql server for maintaining subscriber
242 242
 Run the serctl utility
243 243
 		</para>
244 244
 		<screen>
245
-		/usr/sbin/serctl monitor
245
+/usr/sbin/serctl monitor
246 246
 		</screen>
247 247
 		<para>
248 248
 If you installed from a tar.gz or Solaris package:
249 249
 		</para>
250 250
 		<screen>
251
-		/usr/local/sbin/serctl monitor
251
+/usr/local/sbin/serctl monitor
252 252
 		</screen>
253 253
 	</section>
254 254
 	<section>
... ...
@@ -263,13 +263,13 @@ These requirements can be meet by using DNS SVR Resource Records, available in B
263 263
 The format for a SVR RR is this:
264 264
 		</para>
265 265
 		<screen>
266
-		_service._protocol        SVR Priority Weight     Port hostname
266
+_service._protocol        SVR Priority Weight     Port hostname
267 267
 		</screen>
268 268
 		<para>
269 269
 In this case we want to establish an entry for our primary SIP server, gateway.mydomain.com, that will listen on UDP port 5060.  The entry will look like this:
270 270
 		</para>
271 271
 		<screen>
272
-		_sip._udp         SRV     0  0   5060  gateway.mydomain.com
272
+_sip._udp         SRV     0  0   5060  gateway.mydomain.com
273 273
 		</screen>
274 274
 		<para>
275 275
 Placement of the new resource record is important.  Here is a sample zone file:
... ...
@@ -300,7 +300,7 @@ www             IN      CNAME           gateway.mydomain.com.
300 300
 After reloading your zone file you can verify that the entry is working by using dig.
301 301
 		</para>
302 302
 		<screen>
303
-        dig -t SRV _sip._udp.mydomain.com
303
+dig -t SRV _sip._udp.mydomain.com
304 304
 		</screen>
305 305
 		<para>
306 306
 The results should look something like this:
... ...
@@ -351,7 +351,7 @@ If you do not already have a copy of MySQL installed, download it from your <uli
351 351
 Once you have MySQL installed and started, execute
352 352
 		</para>
353 353
 		<screen>
354
-		/usr/sbin/ser_mysql.sh
354
+/usr/sbin/ser_mysql.sh
355 355
 		</screen>
356 356
 		<para>
357 357
 You can verify that the database has been created, and correct permissions assigned by using the mysql management tool and these steps:
... ...
@@ -397,7 +397,7 @@ mysql> show tables;
397 397
 14 rows in set (0.00 sec)
398 398
 
399 399
 mysql> select * from subscriber;
400
-| phplib_id                        | USER_ID | PASSWORD | FIRST_NAME | LAST_NAME | PHONE        | EMAIL_ADDRESS              | DATETIME_CREATED    | DATETIME_MODIFIED   | confirmation                     | flag | SendNotification | Greeting | HA1                              | REALM      | ha1b                             | perms | allow_find | timezone            |
400
+| phplib_id                        | USERNAME | PASSWORD | FIRST_NAME | LAST_NAME | PHONE        | EMAIL_ADDRESS              | DATETIME_CREATED    | DATETIME_MODIFIED   | confirmation                     | flag | SendNotification | Greeting | HA1                              | REALM      | ha1b                             | perms | allow_find | timezone            |
401 401
 | 4cefa7a4d3c8c2dbf6328520bd873a19 | admin     | heslo | first        | admin    | 557-8469     | admin@iptel.org      | 2002-12-02 19:20:41 | 2002-12-02 20:29:46 | 80e0f273b2067d40277b49ff842bb9e3 | o    |                  |          | c79a8f8f08596baa84bb02c88884426d | iptel.org | f322c94b8b2fbe557d43ab3ac9e05b3a | admin | 1          | America/Los_Angeles |
402 402
 		</screen>
403 403
 		</para>
... ...
@@ -420,19 +420,19 @@ Now that we have a working MySQL database, we need to modify the configuration f
420 420
 To enable support for the new MySQL database we need to load the appropriate module.  That is accomplished by uncomment this line:
421 421
 		</para>
422 422
 		<screen>
423
-		loadmodule "//usr/lib/ser/modules/mysql.so
423
+loadmodule "/usr/lib/ser/modules/mysql.so
424 424
 		</screen>
425 425
 		<para>
426 426
 Next we need to set SER to use the database and write changes instead of just caching them in memory.  This is done by means of commenting this line:
427 427
 		</para>
428 428
 		<screen>
429
-		modparam ("usrloc", "db_mode",  0)
429
+modparam ("usrloc", "db_mode",  0)
430 430
 		</screen>
431 431
 		<para>
432 432
 And uncomment this line:
433 433
 		</para>
434 434
 		<screen>
435
-		modparam ("usrloc", "db_mode", 2)
435
+modparam ("usrloc", "db_mode", 2)
436 436
 		</screen>
437 437
 		<para>
438 438
 Note on db_modes:
... ...
@@ -466,11 +466,18 @@ Periodically writes contact information to the database based in the in memory c
466 466
 		</itemizedlist>
467 467
 		</para>
468 468
 		<para>
469
+To enable digest authentication we additionaly need to uncomment the following two lines:
470
+		</para>
471
+		<screen>
472
+loadmodule "/usr/lib/ser/modules/auth.so"
473
+loadmodule "/usr/lib/ser/modules/auth_db.so"
474
+		</screen>
475
+		<para>
469 476
 We have the option of storing passwords in our database in plain text.  This allows for password recovery and makes the initial setup and testing easier.  To enable this feature uncomment these lines:
470 477
 		</para>
471 478
 		<screen>
472
-		modparam (<quote>auth</quote>, <quote>calculate_ha1</quote>, yes)
473
-	modparam (<quote>auth</quote>, <quote>password_column</quote>, <quote>password</quote>)
479
+modparam (<quote>auth_db</quote>, <quote>calculate_ha1</quote>, yes)
480
+modparam (<quote>auth_db</quote>, <quote>password_column</quote>, <quote>password</quote>)
474 481
 		</screen>
475 482
 		<para>
476 483
 These lines work together.  The first tells SER to generate a hash based on username, password and realm.  The second tells SER where to look for the plain-text password in the database.
... ...
@@ -479,7 +486,7 @@ These lines work together.  The first tells SER to generate a hash based on user
479 486
 Lastly we need to update the routing section to recognize our realm.
480 487
 		</para>
481 488
 		<para>
482
-Change (uri==?myself?) to (uri=~?mydomain.com?)
489
+Change (uri==<quote>myself</quote>) to (uri=~<quote>mydomain.com</quote>)
483 490
 		</para>
484 491
 		<para>
485 492
 Uncomment these lines and change all instances of iptel.org to mydomain.com
... ...
@@ -496,7 +503,7 @@ if (!www_authorize("mydomain.com", "subscriber")) {
496 503
 We're now ready to restart ser.  On RedHat use
497 504
 		</para>
498 505
 		<screen>
499
-		/etc/rc.d/init.d/ser restart
506
+/etc/rc.d/init.d/ser restart
500 507
 		</screen>
501 508
 	</section>
502 509
 	<section>
... ...
@@ -505,13 +512,13 @@ We're now ready to restart ser.  On RedHat use
505 512
 Now that we have a working database and ser is configured to use it, we need to add some users and at least one of them should have administrator privileges.  The administrator role becomes important if you want to use a web management tool such as serweb.
506 513
 		</para>
507 514
 		<para>
508
-Basic account manipulation can be performed with the serctl script, located in /usr/local/sbin.
515
+Basic account manipulation can be performed with the serctl script, located in /usr/sbin.
509 516
 		</para>
510 517
 		<para>
511 518
 To add a user use these commands
512 519
 		</para>
513 520
 		<screen>
514
-		serctl add JoeUser qwerty joe@mydomain.com
521
+serctl add JoeUser qwerty joe@mydomain.com
515 522
 		</screen>
516 523
 		<para>
517 524
 The system notify for <quote>Type MySQL Password</quote>, the default password is <quote>heslo</quote>
... ...
@@ -547,29 +554,31 @@ The script serctl can be used to manage users, access control lists, in memory c
547 554
 		<screen>
548 555
 usage:
549 556
            * subscribers *
550
- serctl add &lt;username> &lt;password> &lt;email> .. add a new subscriber (*)
551
- serctl passwd &lt;username> &lt;passwd> ......... change user's password (*)
552
- serctl rm &lt;username> ...................... delete a user (*)
553
- serctl mail &lt;username> .................... send an email to a user
554
- serctl alias show [&lt;alias>] ............... show aliases
555
- serctl alias rm &lt;alias> ................... remove an alias
556
- serctl alias add &lt;alias> &lt;uri> ............ add an aliases
557
+ add &lt;username> &lt;password> &lt;email> .. add a new subscriber (*)
558
+ passwd &lt;username> &lt;passwd> ......... change user's password (*)
559
+ rm &lt;username> ...................... delete a user (*)
560
+ mail &lt;username> .................... send an email to a user
561
+ alias show [&lt;alias>] ............... show aliases
562
+ alias rm &lt;alias> ................... remove an alias
563
+ alias add &lt;alias> &lt;uri> ............ add an aliases
557 564
 
558 565
            * access control lists *
559
- serctl acl show [&lt;username>] .............. show user membership
560
- serctl acl grant &lt;username> &lt;group> ....... grant user membership (*)
561
- serctl acl revoke &lt;username> [&lt;group>] .... grant user membership(s) (*)
566
+ acl show [&lt;username>] .............. show user membership
567
+ acl grant &lt;username> &lt;group> ....... grant user membership (*)
568
+ acl revoke &lt;username> [&lt;group>] .... grant user membership(s) (*)
562 569
 
563 570
            * usrloc *
564
- serctl ul show [&lt;username>]................ show in-RAM online users
565
- serctl ul rm &lt;username> ................... delete user's UsrLoc entries
566
- serctl ul add &lt;username> &lt;uri> ............ introduce a permanent UrLoc entry
567
- serctl showdb [&lt;username>] ................ show online users flushed in DB
571
+ ul show [&lt;username>]................ show in-RAM online users
572
+ ul rm &lt;username> ................... delete user's UsrLoc entries
573
+ ul add &lt;username> &lt;uri> ............ introduce a permanent UrLoc entry
574
+ showdb [&lt;username>] ................ show online users flushed in DB
568 575
 
569
-           * server health *
570
- serctl monitor ............................ show internal status
571
- serctl ps ................................. show runnig processes
572
- serctl fifo ............................... send raw commands to FIFO
576
+		   * control and diagnostic *
577
+ moni ... show internal status     start .... start ser
578
+ ps ..... show runnig processes    stop ..... stop ser
579
+ fifo ... send raw FIFO commands   restart .. restart ser
580
+ ping &lt;uri> .. ping a URI (OPTIONS)
581
+ cisco_restart &lt;uri> .. restart a Cisco phone (NOTIFY)
573 582
 
574 583
    Commands labeled with (*) will prompt for a MySQL password.
575 584
    If the variable PW is set, the password will not be prompted.
... ...
@@ -584,15 +593,15 @@ usage:
584 593
 User account management is performed with these commands:
585 594
 		</para>
586 595
 		<screen>
587
-		serctl add
588
-	serctl password
589
-	serctl rm
596
+serctl add
597
+serctl password
598
+serctl rm
590 599
 		</screen>
591 600
 		<para>
592 601
 The contents of the in memory cache can be managed with the ul argument.  Care must be taken to with these commands.  For example:
593 602
 		</para>
594 603
 		<screen>
595
-		serctl ul rm joe
604
+serctl ul rm joe
596 605
 		</screen>
597 606
 		<para>
598 607
 Will remove the current contact information about Joe from memory
... ...
@@ -685,7 +694,7 @@ The second command, serctl monitor, shows the server version, uptime, pending an
685 694
 		<para>
686 695
 		<screen>
687 696
 [cycle #: 1; if constant make sure server lives and fifo is on]
688
-Server: Sip EXpress router (0.8.10 (i386/linux)
697
+Server: Sip EXpress router (0.8.11 (i386/linux)
689 698
 Now: Wed Dec  4 10:13:02 2002
690 699
 Up Since: Mon Dec  2 21:21:11 2002
691 700
 Up time: 132711 [sec]
... ...
@@ -755,21 +764,21 @@ On the Linux RedHat Version 8 root directory on web server is /var/www/html/
755 764
 Move the html directory to the root of your web server:
756 765
 		</para>
757 766
 		<screen>
758
-		mv html /var/www/html/htdocs/serweb
767
+mv html /var/www/html/htdocs/serweb
759 768
 		</screen>
760 769
 		<para>
761 770
 Move the phplib directory to your web server application directory:
762 771
 		</para>
763 772
 		<screen>
764
-		mv phplib /var/www/html/phplib
773
+mv phplib /var/www/html/phplib
765 774
 		</screen>
766 775
 		<para>
767 776
 Following files must be updated with this <quote>new</quote> path to the libraries:
768 777
 		</para>
769 778
 		<screen>
770
-		./admin/prepend.php
771
-	./user_interface/prepend.php
772
-	./user_interface/reg/prepend.php
779
+./admin/prepend.php
780
+./user_interface/prepend.php
781
+./user_interface/reg/prepend.php
773 782
 		</screen>
774 783
 		<para>
775 784
 For these files the variable: $_PHPLIB[<quote>libdir</quote>]  = <quote>../../phplib/</quote>; becomes $_PHPLIB[<quote>libdir</quote>]  = <quote>../../../phplib/</quote>;
... ...
@@ -778,7 +787,7 @@ For these files the variable: $_PHPLIB[<quote>libdir</quote>]  = <quote>../../ph
778 787
 In the ./admin directory edit the files acl.php, index.php, and users.php will need their path to the forms library updated.  For this example, add ../ to the existing line
779 788
 		</para>
780 789
 		<screen>
781
-		:require <quote>../../../phplib/oohforms.inc</quote>;
790
+:require <quote>../../../phplib/oohforms.inc</quote>;
782 791
 		</screen>
783 792
 		<para>
784 793
 In the ./user_interface directory the following files need the same change:
... ...
@@ -796,13 +805,11 @@ Finish.php, get_pass.php, index.php
796 805
 The last changes occur in the config.php file to provide the location for graphic files, style sheets and time zone information.  Update the following variables:
797 806
 		</para>
798 807
 		<screen>
799
-		$this->root_path=<quote>/serweb/</quote>;
800
-	$this->fifo_server = <quote>/tmp/ser_fifo</quote>;
801
-	$this->zonetab_file =   <quote>/usr/share/zoneinfo/zone.tab</quote>;
802
-		</screen>
803
-		<para>
808
+$this->root_path=<quote>/serweb/</quote>;
809
+$this->fifo_server = <quote>/tmp/ser_fifo</quote>;
810
+$this->zonetab_file =   <quote>/usr/share/zoneinfo/zone.tab</quote>;
804 811
 //TZ zone descriptions file, usually: /usr/share/zoneinfo/zone.tab
805
-		</para>
812
+		</screen>
806 813
 		<para>
807 814
 Find two variables: <quote> $this->mail_forgot_pass=</quote>,<quote> $this->mail_register=</quote> and change line http://oook/~iptel/user_interface/reg/confirmation.php?nr=#confirm#\n\n
808 815
 		</para>
... ...
@@ -821,17 +828,17 @@ This will insure sending a registration feedback mail to SIP server using its IP
821 828
 		<para>
822 829
 We need to update /usr/local/apache/htdocs/serweb/config.php to represent our realm.  The following variables need to be changed to our domain:
823 830
 		</para>
824
-		<screen>
825
-		$this->realm=<quote>mydomain.com</quote>;
826
-	$this->domainname=<quote> mydomain.com</quote>;
827
-	$this->web_contact=<quote>sip:JoeUser@ mydomain.com</quote>;
828
-		</screen>
829 831
 		<para>
832
+		<screen>
833
+$this->realm=<quote>mydomain.com</quote>;
834
+$this->domainname=<quote> mydomain.com</quote>;
835
+$this->web_contact=<quote>sip:JoeUser@ mydomain.com</quote>;
830 836
 //address of pseudo sender
837
+		</screen>
831 838
 		</para>
832 839
 		<screen>
833
-		$this->default_domain=<quote> mydomain.com</quote>;
834
-	$this->mail_header_from=<quote>Registration@ mydomain.com</quote>;
840
+$this->default_domain=<quote> mydomain.com</quote>;
841
+$this->mail_header_from=<quote>Registration@ mydomain.com</quote>;
835 842
 		</screen>
836 843
 		<para>
837 844
 		</para>
... ...
@@ -875,7 +882,7 @@ Detailed information about the communications between clients and the SIP server
875 882
 Ngrep is a capable of listening in on network traffic and filtering it in much the same way as grep can locate patterns in files.  To monitor the communications between a client, joe, and the server the following command would be run on the server:
876 883
 		</para>
877 884
 		<screen>
878
-		ngrep  -n 5060 -d eth0 joe
885
+ngrep  -n 5060 -d eth0 joe
879 886
 		</screen>
880 887
 		<para>
881 888
 Since SIP communications are ASCII based, all events such as REGISTER, INVITE, SUBSCRIBE, etc. are captured.  The output of ngrep can identify problems with SIP addresses, or client identity.
... ...
@@ -1034,19 +1041,12 @@ The following is an extremely simple sample of how to relay a call from a SIP cl
1034 1041
 The following are the SIP status codes as of RFC3312
1035 1042
 	</para>
1036 1043
 
1037
-	<table>
1044
+	<para>
1045
+	<table><title>1XX-2XX Informational</title>
1038 1046
 	<tgroup cols="2">
1039 1047
 	<tbody>
1040 1048
 	<row>
1041 1049
 		<entry>
1042
-1XX-2XX
1043
-		</entry>
1044
-		<entry>
1045
-Informational
1046
-		</entry>
1047
-	</row>
1048
-	<row>
1049
-		<entry>
1050 1050
 100 
1051 1051
 		</entry>
1052 1052
 		<entry>
... ...
@@ -1104,20 +1104,14 @@ OK
1104 1104
 	</tbody>
1105 1105
 	</tgroup>
1106 1106
 	</table>
1107
+	</para>
1107 1108
 
1108
-	<table>
1109
+	<para>
1110
+	<table><title>3XX Redirection</title>
1109 1111
 	<tgroup cols='2'>
1110 1112
 	<tbody>
1111 1113
 	<row>
1112 1114
 		<entry>
1113
-3XX 
1114
-		</entry>
1115
-		<entry>
1116
-Redirection
1117
-		</entry>
1118
-	</row>
1119
-	<row>
1120
-		<entry>
1121 1115
 300 
1122 1116
 		</entry>
1123 1117
 		<entry>
... ...
@@ -1159,20 +1153,14 @@ Alternative Service
1159 1153
 	</tbody>
1160 1154
 	</tgroup>
1161 1155
 	</table>
1156
+	</para>
1162 1157
 
1163
-	<table>
1158
+	<para>
1159
+	<table><title>4XX Client-Error</title>
1164 1160
 	<tgroup cols='2'>
1165 1161
 	<tbody>
1166 1162
 	<row>
1167 1163
 		<entry>
1168
-4XX 
1169
-		</entry>
1170
-		<entry>
1171
-Client-Error
1172
-		</entry>
1173
-	</row>
1174
-	<row>
1175
-		<entry>
1176 1164
 400 
1177 1165
 		</entry>
1178 1166
 		<entry>
... ...
@@ -1398,20 +1386,14 @@ Undecipherable
1398 1386
 	</tbody>
1399 1387
 	</tgroup>
1400 1388
 	</table>
1389
+	</para>
1401 1390
 
1402
-	<table>
1391
+	<para>
1392
+	<table><title>5XX Server-Error</title>
1403 1393
 	<tgroup cols='2'>
1404 1394
 	<tbody>
1405 1395
 	<row>
1406 1396
 		<entry>
1407
-5XX  
1408
-		</entry>
1409
-		<entry>
1410
-Server-Error
1411
-		</entry>
1412
-	</row>
1413
-	<row>
1414
-		<entry>
1415 1397
 500 
1416 1398
 		</entry>
1417 1399
 		<entry>
... ...
@@ -1477,20 +1459,14 @@ Precondition Failure
1477 1459
 	</tbody>
1478 1460
 	</tgroup>
1479 1461
 	</table>
1462
+	</para>
1480 1463
 
1481
-	<table>
1464
+	<para>
1465
+	<table><title>6XX Global-Failure</title>
1482 1466
 	<tgroup cols='2'>
1483 1467
 	<tbody>
1484 1468
 	<row>
1485 1469
 		<entry>
1486
-6XX  
1487
-		</entry>
1488
-		<entry>
1489
-Global-Failure
1490
-		</entry>
1491
-	</row>
1492
-	<row>
1493
-		<entry>
1494 1470
 600 
1495 1471
 		</entry>
1496 1472
 		<entry>
... ...
@@ -1524,5 +1500,7 @@ Not Acceptable
1524 1500
 	</tbody>
1525 1501
 	</tgroup>
1526 1502
 	</table>
1503
+	</para>
1504
+
1527 1505
 	</chapter>
1528 1506
 </book>