hi,
on the easterhegg
2009 we got everything running. even audio worked! and we catched our first imsi
from a public network.
the following things
must be changed in the software:
- sending time slot
1 frames requires a queue and a timer, rather than using "usleep()". sleeping
causes loss of audio and signalling informations. (i work on
that)
- subslots are
in reverse order: slot 2 (0..3) must have mask 00110000 and not
00001100. this causes no audio.
- both time slots (2
and 3) must be configured, or unitialized pointers cause a
crash.
- data link is
available since DL_ESTABLISH_IND is received and not
MPH_*.
- in order to
release layer 2 and unload the driver after stopping of bsc_hack, a special
ioctl must be given after opening socket.
- some little
extras: changing card number and "location area code"
by additional arguments.
@harald | @dieter:
other isdn drivers (windows) have obviously reversed bit order
on transparent channel. bit 0 is exchanged with bit 7 and so on. to
make it work, i did not change the bit order, i just changed the location of the
subslot, and it worked.
i would like to
provide a patch for the solutions above. i will see, if i can do that this
weekend.
furthermore
i like to improve the libbsc:
- provide a real
state machine to the layer 3 with timers. make calls setup and release
cleanly.
- support
transcoding of all information elements.
- remove all
call/subscriber handling from layer 3 and put it into a seperat file (layer
4 call control). it will then be possible to initialize libbsc without the
built-in call control and database, to use it for other applications like
asterisk and linux-call-router.
- add
application interface to traffic channels for transcoding and
switching.
- add support
for libbsc to linux-call-router.
the estimated time
for this will be about 2-3 months. the result will be a complete BSC+MSC with
routing and PBX features and asterisk interface. i will provide a
patch en-block, because i work on all parts at the same
time.
greetinx,
andreas