<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: NT Maritime</title>
    <description>The latest articles on DEV Community by NT Maritime (@ntmaritime).</description>
    <link>https://dev.to/ntmaritime</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4206678%2F1980c741-7fcd-41ab-9f15-5633384e262b.jpg</url>
      <title>DEV Community: NT Maritime</title>
      <link>https://dev.to/ntmaritime</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ntmaritime"/>
    <language>en</language>
    <item>
      <title>Voice and Messaging at Sea: Engineering Crew Communications Over Ship WiFi</title>
      <dc:creator>NT Maritime</dc:creator>
      <pubDate>Sun, 25 Oct 2026 13:43:09 +0000</pubDate>
      <link>https://dev.to/ntmaritime/voice-and-messaging-at-sea-engineering-crew-communications-over-ship-wifi-1d40</link>
      <guid>https://dev.to/ntmaritime/voice-and-messaging-at-sea-engineering-crew-communications-over-ship-wifi-1d40</guid>
      <description>&lt;p&gt;Most VoIP and messaging stacks are designed with an unspoken assumption: there is a reasonably fast, reasonably stable internet connection between the client and the server. On a ship, that assumption breaks. A vessel is effectively a small, floating campus network with a single, shared, variable uplink to the rest of the world. If you build communications for that environment, the architecture looks different.&lt;/p&gt;

&lt;p&gt;This post walks through the main engineering constraints of running calling, video, and messaging over a ship's WiFi/IP network, and the design patterns that follow from them.&lt;/p&gt;

&lt;h2&gt;
  
  
  The network you actually have
&lt;/h2&gt;

&lt;p&gt;A typical ship network has two very different halves:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The onboard LAN/WLAN.&lt;/strong&gt; Access points throughout the vessel, switching, and local servers. This part is under the operator's control and can be engineered like any campus network.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The backhaul.&lt;/strong&gt; Everything leaving the ship goes over a satellite link. Newer LEO constellations have changed the picture a lot. For example, Starlink is commonly cited at up to 220 Mbps down, 40 Mbps up, with latency under 99 ms. But the link is still shared by everyone onboard, it is asymmetric, and its quality depends on conditions you do not control.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The practical consequence: &lt;strong&gt;service quality depends on the ship's WiFi connection.&lt;/strong&gt; Any honest design has to start from that limitation rather than hide it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design principle 1: keep onboard traffic onboard
&lt;/h2&gt;

&lt;p&gt;A large share of communication on a ship is between people on the same ship: crew coordinating across departments, or passengers in the same travel group. Sending a call from deck 4 to deck 9 out to a cloud server and back over satellite is wasteful and adds latency and jitter for no reason.&lt;/p&gt;

&lt;p&gt;The better pattern is to run signaling and media services locally on the vessel, so that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ship-to-ship-user calls, messages, and voicemail never touch the backhaul.&lt;/li&gt;
&lt;li&gt;Onboard communication keeps working when the satellite link degrades or drops.&lt;/li&gt;
&lt;li&gt;The uplink is reserved for traffic that genuinely has to leave the ship (off-ship calls, sync, updates).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is essentially an edge deployment: treat the vessel as an isolated site that occasionally syncs with the shore, not as a thin client of a central cloud. Teams that have built for air-gapped environments will recognize the mindset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design principle 2: assume NAT, roaming, and sleeping phones
&lt;/h2&gt;

&lt;p&gt;On the client side, the endpoints are usually smartphones on WiFi, not desk phones on a wired VLAN. That brings a familiar list of VoIP headaches, amplified:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NAT and firewalls.&lt;/strong&gt; SIP and RTP have well-known NAT traversal issues. WebRTC (with ICE/STUN/TURN) or carefully configured SIP keep-alives and media relays are typical answers. Relays should live onboard so media does not hairpin through the satellite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AP roaming.&lt;/strong&gt; People walk through steel bulkheads between access points mid-call. The WLAN design (coverage, roaming behavior, QoS marking for voice) matters as much as the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background delivery.&lt;/strong&gt; Mobile OSes aggressively suspend apps. Incoming calls and messages generally rely on Apple Push Notifications and Google Firebase Cloud Messaging to wake the device, which means you need a plan for how push reaches a phone on an isolated network where the push services sit across the satellite link.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Design principle 3: pick protocols for the link, not the whiteboard
&lt;/h2&gt;

&lt;p&gt;Messaging protocols vary a lot in how they behave on constrained, intermittent links. XMPP is a common choice for chat and presence. MQTT and AMQP are good fits for lightweight pub/sub and device telemetry. SIP and WebRTC handle real-time voice and video. Using each where it fits, rather than forcing everything through one stack, makes it easier to cope with packet loss and reconnection storms after an outage.&lt;/p&gt;

&lt;p&gt;For voice and video specifically, think about adaptive codecs and bitrate, jitter buffers sized for real link behavior, and graceful downgrade (video to audio, audio to message) when off-ship quality drops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Design principle 4: integrate with the ship's existing systems
&lt;/h2&gt;

&lt;p&gt;Ships already run PBXs, sometimes legacy TDM, plus property and passenger management systems. Ripping all of that out is rarely realistic. A common modernization path is TDM-to-IP and POTS-to-SIP migration that keeps existing equipment in service while modernizing the backend, plus APIs and middleware to tie in identity (who is this cabin/crew member?) and provisioning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing DECT with apps
&lt;/h2&gt;

&lt;p&gt;A concrete example of all of the above is crew handsets. Many vessels rely on DECT phones for internal crew communication. Replacing them with an app on a phone the crew already carries means calling, video calling, messaging, and voicemail all run over the ship's WiFi, but only if the onboard-first architecture, WLAN roaming, and push delivery are done well. Otherwise you have traded a dedicated radio system for a flaky app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Treat the ship as an edge site; keep local traffic local.&lt;/li&gt;
&lt;li&gt;Engineer the WLAN for voice, not just browsing.&lt;/li&gt;
&lt;li&gt;Plan for NAT, roaming, and mobile push on an isolated network.&lt;/li&gt;
&lt;li&gt;Choose protocols per workload and design for degradation.&lt;/li&gt;
&lt;li&gt;Modernize around existing PBX and passenger systems rather than replacing everything.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;At NT Maritime we work on this problem, running local servers on board and building crew and passenger communications (calling, video, messaging, voicemail) over ship WiFi, including crew DECT phone replacement. More at &lt;a href="https://ntmaritime.com" rel="noopener noreferrer"&gt;ntmaritime.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>voip</category>
      <category>networking</category>
      <category>telecom</category>
      <category>maritime</category>
    </item>
  </channel>
</rss>
