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