| Internet-Draft | IPoUGRS | April 2026 |
| Papadopoulos | Expires 3 October 2026 | [Page] |
This document specifies a method for the encapsulation and transmission of Internet Protocol (IP) datagrams over the Global System for Mobile Communications (GSM) ring signal, hereafter referred to as IPoUGRS. The protocol exploits the binary nature of the unanswered telephone call — a call either rings, or it does not — to encode arbitrary data at the physical layer.¶
IPoUGRS achieves a maximum theoretical throughput of 1.6 bits per second under optimal conditions. The authors consider this sufficient.¶
This document does not obsolete any prior RFC. It is, however, spiritually indebted to several.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 3 October 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.¶
The history of networking is, in large part, a history of transmitting Internet Protocol datagrams over substrates that were not designed for this purpose. IP has been transmitted over avian carriers [RFC1149], over avian carriers with Quality of Service extensions [RFC2549], over avian carriers adapted for IPv6 [RFC6214], and over social networks [RFC5514], and over coffee pots [RFC2324]. A recurring theme emerges: if a medium can carry any information at all, someone will eventually carry IP over it.¶
The GSM ring signal has, to date, escaped this treatment. The authors consider this an oversight.¶
A telephone ring is binary. Within a defined interval, a phone either rings or it does not. This observation, while not novel in isolation — it has been the basis of a significant informal communications culture documented extensively in the sociological literature [DONNER2007] — has not previously been formalized into a protocol capable of transmitting arbitrary IP datagrams.¶
IPoUGRS rectifies this.¶
The protocol operates by deploying N parallel telephone receivers at each endpoint, where N is the desired word width in bits. The reference implementation uses N=8, yielding one octet per time slot. A bit is encoded as 1 if the corresponding receiver rings during the slot, and 0 if it does not. The caller hangs up before the call is answered. This is not considered rude. It is the physical layer.¶
The authors note that this architecture is superficially similar to spatial multiplexing schemes employed in modern MIMO wireless systems. The similarity is intentional. The authors further note that IPoUGRS achieves zero inter-channel interference, a property that RF MIMO systems have spent approximately forty years failing to achieve.¶
This document specifies the frame format, timing requirements, error correction scheme, and operational guidelines necessary for interoperable IPoUGRS implementations. Questions regarding why anyone would implement this are considered out of scope.¶
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, NOT RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
IPoUGRS is a synchronous, parallel, octet-oriented protocol operating over the GSM circuit-switched signaling plane.¶
Communication proceeds as follows. Both peers agree, by out-of-band means, on a set of SLOT_DURATION and EPOCH values (see Section 5). Each peer maintains N=8 TRANSMITTER devices paired with N=8 RECEIVER phone numbers at the remote peer.¶
To transmit an octet, the sending peer examines each bit in the octet from the most significant to the least significant bit. For each bit position i where the bit value is 1, the peer initiates a voice call from TRANSMITTER[i] to the remote RECEIVER[i] at the beginning of the SLOT. The call is terminated via FLASH HANGUP after RING_DURATION seconds. For each bit position i where the bit value is 0, no call is initiated.¶
The receiving peer, during the same SLOT, monitors all N RECEIVER devices. For each RECEIVER[i] that experiences a RING event, bit i is recorded as 1. For each RECEIVER[i] that remains SILENT, bit i is recorded as 0. At the end of the SLOT, the N bits are assembled into one octet.¶
Because each peer independently operates a TRANSMITTER bank and a RECEIVER bank, transmission in both directions proceeds simultaneously. IPoUGRS is inherently full-duplex. This was not originally intended; it emerged naturally from the decision to use separate devices for sending and receiving, which itself emerged from the observation that a phone cannot simultaneously place and receive a call on the same number.¶
Multiple octets are transmitted in successive SLOTs, forming a frame. The frame format is described in Section 4.¶
An IPoUGRS frame consists of a preamble, a header, a payload, and a frame check sequence.¶
IPoUGRS Frame Structure
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PREAMBLE (0xAA) | VERSION | FLAGS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SEQUENCE NUMBER (2 octets) | LENGTH |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PAYLOAD (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| FCS (CRC-8) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
¶
IPoUGRS is a synchronous protocol. All SLOT boundaries MUST be derived from a common time reference. SLOT boundaries are defined as moments where:¶
unix_timestamp(t) mod SLOT_DURATION == 0¶
The RECOMMENDED value of SLOT_DURATION is 5 seconds for VoLTE deployments and 10 seconds for 2G GSM deployments. The choice of SLOT_DURATION MUST account for:¶
Both endpoints MUST maintain synchronized clocks. The RECOMMENDED synchronization method is NTP, which achieves approximately 10-50 milliseconds of accuracy under normal internet conditions. The authors acknowledge the irony of requiring internet connectivity to synchronize a protocol designed for use when internet connectivity is unavailable. GPS-disciplined oscillators achieve sub-microsecond accuracy and are RECOMMENDED for deployments where the authors' irony is unwelcome.¶
Implementations SHOULD transmit a SYNC frame — defined as a frame with PAYLOAD equal to the ASCII string "ARE YOU THERE" — at the beginning of each session. The receiving peer SHOULD respond with a SYNC_ACK frame containing the ASCII string "YES". This exchange SHALL constitute proof of synchronization. The authors note that this exchange requires approximately 210 seconds at 1.6 bps and are prepared to discuss alternatives.¶
IPoUGRS operates over an environment subject to several classes of errors:¶
IPoUGRS RECOMMENDS the use of Extended Hamming(8,4) error correcting code. This code maps four data bits to eight coded bits, adding three parity bits and one overall parity bit. At N=8, a single IPoUGRS time slot carries exactly one Hamming codeword. The authors consider this alignment elegant. It is the most elegant thing about IPoUGRS, and the authors are prepared to defend this assessment at length.¶
The Hamming code corrects all single-bit errors and detects all double-bit errors. In the context of IPoUGRS, a single-bit error means exactly one of the eight phones either rang when it should not have, or failed to ring when it should have. The code handles this gracefully. The code does not handle the scenario in which someone accidentally calls all eight phones at once. This scenario is considered a denial of service attack and is addressed in Section 10.¶
Implementations employing Extended Hamming(8,4) will observe an effective data rate of 0.8 bits per second. Implementations that regard 0.8 bits per second as unacceptably slow are directed to Section 7 and encouraged to recalibrate their expectations.¶
The theoretical maximum throughput of IPoUGRS is determined by:¶
Throughput = N / SLOT_DURATION (bits per second)¶
In the baseline configuration (N=8, SLOT_DURATION=5s on VoLTE):¶
Throughput = 8 / 5 = 1.6 bps¶
For comparison:¶
IPoUGRS is therefore approximately ten times faster than a pigeon and approximately six thousand times slower than a technology that was considered obsolete in 1995. The authors note that the pigeon had a 55% packet loss rate and no error correction. IPoUGRS maintains a 2-10% packet loss rate, as confirmed by field testing [PAPADOPOULOS2026]. This is presented without further comment.¶
Throughput MAY be increased through multi-level ring duration modulation. By calibrating the RING_DURATION to one of four discrete values, each TRANSMITTER can encode 2 bits per SLOT:¶
RING_DURATION = 0.0s: symbol 00 (no call placed) RING_DURATION = 1.0s: symbol 01 (flash ring) RING_DURATION = 3.0s: symbol 10 (short ring) RING_DURATION = 5.0s: symbol 11 (long ring)¶
Gray coding of the symbol alphabet (00, 01, 11, 10) is STRONGLY RECOMMENDED, ensuring that adjacent-symbol confusion results in single-bit errors amenable to Hamming correction.¶
This scheme is designated IPoUGRS-4L (Four-Level) and achieves a theoretical throughput of 2.3 bps. Implementors who find 2.3 bps insufficient are directed to Section 7.3 and reminded that they are using a phone to send IP packets by not answering it.¶
5G New Radio (NR) Voice over NR (VoNR) reduces call setup latency to 0.8-2.0 seconds, enabling SLOT_DURATION reduction to 3 seconds. In baseline 5G configuration:¶
Throughput = 8 / 3 = 2.67 bps¶
This represents an 18.75% improvement over VoLTE performance. Network equipment vendors are encouraged to consider whether "IPoUGRS-optimized" represents a viable marketing designation. The authors anticipate that it does not, but have been surprised before.¶
The authors further note that 5G network deployments are frequently accompanied by claims of "revolutionary" and "transformative" performance improvements. An 18.75% improvement in the throughput of a protocol that transmits data using missed phone calls is, by some definitions, revolutionary.¶
IPoUGRS is suitable for a specific class of deployment scenarios: those in which the IP data plane is unavailable but the GSM circuit-switched signaling plane remains operational.¶
Mobile network architectures route voice calls through the Mobile Switching Center (MSC) via the SS7 signaling plane, while IP data traverses the Serving GPRS Support Node (SGSN) and Gateway GPRS Support Node (GGSN). These are architecturally distinct paths. Events that disable the data plane do not necessarily disable the signaling plane.¶
The authors observe, without elaboration, that such events have been documented in multiple countries across multiple continents in recent years. Readers wishing to understand the specific contexts in which a data plane is disabled while the signaling plane remains operational are encouraged to consult general news sources from the period 2019 to present. The authors make no further comment on this matter, as this is an Informational RFC and not an editorial.¶
Secondary use cases include:¶
Mobile network operators deploy automated systems to detect anomalous call patterns. IPoUGRS call patterns — high-frequency, short-duration, unanswered calls originating from a fixed set of numbers — are consistent with the behavioral profile of automated calling systems that operators have devoted substantial resources to identifying and blocking.¶
The authors note that IPoUGRS is, from the carrier's perspective, indistinguishable from a robocaller. This is not a coincidence. IPoUGRS is a machine placing calls that no one answers. That the machine is doing so to transmit IP datagrams rather than to offer an extended vehicle warranty does not alter the observable behavior.¶
Operators are likely to block IPoUGRS traffic within hours to days of deployment. The following mitigation strategies are defined:¶
Implementors are STRONGLY ENCOURAGED to synchronize clocks prior to beginning transmission. The consequences of operating with unsynchronized clocks include bit errors, frame desynchronization, and the transmission of data that is received as entirely different data. This is, technically speaking, also how most communication works without explicit protocols; IPoUGRS merely makes the failure mode more difficult to debug.¶
In environments where NTP is unavailable (for reasons the authors decline to revisit, see Section 8), implementors MAY use GPS-disciplined oscillators. The GPS constellation is, at time of writing, operational. This is the most encouraging technical fact in this document.¶
IPoUGRS has a rich security surface.¶
This protocol requires no new protocol numbers, no port assignments, no registry entries, and no IANA action of any kind.¶
The authors consider this the protocol's most significant technical achievement, and request that it be noted.¶
The author thanks the operators of the GSM networks used in testing, who were not consulted and would likely not consent if they were.¶
The author thanks the Bergen Linux User Group for demonstrating that some RFCs should be implemented, and that doing so is funny.¶
The author thanks the inventors of the Extended Hamming code, who are in no way responsible for its application here.¶
No pigeons were involved in this work. One was consulted, but was unavailable.¶