Commit Graph

63 Commits

Author SHA1 Message Date
Andreas Eversberg cdca6a7135 Fixed usage of uninitialized memory, thax to valgrind 2017-10-31 06:16:09 +01:00
Andreas Eversberg 155d3b5a1d GSM: Fixes to GSM interface (multiple networks)
* Multiple network instances are now possible to attach multiple networks
* Early audio handling fixed
* Number type can be given from base station (setup / setup confirm)
* Equal callref for different GSM-MS instances are handled correctly
2017-07-26 08:39:44 +02:00
Andreas Eversberg e233557e40 Experimental crypto feature: Support for libvootp 2015-12-15 07:59:12 +01:00
Andreas Eversberg 42b2772d78 Fixed several compiler warnings 2015-12-15 07:52:20 +01:00
Andreas Eversberg cde9a763b1 Fix: Polling of file descriptors
It is only done when enabled by config or when any SIP interface is
created.

Thanx to Wimpy for catching this bug.
2012-12-16 10:11:46 +01:00
Andreas Eversberg 623ef90b50 Don't remove lock, if other LCR is using it 2012-12-16 10:10:33 +01:00
Andreas Eversberg f6aea744f8 Removed complete bchannel handling from chan_lcr
The remote application interface does not allow any bchannel to be
exported or imported. Audio traffic via socket interface is used instead.

The joinremote instance became obsolete and is removed.

The remote action (routing) became obsolete, use interface.conf instead.

The handling of loopback device became obsolete and was removed

The chan_lcr does not rely on mISDN anymore, that means:
- can be used with GSM and without mISDN at all.
- chan_lcr can be used as internal extension of LCR (e.g. SIP phone)
  (chan_lcr can be handled as any other interface)
- no loopback device to be used anymore.
2012-12-16 10:10:32 +01:00
Janis Ruksans b0764b4677 On many systems /var/run is not world-writeable, and writing PID fails
if LCR is not being run as root. The lock directory, on the contrary,
must be writable by the lcr process, and can be configured by the user.

Signed-off-by: Andreas Eversberg <jolly@eversberg.eu>
2012-06-28 08:11:57 +02:00
Andreas Eversberg f851ca0d9e Adding switch to compile LCR without mISDN support
Disable:
--without-misdn
Enable:
--with-misdn

Otherwise it will be enable automatically, if mISDN user is installed.
2012-01-27 07:27:52 +01:00
Andreas Eversberg 877a2dfd52 Adding bridge between protocol handlers (ports)
This is required to bridge traffic beween non-mISDN handlers,
such as GSM, SIP and voice box. Also it bridges traffic between
mISDN handlers and non-mISDN handlers. It is the fundamental step
to get rid of mISDN (loop interface) for non-mISDN handlers.
This is required to bridge audio e.g. between SIP and GSM without
using mISDN. There will be no limitations on 'b-channels' anymore.

Still GSM and SIP requires mISDN, but this will be changed later.

With that bridge I cleaned up some code and also removed the
MESSAGE_DATA, which is not required anymore.
2012-01-14 18:36:26 +01:00
Andreas Eversberg 863bc64219 Adding basic SIP support, using Sofia-SIP stack
This support is just a simple peer-to-peer support for basic calls.

Currently it requires mISDN_l1loop interface, as every non-ISDN
interface does. Later it will be possible to use it without.
2012-01-13 06:24:21 +01:00
Andreas Eversberg e9c834b844 Various minor fixes 2012-01-13 05:18:49 +01:00
Andreas Eversberg 2106a9212c Adding "fflush" to debug.log.
This is usefull when using "tail -f". The debug will be written to
the debug.log file right when the debug function is called.
2011-10-15 09:29:44 +02:00
Andreas Eversberg 97aa0881be Support of GSM uses socket interface for both network and mobile
There is no linking of any osmocomBB source code required. In order
to use osmocomBB or OpenBSC, just enable the interface, as described
in defaults/interface.conf. At osmocomBB/mobile or at OpenBSC, just
use the option "-m" to enable the socket interface.

