Delivery you can predict, shape and read back.
Send a number's calls to your own SBCs, phone systems or AI platforms. Myrmur tries them in the order you set, rewrites each SIP request to fit, and writes down every attempt so nobody has to guess what happened to a call.
Server lists.
One server on a list and calls go there. Put more on it and Myrmur works through them in your order. Build a list once and point as many numbers at it as you like.
- Priority and share
- Up to 10 servers. Priority 1 goes first. Servers on the same priority share new calls by the weight you give them, so two at 50 take about half each.
- Ring time per server
- Between 5 and 60 seconds, so a server that's up but never answers can't hold the caller.
- UDP, TCP or TLS
- Chosen per server, so you can move one server to TLS at a time.
- Checked addresses
- Each server's address is checked when you save it and again every day.
- Safe changes
- A number keeps its current destination until the delivery server confirms the new list, then switches on its own, normally within a minute. Calls in progress are left alone.
| Server | Priority | Share | Ring |
|---|---|---|---|
| sbc-syd-a.example.netTLS | 1 | 50 | 20 s |
| sbc-syd-b.example.netTLS | 1 | 50 | 20 s |
| sbc-mel-a.example.netUDP | 2 | 100 | 30 s |
Carrier tags, version 4
It moves on only when it should.
Failover that rings the wrong office is worse than no failover. Myrmur separates "this server couldn't take the call" from "this server said no", and treats them differently.
| What the server did | What Myrmur does |
|---|---|
| The connection failed | Next server |
| No answer within its ring time | Next server A silent server is skipped in about two seconds. |
| Replied 404, 408, 480, 500, 502, 503 or 504 | Next server |
| Busy | Stays busy A person is probably on the line. Choose "Also retry when busy" to change it. |
| Declined or redirected | Passed back The caller gets the answer as your server gave it. Myrmur never follows a redirect. |
| Every server failed | Normal failure tone Never silence. |
Header rules: the SIP request your platform expects.
A rule set shapes calls on the way to the servers on a list. Add your own headers, rewrite the numbers your platform matches on, and fill values from the call itself. Most trunks would send you off to build a voice application for this.
| Action | What it changes |
|---|---|
| Add a header | Adds one of your X- headers with the value you give it. |
| Replace a header | Removes any copies, then writes your value. |
| Remove a header | Takes one of your X- headers off the call. |
| Change the dialled number | The user part of the SIP request address, without changing the server. |
| Change the To number | The user part of the To address. |
| Change the caller | The From number, display name, or both. |
| Diverting number | Adds the dialled number as Diversion, or sends none. |
Values from the call
- {{did.e164}}
- The number the caller dialled
- {{caller.e164}}
- The caller's number, when there is one
- {{caller.display}}
- The name the caller presented
- {{call.id}}
- The call's SIP reference
Mix them with text, like account-{{did.e164}}. If a call lacks a value an action needs, that one action is skipped and the rest still run.
Callers can't forge your headers
Every header you manage is stripped from the incoming call before your rules run, so a value your platform trusts always came from you.
Protected where it matters
Routing, authentication, privacy and identity headers can't be edited as ordinary headers. The identity actions are the supported way to change To, From and Diversion.
One set, many lists
A rule set belongs to your account and can serve several server lists. Saving updates them all, and new calls pick it up within a minute.
See the request before a caller does.
Paste an example INVITE into the rule editor. The preview shows the request your servers would receive with your current edits, including any action that would be skipped and why. Nothing is saved and no call is placed.
- No publish step
- Save when you're happy. Myrmur validates the whole set on save and marks anything it refuses.
- Room to work
- Up to 32 managed headers, 16 rules and 8 actions per rule, with 25 rule sets per account.
Received
INVITE sip:61255504817@edge SIP/2.0
To: <sip:61255504817@edge>
From: "J LEE" <sip:+61491570110@edge>
X-Account-Ref: spoofed-by-caller
Sent to your server
INVITE sip:+61255504817@pbx.example.com.au
To: <sip:+61255504817@pbx.example.com.au>
From: "J LEE" <sip:+61491570110@edge>
X-Account-Ref: account-+61255504817
Diversion: <sip:+61255504817@myrmur>
Every attempt, on the record.
Each number keeps its delivery attempts: which server was tried, for how long, what it answered and what the header rules did. It's the page you open when a customer says "we never got that call".
-
sbc-syd-a.example.netNo answer after 2.0 s, moved on
-
sbc-syd-b.example.netAnswered · certificate name didn't match
Header rules Carrier tags applied. One action skipped: the caller withheld their name.
Connect on your side: call setup comes from Myrmur's delivery server and audio from Myrmur's media address. Allow both on your firewall.
Bring the platform you run. We'll bring the calls.
Myrmur is opening now, by invitation. Tell us what you run and where your calls need to land, and we'll set up your first numbers and route them with you.