Hello,
second try to add support to bs11_config for bport0/1 configuration. This
time with enum abis_bs11_line_cfg.
It seems sometimes creating bport1 fails, even LMT shows create obj
greyed out. Don't know why yet.
Regards,
Daniel Willmann
Daniel Willmann (1):
Add {create,delete}-bport1 and bport0-{star,multidrop} to bs11-config
openbsc/include/openbsc/abis_nm.h | 10 +++++++++-
openbsc/src/abis_nm.c | 31 +++++++++++++++++++++++++++++--
openbsc/src/bs11_config.c | 26 ++++++++++++++++++++++++++
3 files changed, 64 insertions(+), 3 deletions(-)
Hey,
I think in the next days I will go around the sourcecode and change a couple
of logging messages. My two primary goals are increase the usefulness to figure
out what was going wrong and the second to be able to put some of these into
the syslog. Should we use DEBUG* to also log to syslog or introduce a new set
of macros?
Log Levels:
I think Harald has expressed the wish to introduce log levels. Should we
follow the log levels of syslog(3)?
Messages:
I would like to collect formats for various actions. Currently I'm thinking of
the following but would like to have more input.
subscriber:
When talking about a subscriber use TMSI, IMSI and Extension.
lchan:
Include refcount, channel type, link_id, subscriber
sccp:
Talk about SCCP source local reference and pointer
transaction:
Print the transaction?
gsm0408:
Print the lchan which prints the subscriber?
comments?
holger
From: Steffen Neubauer <stefreak(a)stefreak.de>
- Added function "gsm340_scts" to decode the service center time stamp
into a UTC/GMT timestamp
- in function gsm340_validity_period: can now decode validity period
format absolute.
I hope it's good ;)
Greetings,
Steffen
Hi all!
I've pushed the current state of GPRS support into the 'gprs' branch. All the
'core' changes related to GPRS are already in master, so it mainly really adds
the GPRS protocols (gprs_{ns,bssgp,llc}.[ch]) as well as the handling of the
most importnat 04.08 GMM messages (gsm_04_08_gprs.[ch]) as well as the state
management for the SGSN MM context (gprs_sgsn.[ch]).
The status of the code is as follows:
* NS link and BSSGP link are established between OpenBSC and the nanoBTS
* LLC frames from the MS get delivered to the OpenBSC LLC code
* GMM messages sent over LLC are delivered to the GMM code
* The GMM code tries to respond with useful answers, permitting
GPRS attach as well as routing area update
What's missing:
* any kind of GGSN functionality, i.e. gatewaying to PPP daemon for actual
user payloads
* persistant storage of SGSN MM context information, especially the
attach/detach status, routing area and P-TMSI of a subscriber
* PDP context activation/deactivation
* flow control for the BTS as well as for each MS (BSSGP level)
* retransmissions and things like acknowledged mode of LLC
* support for multiple BTS
There's really only one extremely ugly hack in the code right now,
and that is that the IP address of the BTS is hard-coded in the
ipac_gprs_send() function. You will have to enter the IP address
of your BTS there to make packets in the SGSN->BTS direction delivered.
Apart from that, I think the code is at a state where other interested
developers can start playing with it. I am leaving to Korea on a customer
assingment tomorrow and will unlikely have time to work on any GPRS code
throughout the next two weeks.
To get the code going, you should do the following things:
* chceck out the gprs branch
* hard-code your ip address into ipac_gprs_send() as indicated above
* change your openbsc.cfg to use the last timeslot (TS 7) as "TCH/F_PDCH"
instead of just "TCH/F"
Patches / Bug reports / ... welcome
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
hi harald,
> sorry for not getting back earlier. I honestly did not realize that
there
> was a second attachment to your mail. We typically use inline
patches, and one
> patch per mail on this list. Once again, sorry for the delay.
next time i will send the patches inline...
> I'm now looking at the code in detail, I shall be getting back to you
at some
> point during the next days.
in order to remove md5 code, you can use a simple XOR to mix the input
data.
i think it is good enough to not select the same random number as the
base station.
regards,
andreas
hi there,
i found the problem with the delayed audio between application and the
nanoBTS. the reason was the timestamp. a delay in openbsc causes packets
to be delayed 1/2 seconds, so many packet of 1/2 seconds arrived at
nanoBTS after the delay at once, nanoBTS buffers them.
the reason for the delay was the "usleep(100000)" hack inside
input/ipaccess.c. the patch will use the tx_timer instead, so openbsc
and application will not stall. this timer was already used with BS11
messages. (there it uses 50 miliseconds instead of 100 miliseconds.)
sending 10 messages to nanoBTS will take almost one second. can we
decrease the tx_timer value for nanoBTS? how many packets can handle
nanoBTS per second?
also i fixed some bugs in the rtp patch. use rtp_2.patch for
commission/discussion instead.
regards,
andreas
> Currently the branch is doing:
> - Stops borrowing the gsm_subscriber to the lchan
> - Fixes leaks in the vty_interface_layer3.c code for subscriber
action
> - Fixes a subscriber leak (actually two) in mncc_send.
>
> if wanted I can attach the patches to this mail to ease reviewing.
what branch is it? do i need additional patches? i use the master with
the RTP patch applied.
hi holger,
i would like to test it. but before i can do that, i need to know what
ressource are actually counted.
for example: a transaction holds one ressource, paging holds one
ressource, as well as a channel that is associated to that subscriber's
transaction.
what about sms? shold an object of "struct gsm_sms" be counted as one
ressource, or each sender/receiver within this structure, or all
together (one for the sms, one for the sender and one for the receiver)?
i need a list of all subscriber ressources for gsm_04_11.c
regards,
andreas
Hi!
I've updated the system_information branch. The purpose of this branch
is to move away from static u_int8_t arrays that are used as templates
for the SYSTEM INFORMATION messages. Thise arrays are reminiscent of the
old days of bs11_init, where everything had been done this way.
The current head of system_information is now managing to actually do that.
The full SI1-SI4 on the BCCH as well as the SI5/SI6 on the SACCH are now
created from scratch (see code in system_information.c)
The content of the SI is "phase 1" content, i.e. before rest octets were
introduced
I've also written some code to generate the rest octets, as well as a some
"rest octet encoding aware" bit vector routines that understand the meaning of
0/1/L/H.
However, those rest octet routines are not yet used. They need some careful
testing before use. Testing is actually quite hard, as not even wireshark
has dissector for the system information messages (anyone interested in
contributing on this? It's needed for airprobe, too)
One interesting bit that stalled development for quite some time: If you send
a SACCH FILLing with length > 18 bytes, then the nanoBTS will actually crash
somewhere in the layer 2, sending you long error strings with addresses
(stack?) as error reports before rebooting :)
Feel free to start testing the system_information branch if you're interested.
I'd be happy to hear any "master works for my phone, but system_information
branch confuses my phone" kind of reports.
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi!
Holger has asked me to send an update on the status of the wireshark patches
that we have in git:
gsm_a_rr-rrlp.patch and abisip.patch are mainline wireshark, they can
be removed from our git tree.
abis_oml.patch:
* does not yet dissect all the different 12.21 IEs, especially not
all of the standard IEs
* does not yet differentiate between BTS types. We need a preference where
we can select the BTS model in order to really pars all the messages, plus
vendor dependent IE tables
* might possibly use non-standard C language syntax and thus not be portable
to micrsofot compilers on windows. not sure what the wireshark requirements
are in that regard
rsli-ipaccess.patch:
* does not support all of the ip.access RSL extensions yet
* no major reason why it should nt be merged to wireshark
* additional ip.access RSL extensions can be sent as incremental patches
lucent-hmb.patch
* this is just a minimal stub, should be completed more before
submitting anywhere
--
- Harald Welte <laforge(a)gpl-violations.org> http://gpl-violations.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hey,
the clang C frontend has found some issues in our OpenBSC code. I think we
will need to have a table for BS11 and one for ipaccess with the shared/speced
elements being in both tables.
Here is the list of things I can resolve myself right now:
[NM_ATT_IPACC_FREQ_CTRL] = { TLV_TYPE_FIXED, 2 }
[NM_ATT_IPACC_FREQ_CTRL] = { TLV_TYPE_TV, },
these vendor specific commands have the same value:
[NM_ATT_IPACC_NS_CFG] = { TLV_TYPE_TL16V },
[NM_ATT_BS11_BIT_ERR_THESH] = { TLV_TYPE_FIXED, 2 },
[NM_ATT_IPACC_BSSGP_CFG] = { TLV_TYPE_TL16V },
[NM_ATT_BS11_BOOT_SW_VERS] = { TLV_TYPE_TLV },
^~~~~~~~~~~~
[NM_ATT_IPACC_RLC_CFG] = { TLV_TYPE_TL16V },
[NM_ATT_BS11_CCLK_ACCURACY] = { TLV_TYPE_TV },
^~~~~~~~~~~
[NM_ATT_IPACC_ALM_THRESH_LIST]= { TLV_TYPE_TL16V },
[NM_ATT_BS11_CCLK_TYPE] = { TLV_TYPE_TV },
^~~~~~~~~~~
[NM_ATT_IPACC_CODING_SCHEMES] = { TLV_TYPE_TL16V },
[0xa8] = { TLV_TYPE_TLV },
[NM_ATT_IPACC_UPTIME] = { TLV_TYPE_TL16V },
[NM_ATT_BS11_L1_PROT_TYPE] = { TLV_TYPE_TV },
[NM_ATT_IPACC_RLC_CFG_3] = { TLV_TYPE_TL16V },
[NM_ATT_BS11_LINE_CFG] = { TLV_TYPE_TV },
[0x85] = { TLV_TYPE_TV },
[NM_ATT_IPACC_STREAM_ID] = { TLV_TYPE_TV, },
Hi,
IIRC Harald et all. were seeing GSM subscriber leakage at HAR2009 and we have
not yet explored the cause of this problem. I would like to have no subscriber
leaks for the congress and propose the following changes.
I have pushed the "holger/subscr-ref-handling" branch to our repository and
would be happy if people could give it a spin. My testing here is pretty
limited.
Currently I have two commits. The second is removing a leak in the vty console
for SMS sending and subscriber usage and the other patch is trying to stop
borrowing someone else's gsm_subscriber reference. More details below.
Currently we do lchan->subscr = new_subscr and then we have two flavors of
checking if the channel is already used. I have changed this to use a new
assignment function that will do the check consistently and updated call
sites.
I would establish the following guideline for gsm_subscriber handling:
In every method where subscr_get* is called the subscriber must be released at
the exit with subscr_put unless the referenced provider is assigned to a
struct that is created in the same method, then the subscriber must be
released next to the talloc_free.
More details:
- paging.c seems fine
- gsm_subscriber_chan seems fine
- gsm_04_08_utils.c seems fine
- gsm_04_08.c seems fine now as well. subscr_get/_put should be balanced
- gsm_04_11.c if we leak a subscriber we also leak a sms I have not
checked all SMS paths to be sure we don't leak there.
I would be very happy if people could test this.
z,
Hello Sylvain,
On Mon, 26 Oct 2009 10:19:55 +0100, "Sylvain Munaut" <246tnt(a)gmail.com> wrote:
>
> So a lot of phones seem to support this and with assistance data could
> maybe provide a location.
> Did you try to correlate IMEI manufacturer part with the messages ?
No, not yet.
> Do you have any log of a successful response ? Maybe I screw up the
> encoding of the position somehow.
Yes, here is an example. This is the response from the phone
42 11 00 00 6A 57 9F B6 41 29 B1 B0 10 8D 84 00 6C 9C 9C 01 B1 0C
This is decoded PDU (asn1c was used):
PDU ::= {
referenceNumber: 2
component: MsrPosition-Rsp ::= {
locationInfo: LocationInfo ::= {
refFrame: 0
gpsTOW: 6969247
fixType: 1
posEstimate: 90 4A 6C 6C 04 23 61 00 1B 27 27 00 6C 43
}
}
}
And those are the coordinates from "posEstimate" (I did not care about
the height):
52.329040 - 52 19'44" N
5.819342 - 5 49' 9" E
Best regards,
Dieter
--
Dieter Spaar, Germany spaar(a)mirider.augusta.de
Hello,
here is a summary of the RRLP requests from HAR2009. It is the summary
from a time periode of about 10 hours near the end of the event.
Total number of RRLP responses: 2179
"methodNotSupported" response: 122
"notEnoughSats" response: 667
"gpsAssDataMissing" response: 1368
Successful positions returned: 22
Number of different phones: 86
Phones which returned "methodNotSupported": 5
Phones which returned a position: 7
Requested assitance data for the "gpsAssDataMissing" response:
530 Navigation Model, Reference Location, Reference Time
468 Navigation Model, Reference Location
141 Navigation Model
123 Almanac, Navigation Model, Reference Location, Reference Time
58 Almanac, Navigation Model, Reference Location, Reference Time,
Real-Time Integrity
27 Almanac, Navigation Model, Reference Location
13 Almanac, UTC Model, Ionospheric Model, Navigation Model,
Reference Location, Reference Time, Real-Time Integrity
5 Reference Location
3 Navigation Model, Reference Time
And this was the request sent to the phones:
PDU: 40 01 78 A8
referenceNumber 2
msrPositionReq
methodType msBased
Accuracy 60
positionMethod gps
measureResponseTime 2
useMultipleSets oneSet
Best regards,
Dieter
--
Dieter Spaar, Germany spaar(a)mirider.augusta.de
Hello Sylvain,
On Sun, 25 Oct 2009 19:50:53 +0100, "Sylvain Munaut" <246tnt(a)gmail.com> wrote:
> Does anyone have a clue ?
You already had a look at TS 44.031 ? It describes the RRLP procedures
in detail. It also mentiones that the RRLP maximum PDU size is 242 bytes
and that you have to use RRLP pseudo-segmentation to deliver larger PDUs,
however it also mentiones that "legacy" MS and SMLC may exceed this PDU
size.
Best regards,
Dieter
--
Dieter Spaar, Germany spaar(a)mirider.augusta.de
Hi,
I've been working on improving RRLP support lately. Most precisely,
providing real assistance data sourced directly from a GPS receiver
attached to the control PC.
My problem right now is that the generated APDU is about 1500 bytes
and obviously there is no way that fits in a single L3 frame.
GSM 04.08 9.1.53 describes the format of the APDU and there is a 4
bits flag fields, which from what I understand occupies the 4 upper
fields of the first octet and that allows fragmentation. From reading
the IE description in 10.5.2.49 I should set :
0x10 for the first segment
0x30 for the intermediate segments
0x20 for the last segment
Which is what I tried, by modifying the gsm48_send_rr_app_info
function like this : http://yourpaste.net/3558/
Unfortunately, I couldn't make it work. When I set the segment size to
try and have L3 frame of 251 bytes, I get some RSL error back and when
I use a smaller size, the MS seems to interpret each segment
separately and not reconstituting them ...
Does anyone have a clue ?
Sylvain
Here's a log, where you see the MS answering independently to the 3
segments (with errors since you can't just decode partial data ...):
<0002> gsm_04_08.c:280 lchan (bts=0,trx=0,ts=0,ch=0) decreases usage to: 0
<0004> gsm_04_08.c:901 -> LOCATION UPDATE ACCEPT
<0002> gsm_04_08_utils.c:144 (bts 0 trx 0 ts 0 pd 05) Sending 0x02 to MS.
l3_len = 14
<0004> gsm_04_08.c:1222 -> MM INFO
<0002> gsm_04_08_utils.c:144 (bts 0 trx 0 ts 0 pd 05) Sending 0x32 to MS.
l3_len = 22
<0008> gsm_04_08.c:1651 TX APPLICATION INFO id=0x00, len=688
<0008> gsm_04_08.c:1669 TX APPLICATION INFO Segment ofs=0 len=230 id=10
<0002> gsm_04_08_utils.c:144 (bts 0 trx 0 ts 0 pd 06) Sending 0x38 to MS.
l3_len = 234
<0008> gsm_04_08.c:1669 TX APPLICATION INFO Segment ofs=230 len=230 id=30
<0002> gsm_04_08_utils.c:144 (bts 0 trx 0 ts 0 pd 06) Sending 0x38 to MS.
l3_len = 234
<0008> gsm_04_08.c:1669 TX APPLICATION INFO Segment ofs=460 len=228 id=20
<0002> gsm_04_08_utils.c:144 (bts 0 trx 0 ts 0 pd 06) Sending 0x38 to MS.
l3_len = 232
<0001> abis_rsl.c:1282 channel=(bts=0,trx=0,ts=0) chan_nr=0x20 sapi=0
DATA INDICATION
<0004> gsm_04_08.c:1438 TMSI Reallocation Completed. Subscriber: 206205003327508
<0001> abis_rsl.c:1282 channel=(bts=0,trx=0,ts=0) chan_nr=0x20 sapi=0
DATA INDICATION
<0020> gsm_04_08.c:1594 RX APPLICATION INFO id/flags=0x00 apdu_len=2 apdu=48 20
<0010> abis_rsl.c:997 channel=(bts=0,trx=0,ts=0) chan_nr=0x28
CONNECTION FAIL: CAUSE=0x01(Radio Link Failure) RELEASING.
<0010> abis_rsl.c:720 RF Channel Release CMD
channel=(bts=0,trx=0,ts=0) chan_nr=0x28
<0010> abis_rsl.c:997 channel=(bts=0,trx=0,ts=0) chan_nr=0x28 RF
CHANNEL RELEASE ACK
<0001> abis_rsl.c:1282 channel=(bts=0,trx=0,ts=0) chan_nr=0x20 sapi=0
DATA INDICATION
<0020> gsm_04_08.c:1594 RX APPLICATION INFO id/flags=0x00 apdu_len=2 apdu=88 10
<0010> abis_rsl.c:720 RF Channel Release CMD
channel=(bts=0,trx=0,ts=0) chan_nr=0x28
<0010> abis_rsl.c:997 channel=(bts=0,trx=0,ts=0) chan_nr=0x28 RF
CHANNEL RELEASE ACK
<0001> abis_rsl.c:1282 channel=(bts=0,trx=0,ts=0) chan_nr=0x20 sapi=0
DATA INDICATION
<0020> gsm_04_08.c:1594 RX APPLICATION INFO id/flags=0x00 apdu_len=2 apdu=c8 00
<0001> abis_rsl.c:1282 channel=(bts=0,trx=0,ts=0) chan_nr=0x20 sapi=0
RELEASE INDICATION
<0010> abis_rsl.c:720 RF Channel Release CMD
channel=(bts=0,trx=0,ts=0) chan_nr=0x20
<0010> abis_rsl.c:997 channel=(bts=0,trx=0,ts=0) chan_nr=0x20 RF
CHANNEL RELEASE ACK
<0002> gsm_subscriber_base.c:150 subscr 201 usage decreased usage to: 0
- Improved handling of extension-number string (as per review)
- Guard against a buffer-overflow if mobile sends a too-long USSD
- declare some function-parameters const
- fix gsm_ts_name function to display the right BTS number (bts->nr
rather than bts->bts_nr)
Hope this all looks OK...
Best regards, Mike H.
hi,
i also did my part: http://events.ccc.de/congress/2009/wiki/index.php/Linux-Call-Router
harald, you may add yours to the projects category: http://events.ccc.de/congress/2009/wiki/index.php/Category:Projects.
if you would like to join with me, then go ahead, link your project to my page and increase the number of seats, and note on both project pages that both projects are together in one area.
if anyone requires special equipment, let me know or bring it yourself. e.g. if we like to play with OpenBTS in conjunction with Asterisk, we need another server, since my server is in use for the ISDN/ASTERISK/DECT <-> GSM link.
andreas
-----Ursprüngliche Nachricht-----
Von: Alexander Chemeris [mailto:alexander.chemeris@gmail.com]
Gesendet: Montag, 12. Oktober 2009 22:18
An: Harald Welte
Cc: Andreas.Eversberg; openbsc; openbts-discuss(a)lists.sourceforge.net
Betreff: Re: Running an licensed experimental GSM network at 26c3
Hi Harald, David, Andreas,
On Sun, Oct 11, 2009 at 13:19, Harald Welte <laforge(a)gnumonks.org> wrote:
> On Sat, Oct 10, 2009 at 09:33:31PM +0400, Alexander Chemeris wrote:
>> We'll bring one or two our USRPs for OpenBTS testing even if David Burgess
>> won't be able to come, and we would love to be located near OpenBSC guys
>> and you. But that'll be our first time at 26C3 and we're little bit
>> lost - should we send some request to get the space?
>
> I think the process for applying for tablespace in the hackcenter has not yet
> started.
>
> Meanwhile I've created a http://events.ccc.de/congress/2009/wiki/index.php/GSM
> wiki page where we can add stuff to, similar to the 25C3 and HAR2009.
Great, thank you. I'll keep my eye on it.
Hello,
yesterday I got a ip.access nano BTS
MODEL 165B V33 PCS 1900
for 133 Euro (incl. shipping) on Ebay.
The seller has maybe more in stock...
I know, that it`s only 1900 band but maybe interesting for some people.
regards
Bjoern
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Björn Heller
Jabber: tec(a)jabber.hellercom.de
Hi Harald, thanks for the review comments. Patch (attached) for the
USSD branch addresses the first issue you highlighted - static variables
have been eliminated.
Best regards, Mike H.
Hi all!
With the current code in the 'gprs' branch, I am able to get the NS (08.16) and
BSSGP (08.18) layers up and running with the nanoBTS.
The NS RESET and TEST procedures are running fine, as well as the BSSGP RESET
and BLOCK procedures.
I now need to work on patching the system information to indicate GPRS support
and add a SI13 message.
Hopefully at that point, it is possible to receive LLC frames that are being
sent by the MS.
Ignoring Mobility Management for now and considering only single-BTS operation
of GPRS, the biggest remaining items are:
* understand LLC better and implement it
* implement SNDCP
* how to interface the actual network (using pty's with pppd on top)
* make things more dynamic rather than static at compile time
Regards,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi all,
JFYI: There's some progress on the nanoBTS multi-TRX configuration.
It seems it was my mistake. Setting the TRX0 unit ID to 1801/0/0 and the TRX1
unit ID to 1801/0/1 works using ipaccess-config.
If you then connect the TIB cable (TRX0 TIB out -> TRX1 TIB in) and reboot
both nanoBTS, you will get a single A-bis OML connection from 1801/0/0 where
you get software activate requests for both transceivers.
Somehow we're not handling them correctly yet from our abis_nm code, but that
should be easy to solve. I'm working at it.
So Dieter and others: No need to worry about this at the moment, we're very
close now and I think it is no problem for the 26C3.
Regards,
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi Mike!
Some comments:
* it would have been good to Cc the mailinglist when you re-posted the patch,
this way more eyes are on the code
* I've looked at it but unfortunately there's a number of issues. That's
why I've committed it to a new 'ussd' branch in git.
* I've pushed an incremental patch as commit that cleans up the coding style
issues that I had seen with the code
There are also issues with the actual code that I'd like to see addressed,
preferrably by incremental patches to my ussd branch:
* the use of static global variables like ussd_string_buf in gsm_04_80.c
Code like this will prove very difficult to ever use concurrently at some
later point. global variables in the main program (or similar) are fine,
but in actual 'library' style code, we should not keep code in static global
variables across multiple calls. In such a case, the state needs to be
associated with some of the data structures we have in memory anyway.
ussd_string_buff looks like something the caller should allocate and pass into
gsm0480_rcv_ussd(). Also, since rcv_ussd() only decodes, it should probably be
called gsm0480_decode_ussd().
Things like the static last_transaction_id also will cause race conditions once
multiple people send USSD requests at the same time. This data needs to be per
subscriber, or per lchan, I presume.
* the assumption that extension numbers are not longer than 5 characters
in ussd.c is really not good. Please check the specs what is the maximum
length of the phone number in this context, add a #define and then make sure
the string buffer is large enough for it. Also, I prefer snprintf() to
having XXXX that then get overwritten by memcopy :)
If you could send patches for those two issues (one patch for each logical
change), I would appreciate that and in the end merge the ussd branch into
master.
Thanks.
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi everyone,
As I mentionned in the earlier post, I think it'd be great if we could
use FOSDEM to get known more. These projects covers a wide area, from
quite low level RF stuff, signal processing to higher level GSM
protocols ...so the work is certainly not missing :)
So what I'd like to know is who's planning on coming (yes/no/maybe) to
FOSDEM and if you'd be ready to help out or have equipment you could
bring.
Exactly _what_ we could do will most likely depend on the number of
answer to this mail :)
I've included OpenBTS, OpenBSC and airprobe here because they're the
three projects I know that deal with the 'network' part of GSM (as
opposed to the MS side for things like OpenMoko, Android, ...). And
even if they currently don't share that much code, the GSM knowledge
you gain by contributing to one of these can be directly applicable to
help out in the others.
Cheers !
Sylvain
(Hopefully) last patch attached - now sends the correct op-code in
response, works with all 6 phones I have tried. Interesting that 5 out
of 6 were happy with a completely different op-code and payload...
Mike H.
For info:
Ok, I called the IBPT and I got the procedure to follow to request frequencies.
The 900 MHz is entirely allocated to commercial operators but in the
1800 spectrum there are possibilities to get experimental licenses for
a small fee so I'm filling up the paper work ASAP.
For OpenBTS to work in the 1800 band we may need more stable clock
source (which I don't have yet).
For OpenBSC, I have a 1800 nanoBTS.
Sylvain
On Mon, Oct 12, 2009 at 8:38 PM, Sylvain Munaut <246tnt(a)gmail.com> wrote:
> On Mon, Oct 12, 2009 at 7:20 PM, Michel Daggelinckx <03taxi(a)gmail.com> wrote:
>>
>>
>> FOSDEM [1], the most developer-oriented Free and Opensource conference in
>> Europe, is taking place in Brussels, Belgium [2] on *Saturday 6 and Sunday 7
>> February 2010*. Apart from having many invited speakers, the conference
>> offers developer rooms, stands and lightning talks to projects from the Free
>> and Opensource community. This results in a staggering number of 250+
>> lectures!
>>
>> We hereby welcome proposals from speakers and projects to talk in a main
>> track, man a stand, or hold a lightning talk. /Information on developer
>> rooms
>> will become available later, as we are slightly reworking the concept/.
>
> In relation to that, I'm trying to get an experimental license from the IBPT to
> operate on the GSM spectrum during the conference. I didn't find much in the
> legislation about this kind of licence in Belgium, but I must call
> back the guy tomorrow ...
>
> I didn't take any contact with the fosdem yet to have a spot or
> anything, I wanted to
> hear back from the ibpt first.
>
> If other people are motivated, there is definitely something to do there.
> I have equipment to run both OpenBTS and OpenBSC and I'm located in Belgium,
> so I'll definitely be there.
>
>
> Sylvain
>
Hi!
I finally finished the report from the GSM test network that we operated at
HAR2009 using OpenBSC and two BS-11.
The report is available for download from
http://openbsc.gnumonks.org/trac/attachment/wiki/HAR2009/har2009-gsm-report…
Regards,
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
>I believe in the positive impact of OpenBTS and OpenBSC
interoperability for
>the both communities and as encouraging factor for possible future
OpenBTS
>test sites.
>
>We're ready to work with you beforehand to minimize on-site efforts.
>
>PS Where can we find agenda? Official 26C3 site is nearly empty.
hi all,
on the congress i use linux-call-router to route isdn traffic from
versatel to berlin and vice versa for free as part of versatel
sponsoring. i would like to join the POC (phone operation center) in the
upper hall again this year. there we sit close to the "eventphone" guys,
so we can easier communicate and do cabeling of our hardware. it would
be nice to have also the openbsc and openbts projects close to us. we
could easier interact and build one test networks. since eventphone uses
an own linux-call-router hardware, i can use my test machine without
disturbing the external isdn connection to versatel. it is equipped with
two E1 cards, one for interconnection with eventphone, the second one
can be used for BS11. eventphone has a big DECT pbx running and provides
mobile access.
what do you think?
andreas
Hello again,
More patches - these two (combined) add support for mobile-originated
USSD. The demonstration application, implemented in ussd.c, is that
sending *#100# to the network will display your 5-digit extension. It's
not 100% finished - I've tested it on 6 handsets, 5 of them work
perfectly, but the 6th (Samsung i520) doesn't seem to receive the
response, so more experimenting to be done...
Best regards to all,
Mike H.
Hi folks.
I can't get my setup working. Everything works, the BS11 boots up well,
openBSC loads well. At the software side, everything looks perfect.
But the setup does not work. I have testet my BSC now with 3 different
BS11. One of the BS11 is brandnew (Has been set in standalone directly
after installing the firmware.)!
I found this and i think that this is an explaination of the problem:
http://lists.gnumonks.org/pipermail/openbsc/2009-August/000783.html
Finally my question is if anone of you ever observed a semilar effect.
regards.
Philipp
Hi!
Quite some time ago (must be 2-3 months ago), I have officially inquired
at ip.access about the source code of their wireshark modifications, as per
the GNU GPL.
It took them some time, but they eventually responded recently. Today I
finally received a CD-ROM with the source code.
I've uploaded it to the OpenBSC wiki, and it is now available from
http://openbsc.gnumonks.org/trac/attachment/wiki/nanoBTS/wireshark-1.0.6ipa…
Had I known earlier that ip.access has actually written a GPL licensed
dissector, many hours (rather days/weeks) of reverse engineering time would
have been saved.
I have not yet had time to review it thoroughly, though I plan to merge/port
the interesting bits of it with my dissectors for A-bis OML and ip.access RSL
extensions and eventually submit it to wireshark mainline.
If you use this source code, please don't just simply take it and push it
to upstream wireshark, as that would conflict with the patches that we have
in openbsc git at the moment.
Have fun with it,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
Hi!
Does anyone on this list have experience with nanoBTS Multi-TRX configurations?
I've built a TIB cable (10pin RJ69 to 10pin, 1:1 wiring, i.e. pin1 is pin1 on
the other plug, pin2 is pin 2, etc.) and connected the two BTS. When I power
them up simultaneously, they still come up as two individual BTS with each
their own unit ID. I've tried to set the unit ID to something like 1801/0/0 on the first one, and 1801/1/0 on the second. However, any non-zero TRX ID of the unit
ID is rejected by the BTS.
Any hint how I can make them behave like one BTS with two TRX is appreciated.
I'm expecting only one OML Link but of course two RSL links (one for each TRX).
Thanks in advance,
Harald
--
- Harald Welte <laforge(a)gnumonks.org> http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)
hi,
i am no shure if i already sent this mail, but i can't find it anywhere.
this fixes the delay of audio caused by stalling of the openbsc process.
the use of 'usleep(100000)' for slowing down transmission to nanoBTS is
replaced by the tx-delay timer. i did this on bs11 code, so i did it the
same way. it actually queues frames for transmission not nanoBTS. on
transmission a timer is started and when this timer expires, the next
frame in the queue is transmitted (timer restarted) until the queue is
empty.
regards
andreas
Hello everyone,
I just want to ask, if there is a general interest in operating a
licensed
GSM-Network at the chaos congress. Is there anything planned for 26c3
(openBSC desk etc.)?
Maybe there is a good chance to get a temp. license for the 900 GSM
band from BNetzA.
I had little time in the past year to work on openBSC, but in the
coming months there will be more
time for fun ;)
Best regards
Bjoern
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Björn Heller
Jabber: tec(a)jabber.hellercom.de
Hi everyone,
Thanks to some hints from Sylvain my nanoBTS 140 is working now.
We found the following problems:
* Software Activation request is not complete ( it needs to contain tag +
FILE_ID and FILE_VERSION). See patch sent by Sylvain.
* It's relevant which Software is activated, but our logic to always use the
first SW Description record works most of the time because the nanoBTS will
move the software that was activated the last time to the first position.
So maybe we need hard-code which software to prefer for activation or we put
some warnings in the wiki.
What's left is that after some time the BTRS reports an error and goes to
Disabled state, but I have to investigate that more.
Philipp
hi,
here is the patch to support audio exchange between application
interface and nanoBTS.
the patch changes the audio format from TRAU frame format to RTP payload
format on the application interface. also the BS11 TRAU frame is
converted to/from RTP payload format (inside trau_mux.c), so an
application does not have to care about what BTS is used.
here is the format as defined by RFC: (just fyi)
first byte has the magic value of 0xd0 plus four upper bits of the
LARc[0] element as lower bits.
second byte has the lower two bits of the LARc[0] element as upper bits
and the upper bits of LARc[1] element as lower bits.
third byte has the lower four bits of LARc[1] element as upper bits and
so on...
this format can directly be transcoded with the open source lossy gsm
codec.
the rtp_proxy.c now parses RTP frames and generates them. for easier
code, i just mirrored the received RTCP frames back to the nanoBTS,
mangled of yourse. (oops, maybe i need to change some synchronization
source identifiers.) i think there is no problem with that right now.
because RFC requires special synchronization source (ssrc) generation, i
added md5 code and the (funny) random number generator. (see rtp_proxy.c
random32())
as soon as the patch is applied, i will also check in linux-call-router
modification for the new audio frame format.
note that this code is just quickly tested, it works with both BS11 and
nanoBTS and should not crash on corrupt or extended RTP data.
the delay of audio data sent to nanoBTS was > 0.5 seconds. i think this
is too much. maybe it is because i seamlessly increment the timestamp
value in the RTP frame, even if the application dropps (delays) frames.
regards,
andreas
On Sunday 04 October 2009 13:51:29 Harald Welte wrote:
> one further note on the missing md5 file:
>
> As it seems it is only used to generate a pseudo-random 32bit value
> for use in the SSRC: I'd rather not introduce a copy of MD5 for that.
>
> There are two options to take:
>
> 1) simply use the same [not very random] method as we use for the TMSI
>
> 2) introduce a dependency to openssl and use that. Given that nanoBTS
> also support OML/RSL over SSL/TLS, I think sooner or later we will
> have to add that dependency anyway.
hi,
i think that very good random is not required. in our case we don't have
large scale RTP conferences with thousands of sources. we have to choose
a random number that just differs from the one selected by nanoBTS. (the
RTP session will fail afer some seconds when using same SSRC.)
andreas
From: Sylvain Munaut <tnt(a)246tNt.com>
The previous code only sent the FILE_ID tag data part,
but according to the GSM 12.21 spec, section 8.3.6, the
full SW Description 'object' must be sent so that includes
the NM_ATT_SW_DESCR tag, the whole FILE_ID and the whole
FILE_VERSION (including tags & length fields).
Note that functionnaly on a nanoBTS 139 I couldn't see any
difference ... whatever I send in there it works ...
Signed-off-by: Sylvain Munaut <tnt(a)246tNt.com>
---
openbsc/src/abis_nm.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/openbsc/src/abis_nm.c b/openbsc/src/abis_nm.c
index 35ed8db..a450452 100755
--- a/openbsc/src/abis_nm.c
+++ b/openbsc/src/abis_nm.c
@@ -857,6 +857,7 @@ static int abis_nm_rx_sw_act_req(struct msgb *mb)
const u_int8_t *sw_config;
int sw_config_len;
int file_id_len;
+ int file_ver_len;
int nack = 0;
int ret;
@@ -889,18 +890,24 @@ static int abis_nm_rx_sw_act_req(struct msgb *mb)
if (sw_config[0] != NM_ATT_SW_DESCR)
DEBUGP(DNM, "SW_DESCR attribute identifier not found!\n");
+
if (sw_config[1] != NM_ATT_FILE_ID)
DEBUGP(DNM, "FILE_ID attribute identifier not found!\n");
file_id_len = sw_config[2] * 256 + sw_config[3];
+ if (sw_config[4+file_id_len] != NM_ATT_FILE_VERSION)
+ DEBUGP(DNM, "FILE_VERSION attribute identifier not found!\n");
+ file_ver_len = sw_config[5+file_id_len] * 256 + sw_config[6+file_id_len];
+
/* Assumes first SW file in list is the one to be activated */
- /* sw_config + 4 to skip over 2 attribute ID bytes and 16-bit length field */
+ /* The +7 in length is to account for the 3 tags and 2 length fields */
+ /* (see GSM 12.21 - 9.4.{62,18,19} for details */
return ipacc_sw_activate(mb->trx->bts, foh->obj_class,
foh->obj_inst.bts_nr,
foh->obj_inst.trx_nr,
foh->obj_inst.ts_nr,
- sw_config + 4,
- file_id_len);
+ sw_config,
+ 7 + file_id_len + file_ver_len);
}
/* Receive a CHANGE_ADM_STATE_ACK, parse the TLV and update local state */
--
1.6.4
> One thing I noted immediately: The newly-introduced md5c.c file is
missing from your diff. Can you please re-submit with that file?
Thanks.
>(in case you work with git, first 'git add' the file, then 'git diff
HEAD', if all your changes are not yet committed)
ok, again a corrected verion of the rtp.patch (hopefully complete)