Enable GSM at LCR with "./configure --with-gsm-ms --with-gsm-bs".
2011-09-02 11:08:56 +02:00
Andreas Eversberg 39a36cb99a Make LCR compile with latest osmocomBB code.
The libosmocore structure has changed.
2011-07-20 12:59:35 +02:00
Andreas Eversberg 34598a3464 [gsm] Make LCR work with current Osmocom-BB.
Osmocom-BB is still developed, and this only works with the jolly/voice
branch. Audio is not yet transmitted, so it is not quite usefull yet.
2011-02-26 16:49:21 +00:00
Harald Welte d40eedaf16 Modify GSM BS (OpenBTS) to use unix domain socket based MNCC
Author:    Harald Welte <laforge@gnumonks.org>
2011-02-20 11:30:27 +01:00
Andreas Eversberg 7308159228 [GSM_BS] Added DTMF support. 2011-02-20 10:40:29 +01:00
Andreas Eversberg 3a8f58ec89 Adding interface support for remote app (chan_lcr).
chan_lcr can be handled as an interface. This way it is possible to (e.g.):
- make a SIP phone become an LCR extension with all LCR features.
- make conference calls. (untested)
- perform parallel ringing. (ISDN phone and SIP phones can ring in
  parallel.)
- do voice recoding.

It is still also possible to link chan_lcr directly without interface
(as before).

Documentation/howto for that will follow.
2010-12-13 09:22:49 +01:00
Andreas Eversberg f522af5539 Fixed API and incomming calls from Osmocom-BB.
Conflicts:

	Makefile.in
	configure
2010-07-21 12:12:23 +02:00
Andreas Eversberg a12d7eee22 Splitted GSM support into BS (network) and MS (mobile) part. 2010-05-31 18:45:02 +02:00
Andreas Eversberg 882882e0e2 Added 'polling' option to options.conf.
This is usefull to test if select loop causes problems and does not wake
when it is required. If lcr seems not to wake up, try using 'polling' to
disable select timer and use polling instead.
2010-03-17 10:43:04 +01:00
Andreas Eversberg 2732c3ce40 Fixed output problems of error messages while parsing options.conf / gsm.conf.
modified:   Makefile.in
	modified:   bchannel.c
	modified:   chan_lcr.c
	modified:   genext.c
	modified:   gsm.cpp
	modified:   gsm.h
	modified:   gsm_conf.c
	modified:   lcradmin.c
	modified:   main.c
	modified:   options.c
	modified:   options.h
2010-03-17 08:31:07 +01:00
Andreas Eversberg 0c65074b5b Fixed compiler warnings when compiling with gcc 4.3.4.
Fixed names of moved include files (OpenBSC).

	modified:   Makefile.am
	modified:   Makefile.in
	modified:   README
	modified:   chan_lcr.c
	modified:   configure
	modified:   configure.ac
	modified:   genrc.c
	modified:   gentones.c
	modified:   genwave.c
	modified:   gsm.cpp
	modified:   mISDN.cpp
	modified:   main.c
	modified:   port.cpp
	modified:   tones.c
	modified:   trace.c
2010-03-11 14:07:20 +01:00
Andreas Eversberg b0bd74e35e Replaced polling loop for LCR and chan_lcr with select based event loop.
Now LCR and chan_lcr will not use any CPU until there is work to do.
2010-01-16 11:20:23 +01:00
Andreas Eversberg 323cbc387b Added support for signalling system no. 5.
More infos will follow on the isdn4linux mailing list.

	modified:   Makefile.am
	modified:   Makefile.in
	modified:   README
	modified:   apppbx.cpp
	modified:   configure
	modified:   configure.ac
	modified:   default/options.conf
	modified:   dss1.cpp
	modified:   ie.cpp
	modified:   interface.c
	modified:   interface.h
	modified:   lcradmin.c
	modified:   lcrsocket.h
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   main.c
	modified:   main.h
	modified:   port.h
	modified:   socket_server.c
	new file:   ss5.cpp
	new file:   ss5.h
	new file:   ss5_decode.c
	new file:   ss5_decode.h
	new file:   ss5_encode.c
	new file:   ss5_encode.h
