Commit Graph

89 Commits

Author SHA1 Message Date
Andreas Eversberg 00675eb48b SIP: Register, STUN and authentication support...
- Register works in both ways
- STUN works as client
- Authentication to remote endpoints only
- Early audio (183) works in both directions
- Caller ID works in both directions

Note: The implementation is only a small subset of many SIP features.
2017-12-21 20:35:40 +01:00
Andreas Eversberg 034d3a9140 Data-Over-Voice
An experimental feature to send and receive an identification over
voice channel.

If a party answers, the ID is transmitted some seconds afterwards.
The calling party listens 30 seconds after receiving an answer message
for the ID.

Add to your extension's settings file:

dov_ident  <id string without white spaces>
dov_log    /path/to/log/file
dov_type   pwm|pcm
dov_level  0|level

'pwm' survives analog transcoding.
'pcm' is fast and will almost not be recognised.
'level' can be used to alter default signal amplitude (100..30000).
2015-12-15 14:27:23 +01: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 2ea1d7ee45 Fix: Only screen caller ID 2 and redir ID when existing
Thanx to Wimpy for pointing to this bug.
2012-12-17 06:12:39 +01:00
Andreas Eversberg acaf278f7f Add FXS support
This requires FXS support to mISDN too.
2012-12-16 10:12:44 +01:00
Andreas Eversberg d19b20fa4e Removed obsolete logging code 2012-12-16 10:11:46 +01:00
Andreas Eversberg 7f0d14c706 Cleanup: Make interface name be part of Port class 2012-12-16 10:11:46 +01:00
Andreas Eversberg 948b837669 Display source and destination interface at endpoint logging 2012-12-16 10:10:34 +01:00
Andreas Eversberg 3f7ef909c9 Define prload of mISDN buffer by chan_lcr (required for fax)
Use q<ms> option to peload.
2012-12-16 10:10:33 +01:00
Andreas Eversberg 04fc928a2c Implement 3PTY bridge of two 'join's. 2012-12-16 10:10:33 +01:00
Andreas Eversberg 30224b43e2 Add 3PTY facility to invoke conference call via functional protocol 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
Andreas Eversberg 6911e09b77 Allow calls to multiple interfaces simultaniosuly
For external calls, the list of interfaces is used to select the first
available/not busy interface. If the interface list is stated with +,
the call is forked to all interfaces.
2012-08-19 20:55:02 +02:00
Birger Harzenetter eab9beeb9b Adds screening of redirecting number 2012-06-16 09:52:48 +02:00
Andreas Eversberg 1ba1417331 Fixed compiling issues when enabling GSM MS side support. 2012-03-25 17:08:45 +02:00
Andreas Eversberg d6866316df Added support of mISDN to direct bridge feature
Now it is possible to directly bridge:

- GSM with SIP
- GSM with ISDN
- SIP with ISDN
2012-02-21 11:32:31 +01: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 ef0eddbfec Fixed 'earlyb' handling
mISDN-TE ports receive audio patterns by default again.
2012-01-19 09:14:58 +01:00
Andreas Eversberg 74a7fe54a8 Adding simple bridge application to forward calls without PBX app.
Call received on an interface can directly be forwarded to a given
destination interface, instead of routing the call through PBX
application. This way calls can be forwarded without going through
route.conf.

Currently only SIP and GSM destinations are supported. Also there
are no tones generated, if one side provides no tones, but the
other wants to receive them.

The keyword "bridge <output interface>" in interface.conf is used.
Without that keyword, incomming calls are handled as usual.
2012-01-16 09:14:22 +01:00
Andreas Eversberg 5463e1b62a Added bridgin support for GSM and SIP
The dependency on mISDN (loopback interface) is completely removed
from GSM and SIP interfaces.

The built in bridge of LCR now forwards audio data between these
interface instances or between these instances and other instances.

Additionally both GSM BS and SIP support direct forwarding of RTP
traffic between  other SIP endpoint and OpenBSC, so no traffic is
forwarded by the LCR itself. This is done by forwarding RTP peer
informations between these interface instances.
2012-01-15 09:42:35 +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 fc71648320 Fixed buffer overflow bug at pickup feature 2010-12-28 16:25:24 +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 108a0eb482 Adding forwarding of DTMF and keypad between peers
This is needed for peers that require DTMF messages, rather than tones:
- GSM mobile stations
- Asterisk channel API

	modified:   apppbx.cpp
	modified:   apppbx.h
2010-12-13 09:06:38 +01:00
Andreas Eversberg afff70dcff Fixed call forwarding after no response. Instread of dialing the old extension
again, the forwarding number is dialed after timeout.

	modified:   apppbx.cpp
	modified:   apppbx.h
	modified:   socket_server.c
2010-06-15 08:29: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 be404a4926 Added Progress messages. (receive only) 2010-05-23 13:46:26 +02:00
Andreas Eversberg 5b5923141c Fixed forwarding of sending-complete information.
modified:   Makefile.in
	modified:   README
	modified:   action.cpp
	modified:   apppbx.cpp
2010-05-20 05:54:59 +02:00
Andreas Eversberg b33d7b898d fix last remnant of "extern" vs. incorrect "external" confusion, correct spelling
Patch against current git.

