Businesses

Soha

A phone system for companies, built on Asterisk: a console that writes the configuration, and an app that puts every call on your team's computer and phone.

  • #voip
  • #asterisk
  • #flutter

Soha builds phone systems for companies. Its platform runs a company’s numbers, extensions and call flows on Asterisk, and puts every call on the team’s computer and phone. It is live at soha.tel (opens in a new tab), in English and Persian.

It started from a small, annoying problem: on an iPhone, a SIP app stops ringing once you close it. Phones only wake an app for a call through a push notification, and a push can only be sent with the keys of the app’s owner. Asterisk cannot send one. Telling customers to buy a paid softphone was not a good answer, so the answer became a whole product: the phone system and its own app, built together.

hero

What Soha makes

  • Soha Console, for the people who set it up. Numbers, extensions, queues and call flows are managed in the browser, and Soha writes the Asterisk configuration, so nothing is edited by hand.
  • Soha Phone, for everyone who answers. Each person’s numbers and extensions on their desktop and phone, with calls, recents, contacts, voicemail and team chat behind one sign-in.
  • Your own server. Soha runs next to Asterisk on hardware you choose. Calls, recordings and contacts stay with you.

The console

sec-console

The console is where the phone system is built and watched. You add people and numbers, connect your SIP providers and see whether each trunk is signed in, and set up queues, ring groups, voicemail mailboxes and greetings. Business hours and a holiday calendar route calls by themselves, recording rules decide which numbers are recorded and who may play the recordings back, and webhooks send call events to a CRM as they happen. One server can run several companies, each with its own people, numbers and brand colour. Every change turns into Asterisk configuration.

Call flows

Where does a call go when it comes in? That is drawn as a flow: answer, play a message, check business hours, offer a menu, ring a queue, or take a voicemail. A flow is built step by step, steps can be copied between flows, drafts save as you work, and publishing makes it live.

sec-flows

Soha Phone

Soha Phone lists every number you answer for, like a phone with two SIM cards. You pick the number a call goes out from, and a call back leaves from the number that was called. Signing in is a QR code from the console, so nobody has to share a SIP password. There is a single inbox for voicemail, caller feedback and chat, a status colleagues can see before they call, and links that start a call when you click a phone number on any web page. It is available on macOS, Windows and Android, with iOS and Linux next.

sec-phone

The push problem that started the project is solved inside the platform: Soha has its own push service and sends the wake-up itself, then Asterisk dials. On Android it rings on the system call screen, and an extension can fall back to voicemail or a mobile number if a push fails on a phone that kills background apps.

For managers

The console follows a call from the first ring to the last word: who it rang, who answered, the recording, and who has listened to it. Agents see their own calls and managers see the team’s, and playing recordings is a permission of its own.

sec-team

In Persian and English

Soha is the Persian سها, Alcor: the faint star beside Mizar in the Big Dipper, which Persian and Arab astronomers used as a test of sharp eyesight. It is also a nod to asterisk, little star. The brand follows that picture: a night-indigo star with one small warm point of light beside it, and amber is only ever used for that small thing.

Persian and English are equal in the product. Every screen is designed right to left and left to right, with Jalali dates, Persian digits, and typefaces made for reading Persian.

hero-fa

sec-languages

How it is built

  • Platform: a Python API that drives Asterisk through AMI and ARI, and a web console on top of it. It writes the PJSIP, queue and dialplan configuration, keeps backups of it, and updates in place with a rollback if the new version fails to start.
  • Phone: Flutter, one codebase for desktop, Android and iOS. SIP runs over secure WebSocket with WebRTC media, so the client only ever talks to servers Soha manages and is encrypted by default.
  • Website: Astro, rendered to plain static pages in both languages, behind nginx.
  • Brand: a small design system with tokens shared by the app, the console and the site.

Where it is

The platform and the client work together today, and a demo can be set up on a Soha server. To see it, or to bring your own numbers over, visit soha.tel (opens in a new tab) and request a demo.

phone

pezhvak@web:~$
↑↓move↵openescclose

keys

←→↑↓
Move between tiles
↵
Open the focused tile. Articles: start reading
QE
Home: highlights / recently updated. Gallery: filter by medium. Articles: previous / next entry
JK
Next / previous section of an article
F
Gallery work: full size
A
Home: all entries of the focused tile's section
esc
Back
1…5
Jump to a section
/
Search everything
R
Random note from the garden
M
UI sounds on / off
H
Go home