Dear fellow Osmocmo developers,
for many months it was required to cherry-pick a "HACK" patch to make
the BSC tests work, presumably to work around a bug in libosmo-abis, see
https://osmocom.org/issues/2718
As it turned out, libosmo-abis was not wrong, but my IPA_Emulation.ttcn,
so it was good to not merge that "HACK" and keep it out of master.
In Change-Id: I6d9eaf0d69457caacc03b9049a8bc57976480617 which was just
merged to osmo-ttcn3-hacks master I have fixed that bug in
IPA_Emulation.ttcn, so now the unmodified master of osmo-ttcn3-hacks
will run fine.
I'll remove the cherry-pick from our Dockerfiles, but please do make
sure you also stop using it in your local clones/branches/scripts.
--
- 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,
Can anyone confirm if the maximum MO-SMS that can be sent is less than 60 characters including spaces?
For OSMO-NITB, we reach a maximum of 59 characters for MO-SMS, while for OSMO-BSC, we only reach a maximum of 50 characters (MO-SMS).
Is this a known issue?
TIA.
Best Regard,
Ron Menez
ron.menez(a)entropysolution.com<mailto:ron.menez@entropysolution.com>
Hi,
> get Service Category Information Element for a call
> (description in TS 124 008 V13.7.0 10.5.4.33)
According to the mentioned specification, this IE is an optional
part of SETUP message. So, your assumption:
> it is somewhere within gsm_04_08.c
is correct. Have a look at the gsm48_cc_rx_setup():
> /* emergency setup is identified by msg_type */
> if (msg_type == GSM48_MT_CC_EMERG_SETUP)
Emergency calls are also handled there.
The following IEs are handled:
> if (TLVP_PRESENT(&tp, GSM48_IE_BEARER_CAP)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_FACILITY)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_CALLED_BCD)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_USER_USER)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_SS_VERS)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_CLIR_SUPP)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_CLIR_INVOC)) ...
> if (TLVP_PRESENT(&tp, GSM48_IE_CC_CAP)) ...
So, you need to implement checking for the Service Category IE
yourself. It has 0x2e tag, and doesn't seem to be supported by
libosmocore. You would also need to implement parsing of the
payload yourself.
Contributions are welcome ;)
With best regards,
Vadim Yanitskiy.
Dear all,
At the moment we are doing some development works on the basis of ‘Osmocom/OpenBTS’ project.
May you kindly advise if it is possible to get Service Category Information Element for a call (description in TS 124 008 V13.7.0 10.5.4.33)?
If it is possible could you please tell what variable or function to search?
As far as we get it, it is somewhere within gsm_04_08.c
Thank you very much in advance.
Hello Folks,
I managed to get something smaller to perform the experiments I
occasionally do. Because of this, I want to pass on my BS11 to someone
else. I am giving away the equipment for free. However I have an
interest in giving it to someone who has an honest interest in in
GSM/osmocom topics. I think the BS11 is suitable for beginners as it is
very well documented in the wiki and there are many people out there who
have some experience with this type of equipment.
The BS11 comes ready to use with a somewhat outdated osmo-nitb
installation on a small PC that also houses the E1 card. So in theory
one just needs to switch it on and the GSM network is ready to use.
However, there will be some work required to install a recent
OS/osmo-nitb to catch up with the current state.
The BS11 is located in the north of Berlin and has to be picked up by
someone locally.
If you are interested, please get in contact with me.
Here are some pictures of the equipment:
http://pub.runningserver.com/pics/bs11/
best regards,
Philipp Maier
Hi,
I am currently having some problems in adding new subscribers to OsmoHLR, particularly, in finding the IMSI of the devices.
From what I gathered from the wiki, the OsmoHLR log is supposed to show the IMSI of any mobile stations trying to connect to my network without being subscribers. However, the log does not show any indication of that whatsoever.
I had previously imported an old database from our previous OsmoNITB setup and all devices that had been added as subscribers with SimpleHLR back then were able to connect to the new setup flawlessly, but now I have decided to delete an MS from the database to learn how to add new subscribers but like I’ve said before, I am not able to find the IMSI in any log.
These are the logging settings in my OsmoHLR config:
log stderr
logging filter all 1
logging color 1
logging print category 1
logging timestamp 1
logging print extended-timestamp 1
logging level all debug
logging level linp error
I’d really appreciate if someone could help me out here.
Kind regards,
Michael Spahn
Hello,
I'm currently working on a proof of concept for a foreign customer. We have
a Fairwaves UmTRX board and we would like to send Cell Broadcast message
(SMS-CB).
I have a full working osmocom chain (trx, bts-trx, bsc, stp, msc, hlr) that
woks fine for SMS sending by example.
I have made a fix in rsl.c because all SMSCB commands where rejected (see
at bottom of this message).
I have dig into the code and found the place where the SMS CB are queued
(rsl.c : bts_process_smscb_cmd) and the code to extract them as MAC blocks
(rsl.c : bts_cbch_get).
I have also found the handler of the scheduler (scheduler_trx.c
: tx_data_fn) where to put the block data.
I have read articles about the superframe mechanism but I do not figure out
how to advertise the CBCH functionality on the BCCH, nor how to adapt the
scheduler to enable the CB channel.
Is it someone also interrested in this and/or working on the Bug 1617?
Or is it someone that can me give a track to start the implementation?
Have a nice day,
Antony
-----------------------------------------------------------------------------------------------------------
Fix in rsl.c :
-----------------------------------------------------------------------------------------------------------
replaced :
if (chan_nr_is_dchan(cch->chan_nr))
return rsl_reject_unknown_lchan(msg);
msg->lchan = lchan_lookup(trx, cch->chan_nr, "RSL rx CCHAN: ");
if (!msg->lchan) {
LOGP(DRSL, LOGL_ERROR, "Rx RSL %s for unknown lchan\n",
rsl_msg_name(cch->c.msg_type));
return rsl_reject_unknown_lchan(msg);
}
-----------------------------------------------------------------------------------------------------------
by:
if (chan_nr_is_dchan(cch->chan_nr))
{
printf("Message NOT for DCHAN\n");
//return rsl_reject_unknown_lchan(msg);
}
else
{
printf("Message for DCHAN\n");
// Only check channel validity if it is a dedicated channel
call.
msg->lchan = lchan_lookup(trx, cch->chan_nr, "RSL rx CCHAN: ");
if (!msg->lchan) {
LOGP(DRSL, LOGL_ERROR, "Rx RSL %s for unknown lchan\n",
rsl_msg_name(cch->c.msg_type));
return rsl_reject_unknown_lchan(msg);
}
}
I client of ours has the desire to merge a patch to libosmocore that adds
simplistic log rotation functionality.
Our first response was against it: we have the SIGHUP handling that allows
logrotate to tell osmocom programs to re-open their log file(s).
However, the system in question is based on BusyBox, which lacks logrotate. I
haven't yet investigated why it can't just be installed, but there seems to be
some or other issue about that.
The next best idea is to cook up a shell script that does more or less what
logrotate does ... and probably run into problems that logrotate already
solves better. The script needs to clean old files and invoke SIGHUP...
So I'd like to ask around, maybe it is acceptable to merge a poor-man's log
rotation functionality to libosmocore after all?
The patch needs some improvements (VTY configurability for starters), but so
far goes something like this:
static void _file_output(struct log_target *target, unsigned int level,
const char *log)
{
- fprintf(target->tgt_file.out, "%s", log);
- fflush(target->tgt_file.out);
+ int n;
+
+ if (target->tgt_file.out) {
+
+ n = fprintf(target->tgt_file.out, "%s", log);
+ fflush(target->tgt_file.out);
+#ifdef stderr
+ /* don't try try to roll stderr */
+ if (target->tgt_file.out != stderr)
+#endif
+ {
+ if (n > 0) {
+ target->tgt_file.written_count += n;
+
+ if (target->tgt_file.roll_count != 0 &&
+ target->tgt_file.written_count > target->tgt_file.roll_count) {
+
+ /* Create filename */
+ char rotname[strlen(target->tgt_file.fname) + 3];
+
+ strcpy(rotname, target->tgt_file.fname);
+ strcat(rotname, ".1");
+
+ /* Rename the current log, then reopen the log to start new file */
+ rename(target->tgt_file.fname, rotname);
+ log_target_file_reopen(target);
+ }
+ }
+ }
+ }
}
Note, this follows a simplistic approach to removing old log files: there is
always exactly one rotated-away file, 'mylogfile.1', which gets overwritten in
each rotation.
Any rotation features more elaborate than this should better be solved with
logrotate, but would everyone accept this kind of patch merged to libosmocore?
Thanks,
~N