Signed-off-by: Andreas Mohr <andi@lisas.de>
Signed-off-by: Andreas Eversberg <jolly@eversberg.eu>
2010-04-06 15:23:23 +02:00
Andreas Eversberg 76c5d82d4c Added "release" action and timeout to "execute" action.
modified:   README
	modified:   action.cpp
	modified:   apppbx.cpp
	modified:   apppbx.h
	modified:   dss1.cpp
	modified:   mISDN.cpp
	modified:   message.h
	modified:   route.c
	modified:   route.h
	modified:   socket_server.c
2010-01-16 11:42:46 +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 a1fb92f493 Fixed dialing of national or international number type. (Used for GSM) 2010-01-04 19:13:40 +01:00
Andreas Eversberg 3ac6881c22 Added keypad forwarding, keypad parameter, chan_lcr keypad option 'k'.
modified:   README
	modified:   action.cpp
	modified:   apppbx.cpp
	modified:   chan_lcr.c
	modified:   chan_lcr.h
	modified:   dss1.cpp
	modified:   joinpbx.cpp
	modified:   joinpbx.h
	modified:   message.h
	modified:   route.c
	modified:   route.h
2009-10-27 08:02:16 +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
Andreas Eversberg feea42c7f7 Added 'extern' flag to interface.conf.
If no specific interface is given for the 'extern' rule in the
routing.conf, or if call is forwarded (settings), then only
interfaces marked with 'extern' flag are used.
You need to set this flag when upgrading to this version. See
default/interface.conf for hint.

	modified:   README
	modified:   apppbx.cpp
	modified:   default/interface.conf
	modified:   interface.c
	modified:   interface.h
2009-09-23 10:07:00 +02:00
root 2188efe2cc New Version 1.6
Fix of conference release bug.
Calls can now be forwarded during alerting phase via "*3#".

	modified:   README
	modified:   apppbx.cpp
	modified:   configure
	modified:   configure.ac
	new file:   default/openbsc.cfg
	modified:   dss1.cpp
	modified:   gsm.cpp
	modified:   joinpbx.cpp
2009-09-06 15:36:36 +02:00
Andreas Eversberg 063d622d53 Fixed disabling of DTMF using 'n' option of chan_lcr.
Please enter the commit message for your changes.
	modified:   README
	modified:   apppbx.cpp
	modified:   bchannel.c
	modified:   chan_lcr.c
	modified:   chan_lcr.h
2009-05-21 19:11:39 +02:00
Andreas Eversberg 6db34c1dca Restructured tones_dir, added tones_dir to interface.conf
Code cleanup..

	modified:   README
	modified:   apppbx.cpp
	modified:   default/interface.conf
	modified:   default/options.conf
	modified:   dss1.cpp
	modified:   extension.c
	modified:   gsm.cpp
	modified:   interface.c
	modified:   interface.h
	modified:   mISDN.cpp
	modified:   options.c
	modified:   options.h
	modified:   port.cpp
2009-05-14 20:31:43 +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 efc550418c Added processing of second caller id.
New routing macht rule to filter second caller id.

Fixed extensions directory path.

"make clean" now cleans ".po" files.

Fixed unititialized variable bugs and compiler warnings.

	modified:   Makefile.am
	modified:   Makefile.in
	modified:   action.cpp
	modified:   apppbx.cpp
	modified:   callerid.c
	modified:   chan_lcr.c
	modified:   dss1.cpp
	modified:   dss1.h
	modified:   extension.c
	modified:   gentones.c
	modified:   ie.cpp
	modified:   mISDN.cpp
	modified:   message.h
	modified:   port.cpp
	modified:   route.c
	modified:   route.h
	modified:   socket_server.c
	modified:   tones.c
	modified:   trace.c
2008-11-04 09:31:09 +01:00
Andreas Eversberg 6d3d13def3 fixed some layer 2 link issues
modified:   README
	modified:   apppbx.cpp
	modified:   lcradmin.c
	modified:   mISDN.cpp
	modified:   route.c
2008-09-14 14:37:51 +02:00
Karsten Keil 08aad9a8c5 Fix lot of warnings 2008-09-02 02:02:11 +02:00
Super User ff4d197d5e now LCR features real HDLC bchannel mode.
-> if initial caller uses pure data mode (or video), the bchannels for this call are handled in HDLC mode. (hardware/software briding is still applicable.)

	modified:   apppbx.cpp
	modified:   chan_lcr.c
	modified:   dss1.cpp
	modified:   dss1.h
	modified:   lcradmin.c
	modified:   lcrsocket.h
	modified:   mISDN.cpp
	modified:   mISDN.h
	modified:   message.h
	modified:   socket_server.c
2008-07-26 17:42:16 +02:00
Super User acc5e55f7f added more display info
fixed dtmf detection bug

	modified:   README
	modified:   apppbx.cpp
	modified:   dss1.cpp
	modified:   message.h
2008-07-03 19:08:37 +02:00
Super User 609582c9ae fixed dialing bug to remote application
modified:   action.cpp
	modified:   apppbx.cpp
	modified:   chan_lcr.c
	modified:   mISDN.cpp
2008-06-15 14:29:09 +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