Commit Graph

546 Commits

Author SHA1 Message Date
Janis Ruksans 61c1f38082 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 <jolly@eversberg.eu>
2012-06-28 08:02:55 +02:00
Janis Ruksans ad9a780ce7 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 <jolly@eversberg.eu>
2012-06-28 08:01:25 +02:00
Janis Ruksans 1c32d75c7e 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 <jolly@eversberg.eu>
2012-06-28 07:59:48 +02:00
Birger Harzenetter 14da759465 Changes needed for Asterisk TRUNK 357721 2012-06-24 08:33:59 +02:00
Birger Harzenetter 221ad36c26 Fixed typo 2012-06-17 09:35:30 +02:00
Birger Harzenetter eab9beeb9b Adds screening of redirecting number 2012-06-16 09:52:48 +02:00
Andreas Eversberg 3e1c6a9f43 [SIP] Allow setting local port for SIP interface 2012-05-20 17:45:56 +02:00
Andreas Eversberg 89a525b798 Only receive RTP audio data, if connected to remote. 2012-05-20 16:37:27 +02:00
Andreas Eversberg 736182d6fd Fixed reloading of interfaces with SIP support
SIP instance is now moved to new interface list at is should be.
2012-05-20 16:36:06 +02:00
Birger Harzenetter 9f9b721735 Changes for Asterisk TRUNK r357721
Signed-off-by: Andreas Eversberg <jolly@eversberg.eu>
2012-04-17 12:56:49 +02:00
Andreas Eversberg 1ba1417331 Fixed compiling issues when enabling GSM MS side support. 2012-03-25 17:08:45 +02:00
Andreas Eversberg 30f74eec76 Allow to define MS side GSM interface again 2012-03-25 17:08:40 +02:00
Andreas Eversberg afe2e32ae1 Bearer Capability is mandatory in CALL CONF. message, if not in SETUP. 2012-03-25 17:08:36 +02:00
Andreas Eversberg c1f7899663 When socket to LCR is closed, the test call must be released 2012-03-25 17:08:00 +02:00
Andreas Eversberg 863e741714 SIP: Adding echo test to do delay test on incomming SIP calls 2012-03-16 04:58:23 +01:00
Andreas Eversberg 97fb04eee9 Added support for all GSM codecs to GSM and SIP interface
Untested!
2012-03-08 14:44:17 +01:00
Andreas Eversberg b3d8622de3 Removed obsolete #include directive. 2012-03-08 07:05:15 +01:00
Birger Harzenetter 9efd4aed44 Make chan_lcr compile with latest Asterisk. 2012-03-01 08:47:13 +01:00
Andreas Eversberg 9464c059e6 Fixed chan_lcr unload bug, found by Patrick 2012-03-01 08:40:28 +01:00
Alexander Huemer 7b11cdb684 Make appbridge.cpp compile, even without mISDN support. 2012-03-01 07:51:26 +01:00
Andreas Eversberg 4a7489749f Fixed release of relations between bridge and interface instances (ports) 2012-02-21 18:03:43 +01:00
Wimpy 65ce8fa13a Added support to chan_lcr for Asterisk version > 10 2012-02-21 11:42:20 +01: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 58afedec93 Allow setting IP:port for peers of SIP interfaces. 2012-02-18 09:50:43 +01:00
Andreas Eversberg 302368de48 Use dynamic RTP payload types starting from 96 2012-02-18 09:49:57 +01:00
Andreas Eversberg e1e9da7d24 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.
2012-02-17 15:38:54 +01:00
Andreas Eversberg 507d22099d SIP: minor fixes 2012-02-17 12:35:19 +01:00
Andreas Eversberg 26e74d6a9a Bump version to 1.12 2012-02-05 20:30:48 +01:00
Andreas Eversberg b5aad71a2f autoconf: Fixed detection of mISDN headers 2012-02-04 07:43:36 +01:00
Andreas Eversberg f854931ffb 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
- EFR
- AMR
- Half Rate
2012-02-01 17:52:36 +01:00
Andreas Eversberg 306ed3c7f1 Disabled NUTAG_AUTO100, Entering PROCEEDING state after sending INVITE
This also includes unfinished overlap dialing code.
2012-01-27 08:35:55 +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 57defecea8 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)
2012-01-21 17:50:45 +01:00
Andreas Eversberg 1e778230b9 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
stream.
2012-01-20 20:28:55 +01:00
Andreas Eversberg 03e00d7b37 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.
2012-01-20 10:05:41 +01:00
Andreas Eversberg 810c051a69 Minor fix in interface.conf example 2012-01-20 10:05:17 +01:00
Andreas Eversberg 67e162715d 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.
2012-01-20 08:58:27 +01:00
Andreas Eversberg 5b3a112115 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.
2012-01-20 08:56:51 +01:00
Andreas Eversberg 145f8adab1 Fixed audio bridge to mISDN ports
Audio must be bridged, even if the call is not connected, but if
audio data is already available.
2012-01-19 09:44:48 +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 d928442c51 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.
2012-01-15 10:51:58 +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 e9c834b844 Various minor fixes 2012-01-13 05:18:49 +01:00
Andreas Eversberg 57a91e52d4 Adding shutdown option to interface.conf
This way an interface can be disabled by just one keyword
and not by uncommenting all lines of it.
2012-01-13 05:13:30 +01:00
Andreas Eversberg 29ba196ca5 Fixed NULL-pointer bug when unloading of GSM interfaces 2012-01-07 09:34:51 +01:00
Andreas Eversberg e9dd99a401 chan_lcr: Minor fix for Asterisk versions >= 10
subclass.codec or subclass is not part of frame anymore.
2012-01-03 11:29:43 +01:00
Arnold Schulz 77bacac2bd For chan_lcr with Asterisk 1.8, set the codec type of a frame into the correct
union member ast_frame_subclass::codec (instead of ast_frame_subclass::integer).

The old code caused an error in some environments, eg big endian Arm (armeb):
"__ast_read: Dropping incompatible voice frame on lcr/1 of format alaw ..."

Signed-off-by: Arnold Schulz <arnysch@gmx.net>
Signed-off-by: Andreas Eversberg <andreas@eversberg.eu>
2011-11-08 16:14:57 +01:00