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.
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.
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
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.
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.
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.
-> 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
call instance and asterisk channel instance creation and destruction process
please read the comments on the top of chan_lcr.
modified: apppbx.cpp
modified: chan_lcr.c
modified: chan_lcr.h
modified: message.h
this recovers 'hang' of bchannel if the reply message got lost due to buffer overflows
fixed some minor warnings
modified: Makefile
modified: README
modified: action_efi.cpp
modified: apppbx.cpp
modified: dss1.cpp
modified: interface.c
modified: mISDN.cpp
modified: mISDN.h
modified: message.h