added owner / group options to options.conf
[lcr.git] / README
1
2 Note:
3 -----
4 PBX software can be connected to private hardware, as well as public
5 switched networks. Due to wrong use or software bugs, it can cause failures
6 to these networks and hardware, disturbing users of these networks and
7 hardware, cause load and unwanted costs, and may prohibit making calls,
8 especially in case of an emergency.
9
10 The authors of this software cannot take any responsibility for correct
11 use and correct behaviour of this software.
12 If you use this software, you aggree the terms of the LICENSE and README
13 file.
14 You will also inform your customers about the content of the LICENSE and
15 README file.
16
17 Some countries and/or telephone networks require special approval in order
18 to allow telephone devices to be connected to their networks.
19
20
21 Installation and Usage:
22 -----------------------
23 Read the documentation at http://www.linux-call-router.de
24 Also you will find a quick howto there.
25
26
27 History:
28 --------
29
30 Changes in Version 20021228 
31 - first release
32
33 Changes in Version 20030111 (buggy and unuseable)
34 - support dtmf for callback and dtmf dialing mode (dial through via dtmf)
35 - bug fixes
36 - dialing improvement: dialing h323 now possible with port and alias
37 - other stuff
38 - new Makefile: make install will now install binaries and data on your system
39
40 Changes in Version 20030118 (buggy and unuseable)
41 - information exchange between isdn/h323-ports, endpoints and calls are messages now
42   previousely using direct calls with pointers were dangerous
43 - removed bug since 200301011, which caued h323 calls to deadlock
44
45 Changes in Version 20030120
46 - login function
47 - callback authentication
48 - h323 audio bug. no h323 audio transmission sice version 20030111
49 - some other bug fixes
50
51 Changes in Version 20030206 (first beta release 1.0)
52 - callerid (CLIP/COLP) is now processed correctly with all features
53 - hold sound and active/inactive notification
54 - CD notification
55 - many callerid display function
56 - bug fixes
57 - documentation as word document (partly done)
58 - Note: This week I have my vakation, so there is no response to any question in the mailing list.
59
60 Changes in Version 1.0 
61 - first release
62 - finished the first version of the documentation
63 - new style internet page with documentation in html
64 - all enities (port, endpoint, call) are now c++ objects, rather than structures
65 - tones may now be played and recorded using wave (8bit mono, 16bit mono, 16bit stereo) or law (alwa/ulaw mono)
66 - fixed corruption in wave-file creation
67 - now call forwad (cfb, cfnr) is implemented and working
68 - an answering machine with playback function is implemented.
69 - lots of bug fixes
70
71 Changes in Version 1.1
72 - option to fetch tones into memory, causing faster access, then from hard disk
73 - Memory is now locked using mlockall(), to prevent paging which causes jitter and interruption.
74 - Answering machine now works with keypad information.
75 - callback on internal port, if hangup with call on hold.
76 - A pocket calcularor with simple terms (*, /, +, -) and floating point is added.
77 - If a calls had more than two endpoints, any message has been ignored.
78   This caused not to receive the retreive notification, which caused the hold
79   music to continue to play.
80 - minor buf fixes
81 - Disconnect/release "causes" are now processed by priority, if a multipoint call is made.
82
83 Changes in Version 1.2
84 - bugfix: dialing of vbox-caller now works.
85 - bugfix: minor answering machine announcement bug
86 - fixed compiling error: h323_con.cpp (p_type not declared)  thanx arne!
87 - added include definition for kernel api in Makefile. Hope it works...
88 - fix: dummyid is used for external calls when no caller id is available. the
89   dummy id is transmitted as restricted id. if the police is called, it will
90   see the dummyid rather than the pbx line id. this is used on forwarded calls
91   when the caller id is not available.
92 - doc: added a simple instruction to build a cross over cable.
93
94 Changes in Version 2.0pre
95 - NEW ISDN DRIVER SUPPORT (Forget the HiSax, now use 'mISDN'.)
96 - NEW KERNEL REALTIME MODULE (mISDN_dsp.o)
97 - NEW NT-MODE LIBRARY SUPPORT (now MULTIPOINT!!!)
98 - NEW TE-MODE STACK SUPPORT
99 - support of call suspension and retrieval (switch between calls)
100 - call waiting on internal phone (calls when no bchannel is available)
101 - doc: Now headlines are moved to the next page if they are at the bottom of a
102   page.
103 - vbox: minor speech syntax bugfix
104 - up to 50 (compiler flag) dialed numbers can be recalled.
105 - up to 50 (compiler flag) received calls are listed and can be replied.
106 - Dialing informations are now queued by endpoint until port has received 
107   setup acknowledge on the outgoing connection.
108 - Starting PBX without parameter gives a list of options.
109 - Query option for listing available ports/cards.
110 - CNIP (calling name) Some Simens switches and telephones support this.
111 - Extensions no have names.
112 - Timeouts can now be specified for different call states on ISDN phones.
113 - Tones/Announcements can now be overridden at different call states.
114 - isdn.cpp is completely reworked.
115 - Tones/Announcements can be played externally, if supported by the external
116   line.
117 - Commandline parameters must be given on startup of pbx.
118 - query option to check out the current isdn cards and protocolls.
119 - Debug flags can now be used to speciallize the debug output.
120 - vbox: Recorded calls can now be sent as attached sound file via email, or
121   just a notifaction mail without sound file can be sent.
122 - PBX now runs with highest prio (99) to get as much cpu as possible.
123 - CPU scheduler now runs PBX4Linux as real time process.
124 - Internal calls now use internal extension number as caller id.
125 - Rework of hold/conference.
126 - New option to allow an incoming h323-call to be connected at ringing state.
127 - New codecs supported with h323 (speex and law)
128 - COLP now works with h323
129 - Answering machine now delays to avoid the dtmf tone when start recording
130 - Answering machine now adds the beep behind the announcement file.
131 - keypad facility dialing option
132 - Conference now really works using call hold feature in conjunction with
133   keypad feature
134 - Picking of an incoming call on isdn now really works.
135 - picking of a call forwarded to vbox
136 - I fixed a bug that did not queue the dialed digits correctly before getting
137   an external connecting.
138 - Logfiles of calls now show the correct year.
139 - Callback now rejects if no password is given or the given extension doesn't
140   exist.
141 - Incoming H.323 calls may now instantly connect using a special option.
142 - H323 compiles faster, because the H323 includes are only used for the H323
143   code part.
144 - Using 'curses' for a state debugging. The current state of all instances
145   is displayed on the screen including calls, endpoints and ports.
146 - manny, manny more things that I forgot
147
148 Changes in Version 2.0
149 - fixed memory leak
150 - fixed COLP bug
151 - finally SUSPEND/RESUME (call parking), resume is allowed from any ISDN-port
152 - some CRITICAL bugfixes
153 - Fixed and reworked sample counting when playing tones. Now fast wind and
154   rewind works correctly. Also 8-bit recording can be played back now.
155   I hope it works now without problems.
156 - An internal phone without caller id will now be rejected rather than
157   treated as an extenal call.
158 - Fixed bug in rejecting an external call.
159 - Corrected handeling of 'inbandpatterns'.
160 - Data calls will not enable DTMF detection.
161 - Data calls will not use any audio transmission from user space.
162 - Forward to VBOX only if call is an audio call.
163 - Fixed library bug, that caused not to process keypad-information during
164   setup message.
165 - Fixed a 'release_complete' bug.
166 - Debug information now have the correct month.
167 - Fixed bug of wave-playback of voicebox recoding, caused by rework of the
168   audio routines. It caused a SEGMENTATION FAULT!
169 - Using threads now to send email and using libcrypto.
170 - Introducing encryption of external calls using Blowfish.
171 - Key exchange using RSA.
172 - Fixed a bug in dialing H323-IP with numerical digits.
173 - Fixed a bug that causes endpoint, which receives audio data, to crash when
174   no port is related to it.
175 - Fixed a bug that did not release endpoint, when it receives a disconnect
176   if it has no port (parked).
177 - Fixed a channel assignment bug when retrieving call. (second B-channel)
178 - Now COLP with H.323 works. No more crash!
179 - Park attribute was not set, which caused a crash.
180 - Conference now works correctly with dsp-module.
181 - Fixed a serious NT-mode process handling problem. (crash after some calls)
182 - Added log file which is also displayed on the 'state' screen.
183 - * Happy new year 2004 *
184
185 Changes in Version 2.1
186 - Fixed a bug that caused not to reply external calls (also VBOX).
187 - 'genrc' now supports loading HFC-4S, HFC-8S and HFC-E1 drivers
188 - Outgoing setup now expires after 8 seconds!
189 - Fixed a bug that causes mISDNuser to crash during cleanup.
190 - Fixed memory bug, thanx Paul!
191 - hfc-4s/8s driver support (mISDN)
192 - Improvement of isdn audio processing, hardware support.
193 - Fixed diplay callerid bug "anonymousunknown anon"
194 - Added more stable malloc (calloc) / free handling
195
196 Changes in Version 2.2
197 - PRI proof (2 MBit interface support when using HFC-E1)
198 - Fixed data call bug
199 - Improved display of PRI channels
200 - Now VBOX playback says "no messages" if the last message has been deleted
201   and will not play the last but one, unless the "previous" button has been
202   pressed.
203
204 Changes in Version 2.3
205 - Fixed HFC_MULTI driver activation problem (HW_RESET was not implemented)
206 - Fixed login prefix bug. Thanx Karsten V.
207 - MISDN: better layer 2 check
208 - Now facility informations are transfered during call to terminal
209   (finally advice of charge is displayed) MUST BE ENABLED BY SETTINGS!
210 - Fixed 'reply' dialing bug, that caused a crash. Thanx Karsten V.
211 - Added L1 activation for NT-Mode. Fixed problems with inactive links.
212 - Fixed a bug that caused subsequent data calls after a data call. Thanx JC.
213 - mISDN: layer 1 now works correct with E1 cards.
214
215 Changes in Version 2.4
216 - Fixed parallel ringing to multiple external numbers.
217 - Fixed login again (was still buggy).
218
219 Changes in Version 2.5
220 - Fixed callback bug. (International numbers were not detected.)
221 - Fixed typos (mostly "incoming") - thanx Lars.
222 - Fixed vbox-email bug - thanx Martin. (and also the compiler error)
223 - Fixed compiler bug, that caused compiling without crypto lib to fail.
224 - Fixed some mISDN crash problems.
225 - Now it should also compile with the original CVS tree.
226 - Fixed hfc_multi unloading bug - thanx Karsten!
227 - Now disabling DSP_MODULE really causes DSP to be disabled.
228 - Now disabling real time scheduling really works.
229 - mISDNuser (CVS) now compiles with the mISDN (CVS)
230 - Adding the outdial prefix to the caller ID is now possible.
231 - Fixed bug that caused echo test not to work.
232 - And finally hardware echo now works on HFC 4s/8s/E1 (hfc_multi)
233   For echo dial 993 (Test + 3) for standard configuration.
234 - Added new hfc_multi vendor IDs including "Beronet Cards".
235
236 Changes in Version 2.6
237 - Fixed hookflash bug in conjunction with prefix. Thanx Tobias!
238 - Fixed cleanup bug when loading of ISDN driver failed.
239 - Fixed mISDN bug that caused cards not to be found, if loaded in different
240   order as found by kernel.
241 - Fixed a bug that causes a segfault when a phone disconnects while
242   parallel ringing multiple phones/ports.
243 - Added capability for Point-To-Point in NT mode, including PRI.
244 - Added L1 link control for NT mode.
245 - Fixed bug in hfc_multi and mISDN driver that caused mISDN not to work
246   with kernel > 2.6.7.
247 - Fixed a but when detecting different cards with hfc_multi.
248 - Fixed timer bug that caused timers of multiple NT ports not to work
249   correctly.
250
251 Changes in Version 2.7
252 - Fixed lots of bugs.
253 - Now receive stream from mISDN is disabled when not needed.
254 - Added NT mode support for incoming "SETUP_ACKNOWLEDGE".
255
256 Changes in Version 3.0
257 - Advanced routing capability to replace the numbering_*.conf
258   (Don't worry, internal and external numbering is a feature of the routing
259   capability and is easy to convert.)
260 - Now correct cause location is generated and handled.
261 - New cause display feature. Location is displayed with the cause number.
262 - Many source cleanups.
263 - New interface (Unix socket) to administrate. Status informations are now
264   viewable without restarting PBX. Even may processes may view status info.
265   Starting / stopping state debugging, doesn't require to restart PBX.
266 - Status information now has selectable details.
267 - Better structure for debugging functions and better logging. (code)
268 - Dialing may also be done via command line interface.
269 - Now internel/external dialtone and ringing depends on internal/external call.
270 - Now endpoints (partys) can be released via command line (admin tool).
271 - Watchdog "pbxwatch" to automatically restart and even debug PBX4Linux.
272 - Removed problem with uninitialized variable in ISDNPort object causing to
273   crash. It did not happen very often.(only after some hundred/thousand calls)
274 - HFC-E1 cards did not correctly synchronize to external lines.
275 - dsp.o now allocates only one timeslot per call, as expected.
276 - mISDNuser now correctly connects PRI calls.
277 - PRI improvements and bugfixes.
278 - Support for conference rooms.
279 - Voice box is now able to play announcement before connecting the call.
280   A special feature on the external line is required to send audio before
281   answering the call.
282 - It is now possible to include seconds (time) in the connect message. This
283   might not be supported by all telephones, so it is an optional feature.
284 - Moved open and close of recording audio to the "Port" class, where it
285   belongs. The mixer will be more performant this way.
286 - Notify is now supported by mISDN and also correctly handled and queued
287   by PBX.
288 - Fixed bug that caused not to free broadcast process IDs in certain cases.
289   This would cause calls to internal phones (from extern or intern) not to
290   work after a while.
291 - Added HFC-S USB to 'genrc' tool.
292 - printisdn now shows corret month.
293
294 Changes in Version 3.0-fix1
295 - Rule for changing the forwarding now works. Enter "pbx rules forward" for
296   description. Also the example in "defaults/route.conf" is corrected.
297 - Forking now forks twice and suppresses debug output. Closing of shell is
298   possible.
299
300 Changes in Version 3.0-fix2
301 - Fixed memory leak bug in pbxadmin that caused to eat all memory and make it
302   stop.
303 - Fixed audio handling that cause forking calls to be mute. (Parallel
304   forwarding causes calls to fork to multiple destinations.)
305
306 Changes in Version 3.0-fix3
307 - Added "nopassword" parameter for login action.
308 - Fixed bolean condition bug.
309 - pbxadmin will not exit if terminal size changes.
310
311 Changes in Version 3.1
312 - Internal structure changed. "Endpoints" and "applications" are now two
313   linked classes. The code is now reusable for other projects than
314   "PBX4Linux". (No added features!)
315 - Some source cleanups.
316 - Now keypad must be enabled for each extension if required. (settings)
317 - Removed a new bug that caused remotely parked/holded calls not to be removed
318   from conference. The conference got disturbed by park/hold sound from
319   remote.
320 - Removed bug that caused printing of unset pointers.
321
322 Changes in Version 3.2
323 - PBX now works with mqueue branch. This is the latest CVS source:
324   * HFCmulti is ported
325   * HFC-PCI is ported
326   * DSP is ported
327   * nt-mode lib (libi4l) is ported
328   * source is now SMP (multiple processors or hyperthreading) save.
329 - Fixed bug that caused not to record if annoucement is missing
330 - A prefix may be specified with callback for predefined dialing after
331   callback.
332 - Now b-channels are displayed more compressed on admin tool.
333
334 Changes in Version 3.3
335 - * te-mode works
336 - * te-mode layer 1 and layer 2 control works (SHORTMESSAGE)
337
338 Changes in Version 3.3-fix2
339 - OpenH323 midas release compiles
340 - Fixed bug in MESSAGE_NOTIFY which cases display information not to dliver.
341 - OpenH323 midas release works currently only with law-codecs
342 - Dixed some dial string parsing for Openh323.
343
344 Changes in Version 3.3-fix3
345 - Rework of kernel audio briding. Much faster (less delay), dynamically
346   handles jitter. Ready for future RTP / ISDNoIP modules.
347
348 Changes in Version 3.4
349 - Removed DSP_MODULE switch, because it will be essential for PBX operation.
350 - Fixed pbxadmin offset bug.
351 - Added special feature "efi" to announce caller's ID. You call, and it tells
352   your caller ID. (if available) Sample set is not complete!
353 - Now caller ID and type can be given for external call rule.
354 - Now caller ID and type can be given for changing caller ID.
355 - Removed a display bug in pbxadmin, that caused busy channels to be omitted.
356 - Fixed layer 2 handling bug.
357 - Increased performance of pbx-status screen. Many interfaces/calls caused
358   lock up of machine.
359 - Timeout condition seems to work now.
360 - Timeout action seems to work now.
361
362 New Verion for new name: LCR
363
364 Changes in Version 0.1
365 - Statefull b-channel open and closing
366 - Rebuild audio flow
367   Made much simpler
368   Preloading and keeping transmit buffer for seamless tones and patterns.
369   Recording of what is actually transmitted and received by party.
370 - Logging is replaced by trace
371 - New isdn interface and port structure with many features
372   Interfaces can be changed at runtime.
373   Interfaces can be loaded and unloaded at runtime.
374 - mISDN stack fixes
375 - DDI in and out on all stacks
376 - Layer 1 over IP supports interconnection via IP
377 - Rebuild line and b-channel hunting with individual lists
378 - Screen lists for changing caller IDs
379 - Multiplexing calls to multiple extensions
380 - Removed all VoIP stuff to make core fast and stable (Use Asterisk for VoIP.)
381 - Fixed a bug that caused some isdn connections to hang during disconnect
382 - Many bug fixes
383 - Many minor improvements
384 - New bugs of course...
385 - Rename of 'Call' instances to 'Join', because they join parties together.
386 - A new remote interface for external applications is integrated
387   -> Our first application is (-: *ASTERISK CHANNEL DRIVER* :-)
388
389 Changes in Version 0.2
390 - Fixed partyline handling
391 - Stall warning
392 - Audio recoriding still does not work.
393
394 Changes in Version 0.3
395 - Added join/release jingle options for partylines
396 - Fixed bug that did not release reserved channels, so interface run out of
397   channels.
398 - Bugfixes...
399 - Minor bugfixes
400 ****** Major hfc_multi bugfix *******
401 * no more crash with multiple cards *
402 *************************************
403 - Screening bug removed. (Thanx Martin)
404 - Wave files with FMT header > 16 now work.
405 - Added timeouts for testcall feature. (lcradmin)
406   -> You can run scripts, that generate testcalls of multiple destinations.
407 - Added origin flag to correctly process last_in and last_out call logging.
408 - Tones and annoucements are not overwritten if exist, during installation.
409 - Screening now also works for outgoing calls (to interface)
410 - Fixed VBox, also added trace debugging.
411 - Nice 'Beep' after the announcement.
412 - Special announcement recording without beep.
413 - Filters now work for interface.conf
414 - Fixed minor audio gain bug.
415 - Moved timeout setting from extension to interface.conf.
416
417 Changes in Version 0.4
418 - Complete set of EFI samples
419
420 Changes in Version 0.5
421 - Preperations for Asterisk channel driver (chan_lcr)
422 - Errors in information elements are now reported inside log/trace.
423 - Recover bchannel (de-)activation if message from mISDN got lost
424
425 Changes in Version 1.0
426 - Bugfixes
427 - Complete port to new mISDN V2 API (socket based).
428   -> Old mISDN will not work anymore.
429 - Interfaces mode (NT/TE PTP/PTMP) can now be changed at runtime.
430   -> No more module parameters must be given for cards.
431 - First Alpha release of chan_lcr - the Asterisk PBX channel link driver.
432   -> Use LCR in conjunction with Asterisk, or simply as ISDN frontend.
433
434 Changes in Version 1.1
435 - Fixed dtmf bug.
436 - Added more display infos
437 - Fixed b-channel check bug. (channel seemed busy, even if it was free)
438 - Forced proceeding, if "sending complete".
439 - Removed 'lcr query'. It is obsolete, because 'isdninfo' does it.
440 - Fixed lockinproblem with chan_lcr (hopefully).
441 - HDLC now works and is used for B-channels, if required.
442 - Briding for chan_lcr fixed, many other fixed for chan_lcr. Overlap dialing!
443 - Compiling and 64-bit issues fixed by Karsten.
444 - chan_lcr fixes and tests by Peter.
445 - LCR now runs as user, but still can be run as root.
446 - Ports can now be given with number or with name.
447
448 Changes in Version 1.2
449 - Changed isdninfo to misdn_info.
450 - Fixed some trace bugs.
451 - Fixed some layer2-link issues.
452 - special interface config option "te-special" to allow transmit of all IEs
453   in TE-mode. this is usefull to interconnect LCRs.
454 - Introduceing autoconf (./configure) with help of Joerg and Peter.
455   -> Default installation path remains /usr/local/lcr, so don't worry!
456
457 Changes in Version 1.3
458 - Finished autoconf.
459 - Obsolete "pbxwatch" is removed. 
460
461 Changes after Version 1.3 release
462 - fixes in chan_lcr, thanx to peter and gregor
463 - message pointer forwarding fix, thanx to bodo!
464 - capability fix, thanx to gregor
465 - processing of second caller id
466 - Dialing length can now be limited. EWSD allows only 20 digits at a time.
467   -> Multiple messages are sent to dial full string.
468 - Added alerting and proceeding to the goto rule.
469 - Added patch by gregory, asterisk should now use faxdetection with mISDN_dsp
470   disabled.
471
472 Changes after Version 1.4 release
473 - Bugfix: When reloading interfaces, interface will not be reopened, if
474   interface was specified by name.
475 - Added PID file (thanx to Joerg)
476 - Added Callweaver support. (thanx to Kristijan)
477 - Bugfix on timeout rules. (thanx to Benjamin)
478 - Fixed dtmf detection of A-D. (thanx to Ralf)
479 - Fixed Notification messages in NT-mode
480   -> Notifications like diversions are now sent to terminal.
481 - Added l1hold feature (requires new mISDN and mISDNuser).
482 - chan_lcr: Fixed compile problem with newer versions.
483 - chan_lcr: Open b-channel if asterisk indicates "PROGRESS".
484   -> Also if tones are available, asterisk gets "PROGRESS" indication.
485 - lcradmin displays TEI values in NT-mode PTMP
486 - Added patch from Daniel
487   -> Improved forking
488   -> Execution action can now be done on call init or on call hangup.
489
490 New release Version 1.5
491 - Added GSM network support.
492   -> Requires OpenBSC, GSM codec, and a BS11 base station.
493   -> For more refer to www.linux-call-router.de.
494
495 Changes after Version 1.5
496 - Tones are restructured:
497  -> mISDN_dsp.ko tones must now be specified via 'tones_dir' parameter.
498  -> interface.conf has a tones_dir options for individual interfaces.
499  -> interface.conf has priority over tones_dir in options.conf.
500  -> exnsion's settings has pritority over other tones_dir setting.
501 - Debug option now works for GSM.
502 - Fixed some GSM information elements.
503 - OpenBSC api changes.
504 - Fixed disabling of DTMF using 'n' option of chan_lcr.
505 - Added GSM IMSI dialing by using dialing "imsi-<number>".
506 - Applied API change of OpenBSC.
507 - Applied changes of OpenBSC main branch. LCR now works with OpenBSC main
508   branch.
509 - Minor fixes and source cleanups.
510 - Added patch by Kai Peter to complete screening indicators. Thanx!
511 - Join conference during alerting phase, so calls can be forwarded.
512 - Fixed conference release bug.
513
514 New release Version 1.6
515
516 Changes after Version 1.6
517 - Fixed bad call/conference bug in joinpbx.c
518 - External interfaces must now be specified using 'extern' keyword.
519  -> This prevents from selecting other interfaces when dialing out.
520  -> Just add 'extern' right below your external interface definition, or give
521     external interface name in routing.conf: ": extern interfaces=XXXXX"
522 - Added experimental CCITT No. 5 signalling system. (for educational purpose)
523 - Added socket owner/group options to options.conf
524
525