Hello Osmocom community,
A question: is it possible to configure OsmoMSC+OsmoHLR such that
authentication is required for those IMSIs for which key material
records are present in HLR subscriber db, yet allow unauthenticated
access for certain other IMSIs (specific ones, *not* accept-all) that
are entered into HLR subscriber db without keys?
My use case: I generally operate my network with SIMs of my own issue,
and I wish to continue enforcing authentication (and using ciphering)
for all Themyscira SIMs. However, I would like to play with some old
phone models which cannot be found unlocked - only operator-locked
units can be found on ebay - and some of those historical operator-
locked phones come with SIM cards in them, issued by historical
operators who have bit the dust ages ago. It would be really nice if
I could add the IMSIs of those defunct-operator SIMs to my HLR
subscriber db and allow them to connect - which would have to be
unauthenticated, as I don't know their Ki or even their A38 algorithm
version - but do so _without_ dropping the authentication requirement
for my own Themyscira IMSIs. Is what I seek possible with current
OsmoMSC and OsmoHLR? And if it isn't possible with current code, any
ideas as to what would be the right way to implement such a feature?
TIA,
Mychaela
[please follow-up-to openbsc(a)lists.osmocom.org so we don't cross-post
all related mails]
Dear Osmocom community,
OsmoDevCall used to be rather successful for quite some time in recent years,
but recently has been suffering quite a bit due to insufficient people
volunteering to present. Big thanks to all who did! Interestingly,
there's no shortage of ideas of topics at
https://osmocom.org/projects/osmo-dev-con/wiki/OsmoDevCall - but then
many of the potential speakers did not have the interest or time to
follow-up.
Most recently, the last few instances have not been taking place due to a lack
of volunteers during my holidays.
Last, but not least, while during COVID lockdown winter "friday night
8pm" was a good idea, this of course is more difficult during the
summer, when people are more likely want to go out the weekend.
So, to summarize, let me ask some questions:
* would you be interested in OsmoDevCall continuing?
* which day/time/timezone would you prefer ?
* would you be able and willing to volunteer to give at talk within the
next 3 or so months?
Any other suggestions for or around OsmoDevCall are of course also welcome.
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)
Often I struggle to understand memory allocations and the "weird" things
of C, so please point out to me what I'm missing here (I must be wrong,
because you guys would not miss this, right?
cleared_ci = (struct osmo_mgcpc_ep_ci){
.ep = ep,
.mgcp_client_fi = ci->mgcp_client_fi,
.got_port_info = ci->got_port_info,
.rtp_info = ci->rtp_info,
.occupied = true,
/* .pending = true follows below */
.verb = verb,
.notify = {
.fi = notify,
.success = event_success,
.failure = event_failure,
.data = notify_data,
}
};
osmo_strlcpy(cleared_ci.label, ci->label, sizeof(cleared_ci.label));
osmo_strlcpy(cleared_ci.mgcp_ci_str, ci->mgcp_ci_str,
sizeof(cleared_ci.mgcp_ci_str));
*ci = cleared_ci;
LOG_CI_VERB(ci, LOGL_DEBUG, "notify=%s\n",
osmo_fsm_inst_name(ci->notify.fi));
#define LOG_CI_VERB(ci, level, fmt, args...) do { \
if (ci->verb_info.addr[0]) \
LOG_CI(ci, level, "%s %s:%u: " fmt, \
osmo_mgcp_verb_name(ci->verb), ci->verb_info.addr,
ci->verb_info.port, \
## args); \
else \
LOG_CI(ci, level, "%s: " fmt, \
osmo_mgcp_verb_name(ci->verb), \
## args); \
} while(0)
How is ci->verb_info not being using uninitialized here?
Would that explain random crashes with this code?
https://osmocom.org/issues/5572
Hi,
I am looking for contracted support on a osmocom based project, for a
few days of configuration/setup assistance on a 2G / GPRS
configuration. There are a lot of moving parts in the osmocom projects
and versions of individual projects. Best to grab an expert on the
subject than for us to dive in quite so deep just to work through some
configurations. Please email me with contact details and will reach
out immediately!
Jeffery Palmer
GSE
Hi
I'm going to establish a call between two MSes on two different MSCs . Is This Scenario possible without an external application (for MNCC interface)?
Are there any options other than LCR(Linux Call Router)?
Best Regards
Hi Osmocom Team,
Long time listener, first time writer.
Short Version: Would it be possible to get the source for your USIM/ISIM
JavaCard applets that are installed on the sysmoISIM-SJA2, please?
The Alternative: I've been researching a method to give my JavaCard applet
default installation, and if my applet doesn't support the ADPU command,
then it will revert back to your USIM/ISIM applet. Unfortunately, I have
not found a solution. If you know of one, this would solve my ADPU update
problem.
Long Version: I've been looking into how SmartCards work and got interested
in SIM card pertaining to JavaCard applets. I am interested in creating my
own ADPU commands while still supporting all other ADPU commands that
USIM/ISIM provide. Given the awesomeness of your products and dedication to
open source research, I was hoping you can help me by providing the source.
This way, I can overwrite the USIM/ISIM applets on the sysmoISIM-SJA2, and
support my new ADPU updates. BTW, I looked/searched for these in your
github repos and could not find these applets.
Let me know if this is possible. Thanks for being awesome!
--
Jeremy S.
Hello Osmocom community,
Is there anyone here who uses Osmocom CNI software to operate a "real"
cellular phone network (2G or 3G or both) anywhere in USA, or am I
going to be the first? By "real", I mean operating a cellular phone
network that strives to provide a user experience to its subscribers
that is as close as possible to what one would get from a "regular"
operator like AT&T or T-Mobile, aside from much much smaller coverage
area, perhaps as small as the operator's house and its immediate
surroundings. But aside from the tiny coverage area, all other
aspects of user experience need to be fully "real": each subscriber
gets a real 10-digit phone number in the North American Numbering Plan,
can receive calls and SMS at this number, and can place calls and send
SMS to the outside world, with the user's real NANP number appearing
as the source. The principal difference from a self-contained classic
NITB setup is that subscribers' MSISDNs are real NANP, rather than
made-up "extension" numbers, plus a PSTN gateway implementation for
outside connectivity.
Is there anyone in USA (or anywhere else in the world, substituting
your country's "real" numbering plan for NANP) who operates an Osmocom
CNI network in this manner? If there isn't, I will be happy to be the
first, and I will also be quite happy to publish the source for all of
the custom sw components I'm going to develop for this task - which I
plan to implement as add-ons to Osmocom CNI, connecting via MNCC, SMPP
and GSUP interfaces, rather than patches to Osmocom sw components
themselves. However, if I am not the first to embark on such a
venture, it would be nice to know how others have done it before me,
so I can make a more informed decision as to what I can reuse vs which
wheels I would rather reinvent per my own taste.
Someone please correct me if I'm wrong, but it is my understanding
that Rhizomatica (the most "real" and "production" user of Osmocom CNI
I know of) does things differently from what I envision: aside from
being in Mexico rather than USA (hence no NANP), it is my understanding
(again, someone please correct me if I'm wrong) that they don't give
their individual subscribers (end users) direct phone numbers in the
Mexican numbering plan, directly reachable from anywhere in the world
as +52-xxxxx, instead subscribers get "extension" numbers that are
meaningful only inside those special village networks. In other words,
a PBX-style network like the inside of a company with phone extensions,
rather than direct PSTN phone numbers.
I currently plan on using bulkvs.com as my North American PSTN
connectivity back-end provider with real NANP phone numbers, at least
for voice - I haven't found a solution for P2P SMS connectivity yet,
but because of the complexity of the task, I decided to break it into
pieces and focus on just voice at first. However, if someone else has
already done something similar, operating your own cellular network
where your subscribers get real 10-digit NANP phone numbers instead of
just internal extensions, I would be interested in knowing whom you
use (or used) as your back-end provider for PSTN connectivity and
source of phone numbers, and if anyone was able to get P2P SMS
included in the deal.
M~
hi there,
i have an issue with sysmo-usim-tool. If i do
sudo ./sysmo-usim-tool.sjs1.py -a 4051049678932293688 -o
my cli returns with
sysmoUSIM-SJS1 parameterization tool
Copyright (c)2017-2019 Sysmocom s.f.m.c. GmbH
Initializing smartcard terminal...
Traceback (most recent call last):
File "./sysmo-usim-tool.sjs1.py", line 97, in <module>
main(sys.argv[1:])
File "./sysmo-usim-tool.sjs1.py", line 94, in main
Application(argv, "ucmI:", ["usim", "classic", "mode", "set-iccid="])
File "/usr/src/sysmo-usim-tool/common.py", line 125, in __init__
self._init()
File "./sysmo-usim-tool.sjs1.py", line 76, in _init
self.sim = Sysmo_usim_sjs1()
File "/usr/src/sysmo-usim-tool/sysmo_usim_sjs1.py", line 240, in __init__
Sysmo_usim.__init__(self, "3B 9F 96 80 1F C7 80 31 A0 73 BE 21 13
67 43 20 07 18 00 00 01 A5")
File "/usr/src/sysmo-usim-tool/sysmo_usim.py", line 40, in __init__
self.sim = Simcard(GSM_USIM, toBytes(atr))
File "/usr/src/sysmo-usim-tool/simcard.py", line 88, in __init__
self.card = USIM(atr)
File "/usr/src/sysmo-usim-tool/card/USIM.py", line 188, in __init__
ISO7816.__init__(self, atr, CLA=0x00)
File "/usr/src/sysmo-usim-tool/card/ICC.py", line 158, in __init__
self.cardservice = cardrequest.waitforcard()
File
"/usr/local/lib/python3.8/dist-packages/pyscard-1.9.5-py3.8-linux-aarch64.egg/smartcard/CardRequest.py",
line 68, in waitforcard
return self.pcsccardrequest.waitforcard()
File
"/usr/local/lib/python3.8/dist-packages/pyscard-1.9.5-py3.8-linux-aarch64.egg/smartcard/pcsc/PCSCCardRequest.py",
line 208, in waitforcard
raise CardRequestTimeoutException()
smartcard.Exceptions.CardRequestTimeoutException: Time-out during card
request
maybe i spelled the adm wrong. but it is calculated from hex
3838383838383838.
can you help me?
Thanks
msfu
Hello Osmocom community,
In my previous reply to Anonymous Internet User msfu666, I mentioned
that I sometimes give out FCSIM1 cards free of cost to certain
recipients, but I did not elaborate on the conditions. I did not
spell out the conditions because I hadn't actually given much thought
to what they should be - but thinking about it now, I realize that
only one condition would actually make sense. My FCSIM1 cards are
good for one and only one purpose: operating your own GSM network
(presumably with Osmocom CNI software, no idea if OpenBTS/YateBTS
would work or not) *for the purpose of* providing service specifically
to vintage handsets. Therefore, the condition becomes quite simple:
if there is anyone here besides just me who operates their own
Osmocom-based GSM network _specifically for the purpose_ of providing
service specifically to _vintage_ GSM handsets and you would like some
of my FCSIM1 cards, please let me know and I'll send you a few.
What are vintage GSM handsets? For the present purpose, we can define
a vintage GSM handset as being one that:
a) has a 2FF SIM socket, as opposed to 3FF or 4FF or eSIM;
b) has a 2G-only radio;
c) does not speak UICC/USIM protocol, only GSM 11.11 SIM.
If anyone besides me operates their own GSM network specifically for
the purpose of providing service to (or just playing with) such vintage
handsets, then FCSIM1 cards would be a good choice for such operation:
hence if you would like some, you can have them for the cost of
shipping. OTOH, if you operate your own network, even if it's a 2G
network radio-wise, for some purpose other than exclusively serving or
playing with vintage handsets, then my FCSIM1 cards will NOT be a good
choice for your applications. Specifically, if you are going to
connect any kind of "modern" phones to your network, even if it's 2G
RAN, those "modern" phones will want 3FF or 4FF SIMs - but my FCSIM1
cards are 2FF only, and thus a poor choice for such usage.
Sincerely,
Lady Mychaela Nadezhda Falconia,
Mother of FreeCalypso,
Dame of the Order of 2G,
Champion of Published Source Code
Hello Osmocom CNI folks,
I got my first GSM network up and running, using nanoBTS hardware and
Osmocom CNI sw stack. I compiled everything from source (to my
knowledge, no one makes binary packages for Slackware), but rather
than grabbing the state of git master on some random day, I checked
out tagged versions corresponding to the latest official 2021-11 CNI
release. My configuration is 2G-only, CS-only, minimal split-NITB,
thus the 5 processes I am running are OsmoSTP, OsmoHLR, OsmoMGW,
OsmoMSC and OsmoBSC. I'm using the same OsmoMGW instance for both MSC
and BSC.
The functional state is: phones with FCSIM1 cards in them whose
programming matches the data I entered into HLR are able to connect
(location update succeeds), SMS from one phone to another works, and
USSD requests *#100# and *#101# also work. However, voice calls don't
work. The user-visible symptoms are:
1) When I dial a call from one connected phone to another, the
destination phone starts ringing, and it shows the calling number on
the display - thus CC signaling works correctly at least in the
initial phases.
2) However, a short time (I measured a little under 20 s) after the
start of the process, the destination phone stops ringing and shows a
missed call indication. However, the origin phone continues playing
its NOIBT ringing tone as if it is still waiting for the call to be
answered, and it keeps going for another 15-20 s or so, before it
gives up.
3) Trying to press the answer button on the destination phone before
it stops ringing and goes into the "missed call" state does NOT
produce a connected call state either.
To see what's going on, I turned on maximum verbosity logging in all
OsmoCNI components and plowed through the resulting massive log.
(I am logging via syslog - the whole point of running Slackware is
principled opposition to systemd.) And I see what appears to be the
culprit - see lines 7558 and 7559 in the attached log, UTC timestamp
02:48:54, 11 seconds after I initiated the test call from the origin
phone. It appears that the BTS is telling the BSC that this error
occurred: "Timer T200 expired (N200+1) times", and based on the
lchan(0-0-2-TCH_F-0) annotation, this error is happening on the origin
leg of the call, rather than the destination leg.
I looked up what T200 is:
https://www.rfwireless-world.com/Terminology/GSM-timers.html
T200: "It is used as retransmission on data link layer. Value varies
depending on different messages (for FACCH it is set to 155ms)"
Why in the world are FACCH (or is it SACCH?) data link transmissions
suddenly failing on the origin leg of the call, some 11 to 13 seconds
in? I have tried 4 different phones in the call-origin role (Motorola
C139 running its original fw, Pirelli DP-L10 likewise, Nokia C3-00 and
my own FreeCalypso fw), and the behaviour is always the same.
Has anyone seen this problem before? Is it perhaps a known issue with
nanoBTS that requires some special workaround? This tarball:
https://www.freecalypso.org/members/falcon/osmo-cni/t200-fail-config+log.ta…
contains my configuration files for all 5 OsmoCNI components and an
excerpt from syslog. The syslog excerpt begins with all 5 OsmoCNI
components booting up, followed by two phones connecting, and finally
the test call.
I would really appreciate it if someone could give me some pointers
for debugging this voice call show-stopper.
TIA,
Mychaela