Introducing Darwvin Softphone: a SIP softphone that tells you why a call failed
Darwvin Softphone is a SIP softphone for Android and Linux, in Early Access. Its Call Doctor ranks the likely causes of a failed or bad-sounding call.
Published 10 min read
Darwvin Softphone is a SIP softphone for Android and Linux. It registers directly with the PBX or SIP provider you already use, and its Call Doctor ranks the likely reasons a call failed or sounded bad, then suggests what to check first. Call Doctor runs fixed rules, not an AI model. The app is in Early Access, and the Free plan includes two SIP accounts, so you can test it on your own system before you pay for anything.
Who it is for
If you run FreePBX, Asterisk or a hosted PBX, you already know the question that follows every bad call: is the problem the network, the PBX or the phone? Most softphones leave you to answer that by reading logs. Darwvin Softphone is for people who would rather be told where to look first.
A softphone for FreePBX registers an extension that you created on the PBX, and Darwvin Softphone works that way. It fits three kinds of user best:
- PBX admins who want to see the SIP messages behind a failed call without building a new test setup each time. On Linux, the app shows the call flow and the raw SIP message.
- Freelancers and small offices with a SIP provider, who take calls on a laptop and a phone with the same accounts on both.
- People leaving a desk-style softphone who want call history, notes and follow-ups in one app, along with transfer, conference and presence.
Wait if you need an iPhone app, emergency calling, or a Windows or macOS desktop app today. Those are not available yet. The Android app and the Linux desktop app are the platforms to test now.
If you are comparing options, our Zoiper alternatives guide covers the SIP softphones people usually shortlist. The rest of this post covers what the app does today, how it moves a call through your PBX, how Call Doctor reasons about a failure, where the app stands in its release cycle, and how to start on the Free plan.
What the app does today
These are the features in the current Early Access build:
| Area | What is included |
|---|---|
| Accounts | Several SIP accounts side by side. The Free plan includes two. |
| Transport | SIP over UDP, TCP and TLS. |
| Codecs | Opus, G.722 and G.711. G.729 is not supported. |
| Call controls | Hold, mute, DTMF, call waiting, blind and attended transfer, and a local three-way conference. |
| Voicemail and presence | Voicemail indication (MWI) and BLF with presence. |
| Recording | Encrypted call recording on Android. |
| Diagnostics | Call Doctor, rule-based diagnostics for failed calls and bad audio. On Linux, a SIP message ladder and RTP stream analysis. |
| Call notes | Notes, tags and follow-ups for each call. |
Two details are easy to miss. Each device needs a free Darwvin account, and the device has to reach the account service at least once a week. Calls do not go through Darwvin: the app registers with your PBX and sends calls straight to it, while Darwvin's service handles sign-in and plans. Which features each plan includes is listed on pricing. Call Doctor and the SIP diagnostics are part of the paid plans.
The setup itself is short. You enter a user name, a password and a server, and you add a port or a transport only when the defaults do not fit. The setup guide lists the same fields for Android and Linux.
How a call moves through the app
Registration and calls go straight between the app and your PBX or provider, over UDP, TCP or TLS. Darwvin's service is involved in sign-in and in the account a device needs, but it does not carry the call. That split matters when you troubleshoot. If the phone cannot register with your PBX, the first place to look is the path between the app and the PBX.
Call Doctor runs automatically when a call ends, and you can also run it on demand for a call you want to examine. On Linux, the diagnostics view adds the message ladder and RTP stream analysis, so you can check the raw messages against what the rules concluded.
Call Doctor: why the call failed
Most softphones stop at "registration failed". Call Doctor is the app's SIP call diagnostics layer. It works from what the app saw during the call: SIP messages, registration events, the call timeline, account settings and media statistics. It matches that evidence against a fixed set of rules, ranks the probable causes by severity and confidence, and shows the top one first. The finding texts come in English and Persian.
The texts are prepared in advance, so the same evidence always produces the same explanation. Call Doctor cannot see your PBX configuration. It sees what the app observed, which is why its output is a ranked suggestion and not a verdict.
Here are examples of what the rules say. The first column is the title a finding carries, the second is its top probable cause, and the third is the check we would start with:
| Finding title | Top probable cause | Check first |
|---|---|---|
| Sign-in rejected (401) | Wrong password | Re-enter the secret from the extension. If your PBX uses a separate authentication user name, check that too. |
| Sign-in rejected (403) | Extension disabled or not allowed to register (from this IP) | The PBX refused the sign-in itself. Check that the extension is enabled and allowed to register from your network. |
| Registration timed out | Server unreachable or firewall blocking SIP | Check the server address and port, and whether a firewall lets SIP through. |
| Transport does not match the port | Transport/port mismatch: TLS uses 5061, UDP/TCP use 5060 | Pick TLS with port 5061, or UDP or TCP with port 5060. |
| Server name could not be resolved | Typo in server name | Check the spelling. Try the IP address to separate a DNS problem from a SIP problem. |
| No common audio format (488) | No codec in common | Enable a codec both sides support. Opus, G.722 and G.711 are common choices. |
| Keypad tones may not work | Peer does not support RFC 4733 telephone-event | Menus that ask for "press 1" depend on the DTMF method. Ask the PBX admin which method is enabled. |
The plain-language texts are written for people who are not SIP specialists. For a transport mismatch, the text reads: "The account's transport does not match its port, so the phone and the server speak different protocols and sign-in cannot work." A server that keeps sign-ins for less than a minute gets the title "Server allows only N s registrations". The text explains that calls still work, but the app has to register again constantly, so battery use and the risk of missed calls go up.
Bad audio gets the same treatment. After a call, the app's summary includes packet loss and jitter, so you can see whether the media path was unhealthy even when no rule fired. If the numbers show loss and the rules say nothing, start with the network between the phone and the PBX. If one direction is silent, read the one-way audio guide before you change the PBX.
Here is how to use a result. Suppose a phone on hotel Wi-Fi shows "Registration timed out". The first checks are the server address, the port and the firewall, not the password. A wrong password would have produced a sign-in rejection, which is a reply from the server, while a timeout means no reply arrived at all. The ranked list narrows the search before you touch the PBX.
Treat the ranking as a suggestion. A message ladder shows each SIP request and response in time order, so compare the top cause with the messages on Linux before you change anything on the PBX. If the messages and the top cause disagree, the next cause on the list is the next thing to test.
Platforms and status
Darwvin Softphone is in Early Access. Here is what runs today:
| Platform | Status | Requirements |
|---|---|---|
| Android | Early Access, installed from the APK | Android 9 or later |
| Linux desktop | Early Access | x86-64. A .deb package for Ubuntu 22.04 and newer, or an AppImage for other distributions |
| Windows desktop | In development | Not available yet |
| macOS desktop | In development | Not available yet |
| iOS | No iOS app | Not available |
Early Access means the app is still changing, so expect rough edges. Send reports through support. If you are setting up a PBX for the first time, the FreePBX and Asterisk guide walks through the PBX side step by step.
Start on the Free plan
- Install the app. Install the APK on Android, or the .deb or AppImage on Linux.
- Create a free Darwvin account. Sign up with your email and verify it. Each device signs in on its own.
- Add your SIP account. Your PBX administrator or SIP provider gives you the user name, the password and the server. The setup guide lists the fields.
- Place a test call. Call an echo test or a colleague. If registration fails, read the Call Doctor result first and use the table above to choose the first check.
The Free plan includes two SIP accounts, which is enough to try the app on your own PBX. If you need more accounts, or the Call Doctor and SIP diagnostics on top of the Free features, look at the paid plans. Check pricing for the current contents before you decide. The documentation covers the rest of the app, and support is the place to ask about anything the documentation leaves out.
What it does not do yet
- No emergency calls. Use your mobile network or a landline for emergencies.
- Asterisk is the tested PBX. We test against Asterisk, and our lab runs Asterisk 20.9. Other PBXs are not qualified yet, FreePBX included.
- Codecs are Opus, G.722 and G.711. G.729 is not supported.
- Platforms are Android and Linux for now. Windows and macOS desktop apps are in development, so neither is available yet, and there is no iOS app.
FAQ
Is Darwvin Softphone free?
The Free plan includes two SIP accounts and needs a free Darwvin account on each device. Paid plans add more, and pricing lists what each one includes.
Does the app work with FreePBX?
FreePBX is built on Asterisk, and we test against Asterisk. We have not qualified FreePBX as a separate PBX, so treat it as a standard SIP system. The app uses standard SIP, so start with the FreePBX and Asterisk guide, and tell us through support if your system behaves differently.
Do calls go through Darwvin's servers?
No. The app registers with your PBX and sends calls to it directly. Darwvin's service handles sign-in and plans, not call media.
Can I make emergency calls with it?
No. Use your mobile network or a landline for emergencies.
Is there an iPhone app?
No. There is no iOS app.
References
- RFC 3261: Session Initiation Protocol. Background on SIP registration and transports.
- RFC 3551: RTP Profile for Audio and Video Conferences with Minimal Control. Static payload types for G.711 and G.722.
- RFC 4733: RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals. The telephone-event method behind keypad tones.
- RFC 6716: Definition of the Opus Audio Codec
- Darwvin Softphone setup guide. The official setup fields for the app.