2009-09-26 13:20:29 +02:00
root e9bfe48fc5 Source cleanup.
modified:   bootstrap.c
	modified:   cause.c
	modified:   crypt.cpp
	modified:   endpoint.cpp
	modified:   genext.c
	modified:   genrc.c
	modified:   gentones.c
	modified:   genwave.c
	modified:   ie.cpp
	modified:   join.cpp
	modified:   joinpbx.cpp
	modified:   joinremote.cpp
	modified:   lcradmin.c
	modified:   mail.c
	modified:   main.c
	modified:   message.c
	modified:   route.c
	modified:   socket_server.c
	modified:   tones.c
	modified:   trace.c
	modified:   vbox.cpp
2009-07-05 22:14:21 +02:00
Andreas Eversberg 20a671d768 Added GSM network support.
This turns LCR into a GSM mobile switching center.
More infos will follow.
2009-05-11 11:07:58 +02:00
Andreas Eversberg b2f6c87b1b Check if pid file did not open.
modified:   main.c
2009-03-15 10:19:45 +01:00
Andreas Eversberg c6a9035ac6 Added PID file (thanx to Joerg)
modified:   README
	modified:   main.c
2009-03-15 09:20:20 +01:00
Andreas Eversberg bf61575a94 changed error message a bit...
added support for asterisk 1.6. it now compiles with both 1.4 and 1.6. (tested with 1.4 only) thanx to gregor for his valuable help!

	modified:   bchannel.c
	modified:   chan_lcr.c
	modified:   config.h.in
	modified:   configure
	modified:   configure.ac
	modified:   lcradmin.c
	modified:   main.c
2009-01-06 18:34:05 +01:00
Andreas Eversberg 6f1ac87333 Fixed trace bugs.
modified:   README
	modified:   interface.c
	modified:   lcradmin.c
	modified:   mISDN.cpp
	modified:   main.c
	modified:   socket_server.c
	modified:   trace.c
	modified:   vbox.cpp
2008-09-14 12:27:11 +02:00
Andreas Eversberg 2ce5c9f92f Corrected error print, if mISDN_dsp.ko module cannot be loaded.
modified:   README
	modified:   bchannel.c
	modified:   mISDN.cpp
	modified:   main.c
2008-09-12 07:43:21 +02:00
Karsten Keil 7f5c1d1e2e Fix missing argument
open with O_CREATE need 3 args.

Signed-off-by: Karsten Keil <kkeil@suse.de>
2008-09-03 20:57:58 +02:00
Karsten Keil 08aad9a8c5 Fix lot of warnings 2008-09-02 02:02:11 +02:00
Andreas Eversberg b1ab2b9ac1 LCR now runs as a user.
You may change the path of socket and lock files.
LCR admin socket's flags can now be altered to allow access to other users.
Lock and socket files will now be removed when terminating LCR.

	modified:   Makefile
	modified:   chan_lcr.c
	modified:   default/options.conf
	modified:   lcradmin.c
	modified:   lcrsocket.h
	modified:   main.c
	modified:   options.c
	modified:   options.h
	modified:   socket_server.c
2008-08-30 08:24:52 +02:00
schlaile a114e74299 rebuffer option for chan_lcr (160 bytes per frame)
l1-link state "unknown" if not known yet.

removed root user check.

	modified:   bchannel.c
	modified:   bchannel.h
	modified:   chan_lcr.c
	modified:   chan_lcr.h
	modified:   dss1.cpp
	modified:   lcradmin.c
	modified:   mISDN.cpp
	modified:   main.c
2008-07-20 19:33:28 +02:00
Super User 89d3a5de47 removed "lcr query", use "isdninfo" instead.
fixed some unlocking in chan_lcr.

