Commit Graph

31 Commits

Author SHA1 Message Date
Andreas Eversberg b4154ef742 SIP: Add DTMF support (receive INFO only) 2018-12-24 14:10:46 +01:00
Andreas Eversberg d464cce683 more sip fixes 2018-12-24 13:39:58 +01:00
Andreas Eversberg c4ae1ca985 some sip fixes 2018-11-03 16:00:39 +01:00
Andreas Eversberg 79bd731c0d SIP: Fix incoming re-invite 2018-09-29 21:22:21 +02:00
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 07c94b7319 Added patch to fix sofia-sip compiler issue 2017-10-31 07:24:53 +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 0f0568583f SIP: Extract IMSI from SIP URI
OpenBTS forwards IMSI via SIP name. In order to allow routing decision
by IMSI, the IMSI must be extracted from SIP name.
2013-01-06 08:58:16 +01:00
Andreas Eversberg 1fd1d5d17c 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.
2012-12-16 10:11:47 +01:00
Andreas Eversberg 9e6a068f25 Fix: Set correct local RTP port 2012-12-16 10:11:47 +01:00
Andreas Eversberg d3b4611440 Fix: Allow recording of audio for SIP/remote/GSM interfaces too 2012-12-16 10:11:47 +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 0d719518fb Fix: Bind RTP/RTCP socket pairs correctly 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 2ccf098ec0 Fix: Make GSM BS compile without SIP support 2012-08-01 12:16:47 +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
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 58afedec93 Allow setting IP:port for peers of SIP interfaces. 2012-02-18 09:50:43 +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 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 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 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