New Version 1.6
[lcr.git] / README
diff --git a/README b/README
index e69de29..77f3714 100644 (file)
--- a/README
+++ b/README
@@ -0,0 +1,518 @@
+
+Note:
+-----
+PBX software can be connected to private hardware, as well as public
+switched networks. Due to wrong use or software bugs, it can cause failures
+to these networks and hardware, disturbing users of these networks and
+hardware, cause load and unwanted costs, and may prohibit making calls,
+especially in case of an emergency.
+
+The authors of this software cannot take any responsibility for correct
+use and correct behaviour of this software.
+If you use this software, you aggree the terms of the LICENSE and README
+file.
+You will also inform your customers about the content of the LICENSE and
+README file.
+
+Some countries and/or telephone networks require special approval in order
+to allow telephone devices to be connected to their networks.
+
+
+Installation and Usage:
+-----------------------
+Read the documentation at http://www.linux-call-router.de
+Also you will find a quick howto there.
+
+
+History:
+--------
+
+Changes in Version 20021228 
+- first release
+
+Changes in Version 20030111 (buggy and unuseable)
+- support dtmf for callback and dtmf dialing mode (dial through via dtmf)
+- bug fixes
+- dialing improvement: dialing h323 now possible with port and alias
+- other stuff
+- new Makefile: make install will now install binaries and data on your system
+
+Changes in Version 20030118 (buggy and unuseable)
+- information exchange between isdn/h323-ports, endpoints and calls are messages now
+  previousely using direct calls with pointers were dangerous
+- removed bug since 200301011, which caued h323 calls to deadlock
+
+Changes in Version 20030120
+- login function
+- callback authentication
+- h323 audio bug. no h323 audio transmission sice version 20030111
+- some other bug fixes
+
+Changes in Version 20030206 (first beta release 1.0)
+- callerid (CLIP/COLP) is now processed correctly with all features
+- hold sound and active/inactive notification
+- CD notification
+- many callerid display function
+- bug fixes
+- documentation as word document (partly done)
+- Note: This week I have my vakation, so there is no response to any question in the mailing list.
+
+Changes in Version 1.0 
+- first release
+- finished the first version of the documentation
+- new style internet page with documentation in html
+- all enities (port, endpoint, call) are now c++ objects, rather than structures
+- tones may now be played and recorded using wave (8bit mono, 16bit mono, 16bit stereo) or law (alwa/ulaw mono)
+- fixed corruption in wave-file creation
+- now call forwad (cfb, cfnr) is implemented and working
+- an answering machine with playback function is implemented.
+- lots of bug fixes
+
+Changes in Version 1.1
+- option to fetch tones into memory, causing faster access, then from hard disk
+- Memory is now locked using mlockall(), to prevent paging which causes jitter and interruption.
+- Answering machine now works with keypad information.
+- callback on internal port, if hangup with call on hold.
+- A pocket calcularor with simple terms (*, /, +, -) and floating point is added.
+- If a calls had more than two endpoints, any message has been ignored.
+  This caused not to receive the retreive notification, which caused the hold
+  music to continue to play.
+- minor buf fixes
+- Disconnect/release "causes" are now processed by priority, if a multipoint call is made.
+
+Changes in Version 1.2
+- bugfix: dialing of vbox-caller now works.
+- bugfix: minor answering machine announcement bug
+- fixed compiling error: h323_con.cpp (p_type not declared)  thanx arne!
+- added include definition for kernel api in Makefile. Hope it works...
+- fix: dummyid is used for external calls when no caller id is available. the
+  dummy id is transmitted as restricted id. if the police is called, it will
+  see the dummyid rather than the pbx line id. this is used on forwarded calls
+  when the caller id is not available.
+- doc: added a simple instruction to build a cross over cable.
+
+Changes in Version 2.0pre
+- NEW ISDN DRIVER SUPPORT (Forget the HiSax, now use 'mISDN'.)
+- NEW KERNEL REALTIME MODULE (mISDN_dsp.o)
+- NEW NT-MODE LIBRARY SUPPORT (now MULTIPOINT!!!)
+- NEW TE-MODE STACK SUPPORT
+- support of call suspension and retrieval (switch between calls)
+- call waiting on internal phone (calls when no bchannel is available)
+- doc: Now headlines are moved to the next page if they are at the bottom of a
+  page.
+- vbox: minor speech syntax bugfix
+- up to 50 (compiler flag) dialed numbers can be recalled.
+- up to 50 (compiler flag) received calls are listed and can be replied.
+- Dialing informations are now queued by endpoint until port has received 
+  setup acknowledge on the outgoing connection.
+- Starting PBX without parameter gives a list of options.
+- Query option for listing available ports/cards.
+- CNIP (calling name) Some Simens switches and telephones support this.
+- Extensions no have names.
+- Timeouts can now be specified for different call states on ISDN phones.
+- Tones/Announcements can now be overridden at different call states.
+- isdn.cpp is completely reworked.
+- Tones/Announcements can be played externally, if supported by the external
+  line.
+- Commandline parameters must be given on startup of pbx.
+- query option to check out the current isdn cards and protocolls.
+- Debug flags can now be used to speciallize the debug output.
+- vbox: Recorded calls can now be sent as attached sound file via email, or
+  just a notifaction mail without sound file can be sent.
+- PBX now runs with highest prio (99) to get as much cpu as possible.
+- CPU scheduler now runs PBX4Linux as real time process.
+- Internal calls now use internal extension number as caller id.
+- Rework of hold/conference.
+- New option to allow an incoming h323-call to be connected at ringing state.
+- New codecs supported with h323 (speex and law)
+- COLP now works with h323
+- Answering machine now delays to avoid the dtmf tone when start recording
+- Answering machine now adds the beep behind the announcement file.
+- keypad facility dialing option
+- Conference now really works using call hold feature in conjunction with
+  keypad feature
+- Picking of an incoming call on isdn now really works.
+- picking of a call forwarded to vbox
+- I fixed a bug that did not queue the dialed digits correctly before getting
+  an external connecting.
+- Logfiles of calls now show the correct year.
+- Callback now rejects if no password is given or the given extension doesn't
+  exist.
+- Incoming H.323 calls may now instantly connect using a special option.
+- H323 compiles faster, because the H323 includes are only used for the H323
+  code part.
+- Using 'curses' for a state debugging. The current state of all instances
+  is displayed on the screen including calls, endpoints and ports.
+- manny, manny more things that I forgot
+
+Changes in Version 2.0
+- fixed memory leak
+- fixed COLP bug
+- finally SUSPEND/RESUME (call parking), resume is allowed from any ISDN-port
+- some CRITICAL bugfixes
+- Fixed and reworked sample counting when playing tones. Now fast wind and
+  rewind works correctly. Also 8-bit recording can be played back now.
+  I hope it works now without problems.
+- An internal phone without caller id will now be rejected rather than
+  treated as an extenal call.
+- Fixed bug in rejecting an external call.
+- Corrected handeling of 'inbandpatterns'.
+- Data calls will not enable DTMF detection.
+- Data calls will not use any audio transmission from user space.
+- Forward to VBOX only if call is an audio call.
+- Fixed library bug, that caused not to process keypad-information during
+  setup message.
+- Fixed a 'release_complete' bug.
+- Debug information now have the correct month.
+- Fixed bug of wave-playback of voicebox recoding, caused by rework of the
+  audio routines. It caused a SEGMENTATION FAULT!
+- Using threads now to send email and using libcrypto.
+- Introducing encryption of external calls using Blowfish.
+- Key exchange using RSA.
+- Fixed a bug in dialing H323-IP with numerical digits.
+- Fixed a bug that causes endpoint, which receives audio data, to crash when
+  no port is related to it.
+- Fixed a bug that did not release endpoint, when it receives a disconnect
+  if it has no port (parked).
+- Fixed a channel assignment bug when retrieving call. (second B-channel)
+- Now COLP with H.323 works. No more crash!
+- Park attribute was not set, which caused a crash.
+- Conference now works correctly with dsp-module.
+- Fixed a serious NT-mode process handling problem. (crash after some calls)
+- Added log file which is also displayed on the 'state' screen.
+- * Happy new year 2004 *
+
+Changes in Version 2.1
+- Fixed a bug that caused not to reply external calls (also VBOX).
+- 'genrc' now supports loading HFC-4S, HFC-8S and HFC-E1 drivers
+- Outgoing setup now expires after 8 seconds!
+- Fixed a bug that causes mISDNuser to crash during cleanup.
+- Fixed memory bug, thanx Paul!
+- hfc-4s/8s driver support (mISDN)
+- Improvement of isdn audio processing, hardware support.
+- Fixed diplay callerid bug "anonymousunknown anon"
+- Added more stable malloc (calloc) / free handling
+
+Changes in Version 2.2
+- PRI proof (2 MBit interface support when using HFC-E1)
+- Fixed data call bug
+- Improved display of PRI channels
+- Now VBOX playback says "no messages" if the last message has been deleted
+  and will not play the last but one, unless the "previous" button has been
+  pressed.
+
+Changes in Version 2.3
+- Fixed HFC_MULTI driver activation problem (HW_RESET was not implemented)
+- Fixed login prefix bug. Thanx Karsten V.
+- MISDN: better layer 2 check
+- Now facility informations are transfered during call to terminal
+  (finally advice of charge is displayed) MUST BE ENABLED BY SETTINGS!
+- Fixed 'reply' dialing bug, that caused a crash. Thanx Karsten V.
+- Added L1 activation for NT-Mode. Fixed problems with inactive links.
+- Fixed a bug that caused subsequent data calls after a data call. Thanx JC.
+- mISDN: layer 1 now works correct with E1 cards.
+
+Changes in Version 2.4
+- Fixed parallel ringing to multiple external numbers.
+- Fixed login again (was still buggy).
+
+Changes in Version 2.5
+- Fixed callback bug. (International numbers were not detected.)
+- Fixed typos (mostly "incoming") - thanx Lars.
+- Fixed vbox-email bug - thanx Martin. (and also the compiler error)
+- Fixed compiler bug, that caused compiling without crypto lib to fail.
+- Fixed some mISDN crash problems.
+- Now it should also compile with the original CVS tree.
+- Fixed hfc_multi unloading bug - thanx Karsten!
+- Now disabling DSP_MODULE really causes DSP to be disabled.
+- Now disabling real time scheduling really works.
+- mISDNuser (CVS) now compiles with the mISDN (CVS)
+- Adding the outdial prefix to the caller ID is now possible.
+- Fixed bug that caused echo test not to work.
+- And finally hardware echo now works on HFC 4s/8s/E1 (hfc_multi)
+  For echo dial 993 (Test + 3) for standard configuration.
+- Added new hfc_multi vendor IDs including "Beronet Cards".
+
+Changes in Version 2.6
+- Fixed hookflash bug in conjunction with prefix. Thanx Tobias!
+- Fixed cleanup bug when loading of ISDN driver failed.
+- Fixed mISDN bug that caused cards not to be found, if loaded in different
+  order as found by kernel.
+- Fixed a bug that causes a segfault when a phone disconnects while
+  parallel ringing multiple phones/ports.
+- Added capability for Point-To-Point in NT mode, including PRI.
+- Added L1 link control for NT mode.
+- Fixed bug in hfc_multi and mISDN driver that caused mISDN not to work
+  with kernel > 2.6.7.
+- Fixed a but when detecting different cards with hfc_multi.
+- Fixed timer bug that caused timers of multiple NT ports not to work
+  correctly.
+
+Changes in Version 2.7
+- Fixed lots of bugs.
+- Now receive stream from mISDN is disabled when not needed.
+- Added NT mode support for incoming "SETUP_ACKNOWLEDGE".
+
+Changes in Version 3.0
+- Advanced routing capability to replace the numbering_*.conf
+  (Don't worry, internal and external numbering is a feature of the routing
+  capability and is easy to convert.)
+- Now correct cause location is generated and handled.
+- New cause display feature. Location is displayed with the cause number.
+- Many source cleanups.
+- New interface (Unix socket) to administrate. Status informations are now
+  viewable without restarting PBX. Even may processes may view status info.
+  Starting / stopping state debugging, doesn't require to restart PBX.
+- Status information now has selectable details.
+- Better structure for debugging functions and better logging. (code)
+- Dialing may also be done via command line interface.
+- Now internel/external dialtone and ringing depends on internal/external call.
+- Now endpoints (partys) can be released via command line (admin tool).
+- Watchdog "pbxwatch" to automatically restart and even debug PBX4Linux.
+- Removed problem with uninitialized variable in ISDNPort object causing to
+  crash. It did not happen very often.(only after some hundred/thousand calls)
+- HFC-E1 cards did not correctly synchronize to external lines.
+- dsp.o now allocates only one timeslot per call, as expected.
+- mISDNuser now correctly connects PRI calls.
+- PRI improvements and bugfixes.
+- Support for conference rooms.
+- Voice box is now able to play announcement before connecting the call.
+  A special feature on the external line is required to send audio before
+  answering the call.
+- It is now possible to include seconds (time) in the connect message. This
+  might not be supported by all telephones, so it is an optional feature.
+- Moved open and close of recording audio to the "Port" class, where it
+  belongs. The mixer will be more performant this way.
+- Notify is now supported by mISDN and also correctly handled and queued
+  by PBX.
+- Fixed bug that caused not to free broadcast process IDs in certain cases.
+  This would cause calls to internal phones (from extern or intern) not to
+  work after a while.
+- Added HFC-S USB to 'genrc' tool.
+- printisdn now shows corret month.
+
+Changes in Version 3.0-fix1
+- Rule for changing the forwarding now works. Enter "pbx rules forward" for
+  description. Also the example in "defaults/route.conf" is corrected.
+- Forking now forks twice and suppresses debug output. Closing of shell is
+  possible.
+
+Changes in Version 3.0-fix2
+- Fixed memory leak bug in pbxadmin that caused to eat all memory and make it
+  stop.
+- Fixed audio handling that cause forking calls to be mute. (Parallel
+  forwarding causes calls to fork to multiple destinations.)
+
+Changes in Version 3.0-fix3
+- Added "nopassword" parameter for login action.
+- Fixed bolean condition bug.
+- pbxadmin will not exit if terminal size changes.
+
+Changes in Version 3.1
+- Internal structure changed. "Endpoints" and "applications" are now two
+  linked classes. The code is now reusable for other projects than
+  "PBX4Linux". (No added features!)
+- Some source cleanups.
+- Now keypad must be enabled for each extension if required. (settings)
+- Removed a new bug that caused remotely parked/holded calls not to be removed
+  from conference. The conference got disturbed by park/hold sound from
+  remote.
+- Removed bug that caused printing of unset pointers.
+
+Changes in Version 3.2
+- PBX now works with mqueue branch. This is the latest CVS source:
+  * HFCmulti is ported
+  * HFC-PCI is ported
+  * DSP is ported
+  * nt-mode lib (libi4l) is ported
+  * source is now SMP (multiple processors or hyperthreading) save.
+- Fixed bug that caused not to record if annoucement is missing
+- A prefix may be specified with callback for predefined dialing after
+  callback.
+- Now b-channels are displayed more compressed on admin tool.
+
+Changes in Version 3.3
+- * te-mode works
+- * te-mode layer 1 and layer 2 control works (SHORTMESSAGE)
+
+Changes in Version 3.3-fix2
+- OpenH323 midas release compiles
+- Fixed bug in MESSAGE_NOTIFY which cases display information not to dliver.
+- OpenH323 midas release works currently only with law-codecs
+- Dixed some dial string parsing for Openh323.
+
+Changes in Version 3.3-fix3
+- Rework of kernel audio briding. Much faster (less delay), dynamically
+  handles jitter. Ready for future RTP / ISDNoIP modules.
+
+Changes in Version 3.4
+- Removed DSP_MODULE switch, because it will be essential for PBX operation.
+- Fixed pbxadmin offset bug.
+- Added special feature "efi" to announce caller's ID. You call, and it tells
+  your caller ID. (if available) Sample set is not complete!
+- Now caller ID and type can be given for external call rule.
+- Now caller ID and type can be given for changing caller ID.
+- Removed a display bug in pbxadmin, that caused busy channels to be omitted.
+- Fixed layer 2 handling bug.
+- Increased performance of pbx-status screen. Many interfaces/calls caused
+  lock up of machine.
+- Timeout condition seems to work now.
+- Timeout action seems to work now.
+
+New Verion for new name: LCR
+
+Changes in Version 0.1
+- Statefull b-channel open and closing
+- Rebuild audio flow
+  Made much simpler
+  Preloading and keeping transmit buffer for seamless tones and patterns.
+  Recording of what is actually transmitted and received by party.
+- Logging is replaced by trace
+- New isdn interface and port structure with many features
+  Interfaces can be changed at runtime.
+  Interfaces can be loaded and unloaded at runtime.
+- mISDN stack fixes
+- DDI in and out on all stacks
+- Layer 1 over IP supports interconnection via IP
+- Rebuild line and b-channel hunting with individual lists
+- Screen lists for changing caller IDs
+- Multiplexing calls to multiple extensions
+- Removed all VoIP stuff to make core fast and stable (Use Asterisk for VoIP.)
+- Fixed a bug that caused some isdn connections to hang during disconnect
+- Many bug fixes
+- Many minor improvements
+- New bugs of course...
+- Rename of 'Call' instances to 'Join', because they join parties together.
+- A new remote interface for external applications is integrated
+  -> Our first application is (-: *ASTERISK CHANNEL DRIVER* :-)
+
+Changes in Version 0.2
+- Fixed partyline handling
+- Stall warning
+- Audio recoriding still does not work.
+
+Changes in Version 0.3
+- Added join/release jingle options for partylines
+- Fixed bug that did not release reserved channels, so interface run out of
+  channels.
+- Bugfixes...
+- Minor bugfixes
+****** Major hfc_multi bugfix *******
+* no more crash with multiple cards *
+*************************************
+- Screening bug removed. (Thanx Martin)
+- Wave files with FMT header > 16 now work.
+- Added timeouts for testcall feature. (lcradmin)
+  -> You can run scripts, that generate testcalls of multiple destinations.
+- Added origin flag to correctly process last_in and last_out call logging.
+- Tones and annoucements are not overwritten if exist, during installation.
+- Screening now also works for outgoing calls (to interface)
+- Fixed VBox, also added trace debugging.
+- Nice 'Beep' after the announcement.
+- Special announcement recording without beep.
+- Filters now work for interface.conf
+- Fixed minor audio gain bug.
+- Moved timeout setting from extension to interface.conf.
+
+Changes in Version 0.4
+- Complete set of EFI samples
+
+Changes in Version 0.5
+- Preperations for Asterisk channel driver (chan_lcr)
+- Errors in information elements are now reported inside log/trace.
+- Recover bchannel (de-)activation if message from mISDN got lost
+
+Changes in Version 1.0
+- Bugfixes
+- Complete port to new mISDN V2 API (socket based).
+  -> Old mISDN will not work anymore.
+- Interfaces mode (NT/TE PTP/PTMP) can now be changed at runtime.
+  -> No more module parameters must be given for cards.
+- First Alpha release of chan_lcr - the Asterisk PBX channel link driver.
+  -> Use LCR in conjunction with Asterisk, or simply as ISDN frontend.
+
+Changes in Version 1.1
+- Fixed dtmf bug.
+- Added more display infos
+- Fixed b-channel check bug. (channel seemed busy, even if it was free)
+- Forced proceeding, if "sending complete".
+- Removed 'lcr query'. It is obsolete, because 'isdninfo' does it.
+- Fixed lockinproblem with chan_lcr (hopefully).
+- HDLC now works and is used for B-channels, if required.
+- Briding for chan_lcr fixed, many other fixed for chan_lcr. Overlap dialing!
+- Compiling and 64-bit issues fixed by Karsten.
+- chan_lcr fixes and tests by Peter.
+- LCR now runs as user, but still can be run as root.
+- Ports can now be given with number or with name.
+
+Changes in Version 1.2
+- Changed isdninfo to misdn_info.
+- Fixed some trace bugs.
+- Fixed some layer2-link issues.
+- special interface config option "te-special" to allow transmit of all IEs
+  in TE-mode. this is usefull to interconnect LCRs.
+- Introduceing autoconf (./configure) with help of Joerg and Peter.
+  -> Default installation path remains /usr/local/lcr, so don't worry!
+
+Changes in Version 1.3
+- Finished autoconf.
+- Obsolete "pbxwatch" is removed. 
+
+Changes after Version 1.3 release
+- fixes in chan_lcr, thanx to peter and gregor
+- message pointer forwarding fix, thanx to bodo!
+- capability fix, thanx to gregor
+- processing of second caller id
+- Dialing length can now be limited. EWSD allows only 20 digits at a time.
+  -> Multiple messages are sent to dial full string.
+- Added alerting and proceeding to the goto rule.
+- Added patch by gregory, asterisk should now use faxdetection with mISDN_dsp
+  disabled.
+
+Changes after Version 1.4 release
+- Bugfix: When reloading interfaces, interface will not be reopened, if
+  interface was specified by name.
+- Added PID file (thanx to Joerg)
+- Added Callweaver support. (thanx to Kristijan)
+- Bugfix on timeout rules. (thanx to Benjamin)
+- Fixed dtmf detection of A-D. (thanx to Ralf)
+- Fixed Notification messages in NT-mode
+  -> Notifications like diversions are now sent to terminal.
+- Added l1hold feature (requires new mISDN and mISDNuser).
+- chan_lcr: Fixed compile problem with newer versions.
+- chan_lcr: Open b-channel if asterisk indicates "PROGRESS".
+  -> Also if tones are available, asterisk gets "PROGRESS" indication.
+- lcradmin displays TEI values in NT-mode PTMP
+- Added patch from Daniel
+  -> Improved forking
+  -> Execution action can now be done on call init or on call hangup.
+
+New release Version 1.5
+- Added GSM network support.
+  -> Requires OpenBSC, GSM codec, and a BS11 base station.
+  -> For more refer to www.linux-call-router.de.
+
+Changes after Version 1.5
+- Tones are restructured:
+ -> mISDN_dsp.ko tones must now be specified via 'tones_dir' parameter.
+ -> interface.conf has a tones_dir options for individual interfaces.
+ -> interface.conf has priority over tones_dir in options.conf.
+ -> exnsion's settings has pritority over other tones_dir setting.
+- Debug option now works for GSM.
+- Fixed some GSM information elements.
+- OpenBSC api changes.
+- Fixed disabling of DTMF using 'n' option of chan_lcr.
+- Added GSM IMSI dialing by using dialing "imsi-<number>".
+- Applied API change of OpenBSC.
+- Applied changes of OpenBSC main branch. LCR now works with OpenBSC main
+  branch.
+- Minor fixes and source cleanups.
+- Added patch by Kai Peter to complete screening indicators. Thanx!
+- Join conference during alerting phase, so calls can be forwarded.
+- Fixed conference release bug.
+
+New release Version 1.6
+
+
+
+