8 years agoChange Version to 1.14
Andreas Eversberg [Sun, 16 Dec 2012 08:54:44 +0000 (09:54 +0100)]
Change Version to 1.14

8 years agoAdded option to change DTMF decoding threshold level
Andreas Eversberg [Sun, 16 Dec 2012 07:57:57 +0000 (08:57 +0100)]
Added option to change DTMF decoding threshold level

If not given, the DSP modules' default value is used, rather than setting
it to 0. This was a bug.

8 years agoFix: Disable DTMF dialing after first received KP (pulse) digit
Andreas Eversberg [Thu, 22 Nov 2012 13:48:44 +0000 (14:48 +0100)]
Fix: Disable DTMF dialing after first received KP (pulse) digit

Once a pulse digit is detected, it makes no sense to detect DTMF.
Pulses will create distortion with some phones, causing false
detection of DTMF tones.

8 years agoAdd FXS support
Andreas Eversberg [Sun, 16 Dec 2012 08:31:36 +0000 (09:31 +0100)]
Add FXS support

This requires FXS support to mISDN too.

8 years agoFix: 3PTY bridge must check, if other 3PTY member is mISDN or not
Andreas Eversberg [Sat, 8 Dec 2012 09:58:47 +0000 (10:58 +0100)]
Fix: 3PTY bridge must check, if other 3PTY member is mISDN or not

To make decision for mISDN bridge or lcr bridge, it it is required to
check both joins that share same 3PTY bridge.

8 years agochan_lcr: Replaced 'n' (no DTMF) option with 'D' (DTMF)
Andreas Eversberg [Tue, 4 Dec 2012 15:43:12 +0000 (16:43 +0100)]
chan_lcr: Replaced 'n' (no DTMF) option with 'D' (DTMF)

The option 'n' was actually broken. Now it is replaced, because
generated DTMF tones may cause delay to SIP connections.

8 years agoFixed early audio with chan_lcr (Asterisk)
Andreas Eversberg [Tue, 4 Dec 2012 14:41:23 +0000 (15:41 +0100)]
Fixed early audio with chan_lcr (Asterisk)

If progress message is received, go into proceeding state.

Send audio, if proceeding/alerting state, so RTP stream is sent in both
directions. This is essential when using NAT.

8 years agoFixed version issue of chan_lcr
Andreas Eversberg [Tue, 4 Dec 2012 14:38:25 +0000 (15:38 +0100)]
Fixed version issue of chan_lcr

8 years agoUpdated MNCC interface
Andreas Eversberg [Wed, 14 Nov 2012 09:42:55 +0000 (10:42 +0100)]
Updated MNCC interface

The structure of BEARER CAPABILITY has been expanded.

8 years agoSIP: Allow early audio on incomming connections at SIP interface
Andreas Eversberg [Tue, 13 Nov 2012 07:42:31 +0000 (08:42 +0100)]
SIP: Allow early audio on incomming connections at SIP interface

In order to provide internal tones, a clock is used to generate
chunks of 160 samples. If no tones are provided and if audio is
bridged, it is forwarded as usual.

In order to provide early audio on SIP trunk, "tones yes" must be set
at interface.conf.
In order to receive early audio from SIP trunk, "earlyb yes" must be
set at interface.conf.

8 years agoFix: Set correct local RTP port
Andreas Eversberg [Mon, 12 Nov 2012 11:20:27 +0000 (12:20 +0100)]
Fix: Set correct local RTP port

8 years agoFix: Allow recording of audio for SIP/remote/GSM interfaces too
Andreas Eversberg [Tue, 21 Aug 2012 08:34:15 +0000 (10:34 +0200)]
Fix: Allow recording of audio for SIP/remote/GSM interfaces too

8 years agoFix: Track notification messages at partyline too
Andreas Eversberg [Tue, 21 Aug 2012 07:44:33 +0000 (09:44 +0200)]
Fix: Track notification messages at partyline too

