Advertisement · 728 × 90

Posts by Nick vs Networking | Telco Network Engineering

Somebody’s watching me – Adventures in Cellular Locating Preface: I build cellular networks for a job. We support a network in Alaska, and one of the guys we work with there – John – has a story (which I’ll steal here) where he gets a phone call late at night from someone saying they’re in the US Air Force, and uh, they’ve, uh, … Continue reading Somebody’s watching me – Adventures in Cellular Locating →
1 month ago 0 0 0 0
Protocoldex – A quick reference guide for AVPs / IEs / Commands / Applications I do a lot of protocol testing, writing Diameter/PFCP/GTP-C etc, and spend a lot of time referencing the standards. So I built this – Inspired by a 1990s video game / TV / Playing card franchise online reference tool, but rather than identifying pocket monsters, it’s identifying AVPs and stuff You can punch in the … Continue reading Protocoldex – A quick reference guide for AVPs / IEs / Commands / Applications →
1 month ago 0 0 0 0
Tales from the Trenches – PGW-C Deleting Sessions One of our customers is an MVNE and they reached out the other day with an issue. They were turning up a new PGW and they’d see Create Session Request, everything looked OK, it’d get a response, but then in the GUI of the PGW-C they’d see the session drop. The logs showed the newly … Continue reading Tales from the Trenches – PGW-C Deleting Sessions →
1 month ago 0 0 0 0
Telco to Tech-Co. No. Just Telco. Tech-No. Over a decade ago, Dan McKinley published a blog post titled “Choose Boring Technology” which advocates that software developers and engineers design systems using “boring” technology. One of the most worthwhile exercises I recommend here is to consider how you would solve your immediate problem without adding anything new. First, posing this question should detect the … Continue reading Telco to Tech-Co. No. Just Telco. Tech-No. →
1 month ago 0 0 0 0
Packet Buffering in the UPF When a UE enters Idle mode, the network releases radio resources and the UE enters power saving mode. When the UE wants to send data (Uplink) the UE just tells the network “hey I want to send something” and away it goes, nice and simple. But when the network wants to send data to the … Continue reading Packet Buffering in the UPF →
2 months ago 0 0 0 0
Field Trip – UTS Nokia Lab I was recently in Sydney for a GSMA event with a few extra days in town after. So I reached out to our Nokia account manager and asked if I could “The pointy room”. It did not disappoint. As well as all the fancy RAN kit and pointy room, they’ve got the kind of machine … Continue reading Field Trip – UTS Nokia Lab →
2 months ago 0 0 0 0
Network Instance in PFCP I was recently looking for a field I could use in PFCP to denote the VRF / Network Segment to be used, and initially thought Network Instance would be perfect for this. It&#8217;s not. Network Instance is kinda preferred over the APN/DNN for decisions, for example a Packet Detection Rule (PDR) does not give a &#8230; <a class="more-link" href="https://nickvsnetworking.com/network-instance-in-pfcp/">Continue reading <span class="screen-reader-text">Network Instance in PFCP</span> <span class="meta-nav">&#8594;</span></a>
2 months ago 0 0 0 0
Filtering OpenStreetMap Data for use in Forsk Atoll Taking a full extract from OpenStreetMap using the export tool on the website provides a .osm output file, which includes all the layers. I&#8217;ve written about using GlobalMapper to convert this data into shapefiles for use in Forsk Atoll, but when I want roads, and building footprints, and an outline of the area, I need &#8230; <a class="more-link" href="https://nickvsnetworking.com/filtering-openstreetmap-data-for-use-in-forsk-atoll/">Continue reading <span class="screen-reader-text">Filtering OpenStreetMap Data for use in Forsk Atoll</span> <span class="meta-nav">&#8594;</span></a>
2 months ago 0 0 0 0
Stupid Mistakes – New UPF and IMS Our team recently shipped a new UPF which is a huge improvement on our old UPF, and I drew the short straw of doing all the interop testing for the IMS. Initially I thought there was an issue with IP routing, as I’d never see the SIP register from the UE, but I would see … Continue reading Stupid Mistakes – New UPF and IMS →
2 months ago 0 0 0 0
SS7/MAP – Call Forward I’ve covered how SS7/ISUP handles call forward before, but the HLR can also store call forwarding information. This is returned to the MSC when the SendRoutingInfo dialog is performed against the HLR. If it’s present the MSC will redirect the call to that destination, after bouncing it through CAMEL (if enabled). A lot simpler than … Continue reading SS7/MAP – Call Forward →
3 months ago 0 0 0 0
Advertisement
Loading OpenTopography.org data into Forsk Atoll Looks like this is my 3rd (and hopefully final) post on the topic of loading Digital Elevation Models / Topographic data into Forsk Atoll, because this time, we’ve got global data, which allows us to Digital Elevation Models, at 30m resolution, for anywhere on the planet. The Copernicus DEM is a Digital Surface Model (DSM) … Continue reading Loading OpenTopography.org data into Forsk Atoll →
3 months ago 0 0 0 0
Elixir – ETS vs Map Gut Feels (With Data) Some questions I wanted to impirically answer with Elixir: So what did I find: Question: Does the size of value of a Map or ETS object impact the time it takes to retrive a given record (specifically to find that key from others)? Answer: In Maps, the impact of a 100x larger payload being written … Continue reading Elixir – ETS vs Map Gut Feels (With Data) →
3 months ago 0 0 0 0
SS7/MAP Dialogs: informServiceCentre Between HLR and GMSC (or SMSc). SMSc can send an SRI-for-SM, and if the subscriber is absent, the response can include the informServiceCenter message, which lets the SMSc know if it will get sent an alertServiceCentre message when the subscriber comes back online (sends an UpdateLocation). This means that the SMSc can be notified when … Continue reading SS7/MAP Dialogs: informServiceCentre →
3 months ago 0 0 0 0
It’s not a GUI – The CGrateS Web UI Working a lot with CGrateS I found myself doing the same tasks somewhat regularly, one common task was being asked to get CDRs for a certain thing on an ad-hoc basis, ie “Can you get the call records for XXXX for last month?” or “How much did we spend on calls to YY this quarter?” … Continue reading It’s not a GUI – The CGrateS Web UI →
4 months ago 0 0 0 0
FreeSWITCH – Hanging up a call with some cause info Whenever I reject a call, or hang it up, I like to provide some extra info in the response to help explain why the server made the decision, so anyone looking at the traces will understand. In FreeSWITCH we’ve only got a finite list of Hangup Causes which we can use with the hangup application. … Continue reading FreeSWITCH – Hanging up a call with some cause info →
4 months ago 0 0 0 0
Backing up CGrateS This is super easy. In my setup I use Redis as the DataDB which stores the Accounts, balances, etc, etc, and MySQL / MariaDB as the StorDB. Backing up MySQL is just a matter of running mysqldump to dump all the data. Backing up Redis, is just a matter of copying the /var/lib/redis/dump.rdb file, which … Continue reading Backing up CGrateS →
4 months ago 0 0 0 0
Sh Profiles, XCAP Data and RepositoryData – Oh my A concept that’s always been a bit unclear to me was how the Sh Profile, XCAP data for call forwarding / barring and RepositoryData all fit together. Let’s start off with the basics. The Diameter Sh interface sits between an Application Server (Typically TAS, SMSc, XCAP server, etc) and the HSS. This AS can run … Continue reading Sh Profiles, XCAP Data and RepositoryData – Oh my →
4 months ago 0 0 0 0
Advertisement
CGrateS Inline Regex CGrateS can do inline regex replacement. This is less of a blog post and more of a brain dump. Strip + in phone number as an Attribute: These examples are from ERS where I’m reading from databases / CSVs / whatever. This example strips a leading + on a phone number in the Subject field … Continue reading CGrateS Inline Regex →
4 months ago 0 0 0 0
Tales from the Trenches – IMS Communication Service Identifier (ICSI) Recently we ran into an issue with certain devices while roaming not including an ICSCI field in the Contact header while registering onto the IMS, leading to MT call failures. So what is ICSI and why were these calls failing? The IMS standards are littered with novel ideas for smart telephony features that no one … Continue reading Tales from the Trenches – IMS Communication Service Identifier (ICSI) →
5 months ago 0 0 0 0
Kamailio – Set Advertised addresses in Via (Kamailio behind a NAT) Here’s a Kamailio question I posed to the mailing list the other day: I’m working on a scenario with a Kamailio box with a private IP, with a public IP 1:1 NATed to it (but the VM does not see the public IP on the NICs). When forwarding requests to some hosts I want to … Continue reading Kamailio – Set Advertised addresses in Via (Kamailio behind a NAT) →
5 months ago 0 0 0 0
VScode eats resources when showing a lot of data to Terminal I’ve been facing an issue in Vscode for a long time where when I’ve printed a lot of data to the terminal, everything gets really unresponsive – Scrolling through the results is like I’m drunk it’s so unresponsive, and I’ve tried a bunch of stuff to fix it. Here’s the Benchee benchmarks for a function … Continue reading VScode eats resources when showing a lot of data to Terminal →
5 months ago 0 0 0 0
The Surprisingly Complicated World of SMS: Emoji SMS Reactions If you’ve got parents of a certain age, you’re probably quite used to getting the thumbs up emoji. For the more tech savvy parents, they may even react to your SMS, like this: But of course this feature doesn’t exist in the SMS standard, so how does it work? Well, when you “react” to an … Continue reading The Surprisingly Complicated World of SMS: Emoji SMS Reactions →
5 months ago 0 0 0 0
RatingSubject in CGrateS This is a topic I really struggled to understand. When I was testing data balances I’d find CGrateS OOM killed by the OS when trying to charge for data usage: So what was going on? Well CGrateS deducts for each incriment in the usage, and in my case, a usage of 107374182 meant CGrateS was … Continue reading RatingSubject in CGrateS →
6 months ago 0 0 0 0
Simple trick to increase coverage: Lying to users about signal strength Poking around in Android the other day I found this nugget in Carrier Config manager; a flag (KEY_INFLATE_SIGNAL_STRENGTH_BOOL) to always report the signal strength to the user as one bar higher than it really is. It’s not documented in the Android docs, but it’s there in the source available for any operator to use. Notably … Continue reading Simple trick to increase coverage: Lying to users about signal strength →
6 months ago 1 0 0 0
ACMA on Motorcycles and Customer Cabling I got this email today from ACMA, the Australian communcations regulator who’s mailing list I subscribe to: When I first started working, I’d often ride my motorbike to customer job sites with my cabling tools in a milk crate strapped on the back, but at no point did I combine customer cabling with riding the … Continue reading ACMA on Motorcycles and Customer Cabling →
6 months ago 0 0 0 0
Advertisement
Tales from the Trenches – Missing Create Session Requests on IMS APN while Roaming This was a fun one. We were testing international roaming for a customer, roaming into the US where one of our team members (shoutout to Cody) is based. So we sent Cody some SIMs and asked them to run the basic tests for us, but no IMS APN would attach. We’d get them to power … Continue reading Tales from the Trenches – Missing Create Session Requests on IMS APN while Roaming →
6 months ago 0 0 0 0
Loading eSIMs onto Physical Cards Recently I’ve been playing with creating UPPs – Unprotected Profile Packages – The “profile” that gets loaded onto eSIMs. While that’s worthy of a post itself, for testing I’ve found it really convenient to be able to “explore” the created SIM profile in PySIM, Gemalto Card Admin, etc, and check the behavior in a real … Continue reading Loading eSIMs onto Physical Cards →
6 months ago 0 0 0 0
The NRF in 5GC – Common Dialogs – Nnrf_NFManagement The Network Repository Function is essentially a database used to store/query information about NFs on the network. To do this, the NRF has 3 services: the Nnrf_NFManagement Service is used to insert/update/remove records into the database of NFs on the network, the Nrf_NFDiscovery service is used to query this database, and the OAuth2 Authorization service … Continue reading The NRF in 5GC – Common Dialogs – Nnrf_NFManagement →
7 months ago 0 0 0 0
Adventures with a $10 LTE MiFi Dongle Running Android under the hood and very hackable!
7 months ago 0 0 0 0
Tales from the Trenches – Samsung mystery packet on IMS Call So we’ve found this scenario that occurs on some Samsung UEs, in certain radio contions, where midway through an otherwise normal voice call, the UE sends “mystery” data (Not IP data), which in turn causes the UPF to send the error indication and drop the bearer, which in turn drops the call. The call starts, … Continue reading Tales from the Trenches – Samsung mystery packet on IMS Call →
7 months ago 0 0 0 0