<?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>Forem: john william</title>
    <description>The latest articles on Forem by john william (@johnw007).</description>
    <link>https://forem.com/johnw007</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3907517%2F36fe3416-248f-404c-8fcc-71e6bffa9bdf.jpg</url>
      <title>Forem: john william</title>
      <link>https://forem.com/johnw007</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/johnw007"/>
    <language>en</language>
    <item>
      <title>TIL: most "audio cutting out" issues on SIP softphones are actually NAT problems</title>
      <dc:creator>john william</dc:creator>
      <pubDate>Wed, 06 May 2026 12:31:20 +0000</pubDate>
      <link>https://forem.com/johnw007/til-most-audio-cutting-out-issues-on-sip-softphones-are-actually-nat-problems-3h9g</link>
      <guid>https://forem.com/johnw007/til-most-audio-cutting-out-issues-on-sip-softphones-are-actually-nat-problems-3h9g</guid>
      <description>&lt;p&gt;Spent three days debugging a SIP softphone where audio would cut out exactly 15-20 seconds into every call. Switched softphones. Same issue. Switched networks. Same issue. Was about to blame the user's ISP.&lt;/p&gt;

&lt;p&gt;Turned out it was NAT timeouts on the router silently killing the inbound RTP stream after the initial mapping expired.&lt;/p&gt;

&lt;p&gt;The annoying thing is SIP signaling stays alive the whole time, so the call looks fine. Registration is fine. SDP exchange is fine. But the actual audio (RTP) gets dropped because one side's NAT mapping closes too aggressively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick mental checklist for next time you see this:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audio cuts out at a consistent time mark? → NAT timeout&lt;/li&gt;
&lt;li&gt;One-way audio only? → NAT or firewall on one end&lt;/li&gt;
&lt;li&gt;Works on Wi-Fi but breaks on cellular? → Almost always NAT&lt;/li&gt;
&lt;li&gt;SIP signaling fine but media broken? → Look at RTP path, not SIP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fixes that usually work: ICE, TURN, an SBC in front of things, or just configuring the softphone to send keep-alive packets so the NAT mapping doesn't expire.&lt;/p&gt;

&lt;p&gt;Wish someone had told me this on day one. Sharing in case it saves someone else the three days.&lt;/p&gt;

</description>
      <category>todayilearned</category>
      <category>voip</category>
      <category>sip</category>
      <category>networking</category>
    </item>
    <item>
      <title>Why I stopped trusting "free" SIP softphones for production work</title>
      <dc:creator>john william</dc:creator>
      <pubDate>Mon, 04 May 2026 12:59:10 +0000</pubDate>
      <link>https://forem.com/johnw007/why-i-stopped-trusting-free-sip-softphones-for-production-work-5ffg</link>
      <guid>https://forem.com/johnw007/why-i-stopped-trusting-free-sip-softphones-for-production-work-5ffg</guid>
      <description>&lt;p&gt;When I first started working with VoIP, I burned a few weeks trying to make free SIP softphones from the app stores work for production setups. Sharing what I learned, in case anyone else is going down the same path.&lt;/p&gt;

&lt;p&gt;The problem wasn't that the apps were bad. Most of them work fine for casual use. The problem was that the things you don't notice in casual use become huge in production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push notifications were the first wall&lt;/strong&gt;&lt;br&gt;
Free SIP dialers usually keep a persistent connection alive to receive calls, which absolutely destroys mobile battery life. Real production-grade clients use push notifications properly through APNs and FCM. Without that, users miss calls or burn through their battery in three hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Background behavior on iOS:&lt;/strong&gt;&lt;br&gt;
iOS will quietly kill any app that isn't behaving the way the OS expects. CallKit integration is what makes incoming SIP calls actually show up like a normal phone call. Most free apps skip this step entirely. Calls technically arrive, but they look weird, ring weirdly, or don't ring at all if the phone is locked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Encryption was an afterthought&lt;/strong&gt;&lt;br&gt;
A lot of the free clients support TLS and SRTP technically, but they're not on by default and the configuration is buried somewhere obscure. For any production setup in a regulated industry, that's a non-starter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No real support when things break&lt;/strong&gt;&lt;br&gt;
This is the one that hurt the most. When something goes sideways at midnight on a Saturday, free apps don't have anyone to call. Forums and GitHub issues don't help when an enterprise customer is on the line.&lt;/p&gt;

&lt;p&gt;I'm not saying free softphones are useless. They're great for testing, for hobby projects, for learning how SIP works. Just don't ship them to paying customers and expect things to be fine.&lt;/p&gt;

&lt;p&gt;Anyone else have a "free softphone in production" story? Curious what others have run into.&lt;/p&gt;

</description>
      <category>voip</category>
      <category>sip</category>
      <category>mobile</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