This is required, so inactive parties will be marked as beeing "on hold".
These parties will be removed from the bridge, so the partyline is not
disturbed by hold music comming from inactive parties.

Thanx to Atul for pointing to this bug.

8 years agoRemoved obsolete logging code
Andreas Eversberg [Tue, 21 Aug 2012 07:43:50 +0000 (09:43 +0200)]
Removed obsolete logging code

8 years agoFix: Don't forward MESSAGE_TRAFFIC to endpoint instance
Andreas Eversberg [Tue, 21 Aug 2012 06:50:35 +0000 (08:50 +0200)]
Fix: Don't forward MESSAGE_TRAFFIC to endpoint instance

Thanx to Atul for catching this bug

8 years agoFix: Append information (overlap dialing) to Asterisk's extension string
Birger Harzenetter [Tue, 21 Aug 2012 06:44:34 +0000 (08:44 +0200)]
Fix: Append information (overlap dialing) to Asterisk's extension string

Signed-off-by: Andreas Eversberg <>
8 years agoStore caller/dialing info for calls via remote interfaces (chan_lcr)
Andreas Eversberg [Tue, 21 Aug 2012 06:36:33 +0000 (08:36 +0200)]
Store caller/dialing info for calls via remote interfaces (chan_lcr)

8 years agoFix: Polling of file descriptors
Andreas Eversberg [Tue, 21 Aug 2012 06:23:19 +0000 (08:23 +0200)]
Fix: Polling of file descriptors

It is only done when enabled by config or when any SIP interface is

Thanx to Wimpy for catching this bug.

8 years agoFix: chan_lcr must use right context attribute for Asterisk version >= 11
Andreas Eversberg [Tue, 21 Aug 2012 06:07:45 +0000 (08:07 +0200)]
Fix: chan_lcr must use right context attribute for Asterisk version >= 11

8 years agoFix: Bind RTP/RTCP socket pairs correctly
Andreas Eversberg [Mon, 20 Aug 2012 06:56:39 +0000 (08:56 +0200)]
Fix: Bind RTP/RTCP socket pairs correctly

8 years agoFix: Always keep transmit timer on when mISDN channel is open
Andreas Eversberg [Sun, 19 Aug 2012 15:06:45 +0000 (17:06 +0200)]
Fix: Always keep transmit timer on when mISDN channel is open

This way the buffer load is always calculated correctly.

8 years agoFix: Encoding of 3PTY result facility IE
Andreas Eversberg [Sun, 19 Aug 2012 10:33:54 +0000 (12:33 +0200)]
Fix: Encoding of 3PTY result facility IE

8 years agoFix: Send tones/patterns/announcements for remote connections
Andreas Eversberg [Sun, 19 Aug 2012 09:11:59 +0000 (11:11 +0200)]
Fix: Send tones/patterns/announcements for remote connections

8 years agoAdd screening of caller ID for remote (asterisk) connections
Andreas Eversberg [Sun, 19 Aug 2012 08:24:39 +0000 (10:24 +0200)]
Add screening of caller ID for remote (asterisk) connections

8 years agoCleanup: Make interface name be part of Port class
Andreas Eversberg [Sun, 19 Aug 2012 07:42:43 +0000 (09:42 +0200)]
Cleanup: Make interface name be part of Port class

8 years agochan_lcr: Select remote interface by chan_lcr
Andreas Eversberg [Sun, 19 Aug 2012 06:36:45 +0000 (08:36 +0200)]
chan_lcr: Select remote interface by chan_lcr

Usage: Dial(LCR/<interface>/<digits>/<options>)

The interface must match the interface name in interface.conf. If omitted,
the first remote interface is used.

