11
0
Fork 0
Obsolete experimental Asterisk channel driver for obsolete old OpenBSC/OsmoNITB
This repository has been archived on 2022-03-30. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Sylvain Munaut a4d6aa7463 Use astobj2 for priv structure management
This brings locking and refcounting. I considered using
the astobj container as well but it has serious problems
and it's simpler to just keep using a linked list. The
'race condition' issue will not be a problem given where
we use the 'find' call so ...

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2009-10-02 10:02:28 +02:00
.gitignore Update the build system 2009-09-26 23:13:21 +02:00
LICENSE Initial import: Base skeleton of an asterisk module 2009-09-26 13:04:04 +02:00
Makefile Add required OpenBSC files and lib to the build 2009-09-26 23:13:21 +02:00
README Update README with detailled build & usage instructions 2009-09-28 14:45:27 +02:00
chan_openbsc.c Use astobj2 for priv structure management 2009-10-02 10:02:28 +02:00
openbsc-mncc-bridge-rtp.diff openbsc patch: Fix debug message (forgot to dereferent ptr) 2009-09-29 20:53:05 +02:00
openbsc.conf.sample Add code for RTP setup/cleanup and basic channel integration 2009-09-29 08:33:29 +02:00

README

============
chan_openbsc
============

Channel driver for the OpenBSC project ( http://openbsc.gnumonks.org/ )


Building
--------

This module is made for the asterisk 1.6.2 branch.

To build it, you'll need the asterisk sources (configured, so it's best
if it's the sources you installed from) and the OpenBSC source.

The default makefile assumes that the asterisk sources are in ../asterisk
and the OpenBSC sources are in ../openbsc . If it's not the case, you
can override those locations with the ASTSRC & OPENBSCSRC variables
respectively.

You first need to compile OpenBSC itself, but since in asterisk it will
be in a dynamic module you need to make sure to (re-)build it with :

$ make CFLAGS=-fPIC

Once that's done, you can just type make in the ast_chan_openbsc directory
and it should build without problems.

If you have build problems, please fix and submit patch :)


Using
-----

Using it is pretty straightforward:

* Make sure OpenBSC works standalone

  Using bsc_hack, you should test that OpenBSC itself works, that your
  openbsc.cfg is properly setup and that your subscribers are in the
  HLR sqlite3 database.

* Configure the channel driver

  Just place an 'openbsc.conf' in your asterisk configuration directory,
  using the . The two main required parameters are the location of the
  OpenBSC .cfg file and of the HLR database.

* Install the channel driver module

  You need to copy the chan_openbsc.so in the asterisk module directory,
  usually /usr/lib/asterisk/modules/ . In theory asterisk auto-loads modules
  but if you have a custom configuration, you may need to make sure it's
  loaded in modules.conf of asterisk.

* Start asterisk

  "Soon" after asterisk is started, the nanoBTS should connect and start
  broadcasting the network.

* To place a call

  You need a target extensions in your extensions.conf , something like

  exten => _2XXX,1,Dial(OpenBSC/${EXTEN:1}, 20, rt)

  The part after the "OpenBSC/" is the extension as registred in the
  OpenBSC HLR database.


Limitations
-----------

Wow, there is so many, here's a few ones:

 - ip.access nanoBTS only
 - Can't reload the module, have to restart asterisk.