Skip to content

BitVoice v0.1.8

Choose a tag to compare

@firstmind-biodream firstmind-biodream released this 19 Oct 03:41
· 42 commits to main since this release

BitVoice v0.1.8: what testing on real systems in the cloud found, fixed; NG911 Core Services completed; SS7 link sets.

Found on real systems and fixed

  • Cluster failover: a call whose phone was on the server taking over was dropped (that leg was sent a re-INVITE through its own server). It is now kept, and only the other party moves.
  • A server that restarted forgot its phones' registrations until they registered again. They are now kept across restarts.
  • Servers of a cluster on public addresses shared one public address, so after a takeover the provider kept sending sound to the stopped server. Each server may now have its own public address (Servers), and phones and servers on a private network always get the local address.
  • Calls to providers offered a browser's 48 kHz key-press format to G.711 carriers. Offers now keep key presses only at the clocks of the codecs offered.
  • Windows Server: the installer's health check failed under Windows PowerShell 5.1, so the install reported failure though BitVoice was running. Fixed; the installer also says when the network is one Windows calls Public, and prints the firewall rule to add.
  • FreePBX migration: a real FreePBX 17 backup (70 MB, mostly sound files and call history) was refused as too large. Backups are now read as a stream, up to 512 MB, keeping only the configuration.

New

  • SS7 link sets of up to 16 links. Spans with the same point codes share one link set, with load sharing, changeover (COO/COA with retrieval, ECO, or by time) and changeback (CBD/CBA). Tested against libss7 with two links and one cut in the middle of a call.
  • NG911 Core Services (lab):
    • the LIS locates devices by network address (address ranges, MAC addresses, or the requester's own address);
    • the BCF inspects media (wrong source, payload types not offered, malformed, oversized, floods);
    • the ESRP subscribes to each PSAP's queue and service state (NENA state events) and passes over one that cannot take calls, and tells other elements its own;
    • address validation suggests the nearest valid addresses and checks a position against the address's point.
  • A feature maturity table, in the README and in the manual: what is field-tested, checked against a reference implementation, software-tested only, lab, or not offered.

Tried for real on Amazon EC2

  • An Asterisk carrier and desk phone across the internet, with MOS 4.4.
  • Cluster failover after kill -9 and after a planned stop.
  • Installs on Ubuntu (x86 and Arm), Debian 12, Amazon Linux 2023 and Windows Server 2022.
  • Capacity on c7g.large, c7i.large and t4g.small: 200 calls at once with no loss.
  • A real FreePBX 17.0.33 backup, imported whole.
  • SNMP with net-snmp.
  • S3 archive and AWS Secrets Manager.
  • AI transcripts and summaries through OpenRouter.
  • H.323 call set-up with Asterisk's chan_ooh323.

Every archive's program is signed with BioDream's release key; check it against SHA256SUMS, or let the one-command installer do it.