Dial(LCR/ast/123) will send a call to LCR and select remote interface
Dial(LCR//123) will send a call to LCR and select the first remote

Now it is possible to have multiple remote interfaces.

8 years agoFix: Match complete string when filtering for interface
Andreas Eversberg [Sun, 19 Aug 2012 06:35:55 +0000 (08:35 +0200)]
Fix: Match complete string when filtering for interface

8 years agoDisplay source and destination interface at endpoint logging
Andreas Eversberg [Sun, 19 Aug 2012 06:34:32 +0000 (08:34 +0200)]
Display source and destination interface at endpoint logging

8 years agoFix: Prevent Asterisk from aborting when delivering ast_frames
Andreas Eversberg [Sat, 18 Aug 2012 08:10:08 +0000 (10:10 +0200)]
Fix: Prevent Asterisk from aborting when delivering ast_frames

8 years agoFix: LCR's DTMF detection will be enabled and used by default
Andreas Eversberg [Sat, 18 Aug 2012 06:55:01 +0000 (08:55 +0200)]
Fix: LCR's DTMF detection will be enabled and used by default

Using 'n' option will disable it
Using 'a' option will disable it and use Asterisk's DTMF detection instead.

8 years agoFix: Asterisk DTMF detection works now
Andreas Eversberg [Sat, 18 Aug 2012 06:19:42 +0000 (08:19 +0200)]
Fix: Asterisk DTMF detection works now

To enable, use option "a".

-> for calls from LCR use lcr_config(a) in extensions.conf
-> for calls to LCR use Dial(LCR/pbx/<number>/a)

8 years agoFix: chan_lcr will suppress audio traffic until ref is received
Andreas Eversberg [Thu, 16 Aug 2012 06:22:32 +0000 (08:22 +0200)]
Fix: chan_lcr will suppress audio traffic until ref is received

If no ref is received from LCR, the traffic may not be sent to LCR.

8 years agochan_lcr: Disabled bridge, because there is no concept right now.
Andreas Eversberg [Thu, 16 Aug 2012 06:21:43 +0000 (08:21 +0200)]
chan_lcr: Disabled bridge, because there is no concept right now.

8 years agoRemoved obsolete definition of media_type2name() from sip.h
Andreas Eversberg [Fri, 10 Aug 2012 07:58:36 +0000 (09:58 +0200)]
Removed obsolete definition of media_type2name() from sip.h

8 years agoFixed broken chan_lcr of last commit
Andreas Eversberg [Wed, 8 Aug 2012 15:55:27 +0000 (17:55 +0200)]
Fixed broken chan_lcr of last commit

8 years agoFixed compiling of chan_lcr with Asterisk
Andreas Eversberg [Wed, 8 Aug 2012 07:20:02 +0000 (09:20 +0200)]
Fixed compiling of chan_lcr with Asterisk

8 years agoFix: Process tx-load when briding with jitter buffer disabled
Andreas Eversberg [Wed, 8 Aug 2012 07:19:00 +0000 (09:19 +0200)]
Fix: Process tx-load when briding with jitter buffer disabled

8 years agoUpdated default config examples
Andreas Eversberg [Thu, 2 Aug 2012 12:44:19 +0000 (14:44 +0200)]
Updated default config examples

8 years agoFixed parsing capability conditions
Andreas Eversberg [Mon, 30 Jul 2012 20:17:39 +0000 (22:17 +0200)]
Fixed parsing capability conditions

8 years agoDefine prload of mISDN buffer by chan_lcr (required for fax)
Andreas Eversberg [Sun, 29 Jul 2012 12:33:15 +0000 (14:33 +0200)]
Define prload of mISDN buffer by chan_lcr (required for fax)

Use q<ms> option to peload.

8 years agoBump version to 1.13
Andreas Eversberg [Sun, 29 Jul 2012 10:49:08 +0000 (12:49 +0200)]
Bump version to 1.13

8 years agoMaintain states for remote socket connections
Andreas Eversberg [Sun, 29 Jul 2012 10:39:09 +0000 (12:39 +0200)]
Maintain states for remote socket connections

8 years agoImplement 3PTY bridge of two 'join's.
Andreas Eversberg [Sun, 29 Jul 2012 10:18:02 +0000 (12:18 +0200)]
Implement 3PTY bridge of two 'join's.

8 years agoAdd 3PTY facility to invoke conference call via functional protocol
Andreas Eversberg [Sat, 28 Jul 2012 14:24:06 +0000 (16:24 +0200)]
Add 3PTY facility to invoke conference call via functional protocol

8 years agoDon't remove lock, if other LCR is using it
Andreas Eversberg [Sat, 28 Jul 2012 14:04:58 +0000 (16:04 +0200)]
Don't remove lock, if other LCR is using it

8 years agoAdd conference mixing to LCR's internal bridge
Andreas Eversberg [Sat, 28 Jul 2012 09:16:42 +0000 (11:16 +0200)]
Add conference mixing to LCR's internal bridge

Bride allow now to forward between two paries or mix between three to N

8 years agoAdd global variable for Law encoded silence
Andreas Eversberg [Sat, 28 Jul 2012 09:15:30 +0000 (11:15 +0200)]
Add global variable for Law encoded silence

8 years agoChanged bridge structure to hold 1..n members instead of only 1..2
Andreas Eversberg [Sat, 28 Jul 2012 06:21:47 +0000 (08:21 +0200)]
Changed bridge structure to hold 1..n members instead of only 1..2

8 years agoRemoved complete bchannel handling from chan_lcr
Andreas Eversberg [Fri, 27 Jul 2012 15:20:43 +0000 (17:20 +0200)]
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.

8 years agoAllow calls to multiple interfaces simultaniosuly origin/1.13
Andreas Eversberg [Sun, 19 Aug 2012 18:50:10 +0000 (20:50 +0200)]
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.

8 years agoFix: Make GSM BS compile without SIP support
Andreas Eversberg [Fri, 27 Jul 2012 07:07:35 +0000 (09:07 +0200)]
Fix: Make GSM BS compile without SIP support

8 years agoList files for dist that are not picked up automatically from build
Janis Ruksans [Sat, 30 Jun 2012 12:04:23 +0000 (14:04 +0200)]
List files for dist that are not picked up automatically from build
rules; and filter out unnecessary ones for distuninstallcheck.

Signed-off-by: Andreas Eversberg <>
8 years agoReference the sources via $< for chan_lcr, and prefixing with $(srcdir)
Janis Ruksans [Sat, 30 Jun 2012 12:03:32 +0000 (14:03 +0200)]
Reference the sources via $< for chan_lcr, and prefixing with $(srcdir)
otherwise. Note: Autoconf manual says that using $< in ordinary make
rules is not portable, but LCR is Linux specific anyway.

Signed-off-by: Andreas Eversberg <>
8 years agoUse variables set by configure script instead of installing files to a
Janis Ruksans [Sat, 30 Jun 2012 12:02:19 +0000 (14:02 +0200)]
Use variables set by configure script instead of installing files to a
hardcoded location. This is practically the same as the reverted part of
commit 51655a18 except that $(DESTDIR) *is not* prepended to CC defines;
doing so would break staged installs.

Signed-off-by: Andreas Eversberg <>
8 years agoOn many systems /var/run is not world-writeable, and writing PID fails
Janis Ruksans [Thu, 28 Jun 2012 06:11:57 +0000 (08:11 +0200)]
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 <>
8 years agoUse loops for str* checks and to install configuration and tone files,
Janis Ruksans [Thu, 28 Jun 2012 06:06:15 +0000 (08:06 +0200)]
Use loops for str* checks and to install configuration and tone files,
with the actual files listed in make variables.

Signed-off-by: Andreas Eversberg <>
8 years agoThe third parameter to ast_channel_tech.requester is const qualified,
Janis Ruksans [Thu, 28 Jun 2012 06:02:55 +0000 (08:02 +0200)]
The third parameter to ast_channel_tech.requester is const qualified,
causing GCC to emit a warning about incompatible pointer types when
initializing lcr_tech. Fix this by adding necessary const's to lcr_request.

Signed-off-by: Andreas Eversberg <>
8 years agoIf ast_channel struct is not declared before ast_register_application2,
Janis Ruksans [Thu, 28 Jun 2012 06:01:25 +0000 (08:01 +0200)]
If ast_channel struct is not declared before ast_register_application2,
gcc thinks that the implicit declaration in module.h is different from
the one in channel.h, and issues a warning about incompatible pointer
types. A forward declaration before including module.h fixes this.

Due to some brain-deadness in Ast, including channel.h before module.h
causes the compilation fail altogether.

Signed-off-by: Andreas Eversberg <>
8 years agoUse AC_CHECK_TYPE and correct quoting for Asterisk struct checks, and add
Janis Ruksans [Thu, 28 Jun 2012 05:59:48 +0000 (07:59 +0200)]
Use AC_CHECK_TYPE and correct quoting for Asterisk struct checks, and add
case for ind_tone_zone_sound (Asterisk 1.6.0).

Signed-off-by: Andreas Eversberg <>
8 years agoChanges needed for Asterisk TRUNK 357721
Birger Harzenetter [Sun, 24 Jun 2012 06:33:59 +0000 (08:33 +0200)]
Changes needed for Asterisk TRUNK 357721

8 years agoFixed typo
Birger Harzenetter [Sun, 17 Jun 2012 07:35:30 +0000 (09:35 +0200)]
Fixed typo

8 years agoAdds screening of redirecting number
Birger Harzenetter [Sat, 16 Jun 2012 07:52:48 +0000 (09:52 +0200)]
Adds screening of redirecting number

8 years ago[SIP] Allow setting local port for SIP interface
Andreas Eversberg [Sun, 20 May 2012 15:45:56 +0000 (17:45 +0200)]
[SIP] Allow setting local port for SIP interface

8 years agoOnly receive RTP audio data, if connected to remote.
Andreas Eversberg [Sun, 20 May 2012 14:37:27 +0000 (16:37 +0200)]
Only receive RTP audio data, if connected to remote.

8 years agoFixed reloading of interfaces with SIP support
Andreas Eversberg [Sun, 20 May 2012 14:36:06 +0000 (16:36 +0200)]
Fixed reloading of interfaces with SIP support

SIP instance is now moved to new interface list at is should be.

8 years agoChanges for Asterisk TRUNK r357721
Birger Harzenetter [Tue, 17 Apr 2012 10:56:49 +0000 (12:56 +0200)]
Changes for Asterisk TRUNK r357721

Signed-off-by: Andreas Eversberg <>
9 years agoFixed compiling issues when enabling GSM MS side support.
Andreas Eversberg [Sun, 25 Mar 2012 14:41:14 +0000 (16:41 +0200)]
Fixed compiling issues when enabling GSM MS side support.

9 years agoAllow to define MS side GSM interface again
Andreas Eversberg [Sun, 25 Mar 2012 14:40:24 +0000 (16:40 +0200)]
Allow to define MS side GSM interface again

9 years agoBearer Capability is mandatory in CALL CONF. message, if not in SETUP.
Andreas Eversberg [Sun, 25 Mar 2012 14:38:43 +0000 (16:38 +0200)]
Bearer Capability is mandatory in CALL CONF. message, if not in SETUP.

9 years agoWhen socket to LCR is closed, the test call must be released
Andreas Eversberg [Sun, 25 Mar 2012 14:36:19 +0000 (16:36 +0200)]
When socket to LCR is closed, the test call must be released

9 years agoSIP: Adding echo test to do delay test on incomming SIP calls
Andreas Eversberg [Fri, 16 Mar 2012 03:58:23 +0000 (04:58 +0100)]
SIP: Adding echo test to do delay test on incomming SIP calls

9 years agoAdded support for all GSM codecs to GSM and SIP interface
Andreas Eversberg [Thu, 8 Mar 2012 13:44:17 +0000 (14:44 +0100)]
Added support for all GSM codecs to GSM and SIP interface


9 years agoRemoved obsolete #include directive.
Andreas Eversberg [Thu, 8 Mar 2012 06:05:15 +0000 (07:05 +0100)]
Removed obsolete #include directive.

9 years agoMake chan_lcr compile with latest Asterisk.
Birger Harzenetter [Thu, 1 Mar 2012 07:47:13 +0000 (08:47 +0100)]
Make chan_lcr compile with latest Asterisk.

9 years agoFixed chan_lcr unload bug, found by Patrick
Andreas Eversberg [Thu, 1 Mar 2012 07:40:28 +0000 (08:40 +0100)]
Fixed chan_lcr unload bug, found by Patrick

9 years agoMake appbridge.cpp compile, even without mISDN support.
Alexander Huemer [Thu, 1 Mar 2012 06:51:26 +0000 (07:51 +0100)]
Make appbridge.cpp compile, even without mISDN support.

9 years agoFixed release of relations between bridge and interface instances (ports)
Andreas Eversberg [Tue, 21 Feb 2012 17:03:43 +0000 (18:03 +0100)]
Fixed release of relations between bridge and interface instances (ports)

9 years agoAdded support to chan_lcr for Asterisk version > 10
Wimpy [Tue, 21 Feb 2012 10:42:20 +0000 (11:42 +0100)]
Added support to chan_lcr for Asterisk version > 10

9 years agoAdded support of mISDN to direct bridge feature
Andreas Eversberg [Tue, 21 Feb 2012 10:32:31 +0000 (11:32 +0100)]
Added support of mISDN to direct bridge feature

Now it is possible to directly bridge:

- GSM with SIP
- GSM with ISDN
- SIP with ISDN

9 years agoAllow setting IP:port for peers of SIP interfaces.
Andreas Eversberg [Sat, 18 Feb 2012 08:50:43 +0000 (09:50 +0100)]
Allow setting IP:port for peers of SIP interfaces.

9 years agoUse dynamic RTP payload types starting from 96
Andreas Eversberg [Sat, 18 Feb 2012 08:49:57 +0000 (09:49 +0100)]
Use dynamic RTP payload types starting from 96

9 years agoAllow dynamic RTP payload types when bridging between SIP and OpenBSC.
Andreas Eversberg [Fri, 17 Feb 2012 14:38:54 +0000 (15:38 +0100)]
Allow dynamic RTP payload types when bridging between SIP and OpenBSC.

Because EFR/AMR/HR codecs use dynamic RTP payload types, it is essential
to forward the actual media types between endpoints too. These media
types are used for negotiation of codecs. A dynamic payload type is
used as given by remote peer. Locally generated payload types are used
when offering codecs to remote peer.

9 years agoSIP: minor fixes
Andreas Eversberg [Fri, 17 Feb 2012 11:31:54 +0000 (12:31 +0100)]
SIP: minor fixes

9 years agoBump version to 1.12
Andreas Eversberg [Sun, 5 Feb 2012 19:30:48 +0000 (20:30 +0100)]
Bump version to 1.12

9 years agoautoconf: Fixed detection of mISDN headers
Andreas Eversberg [Sat, 4 Feb 2012 06:43:36 +0000 (07:43 +0100)]
autoconf: Fixed detection of mISDN headers

9 years agoAdding negotiation of speech codecs between GSM and SIP when using rtp-bridge
Andreas Eversberg [Wed, 1 Feb 2012 16:52:36 +0000 (17:52 +0100)]
Adding negotiation of speech codecs between GSM and SIP when using rtp-bridge

Since LCR does not put hands on any RTP frame when directly bridged between
OpenBSC and SIP, it will now allow all speech codecs that are commonly supported
by MS and remote SIP endpoint.

It must be noted that OpenBSC must support forwarding the codec types that
MS and remote SIP endpoints support.

Currently LCR negotiates the following codecs for GSM:
- Full Rate
- Half Rate

9 years agoDisabled NUTAG_AUTO100, Entering PROCEEDING state after sending INVITE
Andreas Eversberg [Fri, 27 Jan 2012 07:35:55 +0000 (08:35 +0100)]
Disabled NUTAG_AUTO100, Entering PROCEEDING state after sending INVITE

This also includes unfinished overlap dialing code.

9 years agoAdding switch to compile LCR without mISDN support
Andreas Eversberg [Fri, 27 Jan 2012 06:27:52 +0000 (07:27 +0100)]
Adding switch to compile LCR without mISDN support


Otherwise it will be enable automatically, if mISDN user is installed.

9 years agoGSM now receives tones during bridge
Andreas Eversberg [Sat, 21 Jan 2012 16:50:45 +0000 (17:50 +0100)]
GSM now receives tones during bridge

If a bridge is enabled, tones (e.g. hangup tone) will have priority
over the bridge. The bridge will continue to forward audio, after
tone is removed. (e.g after beeing on hold music)

9 years agoAdding handling of bad GSM audio frames
Andreas Eversberg [Fri, 20 Jan 2012 19:28:55 +0000 (20:28 +0100)]
Adding handling of bad GSM audio frames

In this case the frame is dropped, but audio of the last frame is repeated
with a reduced level. The level is reduced again an again until a new
valid frame is received. This way there is no silent gap in the audio

9 years agoFixed dead pointer problem when handling interfaces
Andreas Eversberg [Fri, 20 Jan 2012 09:05:41 +0000 (10:05 +0100)]
Fixed dead pointer problem when handling interfaces

In order to get the pointer to the currently existing interface, a
new function is used, to resolve interface by name.

9 years agoMinor fix in interface.conf example
Andreas Eversberg [Fri, 20 Jan 2012 09:05:17 +0000 (10:05 +0100)]
Minor fix in interface.conf example

9 years agoAdding TX-dejitter feature for briged data to mISDN
Andreas Eversberg [Fri, 20 Jan 2012 07:58:27 +0000 (08:58 +0100)]
Adding TX-dejitter feature for briged data to mISDN

In case there is data bridged to an mISDN port, the TX-dejitter feature
is enabled in the kernel, to keep the delay at a minimum.

9 years agoCorrectly control brige in case of mISDN
Andreas Eversberg [Fri, 20 Jan 2012 07:56:51 +0000 (08:56 +0100)]
Correctly control brige in case of mISDN

If all ends in a call use mISDN, the bridging is done by mISDN itself.
If one end of a call is not mISDN and there are two parties, the
traffic is bridged via LCR.

9 years agoFixed audio bridge to mISDN ports
Andreas Eversberg [Thu, 19 Jan 2012 08:44:48 +0000 (09:44 +0100)]
Fixed audio bridge to mISDN ports

Audio must be bridged, even if the call is not connected, but if
audio data is already available.

9 years agoFixed 'earlyb' handling
Andreas Eversberg [Thu, 19 Jan 2012 08:14:58 +0000 (09:14 +0100)]
Fixed 'earlyb' handling

mISDN-TE ports receive audio patterns by default again.

9 years agoAdding simple bridge application to forward calls without PBX app.
Andreas Eversberg [Mon, 16 Jan 2012 08:14:22 +0000 (09:14 +0100)]
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

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.

9 years agoForward DTMF as message directly from GSM BS to SIP.
Andreas Eversberg [Sun, 15 Jan 2012 09:51:58 +0000 (10:51 +0100)]
Forward DTMF as message directly from GSM BS to SIP.

In case rtp-bridge is used, tones cannot be generated. Instead,
a message is forwarded to SIP endpoint, so it generates it itself.

9 years agoAdded bridgin support for GSM and SIP
Andreas Eversberg [Sun, 15 Jan 2012 08:42:35 +0000 (09:42 +0100)]
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.

9 years agoAdding bridge between protocol handlers (ports)
Andreas Eversberg [Sat, 14 Jan 2012 17:36:26 +0000 (18:36 +0100)]
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.