fixed dead-lock issue with chan_lcr.

	modified:   README
	modified:   chan_lcr.c
	modified:   chan_lcr.h
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   main.c
2008-07-18 19:26:32 +02:00
Super User d2b113f2c4 changed long to int (64 bit system's compatibilty) 2008-06-14 08:34:50 +02:00
Super User cbc232643c work on chan_lcr: bridging works, interface selection possible
modified:   Makefile
	modified:   apppbx.cpp
	modified:   apppbx.h
	modified:   bchannel.c
	modified:   bchannel.h
	modified:   chan_lcr.c
	modified:   chan_lcr.h
	modified:   dss1.cpp
	modified:   genext.c
	modified:   joinremote.cpp
	modified:   joinremote.h
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   macro.h
	modified:   main.c
	modified:   message.h
	modified:   options.c
	modified:   options.h
	modified:   socket_server.c
2008-06-06 15:18:59 +02:00
Super User 026b04fc75 LCR is now uses socket based mISDN V2 API
*** chan_lcr, the Asterisk interface works (not complete yet).
-> LCR can be used as Asterisk channel driver.

	modified:   Makefile
	modified:   Makefile.am
	modified:   README
	modified:   action.cpp
	modified:   apppbx.cpp
	modified:   bchannel.c
	modified:   bchannel.h
	modified:   callerid.c
	modified:   cause.c
	modified:   chan_lcr.c
	modified:   chan_lcr.h
	modified:   configure.ac
	modified:   default/routing.conf
	modified:   dss1.cpp
	modified:   dss1.h
	modified:   genrc.c
	modified:   ie.cpp
	modified:   interface.c
	modified:   lcradmin.c
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   main.c
	modified:   main.h
	modified:   message.h
	modified:   myisdn.h
	modified:   route.c
	modified:   socket_server.c
	modified:   trace.h
2008-06-01 18:52:10 +02:00
Super User 9ae0e0e4e2 mISDN-socket port opens
modified:   mISDN.cpp
	modified:   main.c
2008-05-02 21:40:31 +02:00
Super User 16488a0156 SOCKET BRANCH:
los,ais,rdi,slip
query works!
opening socket almost works :)
2008-05-02 21:19:06 +02:00
Super User a130bdd9f6 struct message -> struct lcr_msg 2008-04-25 09:06:20 +02:00
Super User 01c427aa46 work
modified:   chan_lcr.c
	modified:   mISDN.cpp
	modified:   main.c
2008-04-24 19:35:55 +02:00
Super User da21ec0158 work on socket
modified:   bchannel.c
	modified:   dss1.cpp
	modified:   dss1.h
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   main.c
	modified:   main.h
	modified:   q931.h
	modified:   trace.h
2008-04-12 18:24:31 +02:00
Super User d9d954e58d socket api work
modified:   apppbx.cpp
	modified:   cause.c
	modified:   dss1.cpp
	modified:   dss1.h
	modified:   ie.cpp
	modified:   interface.c
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   main.c
	modified:   main.h
	modified:   message.c
	modified:   options.c
	modified:   port.cpp
	modified:   q931.h
	modified:   route.c
	modified:   socket_server.c
	modified:   tones.c
2008-03-24 11:13:44 +01:00
Super User 83477c7faf fixes, screen in and out works, fixed release problem in mISDNuser
modified:   Makefile
	modified:   README
	modified:   action.cpp
	modified:   apppbx.cpp
	modified:   apppbx.h
	modified:   dss1.cpp
	modified:   extension.c
	modified:   interface.c
	modified:   interface.h
	modified:   main.c
	modified:   port.cpp
	modified:   tones.c
	modified:   trace.c
	modified:   trace.h
2008-01-05 22:58:22 +01:00
Super User 59b8aa3194 removed some usleep debugging, so audioprocessing will not hang 2007-09-23 09:43:30 +02:00
Super User ce197cab91 backup 2007-08-26 15:23:58 +02:00