User Guide

Complete guide to using HelixPhone — from installation to advanced features.

Table of Contents

System Requirements

  • Windows 10 or later (64-bit)
  • .NET 8.0 Runtime
  • A SIP account from your VoIP provider or PBX
  • A microphone and speakers (or headset)
  • Network access to your SIP server (typically port 5060 UDP or TCP)

Getting Started

  1. Launch HelixPhone.
  2. Go to Settings (gear icon in the left sidebar).
  3. Enter your SIP account details:
    • Server: Your SIP server address (e.g. sip.provider.com)
    • Port: Usually 5060 (the default)
    • Transport: UDP (default) or TCP
    • Username: Your SIP extension or account number
    • Password: Your SIP password
    • Display Name: The name shown to people you call
  4. Click Save.
  5. Click the Register button in the top bar, or enable Auto Register.
  6. When the status shows "Registered" in green, you're ready!

Settings & Configuration

Access settings by clicking the gear icon in the left sidebar.

SIP Account

  • Server: Your SIP server hostname or IP address
  • Port: SIP port, usually 5060
  • Transport: UDP (faster, default) or TCP (more reliable)
  • Username: Your SIP account username or extension number
  • Password: Your SIP account password
  • Display Name: Your caller ID name
  • Registration Expiry: How often the phone re-registers (default 3600s)

Audio

  • Input Device: Select which microphone to use
  • Output Device: Select which speaker to use
  • Volume: Master volume slider (0 to 100)

Tip: Use a headset for best call quality and to avoid echo.

Making Calls

  1. Click the Dial Pad icon in the left sidebar.
  2. Enter the phone number using the on-screen keypad or your keyboard.
  3. Click the green Call button or press Enter.
  4. The phone will ring the remote party. You'll see "Ringing..." status.
  5. When answered, the call connects and the timer starts.

Outbound calls have a 60-second timeout. If the remote party doesn't answer within 60 seconds, the call is automatically cancelled.

Receiving Calls

When someone calls your extension:

  1. An incoming call popup appears with the caller's number and name (if available).
  2. Click Answer to accept or Reject to decline.
  3. If you don't answer and the caller hangs up, it's logged as "missed".

Note: If you're already on a call, incoming calls are automatically rejected with a busy signal.

During a Call

  • Mute: Toggle your microphone on/off. The remote party can't hear you when muted.
  • Hold: Place the call on hold. Click again to resume.
  • DTMF: Open the touch-tone keypad to navigate phone menus or enter PINs.
  • Transfer: Open the transfer panel for blind or attended transfers.
  • Hang Up: End the call.

Call Transfers

Blind Transfer (Immediate)

Transfers the caller directly without speaking to the destination first.

  1. During a call, click Transfer.
  2. Enter the destination number.
  3. Click "Blind Transfer".
  4. The caller is immediately transferred.

Attended Transfer (Consultative)

Lets you speak to the receiving party before completing the transfer.

  1. During a call, click Transfer.
  2. Enter the destination number.
  3. Click "Attended Transfer".
  4. Your original caller is placed on hold.
  5. When the destination answers, talk to them privately.
  6. Click "Complete Transfer" to connect them, or "Cancel" to return to the original caller.

Call History

Click the clock icon in the left sidebar to view your call log. The history shows:

  • Direction (inbound/outbound)
  • Phone number and display name
  • Duration
  • Disposition (answered, missed, rejected, failed)
  • Timestamp

Click any entry to dial that number again. History is stored locally in a SQLite database.

Presence / Status

Your presence status indicates your availability:

  • Available — Ready to receive calls
  • Busy — Manually set; occupied
  • Away / Lunch — Stepped away
  • Do Not Disturb — Don't want to be contacted
  • Offline — Not registered

Click the status dropdown in the header to change your status. Every change fires a webhook to your configured endpoint.

Call Recording

When enabled, HelixPhone automatically records all calls:

  • Recording starts when a call is answered
  • Both sides are mixed into a single WAV file
  • Files are saved to %LOCALAPPDATA%\HelixPhone\recordings\
  • If configured, files are automatically uploaded to your server

Troubleshooting

Cannot Register

  • Verify your SIP server address, port, username, and password
  • Check your firewall allows outbound traffic on port 5060
  • Try switching between UDP and TCP transport

No Audio on Calls

  • Check your microphone and speaker selections in Settings
  • Use the "Test Audio" button to verify your speaker works
  • Ensure your microphone isn't muted at the system level

One-Way Audio

  • Usually a NAT/firewall issue
  • Try switching from UDP to TCP transport
  • Disable SIP ALG on your router if possible

Log files are located at: %LOCALAPPDATA%\HelixPhone\logs\