BitVoice-brugervejledning
Indhold
- Del 1. Kom i gang
- Del 2. Hvor opkald går hen
- 16. Opkaldsflow
- 17. Ringgrupper
- 18. Køer
- 19. Udgående dialer
- 20. Lyde: prompts, sprog og holdemusik
- 21. Menuer (auto attendant)
- 22. Navn-vejledning
- 23. Indringning (DISA)
- 24. Tale robotter (AudioSocket)
- 25. Dag/nat toggles
- 26. Tidsplaner
- 27. Scripter (JavaScript og Lua)
- 28. AI-receptionist, voicemail-triage og spørgsmål
- 29. Telefonsvarer
- 30. Callback
- 31. Opkaldslinks og websamtale
- Del 3. Hverdagsopkald
- 32. Funktioner, videreformidling og hurtigvalg
- 33. Medarbejderportalen
- 34. Konference rum
- 35. Højttaler- og højtaleranlæg
- 36. Hot desking
- 37. Hotel og vækkeopkald
- 38. Kontakter på hver telefon
- 39. Kalendere og ikke forstyr
- 40. Mobile apps
- 41. Videoopkald
- 42. Fax: sending og modtagning, faxmaskiner og analoge telefoner
- 43. Indbakke: webchat, WhatsApp og Messenger
- 44. Erhvervstekstning (SMS)
- 45. Overføringsbriefing
- Del 4. Kunder og indsigt
- 46. Live-opkald
- 47. Opkaldshistorik
- 48. Kundetidslinje
- 49. CRM: opkaldende-kort og opkaldslogning
- 50. Kald indsigt for ledere
- 51. Opkaldsoptagelse og kreditkortbetalinger
- 52. Optagelses-samtykke
- 53. Opkaldskvalitet
- 54. Omkostninger og budgetter
- 55. Opkalders rygte og mærkede opkald
- 56. Spam-beskyttelse og STIR/SHAKEN
- Del 5. Kørsel af BitVoice
- 57. Administratore
- 58. Enkelt-logon
- 59. Virksomhedsadresse (Active Directory og LDAP)
- 60. Sikkerhed
- 61. Ændringer, sikkerhedskopier og import
- 62. Opdateringer
- 63. Flere servere som ét telefonisystem
- 64. Hvor dataene gemmes (SQLite eller PostgreSQL)
- 65. Værter andre organisationer
- 66. Codec og lyd
- 67. Microsoft Teams (Direct Routing)
- 68. Importér
- 69. Konfiguration som kode
- 70. Asterisk-kompatibilitet (AMI, ARI og AGI)
- 71. AI-assistenter (MCP)
- 72. Arkiv
- 73. Juridisk retention
- 74. Metrikker: Prometheus, OpenTelemetry, Grafana, SNMP og opkaldsoptagelser
- 75. Opkaldsgenerator
- 76. SIP-sporing
- Del 6. Offentlig sikkerhed: laboratorie-sporet
Kom i gang
Fra en ny installation til et fungerende telefonsystem: udvidelser, telefoner, et teleselskab, hvor opkald går hen, nødkald fra jeres kontorer og hvordan man kan se, om alt er klar.
Kom i gang
/BitVoice er et komplet telefon-system i ét program: telefoncentralen, som telefoner logger ind på, menuer og køer, som ringerne bevæger sig gennem, voicemail, optagelse, konferencelokaler, faks og forbindelserne til telefon-selskaber. Alt er konfigureret i browseren, på skærme, som denne vejledning beskriver. Der er ingen konfigurationsfil at redigere og intet andet at installere.
Hvad du behøver
- En computer til at køre det på: en lille kontor-server, en virtuel maskine, en cloud-forekomst eller for en første øjekast din egen bærbar computer. Linux, macOS og Windows fungerer alle. En Raspberry Pi 4 kan køre et lille kontor.
- Telefoner: kontor-telefoner fra Yealink, Poly, Grandstream eller Snom er konfigureret automatisk; enhver anden SIP-telefon eller softphone fungerer med dens egne indstillinger; og hver browser er en telefon også.
- En trunk (en konto hos et telefon-selskab) til at ringe til eksterne numre og modtage opkald. Du kan starte uden en: udvidelser ringer hinanden og echo-testen.
Første start
Start BitVoice og åbn adressen, den udskriver (på en skrivebord åbner den browseren selv). Web-grænsefladen er kun HTTPS, også på denne computer. Indtil du installerer et certifikat af din egen (Indstillinger, Certifikat), bruger BitVoice et, den selv har lavet, så browseren advarer én gang: vælg at fortsætte til siden. Konfigurationsguiden spørger om fire ting: organisationens navn og land, den første administrators adgangskode, den første udvidelse og dit telefon-selskab, hvis du har et. Landet bestemmer nød-numre, tone, ringerne hører og måden, telefon-numre skrives på.
Første time
- Ekstensioner: en per person eller skrivebord. Hver har et nummer og en SIP-adgangskode. Åbn Ekstensioner (kapitel 3)
- Telefoner: tilslut en skrivebordstelefon, softphone eller browser-telefon til hver ekstension. Åbn Telefoner (kapitel 4)
- Trunk: jeres telefonudbyderkonto, så I kan ringe til eksterne numre og modtage opkald. Åbn Trunk (kapitel 7)
- Opkaldsrouting: hvor opkald fra eksternt kommer til (en person, en ringegruppe, en menu), og hvilken trunk der bruges til eksterne opkald. Åbn Opkaldsrouting (kapitel 8)
- Sundhedsrapport fortæller jer, hvad der endnu mangler, med nødopkald først. Åbn Sundhedsrapport (kapitel 13)
Herefter kan du lave et test-opkald: fra enhver telefon tast *43, echo-testen. Du hører dig selv tilbage, hvilket beviser, at lyden fungerer begge veje.
Installation i én kommando
På en Linux-server (Ubuntu, Debian, RHEL, Fedora, Alpine med systemd) eller en Mac:
curl -fsSL https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.sh | sh
På Windows, i PowerShell:
irm https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.ps1 | iex
Det downloader den seneste version til computeren, checker den mod versionens SHA-256 summer og BioDreams udgivelsessignatur (med OpenSSL 3, eller ellers med OpenSSH's ssh-keygen, som Windows 10 og 11, macOS og Ubuntu 20.04 har; ssh-keygen checker udgivelser fra v0.1.14 og frem), og installerer den som en tjeneste, der starter selv:
- Linux:
/usr/local/bin/bitvoice, enbitvoicesystembruger, data i/var/lib/bitvoice, systemd-tjenestenbitvoicemed webgrænsefladen på port 443. Når ufw eller firewalld er aktiveret, åbner den 443, SIP (5060, 5061) og lydports for opkald (10000 til 20000 UDP). Den udskriver adressen til at åbne og installationskoden, som wizarden beder om fra en anden computer. - macOS: BitVoice i din Applikationsmappe (
~/Applications/BitVoice.app), startede, når du logger ind, webgrænsefladen på port 8443, data i~/Library/Application Support/BitVoice(åben kun for dig) og logfiler i~/Library/Logs/BitVoice(bitvoice.log, holdt under 10 MB). Åbn BitVoice fra Launchpad eller Spotlight for at nå webgrænsefladen; når den var stoppet, starter det den igen. Den kører undercaffeinate, så Mac'en ikke går i dvale, mens BitVoice kører: en sovende Mac besvarer ingen opkald, og selv kortvarige vedligeholdelsesdvale stopper alt i mange sekunder. Skærmen kan stadig slukke. Kør manuelt, brugcaffeinate -i -s ./bitvoicetil det samme. Til en Mac, der besvarer opkald, mens ingen er logget ind, installer medsudo(curl -fsSL https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.sh | sudo sh): så er BitVoice i/Applications, starter med Mac'en, kører som en skjult bruger af sin egen (_bitvoice), serverer webgrænsefladen på port 443, gemmer data i/Library/Application Support/BitVoiceog logfiler i/Library/Logs/BitVoice, og Mac'ens firewall, når den er aktiveret, lader den acceptere forbindelser. Én af de to per Mac: installeren afviser den anden, mens den ene er der. Når Mac'ens firewall er aktiveret, beder en BitVoice, der er installeret til dig, om, hvorvidt den må acceptere indgående forbindelser: tillad det, så telefoner kan tilslutte. Hvis noget andet bruger porten, nævner installeren det og stopper (vælg en anden medBITVOICE_HTTPS=:8444).sh install.sh --uninstall(medsudotil Mac'ens egen) fjerner den og gemmer data;--purgefjerner data og logfiler også. Prøvet på macOS 26 (Apple-silicium), installeret til én person: installeret, signatur kontrolleret med Mac'ens egen ssh-keygen, en anden start på samme data afvist, tilbage efter programmet var dræbt, startede igen fra app'en, opgraderet på stedet, et manipuleret program afvist, en port i brug afvist, afinstalleret og gemt data, geninstalleret på den og renset med intet tilbage. Installationen til hele Mac'en (sudo) er prøvet på hver ændring på GitHub's macOS-maskiner (Apple-silicium): kører som_bitvoicepå port 443, en brugerinstallation ved siden af afvist, tilbage efter programmet var dræbt, opgraderet, renset med intet tilbage (den skjulte bruger også). Intel Mac'er er ikke prøvet endnu. - Windows: som administrator,
C:\Program Files\BitVoice, startede med Windows, data iC:\ProgramData\BitVoice, og en firewall-regel for private og domæne-netværk; ellers til dig alene, startede, når du logger ind. Den fungerer i Windows PowerShell 5.1 (hvad Windows Server har) og i PowerShell 7, og i 5.1 startede fra inden i 7. BitVoice skriver sin log tilbitvoice.logi data-mappen (holdt under 10 MB, den ældre del ibitvoice.log.1), og installeren udskriver installationskoden, som wizarden beder om fra en anden computer. Windows kalder et nyt Wi-Fi eller netværk Offentligt, indtil det er fortalt noget andet, og firewall-reglen lader intet komme ind der: for et hjemme- eller kontor-netværk siger installeren, hvordan man kan gøre det Privat (Indstillinger, Netværk & internet, netværkets Egenskaber); for en sky-server udskriver den reglen til at tilføje (åbn også porte i udbyderens firewall). Installeret som administrator, er data-mappen kun læselig for administratorer (den indeholder database og nøgler), og Start-menuens BitVoice åbner webgrænsefladen; installeret til dig, starter Start-menuen BitVoice, eller åbner den, når den allerede kører. Uanset måden er den i Indstillinger, Apps, Installerede apps, som fjerner den og spørger, om den også skal fjerne dens data. Prøvet på Windows 11 (som administrator og ikke) og på Windows Server 2022 på Amazon EC2: installeret, nået fra udenfor, kørt igen efter genstart. - Prøvet på: Ubuntu 24.04 og 20.04, Debian 12 og Fedora 42 (hver med systemd): installeret, signatur kontrolleret, en anden start på samme data afvist, tilbage efter programmet var dræbt, opgraderet på stedet, et manipuleret program afvist, afinstalleret og gemt data, geninstalleret på den og renset med intet tilbage.
- Linux på en sky-server: adressen, den udskriver, er maskinens egen, private; installeren siger det. Åbn serveren via dens offentlige adresse eller navn, med 443, SIP og lydports åbne i udbyderens firewall.
Kør samme kommando igen for at opgradere (eller brug Opdateringer (kapitel 62)). sh -s -- --version v0.1.5 (efter røret) vælger en udgivelse; --uninstall fjerner programmet og tjenesten og gemmer data, --purge fjerner også data. På Windows, gem scriptet og kørende .\install.ps1 -Version v0.1.5, -Uninstall eller -Purge, eller fjern det i Installerede apps. For en server, der holdes uden for internettet, kopier udgivelsens arkiv og SHA256SUMS til en mappe og angiv BITVOICE_FROM til den.
Hvor det kører
BitVoice kører på Linux, macOS og Windows.
| System | Hvordan starte det | Hvor dets data er |
|---|---|---|
| Linux | ./bitvoice (eller systemd-tjenesten i udgaven) | ~/.config/BitVoice |
| macOS | ./bitvoice | ~/Library/Application Support/BitVoice |
| Windows | dobbeltklik bitvoice.exe | %APPDATA%\BitVoice |
On Windows, keep the window it opens while you use BitVoice (closing it stops BitVoice), and when Windows asks whether it may use the network, allow private networks so phones can connect. -data puts the data anywhere else; -https and -sip choose the addresses and ports; -log FILE also writes everything it prints to a file, for a computer where nobody watches its window.
De porte det bruger
| Port | Hvad til |
|---|---|
| 5060 UDP og TCP | SIP: telefoner og trunker |
| 5061 TCP | SIP over TLS (krypteret signalering) |
| 4569 UDP | IAX2-trunker, kun når en er konfigureret |
| 1720 TCP | H.323-trunker, kun når en er konfigureret |
| 2000 TCP | Skinny (SCCP)-telefoner, kun når aktiveret |
| 2727 UDP | MGCP-gateways, kun når aktiveret |
| 10000–20000 UDP | lyden af opkald (RTP), konfigureres i Indstillinger |
| 8443 TCP | denne webinterface, HTTPS kun (ren HTTP sendes videre til HTTPS) |
Hvis en anden telefoncentral allerede har 5060, tager BitVoice den næste ledige port, og Status siger det.
Alt i webinterfacen
Hver indstilling har en skærm, og hver skærm har et kapitel her. Intet kræver en konfigurationsfil, en kommandolinje eller et andet værktøj. Til automatisering er de samme skærme en REST-API, og konfigurationen kan følge en fil i Git (Konfiguration som kode (kapitel 69)), men ingen af delene er nogensinde påkrævet.
Hvad BitVoice er til
BitVoice er først og fremmest en telefoncentral til kontorer og kontaktcentre, og en værtsservice til udbydere: alt i de første fem dele af denne vejledning. 911-svarpunktprofilen, radiodispatchkonsollen og NG911 Core Services er en separat laboratorie- og designpartnerbane (Offentlig sikkerhed (kapitel 77)): de er ude af menuen, indtil de er aktiveret i Indstillinger, og ikke certificeret til brug i live.
At finde vej
- Tryk ⌘K (Ctrl+K) et hvilket som helst sted for at springe til en skærm, eller skriv et extensions navn eller nummer for at åbne det.
- På en telefon er menuen bag ☰-knappen øverst til venstre (og søgning ligger ved siden af, øverst til højre); at vælge en side lukker den igen.
- Hver skærm har et Hjælp-link øverst til højre, der åbner dette kapitels kapitel i denne manual.
- Ændringer gemmer hver version af konfigurationen: du kan se, hvad der er ændret, og fortryde det.
- Tre temaer (Midnight, Dark og Light) er placeret ved bunden af menuen.
Hvor modent hver del er
Hvor langt hver del er blevet bevist, åbent. Felttestet: kørt mod rigtige systemer over et rigtigt netværk (Amazon EC2, internettet, rigtige udbyderes tjenester). Tjekket mod en reference: testet mod en uafhængig implementering eller standardens egen data. Softwaretestet: BitVoices egne tests og browser-tests kun, ikke endnu med rigtig udstyr eller konti. Laboratorium: offentlig-sikkerhedsdele, ikke certificeret.
| Område | Modenhed | Hvad det hviler på |
|---|---|---|
| SIP-trunker: registrering, indgående og udgående opkald, opkalders ID, beskæftiget, taster (RFC 4733) | Felttestet | en kommerciel udbyder, SIP.US (demo-konto, fra EC2): registrering og udgående opkald til det offentlige telefonnetværk over UDP og over TLS med udbyderens certifikat kontrolleret; MOS 4,39, ingen tab. Indgående opkald fra det offentlige telefonnetværk: T38Fax (fax-opkald til dets nummer, registrering over UDP). Asterisk som udbyder over internettet på EC2; MOS 4,4. Kamailio 5,7 (registrering med digest-signatur over TLS, opkald i begge retninger, taster) og FreeSWITCH 1,11 (TLS og SRTP, opkald i begge retninger, G.722 til G.711) som den fjerne ende; MOS 4,39 |
| Skrivebordstelefone over SIP | Felttestet | Asterisk som skrivebordsphone over internettet. Ægte Yealink-, Poly- eller Grandstream-håndapparater er endnu ikke testet |
| Browser-telefon (WebRTC) | Felttestet | fra udenfor til EC2; Chromium-browser-test med lyd i begge retninger |
| To servere, en PostgreSQL, failover | Felttestet | kill -9 og planlagt stop på EC2: opkaldet fortsætter, udbyderlinjen flyttes |
| En-kommando-installation | Felttestet | Ubuntu 24,04 (x86, Arm), Debian 12, Amazon Linux 2023, Windows Server 2022, Windows 11 (som administrator og ikke, i PowerShell 5,1 og 7), Ubuntu 20,04 og Fedora 42 i containere, macOS 26 på Apple-silicium (til en person, og med sudo for hele Mac'en i CI); tilbage efter genstart |
| Kapacitet | Felttestet | 2.000 opkald på én gang, ingen tab, MOS 4,41, på en 16-vCPU c7i.4xlarge (omkring 10 vCPU'er beskæftiget); 200 på én gang på c7g.large, c7i.large, t4g.small, en M4 og Lightsail nano. Ved 2.000: jitter 4,0 ms for 95% af opkaldene, længste pause mellem pakker 74 ms, længste garbage-collection-pause 4,2 ms |
| FreePBX-migration (Import) | Felttestet | en ægte FreePBX 17,0,33-sikkerhedskopi (70 MB) importeret hel; andre fra FreePBX's egne formater |
| AI-transkriptioner, sammenfatninger, receptionist | Felttestet | en ægte model gennem OpenRouter |
| Fakta og sammenfatninger uden sprogmodel | Software-testet | opfundne 911-opkald kun: 23 af 43 fakta (53%) på den forseglede samling, 3 fakta som ingen forventede; 41/41 træning, hold-out 27/40 kold. Aldrig målt på ægte opkald. |
| Tale til tekst på denne server (whisper) | Felttestet på macOS og Linux | whisper-server 1,9,5 kørt af BitVoice: på en Mac, og på Ubuntu på EC2 (x86-64), hvor det skrev live-opkalds- og voicemail-transkriptioner i telefonappens felttest; downloads til hver platform bygget og testet i CI |
| Arkivering til S3, hemmeligheder fra AWS Secrets Manager | Felttestet | ægte AWS, vores egen SigV4 |
| SNMP-overvågning og fælder | Felttestet | net-snmp's snmpwalk og snmptrapd |
| Let's Encrypt | Felttestet | udsteder og fornyer det offentlige demos certifikat |
| Maskinimages (AWS) og konfiguration som kode | Felttestet | en EC2-image bygget af deploy/cloud/build-images.sh fra Ubuntu 24,04: hver server fra den starter ny; deploy/terraform med OpenTofu 1,13 (opret, ændr, ingen drift, ødelæg). Azure-images er ikke testet |
| IAX2-trunker | Kontrolleret mod en reference | Asterisk 23 |
| Fuldt ICE bag NAT (STUN- og TURN-klient) | Kontrolleret mod en reference | Chromiums ICE-agent (host-kandidater og relay kun), JsSIP-softphones med BitVoices tilbud, coturn 4,18 og BitVoices egen TURN-server som relæer, mDNS-hostnavne af Chromium løst. Endnu ikke testet fra en server bag en ægte NAT-router |
| ICE-genstart (en telefon, der skifter netværk midt i et opkald) | Kontrolleret mod en reference | Chromium genstarter ICE på et browser-telefonopkald (BitVoice som ICE-lite og som en fuld agent) og SIP.js 0,21 genstarter ved re-INVITE over SIP over WebSocket: nye legitimationsoplysninger i begge retninger, en ny kandidatpar, lyd hvert andet sekund gennem genstarten. Endnu ikke testet på en telefon, der faktisk flytter fra Wi-Fi til et mobilt netværk |
| SIP History-Info og Diversion (videretninger) | Kontrolleret mod en reference | Asterisk 20's PJSIP i begge retninger: dens videretninger læst af BitVoice, og BitVoices videretninger læst af Asterisk's REDIRECTING() fra History-Info alene og fra Diversion alene; RFC 7044-poster gemt og udvidet på en videretning på. Endnu ikke testet med en udbyder eller Teams, der sender dem |
| Virksomhedsdirectory (LDAP, Active Directory) | Kontrolleret mod en reference | OpenLDAP 2,4 (StartTLS og LDAPS, 1.203 personer læst gennem paginering forbi dens 1.000-grænse, grupper, login) og Samba 4's Active Directory (LDAPS, paginering forbi 1.000, deaktiverede konti udeladt, nestede grupper til ringegrupper og roller). Endnu ikke testet mod Microsofts egen Windows Server-domænecontroller |
| ARI (Asterisk REST Interface) | Kontrolleret mod en reference | hver operation af Asterisk's publicerede ARI kaldt og dens svar kontrolleret mod modellens krævede felter; ari-client 2,2,0, Asterisk's JavaScript-bibliotek, læser /ari/api-docs og kører en applikation |
| Alle-video-rum (SFU, simulcast) og skærmdele | Kontrolleret mod en reference | Tre Chromium-browsere i ét rum, hver sender tre størrelser (VP8-simulcast) og modtager de to andre; størrelser skiftes ved nøgleframes, som fliser vokser og mindsker. Kameraer og en delt skærm (Chromiums egen skærmfangst) i et H.264-rum. Endnu ikke testet med Firefox eller Safari, over internettet eller med mere end tre kameraer; H.264-simulcast vælger lag efter browserens rækkefølge kun. |
| AGI og FastAGI (Asterisk Gateway Interface) | Kontrolleret mod en reference | hver kommandos svar sammenlignet med Asterisk 20,6's over FastAGI; en FastAGI-server skrevet med pyst2 kører et opkald; EAGI-lyd til et program. Endnu ikke testet med en produktions-IVR |
| AI-assistenter over MCP | Kontrolleret mod en reference | den officielle MCP TypeScript SDK (1,32,2) som klient: værktøjer listet og kaldt med et API-token over Streamable HTTP (protokol 2025-11-25), og dens OAuth-login slut til slut (opdagelse, registrering, PKCE, token, forny); samtykke-siden i Chromium; stdio-broen mod en testserver. Endnu ikke testet med Claude, ChatGPT eller en anden assistent, der kræver en server, der er tilgængelig fra internettet med et tilladt certifikat. |
| Microsoft 365 og Google Workspace (kontakter og kalendere) | Software-testet | mod stand-ins af Microsoft Graph (brugere, organisationskontakter, kalender getSchedule, client-credentials-token) og af Googles People API, Calendar freeBusy og JWT-bærertoken, skrevet fra deres publicerede referencer; stand-ins kontrollerer, hvad BitVoice sender (JWT's signatur og krav, paginering, anmodningskroppe). Endnu ikke testet med en ægte Microsoft 365-lejer eller Google Workspace-domæne. |
| Skærmene på 14 sprog | Software-testet | hver del af tekst, skærmene viser (om 5.000, fra koden: JSX-tekst, strenge og serverens meddelelser) maskinoversat af Llama 3,3 70B til 13 sprog, 99% beholdt af kontrollerne (samme placeringer, adresser og koder ubeskadiget); tysk tegnet gennem browser-testerne (login, menu, søgning, en form, tilbage til engelsk). Endnu ikke gennemgået af en person på noget sprog. |
| H.323-trunker | Kontrolleret mod en reference | H323Plus 1,28 (dens simph323 afspiller og optager WAV-filer) på EC2: opkald i begge retninger med Fast Connect og G.711, hver ende hører den andens tone, MOS 4,39; opkaldsopsætning også med Asterisk's chan_ooh323 (hvis egen lyd er brudt i Asterisk 22) |
| SIP over WebSocket | Kontrolleret mod en reference | JsSIP og SIP.js |
| Codec'er: GSM, G.726, iLBC, MP3-holdemusik | Kontrolleret mod en reference | ffmpeg, RFC 3951-referenceprogrammet og minimp3, prøve for prøve |
| Codec'er: G.711, G.722, G.729, Opus, Speex | Kontrolleret mod en reference | G.711 og G.722 byte for byte og prøve for prøve med spandsp; G.729's decoder prøve for prøve på alle syv af ITU's egne Annex A-testvektorer (bcg729 er ikke), dens encoder samarbejder med bcg729 på samme kvalitet (G.729 kræver ikke, at encodere matcher); Opus-pakker dekodet af libopus 1,6,1 og libopus's pakker dekodet som libopus gør; Speex-pakker og lyd identiske med libspeex 1,2,1; Opus-opkald med Android-appen |
| Codec'er: AMR-NB, AMR-WB | Kontrolleret mod en reference, med en kendt lukke | AMR-WB dekoder som opencore-amr prøve for prøve, og på 3GPP's egne TS 26,174-testsekvenser matcher 3GPP's decoder nøjagtigt på 167 af 198 og er aldrig målbart under den. AMR-NB-encoder ramme for ramme med opencore-amr, men dens decoder er tæt på, ikke nøjagtig (omkring 31 dB fra opencore). Begge kommer fra de fastgjorte goamr-biblioteker |
| Codec'er, der transporteres uberørt: G.722.1 (Siren 7), G.722.1C (Siren 14), G.719, Codec2 | Software-testet | egne tests: tilbudt med deres bitrate eller tilstand, besvaret, pakker i begge retninger byte for byte; ikke konverteret (ingen fri referencekode BitVoice må medføre til G.722.1 og G.719). Endnu ikke testet med en ægte Polycom eller rum-system |
| ISDN PRI og BRI, T1/E1 | Kontrolleret mod en reference | libpri (Asterisk's), begge sider; og på EC2 gennem den virkelige DAHDI 3,4-kernel-driver (to spans koblet sammen i kernelen, Asterisk 20's chan_dahdi som telefonudbyderen): opkald i begge retninger med numre og navne, alle 23 kanaler på én gang, MOS 4,39. Ingen fysisk kort eller linje endnu |
| MFC-R2, E&M | Kontrolleret mod en reference | OpenR2; MF-toner af vores egne tests. Ingen ægte kort eller linje prøvet |
| SS7 (ISUP, MTP, link-sæt af flere links med skift) | Kontrolleret mod en reference | libss7 (Asterisk's chan_dahdi-bibliotek), ITU og ANSI. Ingen ægte udbyderlink prøvet |
| Fax (T.30, T.38) | Felttestet | en fax-udbyder, T38Fax (gratis prøve, fra EC2): BitVoice sender en fax over det offentlige telefonnetværk til dets eget nummer og modtager den, begge over T.38 (2 sider, 14.400 bit/s, siderne ankom intakt; registrering med brugernavn og adgangskode); og passerer en fax mellem en faxmaskine på en gateway (Asterisk med spandsp, stående i for en) og T38Fax, ud og tilbage, 2 sider på 14.400 bit/s i begge retninger: en gang alle på G.711 (gatewayen afviste T.38) og en gang skiftet til T.38 på begge sider. spandsp (gennem Asterisk 20) på EC2: modtager og sender over T.38 med fejlrettelse, og passerer faks mellem to andre maskiner over T.38 og over G.711. Ingen hardware-fax-gateway prøvet, og T38Fax bad aldrig om T.38 selv, så en udbyders skift blev afvist af gatewayen ikke set |
| Konfiguration: Yealink, Poly, Grandstream, Snom, Fanvil, Cisco, Mitel, Sangoma, Algo, CyberData | Software-testet | leverandørernes dokumenterede formater; ikke på ægte håndapparater |
| Skinny (SCCP)-telefone, MGCP-gateways | Kontrolleret mod en reference | Skinny: telefoner fra det open-source mwicat/sccp-bibliotek, hver besked læst af Wiresharks dissektor, størrelser som Asterisk's chan_skinny; MGCP: Yate's MGCP-gateway (genstart, midlertidige svar, bekræftelser; den har ingen analoge porte, så ingen opkald). Ingen Cisco-telefon eller gateway-hardware prøvet |
| Microsoft Teams Direct Routing | Software-testet | mod en simuleret Microsoft-proxy, der følger Microsofts publicerede Direct Routing SIP-regler (OPTIONS, Contact, user=phone, client-certifikat, overførsler Teams beder om ved REFER med x-m og x-t); ingen Teams-lejer prøvet: Microsoft tilbyder ingen gratis (Teams Phone-licenser) |
| Hotel (FIAS) | Kontrolleret mod en reference | hver post BitVoice sender kontrolleret mod Oracles publicerede FIAS 2,20,23-specifikation (link-start, link-poster, poster, væk-opkald); egne tests. Endnu ikke mod Opera selv |
| Tekstning, WhatsApp, Messenger, web-chat | Kontrolleret mod en reference (Twilio, Telnyx, Bandwidth, Vonage, TextMagic, WhatsApp) | Tekster gennem Twilio, Telnyx, Bandwidth, Vonage og TextMagic, og WhatsApp-tekster, skabeloner og skabelonlister, mod mocks bygget fra udbydernes egne publicerede OpenAPI-specifikationer (Stoplight Prism, afviser alt, hvad specifikationen ikke tillader; TextMagics er den, dens egen klient er genereret fra). Vonages viste, at nøglen skal være i HTTP Basic, ikke længere i formen. SignalWire taler Twilios API; Plivo, Flowroute, VoIP.ms og Messenger publicerer ingen specifikation og kontrolleres mod stand-ins skrevet fra deres dokumentation. Ingen live-konto prøvet |
| CRM-opkaldskort, Azure Blob, Azure Key Vault | Kontrolleret mod en reference | EspoCRM (en ægte open-source CRM, i Docker) til opkaldskort; Microsofts Azurite-emulator til Blob-upload (container-SAS, afvisninger); Lowkey Vault til Key Vault med en administreret identitet. Endnu ikke testet mod Azure selv eller en hosted CRM |
| Spam-filtrering: robot-test, ukendte opkaldere, spam-database, *32, forslag | Software-testet | BitVoices egne tests: en udbyder, der ringer ind over SIP og trykker taster (RFC 4733) på robot-testen, passerer og fejler den; kendte, altid-tilladte og nød-opkaldere ringer på én gang; spam-databasen mod en stand-in, der svarer, som Twilio dokumenterer sin Lookup med Nomorobo-tilføjelsen (ingen Twilio-konto prøvet); *32 fra en skrivebordsphone; forslag fra opkaldsposter; indstillingerne gennem browser-testerne. Endnu ikke testet mod ægte robot-opkald eller en betalt database |
| iPhone- og Android-apps | Felttestet (Android) | Android: en Google Pixel 8 (Android 16, Wi-Fi) med den signede udgivelsesbygning mod BitVoice på EC2 med et Let's Encrypt-certifikat: parret via link, ringede med Androids opkaldsnotifikation, svarede fra den, lyd i begge retninger, forblev forbundet med skærmen slukket og i baggrunden (dens pågældende opkaldsnotifikation, Hang up); uden push ringede den ikke i baggrunden. En Google Pixel 11 (Android 17) i AWS Device Farm: parret, ringede, svarede, ringede ud; Opus, MOS 4,1. iPhone: appen (SwiftUI, CallKit, PushKit VoIP) bygges mod den aktuelle SDK (Xcode 27) og serveren signerer Apple VoIP-push (APNs, ES256); samme ægte enhedsrettelser som Android og en App Store-listing (ios/AppStore) er i. Begge apps er en fuld udvidelse: overføring (blind, over REFER), hold og et andet opkald, tastatur og mute, med Recents, visuel Voicemail (med transkriptioner), en Team-beskæftiget-lampe, Kontakter, den personale Chat (kolleger med tilstedeværelse, direkte beskeder og rum, med en notifikation i baggrunden og en push, når appen er lukket), en video-rum-vælger (lister SFU-rum med, hvem der er i hvert, sluttes til som udvidelsen, vist som et video-opkald på telefon-opkaldsskærmen) og en live AI-transkription på opkaldet (AI.LiveCallTranscripts); overføring, hold, den live-transkription, chatten når en kollega, rum-vælgeren, et rum sluttes til fra en phone og chatten push-form er hver dækket af en motor-niveau, API eller browser-test. På Pixel 8 (2026-10-30, debug-bygning, EC2 med Let's Encrypt): ringede og svarede fra notifikationen, holdt og genoptog (Androids opkaldsstatus følger), ringede ud på Androids opkaldssystem, Opus i begge retninger med MOS 4,38 og ingen tab; sluttede til et video-rum med dets kamera (bedt om ved første brug) og så en desktop-kamera, begge live; en chat-besked i baggrunden notificerede og åbnede Chat. Hold og overføring når den native opkaldsskærm (CallKit, Telecom). Endnu ikke kørt på en iPhone eller indsendt: push, system-opkaldsskærmen og signing kræver vores egen Apple Developer-konto |
| 911-profil, radiokonsol, NG911 Core Services, opkalders video | Laboratorie | NENAs skemaer og samplesdata, Wireshark, spandsp, OpenSSL, ExifTool, ffmpeg, en NIST P25-optagelse (dens IMBE-lydrammer pakket ud som mbelib pakker dem ud: samme tonehøjde, harmonier, stemme og amplituder); aldrig på et live ESInet, P25-system eller PSAP CAD, og ikke certificeret |
| P25-fase 2-halvrate-lyd (AMBE+2) | Ikke tilbudt | patenteret indtil 2028 |
| Ed448-signaturer (NENA) | Ikke tilbudt | ikke i Gos standardbibliotek, og BitVoice skriver ingen kryptografi af sig selv; Ed25519 bruges |
| SS7-signalingsoverføring (STP), SCCP og TCAP | Kontrolleret mod en reference | OsmoSTP 2,3,0 over M3UA/TCP med libosmo-sigtrans SCCP-echo-bruger bag det: UDT og XUDT i begge retninger, UDTS returneret, global titel-oversættelse gennem STP, en switch på et link-sæt når echoen over IP; TCAP mod libosmo-asn1-tcap i begge retninger. ITU kun; ingen SCTP, forbindelsesorienteret SCCP eller SCCP-styring; ingen ægte udbyder prøvet |
| MFC-R2 Kina-variant (Kina nr. 1) | Software-testet | hver signal af et opkald kontrolleret mod Ciscos publicerede Kina-tabeller og opkaldssekvenser (KA, KD, Gruppe B af KD sendt, C og D-bits 11). OpenR2's Kina-variant er uenig med sig selv, så ingen program til at teste mod; ingen ægte linje prøvet |
| ALI over PAM eller E2 | Ikke tilbudt | PAM er Intrados eget protokol med ingen publiceret specifikation; E2 (J-STD-036, NENA 05-001) kører mellem en mobil positionscenter og ALI-databasen, ikke til en PSAP. BitVoice taler anmodning-og-tekst ALI-links og HELD i stedet |
Udvidelser
/extensionsEn udvidelse er et nummer for en person eller en skrivebordstelefon. Telefoner logger ind med udvidelsesnummeret og dets SIP-adgangskode; opkald til nummeret ringer på alle telefoner, der er logget ind som det, samtidig.
Tilføjelse af en ekstension
- Åbn Ekstensioner (kapitel 3) og tryk på Tilføj ekstension. Det næste ledige nummer og en stærk SIP-adgangskode bliver udfyldt.
- Indtast personens navn (vises på andre telefoner, når de ringer) og email (til voicemail via email).
- Udfyld 911-placeringen: stedet, etagen og rummet. Den sendes med nødopkald.
- Vælg, hvad der sker Hvis ingen svarer: voicemail som standard, eller en anden ekstension, en gruppe eller en menu.
- Gem. Ekstensionen kan logge på med det samme.
Felterne
| Feltnavn | Hvad det gør |
|---|---|
| Nummer | 2 til 8 cifre; ingen anden udvidelse, gruppe, kø eller funktionsskode må have det |
| SIP-adgangskode | hvad telefonen logger ind med; mindst 12 tegn; Generér laver en ny |
| Ringer i | sekunder, før Hvis ingen svarer sker (25 som standard) |
| Ekstern kald-id | nummeret, der vises på udgående opkald; tom bruger trunkens |
| Kan ringe eksterne numre | slukket holder telefonen til interne opkald og nødnumre |
| Optag kald | når Indstillinger kun optager valgte udvidelser |
| Hot desk | en fælles telefon, der bliver den, der logger ind på den |
| Kryptér kald til denne telefon | medie-kryptering (SRTP); brug det med TLS, så nøglerne forbliver private |
| Afdeling | grupperer denne udvidelses opkaldsomkostninger |
Følg-mig, afhent og intercom
Hver persons egen opkaldshåndtering er i sin egen boks på udvidelsen:
- Følg-mig ringer flere numre, når telefonerne her ikke besvares: en mobil, en anden skrivebordstelefon. De ringer én efter én, eller alle sammen, i deres egen ringetid. Med Eksterne numre tryk 1 for at tage opkaldet på, trykker den, der svarer på en mobil, 1 først, så mobilen selv aldrig tager opkaldet. Se Funktioner (kapitel 32).
- Opkaldsgruppe: hvem som helst i samme gruppe kan besvare denne ekstensions ringende opkald ved at taste
*8. - Tillad højttaler:
*80og dette nummer svarer på højttaleren selv. Slå det fra for personer, der aldrig ønsker det. - Egen hurtigvalg: korte koder for denne person alene, tastet efter
*0.
Viderebeforing lige nu
Under indstillingerne viser og ændrer Viderebeforing lige nu det, personen har indstillet fra sin telefon eller personaleportalen: ikke forstyr, og viderebeforing af hvert opkald, af opkald under beskæftigelse og af opkald, der ikke er besvaret. Disse er live-tilstand, ikke konfiguration: ændring af dem skaber ingen revision.
Hvad der er tilsluttet
- Telefon: en skrivebordstelefon, softphone eller app.
- Dørstation: en intercom ved en dør. Den, der besvarer, trykker kodeordet eller Åbn dør på Live-opkald. Med en dørcontrolleradresse ringer BitVoice til den adresse (2N, Axis, Akuvox, relækort); uden en, sendes kodeordet til stationen, der åbner døren selv.
- Højttaler: opkald til den besvares med det samme og høres over højttaleren.
- Analog adapterport: en gammel telefon, fax eller alarmpanel på en adapter. Opkald bruger kun G.711, som faks behøver.
Tilsluttede enheder
En åben udvidelse viser hver enhed, der er logget ind som den: telefonens mærke og model, hvordan den tilslutter (UDP, TCP, TLS eller browseren) og siden hvornår. Adresse og port til at give til en telefon vises også der.
Tilslutning af telefoner
/phonesEnhver SIP-telefon eller app virker: pege på denne servers adresse og port 5060, med udvidelsesnummeret som bruger og dets SIP-adgangskode. Skrivebords-telefoner fra de fire store producenter konfigureres automatisk i stedet, så ingen skriver en adgangskode ind i en telefons tastatur.
Automatisk opsætning (provisioning)
- På Telefoner (kapitel 4) tryk på Tilføj telefon og indtast telefonens MAC-adresse (på en stikker under) og den ekstension, den tilhører.
- Vælg mærket: Yealink, Poly, Grandstream (inklusive HT-analogadaptere), Snom, Fanvil, Cisco, Mitel, Sangoma, Algo eller CyberData.
- Fortæl telefonen, hvor BitVoice er: i jeres DHCP-server, indstil option 66 til den provisioningadresse, der vises på skærmen, så hver telefon på netværket finder den selv; eller indtast den samme adresse på telefonens egen web-side under auto-provisioning.
- Genstart telefonen. Den henter sin fil over HTTPS, logger på og dens linjetaster viser, hvem der er på telefonen.
HTTPS eller plain HTTP. Telefoner henter deres fil over HTTPS når de kan. Nogle ældre telefoner kan ikke bruge HTTPS overhovedet, og mange stoler ikke på certifikatet BitVoice selv har lavet; til disse viser skærmen også en plain http://-adresse på samme port. Plain HTTP er kun til disse filer: hver anden side går stadig til HTTPS. Over plain HTTP krydser telefonens SIP-adgangskode netværket ukrypteret, så hold det til et tillidsfuldt kontor-netværk, eller installer et certifikat fra en myndighed og slå HTTPS kun til telefoner til.
Filen indeholder udvidelsen, dens adgangskode, tidszone, codec, beskæftigelses-lamper og adressen på denne server. Konfiguration er beskyttet af en brugernavn og adgangskode telefonerne får én gang.
| Mærke | Testede modeller | Hvad den får |
|---|---|---|
| Yealink | T3x, T4x, T5x | konto, BLF-taster, tid, codec |
| Poly | VVX, Edge E | det samme, i Polys eget format |
| Grandstream | GRP, GXP, HT802/814 | konto per port på adaptorer |
| Snom | D7xx | konto, taster, tid |
Disse mærker konfigureres også, med filer skrevet fra hvert mærkes dokumenterede format, men ikke endnu testet på deres enheder (Telefoner-skærmen markerer dem som ubeprøvede):
| Fabrikat | Modeller | Filen enheden beder om |
|---|---|---|
| Fanvil | X og V-serier | dens MAC-adresse .cfg |
| Cisco | 6800, 7800, 8800 multiplatform (3PCC), SPA-adaptorer | dens MAC-adresse .xml (entreprise-firmware kræver multiplatform-firmware først) |
| Mitel (Aastra) | 6800, 6900 SIP | dens MAC-adresse .cfg, i store bogstaver |
| Sangoma | S-serie | Fanvil-formatfilen |
| Algo | højttalere til opkald, lys, adaptorer | algop og dens MAC-adresse .conf |
| CyberData | højttalere, intercom, opkaldsadaptorer | dens MAC-adresse .xml |
Hver enhed får sin egen konto, serveren (og reserve-serveren, hvis der er flere servere), transport og kryptering, samt voicemail-nummer, hvis den har et. Angiv Algo- og CyberData-højttaleres udvidelser til Højttaler så opkald til dem besvares med det samme.
Telefoner uden provisioning
Softphones og andre mærker tager de samme tre ting: server (dette computers adresse, port 5060 eller 5061 med TLS), bruger (ekstensionsnummeret) og adgangskode (dens SIP-adgangskode). Sundhedsrapporten viser telefoner, der har forsøgt en forkert adgangskode; efter et par forsøg bliver adressen blokeret i en periode (se Sikkerhed (kapitel 60)).
Browser-telefonen
Telefonikonet nederst på hver skærm gør denne browser til en telefon for en udvidelse, med din mikrofon og højttalere. Den bruger WebRTC: lyden er krypteret fra ende til ende, og den fungerer gennem de fleste brandvægge uden nogen indstillinger.
Other WebRTC softphones (SIP over WebSocket)
Softphones and web apps built on JsSIP, SIP.js and similar libraries speak SIP over WebSocket (RFC 7118). Switch on SIP over WebSocket in Settings (kapitel 14) and point them at wss://<this server's name>:<web port>/ws, with the extension number as the user and its SIP password. BitVoice ends their WebRTC sound itself (ICE, DTLS-SRTP, Opus or G.711), so they reach every phone, trunk and feature as desk phones do: calls both ways, keys pressed, hold, transfers by the other party, busy lamps and message-waiting. Settings shows how many are connected.
WebSockets kræver ingen selvstændig login: softphone logger ind med SIP, og mislykkede login-forsøg og for mange anmodninger tælles for dens egen adresse, ligesom for enhver telefon. En softphone-side serveret fra en anden side skal stole på denne servers certifikat (brug Let's Encrypt), og nuværende Chrome beder brugeren om tilladelse, før en offentlig web-side kan nå en server på det lokale netværk.
Testet med to uafhængige biblioteker, JsSIP 3.13 og SIP.js 0.21: to softphones af hver registrerer, ringer til hinanden og hører hinanden gennem BitVoice. Andre softphones (Linphones web-klient, Zoipers) kommunikerer med samme protokol, men er ikke blevet testet.
TURN, til netværk der blokerer UDP
Nogle netværk (hoteller, gæst-Wi-Fi, strenge virksomhedsbrandvægge) lader ingen UDP ud, eller gemmer computere bag NAT, som WebRTC ikke kan komme igennem. Til disse, slå TURN-server til i Indstillinger (kapitel 14): BitVoice kører derefter sin egen TURN-server (RFC 8656) på port 3478 (UDP og TCP) og, med denne servers certifikat, på port 5349 over TLS. Browser-telefoner, personale-telefonen og opkaldslinks får midlertidige legitimationsoplysninger til den og bruger den, når de ikke kan nå medieportene direkte; lyden er stadig krypteret fra ende til ende, og BitVoice formidler den kun til sine egne adresser, så ingen kan bruge den til at nå noget andet.
Åbn TURN-porten, TLS-porten og relay-portene (49152 til 49407, medmindre I ændrer dem) i brandvæggen. TURN over TLS kræver et certifikat, som browsere stoler på, til det navn, de bruger, såsom et fra Let's Encrypt (kapitel 14): indtil der er et, tilbyder BitVoice det ikke til browsere (de ville forsøge det, fejle og vente); og tilbyder det, så snart certifikatet ankommer; indstil dets port til 443 på en server med en ledig adresse for at komme igennem brandvægge, der kun tillader HTTPS.
Skift af netværk under et opkald
En telefon, der bevæger sig til et andet netværk under et opkald (uden for kontorets Wi-Fi til et mobilt netværk, eller en bærbar computer fra et Wi-Fi til et andet), får en ny adresse, og den gamle vej standses med at bære lyd. Browser-telefoner og BitVoice-apps bemærker det selv: Når browseren siger, at dens netværk er ændret, eller opkaldets vej standses med at svare i to sekunder, genstartes ICE (RFC 8445 9). Den tilbyder nye ICE-legitimationsoplysninger for det opkald, den har, og BitVoice svarer med nye og kontrollerer den nye vej, og opkaldet flyttes til den uden at skulle taste igen. Krypteringen fortsætter med de samme nøgler. Mens det sker, vises opkaldet som Genopretter…; på en vej, der stadig fungerer, er der ingen pause, da den gamle vej bærer opkaldet, indtil lyd kommer på den nye. SIP-softphones over WebSocket (JsSIP, SIP.js) gør det samme ved at geninvitere med nye ICE-legitimationsoplysninger. Intet behøver at aktiveres, med BitVoice som ICE-lite eller bag NAT.
BitVoice bag NAT
TURN-serveren ovenfor hjælper browsere på stramme netværk med at nå en BitVoice, der har en offentlig adresse. Når BitVoice selv ikke har nogen (på et kontor bag en router uden portvidereføring eller i et cloud-netværk uden offentlig adresse på maskinen), skal du aktivere Dette server er bag NAT under BitVoice bag NAT i Indstillinger (kapitel 14). BitVoice deltager derefter fuldt ud i ICE (RFC 8445) i stedet for at svare på én adresse (ICE-lite):
- Den tilbyder browsere sine egne adresser, dens offentlige adresse, som STUN-servere ser den, og relæer på TURN-servere, den logger ind på (UDP; et brugernavn og adgangskode hver), og kontrollerer hver adressepar med browseren, som browseren gør.
- Relæér hver opkald via TURN sender alle browsermedier via TURN-serverne, til netværk, der kræver det.
- Find mine adresser beder serverne om at finde adresserne, som et opkald ville, og viser, hvad BitVoice vil tilbyde: dens egne adresser, den offentlige adresse, set gennem STUN (en STUN-server, der ikke svarer, siges at være det), og dens relæer.
- Det virker for browser-telefonen, opkaldslinks, ekko-test og SIP-over-WebSocket-softphones, i begge roller: BitVoice svarer på en browsers tilbud, og tilbyder en softphone, den ringer. Browsere, der skjuler deres adresser bag mDNS-navne (
name.local), bliver opløst på det lokale netværk, og browserens adresse, som webserveren så den, bliver lukket igennem relæerne fra starten. - Deaktiveret som standard; det tilføjer et øjeblik til hvert opkald, mens serverne svarer (højst en og en halv sekund). Opkaldervideo bruger ICE-lite på begge måder.
Den personale-telefon
Åbn #/phone på enhver computer eller mobilbrowser: personer logger ind med deres udvidelse og SIP-adgangskode, uden en administrator-konto. Det er en fuld telefon: taste, besvar, hold, overfør og tastatur. Til deres egen videreføring og voicemail bruger de personale-portalen på #/me (se Den personale-portal (kapitel 33)).
De mobile apps
BitVoice-apps til iPhone og Android parres fra udvidelsessiden med en QR-kode. Opkald vækker appen via Apples og Googles push-tjenester, så den ringer, selv når den er lukket (når push er konfigureret; se nedenfor).
Skinny-telefoner og MGCP-gateways
/desk-phonesTelefoner og gateways, der ikke taler SIP, kan stadig bruges. Skinny-telefoner og MGCP-gateways (under Opkald) tager to ældre protokoller:
- Skinny (SCCP): Cisco-skrivebordstelefoner, der kører SCCP-firmware (79xx, 69xx, 89xx). Tilføj hver telefon efter dens MAC-adresse og vælg dens udvidelse; sluk Acceptér Skinny-telefoner og peg telefonen mod BitVoice (TCP-port 2000) i dens TFTP-indstillingsfil eller menu.
- MGCP (RFC 3435): gateways, hvis porte BitVoice driver én efter én, såsom analoge telefonadaptere og liniekort. Tilføj gatewayen efter det domænenavn, den bruger i dens endpointnavne (aaln/1@navn), dens adresse og udvidelsen af hver linje; indstil gatewayens opkaldsagent til BitVoice (UDP-port 2727).
Hver Skinny-telefon eller MGCP-linje er én mere enhed af dens udvidelse: den ringer med udvidelsens andre telefoner, ringer ud som udvidelsen og vises i udvidelsens enheder. Siden viser hver af dens tilstand.
Hvad virker
- Skinny: registrering, linjen og dens nummer på displayet, dialton, valg (nummeret kommer efter en pause eller #, eller med det samme fra telefonens tastatur, når det løftes efter valg), ringback, ringning med opkalders ID, besvarelse og afslutning med håndapparat, højttaler eller bløde taster (NewCall, Redial, Answer, EndCall), beskæftiget og omarrangeringstoner.
- MGCP: dialton, cifre indsamlet af gatewayen med en cifrekort, ringning med opkalders ID (ringes uden, når gatewayen afviser opkalders ID), ringback, beskæftiget og omarrangeringstoner, og lydforbindelsen (CRCX, DLCX). En gateway, der genstartes (RSIP), får sine porte konfigureret igen.
- Lyden er G.711 µ-lov på begge; BitVoice konverterer til det, den anden part bruger.
Hold, overføring og konference udføres i øjeblikket fra udvidelsens andre telefoner, og en Skinny-telefons anden linje bruges ikke.
Sikkerhed
Ingen af protokollerne har adgangskoder. Skinny-telefoner accepteres kun fra det lokale netværk og kun, når de er nævnt; MGCP-kommandoer følges kun fra gatewayens adresse (eller, uden en, fra det lokale netværk). Hold begge porte uden for internettet.
En gateway, der stadig arbejder på en kommando, kan svare "100 Trying" først: BitVoice venter derefter længere, før den sender kommandoen igen og bekræfter det endelige svar (000), som RFC 3435 kræver. En port, som gatewayen ikke vil overvåge, viser gatewayens egen afvisning på siden, såsom gatewayen nægtede at overvåge porten: 507 Unsupported Functionality fra en mediegateway med ingen analoge porte.
Hvordan de testes
- Skinny: to telefoner bygget fra en separat Skinny-implementation (den open-source mwicat/sccp-bibliotek) registrerer, ringer til hinanden, besvarer og lægger på; en ikke-tilgængelig telefon afvises. Wiresharks Skinny-dissektor læser hver besked BitVoice sender uden fejl, og beskederne har de fulde størrelser Asterisks chan_skinny sender til Cisco-telefoner.
- MGCP: mod Yates MGCP-gateway (genstart, midlertidige svar, bekræftelser, afvisninger) og BitVoices egen testgateway for hele opkald. Yate-gateway har ingen analoge porte, så der blev ikke foretaget noget opkald gennem den.
Telefoni-kort
/cardsEt telefoni-kort i BitVoice-computeren (Digium, Sangoma, OpenVox og andre kort med Linux DAHDI-drivere) kan bære analoge telefoner og telefonfirmaets linjer. Et separat program, bitvoice-dahdi, driver kortet og forbinder dets porte til BitVoice over computerns egen netværksforbindelse, så BitVoice selv aldrig rører kernel-driveren, og et kortproblem ikke kan standse telefon-systemet.
Opsætning
- Installer DAHDI-drivere og konfigurer portene som sædvanligt i /etc/dahdi/system.conf (
fxoks=1-4til porte med telefoner,fxsks=5-8til porte med linjer, og landets toner iloadzoneogdefaultzone), og kørendedahdi_cfg. - Under Telefoni-kort (under Opkald) slå Brug telefoni-kort til. En token oprettes; kopier den til en fil, som kun root kan læse, f.eks. /etc/bitvoice/cards.token.
- Tilføj hver port efter dets DAHDI-kanalnummer: en telefon-port (FXS, en telefon, fax eller dørtelefon tilsluttet) med dets udvidelse, eller en linje-port (FXO, en telefonfirmaets linje) med linjens nummer. Vælg A-lov til Europa og det meste af verden, µ-lov til Nordamerika og Japan.
- Til linjer, tilføj en trunk med protokollen Telefoni-kort linjer på Trunks, og ruter numre til den, som til enhver trunk; indgående ruter matcher hver linjes nummer.
- Start
bitvoice-dahdi -server https://127.0.0.1:8443 -token-file /etc/bitvoice/cards.tokensom en servicebruger, der må åbne /dev/dahdi. Den er i Linux-download ved siden af bitvoice. Siden viser, om den kører, og hver ports tilstand; ændringer når den inden for ti sekunder. En kanal, som et andet program stadig holder (eller en, som dahdi_cfg endnu ikke har konfigureret), prøves igen hver to sekunder, så rækkefølgen, ting starter i, har ingen betydning.
Hvad virker
- Telefoner: dialton, valg (cifre høres af BitVoices egen tone-detektor; nummeret kommer efter en pause eller #), ringback, beskæftiget og omarrangeringstoner fra kortets tonezone, ringning for indgående opkald, og taster trykket under et opkald (sendt som RFC 4733-begivenheder også).
- Linjer: en ringende linje ringer dets nummer her og besvares, når opkaldet er; udgående opkald tager en fri linje, venter på telefonfirmaets dialton og ringer nummeret som toner. Den fjerne ende, der afslutter, bemærkes, når linjen rapporterer det (loop-strøm eller polaritet, afhængigt af linjen). Analoge linjer siger ikke, når den fjerne ende besvarer, så et udgående opkald tælles som besvaret, så snart nummeret er ringet.
- Lyden er G.711 til og fra kortet; BitVoice konverterer til det, den anden part bruger.
Digitale linjer: T1 og E1 PRI
En T1 (23 opkald på én gang) eller E1 (30) linje køres som primær rate ISDN og er forbundet til et digitalt kort (Digium/Sangoma TE-serie, OpenVox D-serie og lignende). BitVoice taler PRI selv (Q.921 på D-kanalen og Q.931 opkaldskontrol), så hvert opkald kommer ind med det valgte nummer og opkalders ID, går ud med udvidelsens opkalders ID, og telefonfirmaet siger, når den fjerne ende ringer, besvarer eller er beskæftiget.
- I /etc/dahdi/system.conf, konfigurer spannet op til PRI som sædvanligt (
span=1,1,0,esf,b8zs,bchan=1-23,hardhdlc=24til en T1;span=1,1,0,ccs,hdb3,crc4,bchan=1-15,17-31,hardhdlc=16til en E1), og kørendedahdi_cfg. - Under Digitale linjer på Telefoni-kort (kapitel 6), tilføj spannet: T1 eller E1, dets første DAHDI-kanal, om BitVoice er PBX på telefonfirmaets linje (det sædvanlige) eller netværket (en anden PBX forbinder til BitVoice som til telefonfirmaet), og switch-typen, som telefonfirmaet har givet dig.
- Tilføj kort-trunk på Trunks, hvis der ikke er en allerede, og indgående ruter for numrene (DIDs), som telefonfirmaet sender.
Udgående opkald tager en PRI først, de analoge linjer efter; en beskæftiget nummer, et forkert nummer eller ingen fri kanal kommer tilbage som beskæftiget, ikke fundet eller utilgængelig, som netværket siger. Siden viser, om hver spans D-kanal er oppe og hvor mange af dets kanaler er i opkald. T1-kanaler konfigureret med robbed-bit-signalling (fxsks, fxoks) fungerer som de analoge porte ovenfor.
Navne, videreformidling og overførsler. En opkalders navn kommer med opkaldet (fra Visningsfeltet eller fra nettet som en facilitet på National ISDN-2) og vises på telefonerne; udgående opkald sender udvidelsens navn på samme måde. Nummeret, som et opkald er videreformidlet fra, kommer som omdirigeringsnummer (BitVoice videreformidler det som SIP's Diversion med årsagen: optaget, ikke besvaret, ubetinget), og når en udvidelses videreformidling sender et opkald ud på PRI, følger udvidelsens nummer med som omdirigeringsnummer, så den fjerne ende og telefonselskabet kan se, hvem opkaldet tilhører. Når et eksternt opkald besvares, fortæller BitVoice nettet om det nummer, der besvarede (det tilsluttede nummer).
Slå Overførsler via telefonselskabet til på en span (brugerside, National ISDN-2, 5ESS, DMS-100 eller EuroISDN) og når nogen overfører en opkald på den linje til et andet nummer på samme linje, beder BitVoice nettet om at slutte de to opkald sammen selv: To B-Kanal-Overførsel på National ISDN-2 og 5ESS-linjer, Release Link Trunk-overførsel på en Nortel DMS-100, eksplicit opkaldsoverførsel (opkalderen holdt, derefter sluttede) på EuroISDN. En DMS-100 giver kun en overførselsidentifikator til opkald, som BitVoice foretager, så der skal en af de to opkald være et udgående opkald (det almindelige tilfælde: en opkald, der er videreformidlet eller overført til et eksternt nummer). Begge kanaler frigøres, så snart nettet har sluttede dem sammen. Linjen kræver denne service (bed telefonselskabet om "to B-kanal-overførsel" eller "ECT"); hvis nettet afviser, fungerer overførslen stadig, via BitVoice, ved hjælp af begge kanaler som før. På en span, hvor BitVoice er nettets side, kan en anden PBX bede BitVoice om at slutte to af dens opkald sammen; BitVoice afviser (det er ikke en switch), og PBX'en beholder opkaldene selv.
Prøv det uden en kort
DAHDI's egne dynamiske span kan erstatte en kort: to span forbundet inden i kernel, BitVoice på den ene og en anden PBX (Asterisk's chan_dahdi, for eksempel) som telefonselskabet på den anden. Indlæs dahdi, dahdi_dynamic og dahdi_dynamic_loc, og i /etc/dahdi/system.conf:
dynamic=loc,1:0,24,0 dynamic=loc,1:1,24,0 bchan=1-23 dchan=24 bchan=25-47 dchan=48
Lad det sidste nummer (tidsstyring) være 0 på begge: DAHDI's egen tidsstyring driver dem så. Span, der er hinandens tidsstyringskilde, tikker kun, når den anden sender, og D-kanalen kommer og går. Tilføj span 1 her som en T1 (første kanal 1), og konfigurer den anden PBX som nettets side på kanaler 25 til 48.
Grundlæggende hastighed ISDN (BRI)
En BRI kan bære to opkald på samme tid (B1 og B2) og er almindelig i Europa til små kontorer; den forbinder også ISDN-skrivebords telefoner. BRI-kort (Digium B410P, HFC-baserede kort fra OpenVox, Junghanns og andre) fungerer gennem DAHDI, som PRI-kortene gør: i /etc/dahdi/system.conf er span'et span=1,1,0,ccs,ami med bchan=1-2 og hardhdlc=3. Tilføj det under Digitale linjer med BRI som linjetypen; dets kanaler er B1, B2 og derefter D-kanalen.
- BitVoice er PBX'en (brugerside), punkt-til-punkt: en PBX-linje fra telefonselskabet (Tysklands *Anlagenanschluss*): indgående opkald bærer det nummer, der er valgt, udgående opkald bærer udvidelsens nummer.
- Brugerside, multipunkt: en linje, der deles med andre enheder (*Mehrgeräteanschluss*): BitVoice beder nettet om sin egen TEI (terminalidentifikator) og besvarer opkald til linjen ved siden af andre enheder på den; telefonselskabet sender det nummer, der er valgt (MSN), som indgående ruter matcher.
- BitVoice er nettet, multipunkt: ISDN-telefoner er forbundet til kortets S-bus som til en telefonselskabslinje. Hver beder BitVoice om en TEI; et opkald til bussen ringer på hver telefon på den, og den første, der besvarer, tager det, og de andre holder op med at ringe. Numre, der er valgt digit for digit (som ISDN-telefoner ringer), indsamles, indtil telefonen siger, det er fuldført, # er trykket, eller ingen cifre kommer i fire sekunder. Rute numrene til og fra bussen med korttrunk som for enhver linje.
Navne, videreformidling, overførsler på EuroISDN (eksplicit opkaldsoverførsel) og råd om betaling fungerer på en BRI som på en PRI.
E&M-trunker på en T1
En T1, hvis kanaler er konfigureret som E&M (robbed-bit-signalling: e&m=1-24 i /etc/dahdi/system.conf), giver 24 trunker, hver signaliseret på sin egen: tilslutningslinjer til en anden PBX, kanalbanker og langdistanceudbyderes Feature Group D-trunker. Under Digitale linjer, tilføj en T1 og sæt Signalling til E&M, derefter:
- Startsignal: Wink start (det almindelige: den fjerne ende blinker, når den er klar til nummeret, og BitVoice blinker tilbage ved et indgående opkald), Omgående start (nummeret følger straks efter beslagtagelse), Forsinket valg (den fjerne ende går fra hook, mens den får nummeret, og derefter på hook igen), eller Feature Group D (wink start med MF-numre, opkalders nummer sendt først: KP 00 ANI ST, derefter KP nummer ST; ANI bliver opkalders ID).
- Numre sendt som: DTMF eller MF (MF R1, KP nummer ST) som de fleste udbydertanker ønsker.
- Nummer, når intet sendes: hvad et indgående opkald når, hvis den fjerne ende beslaglægger trunken uden at taste et nummer (en privat linje direkte til receptionen, for eksempel).
Et udgående opkald tager en ledig trunk, beslaglægger den, venter på startsignalet (ingen blink inden for fem sekunder er "ingen blink", og opkaldet mislykkes), sender nummeret og besvares, når den fjerne ende tager røret af hook (svarsupervision). Et indgående opkald besvares ved at tage røret af hook, når extensionen besvarer.
CAMA-trunker (911, lab-tracker). En PSAP, der stadig fødes af en 911-selektiv router over CAMA-trunker, indstiller Startsignal til CAMA (911-trunk). Routeren beslaglægger, BitVoice blinker, og routeren sender opkalders nummer (ANI) i MF: forbedret CAMA som KP, to informationscifre og alle ti cifre, ST; traditionel CAMA som KP, én nummerplan-ciffer og syv cifre, ST. For traditionel CAMA skal du under Områdenumre for NPD 0 til 3 liste områdenummeret, som hvert nummerplan-ciffer står for (din routers opsætningsark har dem); et ciffer over 3 betyder, at routeren ikke kunne identificere linjen. Hvert opkald går til den indgående rute for 911 som et 911-opkald med ANI som tilbagekaldningsnummer, og BitVoice søger efter dets placering ved hjælp af dette nummer (se 911-opkald (kapitel 77), Placeringsopslag (ALI)). Informationscifrene vises på opkaldet som CAMA (II 00).
MFC-R2 på en E1
I Latinamerika, dele af Asien og Afrika er E1-linjer ofte MFC-R2 i stedet for ISDN: 30 kredsløb, hver med sine linjesignaler på A- og B-bitterne i tidsinterval 16 (ITU-T Q.421) og dens nummer, opkaldskategorien og opkalders nummer udveksles i tvangs-multifrekvens-toner (Q.441), frem og tilbage. Konfigurer spændet som CAS i /etc/dahdi/system.conf (span=1,1,0,cas,hdb3, cas=1-15:1101, cas=17-31:1101, dchan fjernet), derefter under Digitale linjer tilføjer du en E1, sætter Signalering til MFC-R2 og vælger Land_variant: ITU-T, Argentina, Brasilien, Kina, Colombia, Tjekkiet, Ecuador, Mexico, Filippinerne eller Venezuela. Hver land tildeles nogle signaler anderledes (hvad der betyder beskæftiget, hvordan slutningen af nummeret fortælles, Mexicos ekstra Gruppe C); varianten holder disse. Kina nr. 1 beder om opkalders klassen (KA) og nummer efter det valgte nummer, sender opkaldstypen (KD: 3, et lokalt opkald) sidst, læser beskæftiget og inaktiv efter KD, der blev sendt, og sætter både C- og D-bitterne til 1: her, skriv cas=1-15:1111 og cas=17-31:1111.
Hvert kredsløb bærer opkald i begge retninger. Et indgående opkald når de indgående ruter med det valgte nummer og opkalders nummer (medholdte numre kommer ind som anonyme); en beskæftiget udvidelse eller et forkert nummer signaleres tilbage som beskæftiget eller ikke tilgængelig, som varianten siger. Et udgående opkald sender nummeret og udvidelsens opkalders-ID eller "nummer medholdt"-signalet, når opkalderskabet gemmer det.
MFC-R2-signalingen testes mod OpenR2 (R2-biblioteket, som Asterisks chan_dahdi bruger), i hver tilbudte variant og i begge retninger, herunder et opkald, der afvistes som beskæftiget; E&M mod BitVoices egne simulerede kanaler.
SS7
En bærer kan overdrage T1'er eller E1'er, der signaleres af SS7 i stedet for ISDN: de vokale kredsløb fører opkald, hver navngivet af en kredsløbsidentifikationskode (CIC), og én tidsinterval fører signaleringslinket til bærerens signaloverførselspunkt eller switch, over hvilken ISUP opretter opkaldene. BitVoice er så et signalpunkt i sig selv, med en punktkode, som bæreren tildeler. I /etc/dahdi/system.conf indstilles spændet som rene kanaler med signalerings-tidsinterval som mtp2 eller hardhdlc (tidsinterval 16 på en E1, 24 på en T1). Under Digitale linjer føjes spændet til, Signalling indstilles til SS7 (ISUP) og følgende oplysninger gives:
- SS7-variant: ANSI (Nordamerika; punktkoder netværk-samling-medlem, som 245-16-1) eller ITU-T (resten af verden; punktkoder zon-område-punkt, som 1-10-2, eller et almindeligt nummer).
- Vores punktkode og Tilstødende punktkode, Netværk (nationalt, det almindelige, eller internationalt), signalerings Link-kode (SLC, 0 medmindre andet er angivet), og Første CIC: koden for spændets første vokale kanal, de andre følger i rækkefølge. Alle disse oplysninger kommer fra bæreren.
Link-sæt af flere links. Spænder med samme variant, punktkoder og netværk er ét link-sæt (op til 16 links): hver spænds signaleringslink er ét af dets links, og har brug for sin egen Link-kode, og hver spænds kredsløb tilhører det (deres CIC'er må ikke overlappe). Trafik deles mellem links i drift via meddelelsernes SLS, så én opkalds meddelelser holder sig til ét link. Når et link fejler (link-testen bliver ikke besvaret, eller meddelelser bliver ikke anerkendt), skifter dets trafik over til de andre (Q.704: COO og COA, de meddelelser, som den fjerne ende ikke havde sendt, sendes igen på et andet link; eller, uden svar i tide, efter tid), og opkaldene på hver spænd fortsætter, og Telefoni-kort viser, hvor mange links er i drift og hvordan dette spænds linker står. Når linket er tilbage og testet, skifter dets trafik tilbage (CBD og CBA). Kun når alle links er nede, er link-sættet nede. Testet mod libss7 med to links, ét af dem klippet midt i et opkald: libss7 tager kun netværksledelsesmeddelelser på linket, som SLS nævner, så en omstillingmeddelelse om det klippede link (sendt på det andet, som Q.704 har det) bliver droppet der, og begge ender omstiller ved tid i stedet, hvilket virker; mellem to BitVoice-endepunkter sker det via COO og COA.
Når linket kommer op, justerer BitVoice det (MTP niveau 2, med den nødsituationssikring periode som en enkelt-link link-sæt bruger), tester det med link-testen (SLTM/SLTA), udveksler trafik genstart tilladt og nulstiller hver omgang (GRS). Opkald når ind til de indgående ruter med det valgte nummer, opkalders nummer (med hemmelige som anonyme), nummeret et opkald blev videresendt fra og, på ANSI, opkalders navn; udgående opkald bærer udvidelsens opkalders-ID og navn. Bærerens blokering eller nulstilling af omgange overholdes. Ved dobbelt beslagtagning beholder den ende med det højere punkt-kode de lige omgange, som Q.764 siger, og BitVoice tager de omgange den beholder først.
SS7 testes mod libss7 (SS7-biblioteket Asterisks chan_dahdi bruger), ITU og ANSI: justering, link-test, trafik genstart, omgang nulstilling, opkald i begge retninger med numre og navne, frigivelse, beskæftiget og blokering; og BitVoice mod sig selv med rammer tabt på linket (sendt igen af MTP2's fejlkorrektion) og en dobbelt beslagtagning. Signaloverførsel (som en STP for andre) og SCCP/TCAP (nummer-portabilitets-søgninger, tollfri oversættelse) tilbydes ikke: en PBX er et endepunkt, og disse er bærerens.
Signaloverførselspunkt (STP). bitvoice-dahdi kan også være et STP for dets ITU SS7-link-sæt: skru på Signaloverførselspunkt (SS7) under de digitale linjer. Dets STP-punktkode er spændets egen. Med Overfør beskeder for andre punktkoder går en besked fra et link-sæt til det næste punkt i et andet link-sæt, og en til enhver anden punktkode går til IP-STP (M3UA): en IP-STP eller signalgateway på vært:port, som nås over M3UA (RFC 4666) over TCP, hvis beskeder for link-sættens punkter kommer tilbage på samme måde (BitVoice registrerer sin punktkode og dem bagved, medmindre en Routningskontekst er givet). Global titeloversættelse sender SCCP-beskeder adresseret til STP efter global titel til punktkoden og under-systemet af den længste matchende præfiks, som en SCCP-relæ gør. En besked, der ikke kan leveres, kommer tilbage til afsenderen som en UDTS eller XUDTS, når den bad om det: ingen oversættelse, ingen rute (MTP-fejl), ingen under-system her eller dens hop-antal er brugt op. STP-status viser M3UA-linken og hvor mange beskeder den har overført, oversat og returneret. Dets SCCP (UDT, XUDT, UDTS, XUDTS) og TCAP (Begin, Continue, End, Abort, dialoger og komponenter) er kontrolleret mod Osmocom: OsmoSTP over M3UA, libosmo-sigtrans SCCP-echo-bruger bagved det og libosmo-asn1-tcaps egen TCAP-koder begge veje. SCTP tilbydes ikke (Go har ingen): M3UA går over TCP, som OsmoSTP og mange IP-STP'er tager. Forbindelses-orienteret SCCP, ANSI-link-sæt og SCCP-styring (SST, SSA) tilbydes ikke.
Råd om betaling. På en EuroISDN-linje, slå Råd om betaling til, og BitVoice beder telefonfirmaet, med hvert udgående opkald, om at sige hvad det koster: under opkaldet (AOC-D) og ved dets slutning (AOC-E), i penge eller i betalingsenheder. Den sidste værdi føjes til opkaldets post (betalt EUR 1,50 i Historik, og ved siden af opkaldet på Omkostninger); når det er i din valuta (indstillet på Omkostninger) er det opkaldets omkostning, i stedet for værdien fra trunkens satser. Telefonfirmaet må tilbyde tjenesten på linjen. SIP-trunker kan sende samme råd, som 3GPP AOC XML i en INFO eller BYE, og BitVoice gemmer det på samme måde.
PRI-koden testes mod libpri (ISDN-biblioteket Asterisk bruger), både som bruger-side og som netværk-side, til nationale ISDN-2 og EuroISDN-opkald, navne, omdirigering og forbundne numre, eksplicit opkaldsoverførsel, to B-kanal overførsel og DMS-100 Release Link Trunk-anmodninger byte for byte (med libpris PBX forbundet med BitVoice som DMS-100), og råd om betaling i begge retninger; og på BRI, punkt-til-punkt og multipunkt, som terminal og som netværk (TEI-tildeling, opkald udsendt til bussen, numre valgt digit for digit).
Ikke endnu: opkalders-ID vist på analoge telefoner eller læst fra analoge linjer, hook flash og ekko-kansellering ud over hvad kortet selv gør.
Trunk
/trunksEn trunk er din konto hos et telefonfirma. Den transporterer opkald til og fra eksterne numre. De fleste er SIP-trunker; en Asterisk- eller FreePBX-server eller en IAX2-udbyder kan nås med IAX2 i stedet.
Tilføjelse af en SIP-trunk
- På Trunk (kapitel 7) tryk på Tilføj trunk.
- Indtast provider-serveren, som din telefonudbyder har givet dig (
sip.provider.com), og porten, hvis den ikke er 5060. - Indtast brugernavn og adgangskode, og slå Register til, hvis udbyderen siger, at du skal (de fleste gør det).
- Gem. Inden for få sekunder vises trunken som registreret; hvis ikke, vises årsagen ved siden af.
Trunkhelbredsdømmekraft
Med to eller flere trunker på en udgående rute, vurderer BitVoice hver 15. sekund, om hver trunk er brugt på sin plads eller prøves efter de andre trunker. En trunk rykker bag de andre, når dens udbyder ophører med at svare på keep-alive-kontroller, eller når dens sidste udgående opkald mislykkes en efter en på udbyderens side (Mislykkede opkald i træk inden for Inden for (minutter), Indstillinger, Trunkhelbredsdømmekraft), og en anden trunk er i funktion. Den rykker ikke, hvis kun keep-alive-kontrollen mislykkes, mens opkald gennem den stadig kan gå igennem; og hvis alle trunker mislykkes på én gang, er årsagen sandsynligvis dette systems egen internetforbindelse, så intet rykker. En ændring kræver to vurderinger i træk (30 sekunder), så en trunk aldrig flimrer. En trunk fjernes aldrig helt: den prøves stadig, hvis de andre fejler, så et nødopkald altid har alle muligheder. Trunkens side viser vurderingen og dens årsager; et opkald, der gik ud på en anden måde, siger det i sin post.
- Tilføj en indgående rute for dit nummer og en udgående rute, der bruger denne trunk (Opkalds-routing (kapitel 8)).
| Felt | Hvad det gør |
|---|---|
| Transport | UDP (normalt), TCP eller TLS til krypteret signalering |
| Register | log på hver få minutter, så udbyderen ved, hvor den skal sende opkald |
| Godkendelsesbrugernavn | kun når udbyderen giver et separat |
| Fra-domæne | domænet i opkalders adresse, når udbyderen beder om det |
| Opkalders ID | nummeret, der vises på udgående opkald; en extensions eget opkalders ID sejrer |
| Også accepter opkald fra | udbyderens andre adresser eller netværk, der sender opkald ind. Opkald fra denne computer fra telefoner, der er registreret her, og den indbyggede opkaldsgenerator, bliver aldrig taget som trunkens, selvom den tillader 127.0.0.1 |
| Opkald på én gang | grænsen for din plan; opkald ud over det går til den næste trunk i ruten |
| Krypter medie | SRTP, til udbydere, der understøtter det. En udbyder, der svarer uden det, får alligevel opkaldet, ukrypteret, og Opkaldshistorik markerer opkaldet Ikke krypteret |
| Kræv kryptering | (med Krypter medie) afvis, hvad udbyderen ikke vil kryptere: et udgående opkald, der svarer uden SRTP, afbrydes, og et indgående opkald, der sendes uden SRTP, afvises; Opkaldshistorik siger hvorfor |
| Codec | lad det være på *samme som Indstillinger*, eller vælg, hvad denne udbyder understøtter, bedst først |
| Takster | hvad opkald koster efter nummerpræfiks, til Omhold (kapitel 54) |
Cloud-udbydere
Start fra udfylder Microsoft Teams Direct Routing, Amazon Chime SDK Voice Connector eller Azure Communication Services, med en note om, hvad der skal indstilles på deres side. Teams beskrives i sit eget kapitel (Microsoft Teams (kapitel 67)).
IAX2-trunker til Asterisk og FreePBX
Vælg IAX2 som protokol for at slutte en anden Asterisk- eller FreePBX-server eller en IAX2-udbyder. IAX2 bærer signalering og lyd på én UDP-port, 4569, hvilket gør det let at gå igennem firewalls.
- Serveradresse: den anden server. Lad den være tom, når den anden server registrerer sig til BitVoice i stedet (en filial bag en skiftende adresse); så er brugernavn og adgangskode, hvad den registrerer med.
- Brugernavn og adgangskode: det samme på begge sider. BitVoice svarer og sender MD5-udfordringer og håndterer opkaldstokens.
- Register: log på den anden server, så den kan sende opkald her.
På Asterisk-siden er et peer som dette alt, der er nødvendigt:
[bitvoice] type=friend host=dynamic secret=the shared password context=from-bitvoice
IAX2-port 4569 åbnes kun, når den første IAX2-trunk tilføjes, så en Asterisk, der kører på samme computer, holder den åben, indtil da.
H.323-trunker
Vælg H.323 som protokol til ældre gateways, PBX'er og video-konferencesystemer, der taler H.323, men ikke SIP. Giv gatewayens adresse (port 1720); opkald accepteres kun fra den. Opkald er opsat med Fast Connect og G.711 (µ-lov eller A-lov; trunkens codec-liste kan begrænse det til én), og lyden går direkte mellem gatewayen og BitVoices medie-porte. BitVoice konverterer til, hvad den anden part bruger.
H.323 her er bevidst lille: ingen gatekeeper (RAS), ingen H.245 (så en gateway, der ikke vil bruge Fast Connect, får intet opkald og bliver fortalt det), ingen video, ingen H.235-sikkerhed. Opkalders ID kommer fra Q.931-opkalders nummer eller opkalders diallede-ciffer-alias, navnet fra displayet eller dets H.323-ID. BitVoices H.225.0- og H.245-kodning er kontrolleret mod en uafhængig ASN.1-kodner, men endnu ikke mod gateway-hardware.
Videreformidlede opkald
Når et opkald når dig allerede videreformidlet (nogen andres nummer er videreformidlet til dit, eller en Teams-brugers), siger udbyderen det med History-Info (RFC 7044) eller Diversion (RFC 5806). BitVoice læser begge: Opkaldshistorik (kapitel 47) viser videreformidlet af det nummer, der sendte det videre, med det nummer, der først blev diallet, og årsagen i dets tip, opkaldets hvorfor-spor siger det i ord, og opkaldsoptegnelsen gemmer det (forwardedFrom, original, forwardReason). Når udbyderen beder om, at historikken skal være privat, gemmes numrene ikke.
Når en udvidelse videreformidler et opkald ud gennem en trunk (videreformidler alle, når beskæftiget, når ingen svarer), fortælles udbyderen, hvilken udvidelse videreformidlede det og hvorfor, så den kan vise dit nummer og fakturere den rigtige konto: som standard med begge headers, og med den historik, opkaldet kom ind med, gemt og videreformidlingen tilføjet. En udbyder, der er forvirret af en af dem, kan indstilles til den anden under trunkens Avanceret, Videreformidlede opkald siger, hvis de er. På en T1/E1-telefonkort bliver hver header netværkets omdirigeringsnummer.
Hvad status betyder
| Status | Betydning |
|---|---|
| registered | logget ind; opkald kan komme ind |
| ready | registrerer ikke, eller IAX2 venter på opkald |
| unreachable | serverens navn er ikke i DNS, eller intet svarer |
| failed | udbyderen afviste log-ind; årsagen vises |
| standby | servere deler denne trunk én ad gangen, og en anden holder den |
Opkaldsrouting
/routesOpkaldsrouting afgør to ting: hvor opkald fra udenfor går, efter det nummer, der blev diallet, og hvilken trunk opkald til udenfor-numre bruger.
Indgående ruter
Hver indgående rute matcher det nummer, der blev ringet (eller ethvert nummer) og sender opkaldet til en destination: en udvidelse, en ringgruppe, en kø, en menu, en tidsplan, et script, en konferencerum, en AI-receptionist eller en voicemail. Numre matcher i enhver form: +1 212 555 0100, 2125550100 og 12125550100 er det samme.
- En rute for ét nummer sejrer over en rute for ethvert nummer.
- En rute kan begrænses til én trunk, for numre, som to udbydere begge sender.
- Med nødtilstand aktiveret (Indstillinger), går hvert indgående opkald til ét sted i stedet, uanset hvad ruterne siger: en evakuering, en lukning, en begivenhed.
Udgående ruter
Udgående ruter matcher, hvad folk dialer, efter mønster, og sender det til trunker i rækkefølge: hvis den første er nede eller fuld, prøves den næste.
| Mønster | Matcher |
|---|---|
X | enhver cifre |
Z | 1 til 9 |
N | 2 til 9 |
[1-5] | en af en samling |
. i slutningen | en eller flere yderligere cifre |
NXXNXXXXXX | et ti-cifret nordamerikansk nummer |
1NXXNXXXXXX | det samme med 1 foran |
011. | et internationalt opkald fra USA |
- Fjern fjerner cifre fra forsiden (en 9 diallet for en udgående linje); Så tilføj foran sætter nogle på (et landekode).
- Rækkefølgen betyder noget: den første rute, hvis mønster matcher, bruges. Træk ruter for at ændre det.
- Præmie-numre (900 og lignende) afvises, medmindre en rute nævner dem.
Nødtal
Nødtallene virker altid. En rute, der nævner nummeret præcist, bruges først; med ingen, prøves hver arbejdende trunk i rækkefølge. Et opkald til dem afvises aldrig på grund af en udvidelses begrænsninger, en værtsorganisations begrænsninger eller en manglende rute. Sundhedsadvarsel, når ingen trunk kan bære dem.
PIN-sæt
/pin-setsEt PIN-sæt (kapitel 9) er en liste over PIN'er, som en udgående rute beder om, før den ringer ud: for at holde internationale eller langdistance-opkald til personer med en PIN eller for at fakturere opkald til kunder og projekter efter deres kode.
- Tilføj PIN-sæt og liste dens PIN'er (4 til 10 cifre hver).
- Slå Gem PIN'en i opkaldsrekorden til at skrive den brugte PIN ind i hver opkaldsrekord som kontokode (kontokode-kolonnen i CSV-, syslog- og PostgreSQL-opkaldsrekord-udgangene og
accounti API'et). - På Opkaldsrouting (kapitel 8), åbn en udgående rute og vælg sættet under Bed om en PIN.
Opkaldere, der ringer et nummer, som ruten tager, hører "Indtast din PIN, derefter tryk på hash", indtaster den og opkaldet går ud. Tre forkerte PIN'er afslutter opkaldet, og forsøget logges som et sikkerhedsbegivenhed. Nødkald numre beder aldrig om en PIN, uanset hvilken rute de tager, og videresendte opkald og følg-mig-numre bedes heller ikke: kun personer, der ringer fra en telefon.
Opkalders ID-søgning
/lookupsMange teleselskaber sender en opkalders nummer, men ingen navn. BitVoice søger først i virksomheds-kontakter (kapitel 38); derefter kan en indgående rute bede om en opkalders ID-søgning (kapitel 10):
- En webadresse: din CRM eller enhver tjeneste, der besvarer med navnet. Indsæt
{number}, hvor nummeret skal være (https://crm.example.com/api/callers?phone={number}). En ren tekstbesvarelse giver navnet på dens første linje; for JSON, give navnefeltet som en punkteret sti (data.contact.name; et nummer træder ind i en liste, som iresults.0.name). Basisgodkendelse er valgfrit. - OpenCNAM: den nordamerikanske opkaldernavn-database, med din konto-SID og godkendelsestoken.
Vælg søgningen på en indgående rute på Opkaldsrouting (kapitel 8) (Opkalders ID-søgning). Telefoner viser navnet, mens de ringer, og det går ind i opkaldsrekorden.
En søgning holder aldrig et opkald tilbage: BitVoice venter maksimalt dens vent (1,5 sekunder, medmindre du ændrer det, 5 sekunder som maksimum) og ringer derefter uden et navn. Svar gemmes i en dag (eller så længe, du indstiller, eller aldrig med -1), så en regelmæssig opkalders ikke søges op på hver opkald; numre, som tjenesten ikke kender, bedes igen efter en time. Prøv det på søgningens side beder om et nummer med det samme, med indstillingerne som gemt.
Nødkald
Nødkald numre går altid ud, fra hver udvidelse, selv dem, der ikke kan ringe til ydre numre. Dette kapitel handler om nødkald lavet fra telefonerne BitVoice kører: et kontor, der ringer 911. At besvare 911-opkald er 911-profilen (kapitel 77).
Hvad BitVoice gør på hvert nødkald
- Ruter det, altid: en rute, der nævner nummeret først; med ingen, hver arbejdende trunk i tur. Begrænsninger stopper det aldrig: en udvidelse, der ikke er tilladt ydre opkald, en vært-organisation på dens opkaldsgrænse eller suspenderet, en trunk på dens kanalgrænse.
- Sender, hvor opkalderen er: med Send opkaldersens adresse på (Indstillinger), medfører opkaldet stedets civile adresse, etage og rum til udbyderen som PIDF-LO.
- Fortæller personer på stedet (Kari's Law i USA): udvidelserne under Underret får en besked på deres telefoner, hver åben BitVoice-skærm viser en advarsel, og adresserne under Også e-mail får en e-mail med opkaldersens navn, udvidelse, sted, etage og rum, så nogen kan møde reaktionerne ved døren.
- Lader opkaldet ringe tilbage: i en time efter et nødkald, er indgående opkald aldrig afvist, så besvarelsespunktet altid kan ringe tilbage.
Opsætning
- Kontroller nødkaldsnumre i Indstillinger (kapitel 14) (indstillet efter land: 911 og 933 i USA).
- Tilføj hvert bygning under Steder (kapitel 12), med dens gadeadresse og de netværk, dens telefoner bruger.
- Giv hver udvidelse dens sted, etage og rum.
- Sørg for, at en udgående rute og trunk kan føre nødkald; Sundhed (kapitel 13) advarer, når ingen kan.
- Udfyld Underret og Også e-mail.
- Ring
933(i USA) for at høre adressen, din udbyder har.
Fjernarbejdere
En telefon, der registrerer sig fra udenfor dens steds netværk, er en fjernarbejder: deres telefon-side beder om, hvor de er, og den adresse bruges i stedet. Advarsler siger, når det ikke blev bekræftet.
Nødtilstand
En anden ting: en omstiller, der sender alle indgående opkald til ét sted (en evakuering, en lukning, en incident). Indstil, hvor opkald går, en valgfri kode som *55 og de tilladte udvidelser til at taste den i Indstillinger (kapitel 14); skift den til på Dashboard (kapitel 1), eller ved at taste koden (stigende toner for til, en lav tone for fra). En rød bar vises på hver skærm, mens den er til.
Steder og kontor 911
/sitesEt sted er en bygning: dets gadeadresse og de netværk, dets telefoner bruger. Steder er, hvordan et nødopkald siger, hvor opkalderen er, ned til etagen og rummet. I USA kræver Kari's Law og RAY BAUM'S Act præcis dette fra erhvervstelefon-systemer.
Tilføjelse af et sted
På Steder (kapitel 12), tryk Tilføj:
| Felt | Hvad det er |
|---|---|
| Navn | hvad folk kalder det: Hovedkontor |
| Gade, By, Stat eller provins, Postnummer, Land | den civile adresse, som reagere sendes til |
| Netværk | adresseområderne, som telefonerne bruger, f.eks. 10.1.0.0/16; en per linje |
Derefter på hver udvidelse gives dens sted, etage og rum. Sundhed (kapitel 13) lister udvidelser uden en placering.
Hvordan en telefons placering findes
- En telefon, der registrerer sig fra et af et steds netværk, er på det sted, med dens udvidelses etage og rum.
- En varm skrivebord bærer skrivebordets eget sted, etage og rum, ikke personen, der logger ind (Varmt skrivebord (kapitel 36)).
- En telefon, der registrerer sig fra uden for hvert steds netværk, er en fjernarbejder. På dens første nødopkalds-aktiverede registration fra et nyt sted, bedes dens bruger bekræfte sin adresse på sin telefon-side; nødopkald bærer derefter den adresse.
- Hvis en fjernarbejder aldrig bekræfter, går opkaldet alligevel ud, med udvidelsens sædvanlige sted, og advarsler siger, at adressen ikke blev bekræftet.
Lokale advarsler
Med E-mail, når nogen ringer 911 aktiveret i Indstillinger, modtager personerne, der er navngivet der, opkalders navn, udvidelse, sted, etage og rum, så snart et opkald til en nødnummer startes, så nogen kan møde reagerne ved døren. Underret udvidelser modtager en besked på deres telefoner, og hver åben BitVoice-skærm viser en advarsel. Se Nødopkald (kapitel 11).
Sundhed
/healthSundhed siger, om systemet er klar til opkald, og hvis ikke, hvad der skal gøres. Hver linje siger, hvad der er galt i plain tekst og linker til skærmen, hvor det kan løses. Kontroller det efter hver ændring af nogen størrelse.
Hvad det checker
| Check | Hvorfor det er vigtigt |
|---|---|
| Nødopkald kan komme ud | en rute og en fungerende trunk bærer nødnumre |
| Udvidelser uden en nødlokation | deres 911-opkald ville ikke bære nogen etage eller rum |
| Telefonservicen | SIP lytter, og på hvilken port |
| Telefoner ikke forbundet | udvidelser, som ingen har logget ind som |
| Trunker | registreret, eller årsagen til, at de ikke er |
| Menuer uden en optaget prompt | opkaldere ville høre stilhed |
| Tidszonen | skemaer følger den |
| Optagelser og deres opbevaring | diskenheden, og hvor længe optagelser gemmes |
| Certifikater | når TLS-certifikatet udløber |
| Nøgle-vælt | hemmeligheder, en vælt ikke kan læse |
| Andre servere | når flere deler en database, om hver kører |
Problemer er farvet: rød stopper opkald (ingen nødrute), amber skal ses på (en telefon ikke forbundet), og grå er til information.
Indstillinger
/settingsIndstillinger indeholder alt om systemet som helhed. Hver sektion gemmes separat, og hver gemt ændring er en revision på Ændringer (kapitel 61).
| Afsnit | Hvad der er der |
|---|---|
| System | navn, land, tidszone, sprog, den offentlige adresse telefoner og udbydere ser |
| Numre | ekko-test, voicemail og parkeringsnumre og nødnumre |
| Codec | codecene telefoner kan bruge, bedst først (Codec (kapitel 66)) |
| Optagelse af opkald | slukket, hver opkald eller valgte udvidelser; samtykkesregler; hvor længe optagelser gemmes |
| Lyd | rydning til voicemail og under opkald |
| Beskyttelse | forbud efter mislykkede logninger, betroede netværk, opkald per udvidelse, premiumnumre |
| Nødsituation | sende opkalders adresse, hvem der bliver underrettet, hvem der bliver e-mail, nødtilstand |
| AI | AI-tjenesten, modeller og hvilke AI-funktioner er aktiveret (AI (kapitel 28)) |
| Enkelt logon | identitetsudbyderen (Enkelt logon (kapitel 58)) |
| Asterisk-kompatibilitet | AMI og ARI til programmer skrevet til Asterisk (Asterisk-kompatibilitet (kapitel 70)) |
| AI-assistenter (MCP) | om AI-assistenter som Claude eller ChatGPT kan tilslutte, og om de kan handle (AI-assistenter (kapitel 71)) |
| Microsoft 365 og Google Workspace | personer og fælles kontakter i Kontakter, og kalendere for hvem der er væk (Kontakter (kapitel 38), Kalendere (kapitel 39)) |
| Mobilapps | push-tjenesten der vækker apps |
| mailserveren voicemail, faks og alarmer går gennem | |
| Nøglekamre | hemmeligheder gemt i AWS Secrets Manager eller Azure Key Vault |
| Konfiguration fra Git | holde konfigurationen i trit med en fil i et repository |
| Database | SQLite eller PostgreSQL (Database (kapitel 64)) |
| Certifikat | certifikatet til dette interface og SIP over TLS: fra Let's Encrypt, installeret manuelt eller BitVoices eget |
Adgangskoder og nøgler vises aldrig igen, når de er gemt; lad dem være tomme for at bevare dem. Viewere ser Indstillinger med alle hemmeligheder fjernet.
Certifikatet og Let's Encrypt
BitVoice starter med et certifikat, det selv har lavet, som browsere og telefoner advarer om. Til en server med et offentligt navn, skal du slå Let's Encrypt til under Certifikat: indtast navnene (pbx.example.com), valgfrit en e-mailadresse, og anvend. BitVoice får et gratis certifikat fra Let's Encrypt, bruger det med det samme til webinterface, SIP over TLS og Teams, og fornyer det omkring 30 dage før det udløber (Let's Encrypt-certifikater varer 90 dage eller mindre). Statuslinjen siger, hvornår det blev udstedt, hvornår det fornyes og, hvis det mislykkedes, hvorfor; det prøver igen efter en time, derefter mindre ofte, inden for Let's Encrypts grænser. Check nu prøver med det samme.
Let's Encrypt skal kunne nå serveren under hvert navn fra internettet for at bevise, at det er din:
- http-01 (valget medmindre webinterfacet er på port 443): en anmodning til port 80. BitVoice besvarer på port 80 selv (på Linux kræver det retten til at åbne lavports, såsom
setcap cap_net_bind_service=+ep bitvoice), eller videregive port 80 på routeren til webinterfacet's port, som også besvarer. Alt andet, der ankommer på port 80, sendes videre til HTTPS, kun for certifikatets navne. Når BitVoice ikke kan åbne port 80, siger Let's Encrypt-boksen hvorfor i rav og hvad der giver adgang (den præcisesetcap-linje for dette program eller systemd'sAmbientCapabilities=CAP_NET_BIND_SERVICE; eller et andet program holder allerede porten besat). Test navnene beder herefter om hver navn for en testfil over internettet, som Let's Encrypt vil, og siger for hvert, om det nåede BitVoice, nåede noget andet eller ikke er i DNS. Nogle routere kan ikke løkke deres egen offentlige adresse tilbage til indersiden (ingen hairpin NAT): der fejler testen fra indersiden, selvom Let's Encrypt fra udenfor lykkes. - tls-alpn-01: en TLS-forbindelse til port 443, besvaret på webinterfacet's egen port: for en server, hvis webinterface er på 443.
Andre ACME-myndigheder, der ikke kræver konto-binding (et firma's eget step-ca, Let's Encrypt's testtjeneste til tests) vælges under Myndighed. Wildcard-navne kræver DNS-beviser, som BitVoice ikke udfører: installer disse certifikater manuelt. Hver server i en cluster får sit eget certifikat.
Skærmene på dit sprog
BitVoices skærme kommer på engelsk og på tretten andre sprog: Deutsch, Français, Español, Italiano, Português, Nederlands, Polski, Svenska, Dansk, Norsk bokmål, Suomi, 日本語 og 简体中文.
Vælg ét
Hver browser har sit eget sprog: vælg det under menuen (sproglisten ved siden af temaerne), på loginsiden eller på opsætningsguidens første side. Indtil du vælger, bruger BitVoice browserens eget sprog, når det er ét af disse, ellers engelsk. Valget gemmes kun i denne browser: to personer på én server kan hver arbejde på deres eget.
Alt på skærmene er oversat: menuen, overskrifter, knapper, hints, meddelelser fra serveren og navnene, skærmlæsere annoncerer. Søgning (⌘K) finder en side efter dens navn på dit sprog eller på engelsk. Lad, som de er: hvad folk skriver (navne, numre, noter), adresser, koder, scripts i editorerne og navnene på produkter og protokoller. Datoer og numre følger browserens egne indstillinger.
Hvordan det oversættes og hvor godt
Oversættelserne er lavet af en maskine (en stor sprogmodel), for hver tekst, skærmene viser, omkring 5.000 af dem; ingen er blevet kontrolleret af en person. Nogle sætninger, skærmene bygger fra dele (et nummer og et ord), kan lyde underligt, og en term kan være oversat på to måder på to steder. Alt uden en oversættelse, såsom en skærm, der er nyere end oversættelserne, forbliver på engelsk.
Hjælp holder denne vejledning på engelsk, som skrevet, med en link øverst på hvert kapitel til det samme kapitel oversat hel (også af en maskine) på bitvoice.org.
Telefonsiden er separat: hvad opkaldere hører (prompts, voicemail-menuen) er på det standard prompt-sprog (Lyde (kapitel 20)), medmindre en udvidelse eller en kø har sit eget sprog.
Hvor opkald går hen
Byggeklodserne, som ringerne bevæger sig gennem: grupper og køer, menuer og planer, scripts og den kunstige intelligens-receptionist, voicemail og diagrammet, der viser det hele.
Opkaldsflow
/flowTjek hver situation
Tjek hver situation, øverst i Opkaldsflow (kapitel 16), prøver hele dit opkaldsplan i hver situation, det kan være i, ikke et udvalg:
- hver kombination af åben og lukket, som dine planer faktisk når over de kommende år (hver ferie inkluderet), fundet i 15-minutters skridt;
- hver kombination af dag/nat-toggler (eller, med mere end seks, hver enkelt skiftet alene);
- hver indgående rute og hver tast, en kald kan trykke i hver menu, hver "hvis ingen svarer" og hver kø-tidsgrænse undervejs;
- hver udvidelse, der ringer hver nødnummer.
It lists what it finds, the worst first: a call goes nowhere (a group with nobody to ring and nowhere to go next), a loop, works, but look at it (a queue with no agents), nothing routes to it (a menu or schedule no call reaches), a branch no situation takes (a schedule that is never closed, so its closed side is never used), and emergency calls rest on one trunk (if it fails, they cannot get out). Each finding names the situations that show it: the time and which schedules were open, the toggles switched over, and the path (a call to +12125550100 → Press 2 (Billing) → No answer). Try this call fills Try a call below with that exact situation and traces it.
Den samme tjek køres på ændringer, før de gøres: et forslag fra Spørg i almindelige ord og Gendan denne revision både lister, hvad ændringen ville bryde, som fungerer i dag.
Prøv et opkald
Indtast hvem der ringer (en udvidelse eller et eksternt nummer), hvad de tastede og hvornår, og tryk på Prøv det. BitVoice følger opkaldet nøjagtigt, som det ville i virkeligheden, uden at ringe noget: den indgående rute, tidsplaner på det pågældende tidspunkt, routingskripter (de køres i deres sandbox), menuer, grupper og køer, og hvad der sker, hvis ingen svarer. Den vej, dette opkald tager, er markeret; andre veje på (en menus nøgler, en tidsplans anden side) kan åbnes. Grønt betyder, det virker, amber betyder se på det (en telefon, der ikke er tilsluttet, et script, der falder tilbage), rødt betyder, opkaldet mislykkes der.
Diagrammet
Diagrammet viser, hvor opkald fra udenfor går, boks for boks: hver indgående rute, derefter menuer, grupper, køer, tidsplaner, skripter og personer, det fører til.
Klik på en boks (eller tryk på Tab og Enter) for at ændre, hvor opkald går fra den: en rutes destination, en udvidelses eller gruppes Hvis ingen svarer, en tidsplans åbne og lukkede destinationer, en menus nøgler (tilføj eller fjern nøgler lige der), et scripts fallback eller en receptions persons. Gemt kontrollerer ændringen ligesom enhver anden og laver en revision. Åbn dens fulde editor går til elementets egen side. Tilføj indgående rute tilføjer en rute uden at forlade diagrammet.
Ringgrupper
/ring-groupsEn ringgruppe er ét nummer, der ringer flere udvidelser: en salgsteam, receptionen og dens backup, alle i værkstedet.
Ringestrategier
- Samtidig: hver medlems telefoner ringer sammen, og den første, der svarer, tager opkaldet. De andre holder op med at ringe.
- Én efter én: hver medlem ringer for gruppen i ringetiden, i den liste, der er angivet. Flyt medlemmer med pilene, eller Alt+↑ og Alt+↓.
Medlemmer, der er væk (i et møde på deres kalender eller med ikke-forstyr), springes over; gruppen ringer de andre. Medlemmer med mobilappen vækkes af en push og ringer også.
Hvis ingen svarer
Når ingen svarer inden for ringetiden, går opkaldet til Hvis ingen svarer: en medlems voicemail, en kø, en menu, en anden gruppe. Med intet sat, ringer det, til opkalderen giver op.
Grupper, køer eller afhentning?
| Brug | Når |
|---|---|
| En ringgruppe | få personer, hvem som helst kan tage opkaldet, og opkaldet skal ringe nu |
| En kø | opkaldere kan være nødt til at vente på en fri agent, og skal høre deres plads |
| En afhentningsgruppe | hver person har deres egne opkald, men kolleger kan svare for dem |
Køer
/queuesEn kø holder opkaldere i rækkefølge, med musik, og ringer den næste fri agent. Det er hjertet af en kontaktcenter, og nyttigt i ethvert kontor, hvor opkald kommer hurtigere, end folk kan tage dem.
Hvordan opkald tilbydes
| Strategi | Hvem ringer |
|---|---|
| Længst inaktiv | den frie agent, der har ventet længst siden deres sidste opkald |
| Rundring | hver fri agent i tur, hvor den sidste agent blev afbrudt |
| Ring alle | alle frie agenter på én gang |
| Færrest opkald | den frie agent, der har taget færrest opkald i dag |
| I rækkefølge (lineær) | altid fra toppen af listen: den første frie agent |
| Tilfældig | en tilfældig fri agent |
| Vægtet tilfældig | tilfældigt, agenter med en lavere straf udvalges mere ofte |
- Ordning: listen over agenter er i orden; flyt dem op og ned. I orden og Round robin følger det.
- Straffepunkter rangerer agenter (0 til 100, 0 når tom): opkald tildeles til de ledige agenter med de lavest straffepunkter, og en agent med højere straffepunkter ringer kun når ingen med lavere straffepunkter er ledig. Brug dem til en første linje og en overflow-linje i én kø.
- Vægt rangerer køer, der deler agenter: mens en kø med højere vægt har nogen, der venter, tager dens agenter først dens opkald.
- Afslutning giver en agent tid efter et opkald, før det næste.
- Længst ventetid: opkaldere, der venter længst, går til køens timeout-destination. 0 venter altid.
- Holdemusik: opkaldere hører køens musik (enhver klasse fra Lyde (kapitel 20)), systemets eller køtons.
- Fortæl ventende opkaldere deres plads i køen og den forventede ventetid (den gennemsnitlige ventetid for besvarede opkald i dag, i minutter), hver så mange sekunder, på køens sprog. Ordene kommer fra køens prompts i Lyde (kapitel 20); indtil de er optaget, siges intet.
Skærmen Køer er en live wallboard: hvem venter, hvor længe, og hver agents tilstand.
Agenter
Agenter taste *45 for at logge ind eller ud af hver kø, og *46 for at pause (en pause) og genoptage; pausede og loggede agenter tilbydes ikke opkald. Wallboardet har samme knapper og viser, hvorfor en agent pausede.
| Tilstand | Mening |
|---|---|
| tilgængelig | fri; vil blive tilbudt det næste opkald |
| ringer | bliver tilbudt et opkald |
| optaget | på et opkald |
| afslutning | lige afsluttet; afslutningstiden kører |
| pause | på en pause, med årsagen angivet |
| væk | i et møde eller på fri, fra deres kalender |
| loggede ud | tager ikke køopkald overhovedet |
Supervisorer
På Aktive opkald (kapitel 46) ringer Superviser en supervisors telefon; når de svarer, kan de lytte (høres af ingen), viske (høres kun af agenten) eller afbryde (høres af begge), og kan skifte mellem dem under opkaldet.
Køer og VIP'er
Slå Kø til i en kø, og en tilbagevendende opkald (en besvaret i de sidste 30 dage, eller så mange som du indstiller) tilbydes først til den agent, der svarede dem sidst, hvis den agent er fri; hvis de ikke svarer, fortsætter køen som normalt. VIP-opkald, i bunden af Køer, går til fronten af hver kø, de ringer til, efter eventuelle VIP, der allerede venter, og er markeret VIP på tavlen.
Udgående dialer
/dialerDen udgående dialer (kapitel 19) ringer lister af kontakter for en køs (kapitel 18) agenter: fornyelser, aftalemindere, indsamlinger, undersøgelser. Hver kampagne har sin kø, sin liste og sin måde at ringe på:
| Tilstand | Hvordan det ringer |
|---|---|
| Forhåndsvisning | en agent beder om den næste kontakt, ser detaljerne, derefter ringer til den (deres telefon ringer først) eller springer over den |
| Progressiv | ét opkald for hver fri agent |
| Effekt | et fast antal opkald for hver fri agent (1 til 3) |
| Forudsigende | BitVoice justerer opkaldene per agent, læner sig ind, mens få opkald bliver afvist, og trækker sig tilbage, mens afvisningsraten nærmer sig grænsen |
- Tilføj kampagne: dens kø, dens opkalders ID (nummeret kontakter ser), timerne opkald må laves i en tidszone, hvor lang tid en kontakts telefon ringer, hvor mange forsøg og hvor langt imellem.
- Åbn Kontakter og Tilføj en liste: en CSV-fil med en header-række og en kolonne kaldet
number(ellerphone);nameog eventuelle andre kolonner vises til agenten i forhåndsvisning. Dublerede og forkerte numre bliver sprunget over. - Optag meddelelsen (i kampagnen): hvem der ringer og hvorfor, og "tryk 9, hvis du ikke ønsker disse opkald". Den afspilles til en person, der besvarer, når ingen agent er fri, og, hvis du vælger, efter en telefonsvarers greeting.
- Start den. Den ringer kun inden for dens timer, og stopper med at ringe, når den er pause eller intet er tilbage.
Mennesker og maskiner. BitVoice lytter til de første sekunder efter et svar: en lang, uafbrudt velkomst er en telefonsvarer; et kort "hallo?" og en pause er et menneske. En maskine kan lægges på (og prøves igen), efterlades en besked, eller overføres til en agent ligesom alle andre. Når der er tvivl, tager den svaret for et menneske.
Opgivne opkald. Et menneske svarede, når der ikke er nogen agent ledig i to sekunder, hører beskeden og tælles som opgivet. Med power- og predictivt dialling, hvis andelen af opgivne opkald over de sidste hundred svar overstiger kampagnens grænse (3%, medmindre du ændrer det, den amerikanske regel), dialer kampagnen ét opkald per ledig agent, indtil det er under igen. Kampagnen viser sin opgivelsesrate, opkald i gang og ledige agenter i realtid.
Ikke ringe liste. Ingen kampagne ringer et nummer på ikke ringe listen, uanset hvilken liste det kom fra; enhver, der trykker 9 under beskeden, føjes til med det samme. Tilføj numre manuelt eller gennem API (POST /api/dnc). For den nationale registry (i USA, FTC's National Do Not Call Registry: download områdekoderne du ringer som en flad fil), vælg filen under National registry og Import: hver linje med et nummer tælles (212,5550100 som FTC skriver dem, eller ét nummer per linje), overskrifter og ødelagte linjer bliver sprunget over og tælles. Med Erstat den sidste import aktiveret, fjernes de forrige downloads numre først, så et nummer, der forlod registret, kan ringes igen; numre tilføjet manuelt eller ved at trykke 9 bliver altid. Registret skal opdateres mindst hver 31. dag (amerikanske regler); siden tæller listen og hvor meget af den, der kom fra registret. API'et er POST /api/dnc/import?replace=1 med filen som brødteksten.
Lyde: prompts, sprog og holdemusik
/soundsLyde (kapitel 20) indeholder alt, hvad BitVoice siger eller afspiller til opkaldere, bortset fra hilsner og menuprompts, som er optaget, hvor de bruges.
Prompts, på hvert sprog
En prompt er en ting, BitVoice siger: "Indtast din PIN", "Din plads i køen er", cifre, der læses op. Navn- og nummerkatalog, indringning (DISA), vækkeopkald og kømeddelelser taler med dem. BitVoice har ordene til hver prompt på engelsk, spansk, fransk, tysk, italiensk, portugisisk, hollandsk og polsk; numre læses cifre for cifre, som lyder ens på hvert sprog.
- Opkald hører indstiller sproget for alle. En kø, en indringningsnummer, en katalog eller en udvidelse kan vælge et andet.
- Hver prompt kan optages i browseren, uploades (enhver lydfil; den konverteres til telefonlyd) eller lavet af tale-service: med en talemodel indstillet i Indstillinger, AI, en knap laver hver prompt på et sprog fra dens ord. Prompts, der allerede er optaget, beholdes, medmindre du beder om at erstatte dem.
- Tilføj et sprog til ethvert andet sprog (en kode som sv, ja eller pt-BR); dets prompts optages eller uploades, med de engelske ord vist som vejledning.
- En prompt, der mangler på et sprog, afspilles på standard-sproget, derefter på engelsk; med ingen optaget overhovedet, hører opkald en kort tone, så hver funktion virker, før en enkelt prompt er optaget.
Holdemusik
Holdemusik er grupperet i klasser (Rolig, Jazz, Salgsbudskaber…), hver en liste af numre, der afspilles én efter én, fra starten eller blandet. Upload numre på op til 15 minutter i enhver format, browseren kan læse; MP3- og WAV-filer kan også sendes direkte til API'et (PUT /api/music/{class}/{name}), og BitVoice afkoder MP3 selv (MPEG-1, 2 og 2.5 Lag III, med en afkoder, der giver de samme samples som minimp3).
Internetradio. En klasse kan afspille en stream i stedet for dens numre: indtast en MP3-streams adresse (Icecast, Shoutcast, de fleste internetradio) under Internetradio. BitVoice tilslutter, når den første opkald stilles i venteposition med denne klasse, afspiller den ene stream til alle, der venter, og afbryder forbindelsen halvanden minut efter den sidste forlader. Mens streamen ikke kan nås, afspiller klassens egne numre (eller ventetonen, uden numre), og klassen viser hvorfor.
| Hvem hører det | Hvad musik |
|---|---|
| nogen stiller i venteposition | den musik, der er valgt på den person, der holder, ellers standard |
| en parkeret opkald | musikken for den person, der parkerede dem, ellers standard |
| en opkald, der venter i en kø | køens musik, ellers standard |
| en opkald, der venter på en konferenceleder | standard |
Standard for alle kan være ventetonen, så intet ændrer sig, indtil du vælger musik. Ved at vælge ventetonen på en kø eller en udvidelse beholder tonen der.
Navn-vejledning
/directoriesEn navn-vejledning (kapitel 22) giver opkaldere mulighed for at nå en person uden at kende deres nummer: de staver de første bogstaver i navnet på tastaturet (2 til ABC, 3 til DEF, op til 9 til WXYZ) og bliver sat igennem.
- Tilføj vejledning, navngiv den og giv den et nummer (411, sige) eller lad nummeret være tomt og brug den som en menuoption.
- Vælg, hvad opkaldere skal stave: efternavn (det normale), fornavn eller begge.
- Vælg hvem der er listet, eller ingen for at liste alle med en telefon.
Opkaldere hører "Indtast de første tre bogstaver i personens navn". En enkelt match bliver sat igennem med det samme. Flere matches bliver læst op, otte ad gangen: hver persons navn, derefter "for at ringe til denne person, tryk 1", 2 og så videre, med 9 for flere navne. Ingen match: "Ingen matcher", og de prøver igen (tre forsøg).
Udtalt navne: optag hvert persons navn på deres udvidelse (Udtalt navn: optag i browseren eller upload en fil), og vejledningen siger det; indtil da læser den udvidelsesnummeret op. Vejledningens egne ord kommer fra vejledningsprompterne i Lyde (kapitel 20), på dets sprog.
Indringning (DISA)
/dial-inEn indringning (kapitel 23) (DISA, "direct inward system access") giver mulighed for, at nogen kan ringe ind udefra, bevise, hvem de er, og ringe ud igen gennem kontoret: opkaldet går ud med kontorets opkalders ID, dets ruter og dets takster, som om de var ved deres skrivebord.
- Tilføj indringning, og indstil en PIN (4 til 10 cifre), de numre, der er tilladt at bruge det (Kun fra disse numre), eller begge. En af de to er påkrævet.
- Vælg den udvidelse, opkaldene bliver lavet som: dens tilladelse til udgående opkald, opkalders ID og udgående ruter gælder. Den skal være tilladt udgående opkald.
- Giv det et nummer at ringe ind på, og send et telefonnummer til det på Opkaldsrouting (kapitel 8) (vælg indringningen som destination).
Opkaldere hører "Indtast din PIN, derefter tryk på hash", derefter "Indtast nummeret at ringe til, derefter tryk på hash", og bliver sat igennem. Ordene kommer fra indringningsprompterne i Lyde (kapitel 20).
Tale robotter (AudioSocket)
/voice-botsEn tale robot (kapitel 24) er et program af din egen (en AI-agent, en tale-genkendelses-IVR, en optager) der tager opkald over AudioSocket, det simple protokol Asterisk bruger: BitVoice svarer på opkaldet, åbner en TCP-forbindelse til robotten og sender opkaldets UUID, derefter svarerens lyd som 20 ms-rammer af 8 kHz 16-bit lineær audio og hver tast trykket; hvilken som helst lyd robotten sender tilbage, afspilles til svareren. Robotter og tale-service-tilslutninger skrevet til Asterisks AudioSocket fungerer med BitVoice uændret.
- Tilføj tale robot: dens navn, robotens adresse (
10.0.0.9:9092) og, hvis ønsket, et nummer til at ringe til den. - Vælg, hvor svareren går hvis robotten ikke kan tage opkaldet, eller afbryder (en person, en kø, en telefonsvarer): påkrævet, så ingen svarer nogensinde bliver droppet, fordi en robot er nede.
- Send opkald til den fra Opkalds routing (kapitel 8), en menu mulighed, en tidsplan eller en toggle.
Når robotten sender en AudioSocket-afslutning, slutter opkaldet; når svareren lægger på, sendes en afslutning til robotten. En robot, der ikke kan nås inden for tre sekunder, eller hvis forbindelsen afbrydes uden en afslutning, overfører svareren til reservevalget, og fejlen logges.
For at bringe et program ind i et opkald, der allerede er i gang (en lytten transkriber, en assistent, der hvisker til ingen), brug ARI's eksterne medie: se Asterisk kompatibilitet (kapitel 70).
Dag/nat toggles
/togglesEn dag/nat toggle (kapitel 25) er en skifter for en opkaldsflow (FreePBX kalder det opkaldsflow kontrol). Opkald sendt til den går til dens normale destination, eller til den anden, mens nogen har skiftet den over: kontoret lukker tidligt på grund af en storm, nogen ringer *281 på vej ud, og opkald går til telefonsvareren, indtil det skiftes tilbage om morgenen. Den forbliver, som den blev efterladt, på tværs af genstart.
- Tilføj toggle, giv det en kode (1 til 3 cifre: ringet efter
*28) og vælg, hvor opkald går normalt og når det skiftes over. Begge sider kan være en tidsplan, så en toggle kan sidde foran åbningstiderne og overtage dem. - Vælg, hvem der må skifte det fra en telefon (ingen valgt tillader enhver udvidelse).
- Send opkald til den fra Opkalds routing (kapitel 8), en menu mulighed eller en tidsplan, ligesom enhver anden destination.
Skift det ved at ringe *28 og dens kode (en stigende tone: skiftet over; en faldende tone: tilbage til normalt), med skiftet ved siden af det på Toggles siden, eller gennem API (POST /api/toggles/{id}/state). En busy lamp nøgle, der overvåger *281, er tændt, mens den toggle er skiftet over, så personen, der lukker op, kan se det fra deres skrivebord. Toggle-koden selv er på Funktioner (kapitel 32).
Tidsplaner
/schedulesEn tidsplan sender opkald en vej, når du er åben, og en anden vej, når du er lukket. Peger en indgående rute på en tidsplan, og tidsplanen på menuen (åben) og voicemail (lukket).
Åbningstider
Hver linje med timer er en samling af dage og en tid fra og til. Flere linjer er tilladt: mandag til fredag 9:00 til 17:00, og lørdag 10:00 til 13:00. Timer kan krydse midnat (22:00 til 06:00) for nattevagter.
Helligdage
Helligdage tæller som lukket hele dagen, uanset hvad timerne siger. Tilføj hver dato med et navn; navnet vises på Opkaldsflow (kapitel 16), når du prøver et opkald på den dag.
Tidszone
Tidszonen er den i Indstillinger. Når urene skifter, følger tidsplanerne den lokale tid.
Scripter (JavaScript og Lua)
/scriptsEt script afgør, hvor et opkald går, når menuer, planer og grupper ikke er nok: opkaldere fra ét område til ét kontor, VIP-numre direkte til en person, en beslutning fra jeres egne data. Eller, indstillet til Kører hele opkaldet, besvarer det opkald og kører det, som en Asterisk dialplan eller AGI-script ville: prompts og tale, taster, optagelser, ringning af personer, overdragelse (nedenfor). Scripterne skrives i JavaScript eller Lua på Scripter (kapitel 27).
Sikkerhed ved design
- En rute-script kører i maksimalt 200 ms. Hvis den fejler eller tager for lang tid, går opkaldet til scriptets fallback, så en fejl aldrig taber et opkald. (Opkalds-script har deres egne begrænsninger nedenfor.)
- Den kører i en sandbox: Den kan ikke nå netværket eller disken. En rute-script kan kun vælge; et opkalds-script kan kun udføre de trin, der er nævnt nedenfor, til dets eget opkald.
- Nødopkald kører aldrig scripter.
Hvad et script ser
call har:
| Felt | Hvad det er |
|---|---|
from, fromName | opkalders nummer og navn |
to | det nummer der er valgt |
direction | inbound eller internal |
trunk | den trunk det kom ind på |
weekday, hour, minute | tidspunktet nu (0 er søndag) |
date | ÅÅÅÅ-MM-DD |
What it returns
A destination, {type, target}: type is extension, ringgroup, queue, menu, schedule, voicemail or hangup, and target is its number. Returning nothing uses the fallback. log("text") writes to the script's run list.
JavaScript
if (call.from.startsWith("212")) {
log("New York caller")
return { type: "ringgroup", target: "600" }
}
if (call.weekday === 0 || call.weekday === 6) return { type: "voicemail", target: "100" }
Lua
if string.sub(call.from, 1, 3) == "212" then
log("New York caller")
return { type = "ringgroup", target = "600" }
end
if call.weekday == 0 or call.weekday == 6 then
return { type = "voicemail", target = "100" }
end
Brug af et script
Peger en indgående rute, en menuknap eller en tidsplan på scriptet, som på enhver destination. Test kører det med et opkald, du beskriver, uden at placere et; kørselslisten viser hver rigtig kørsel med dets beslutning, tid taget og eventuelle fejl. Opkaldsflow (kapitel 16) kører også scripter, når du prøver et opkald.
Script, der kører hele opkaldet
Vælg Kører hele opkaldet. Scriptet svarer herefter på opkaldet og går fra top til bund, hvor hvert trin venter, til det er færdigt:
| Step | What it does |
|---|---|
play(name) | plays a prompt from Sounds (kapitel 20) in the caller's language (goodbye, digit-5...), digits:1234, or a tone: beep, confirm, error, off, hold. A prompt not recorded yet is a beep. |
say(text) | speaks the words with the speech service in Settings, AI (a beep without one) |
collect({max, timeout, interDigit, end, say, prompt}) | gathers keys: at most max (32), waiting timeout seconds for the first (5) and interDigit for each next (3), until end (#). say or prompt asks first. Returns the keys, "" when none. |
record({box, seconds, beep}) | records a message into an extension's mailbox, until # or the time; returns its seconds |
wait(seconds) | waits, returning a key pressed |
dial(destination, ringSeconds) | rings it with the caller hearing ringback. Answered: they talk and the script is done (true). Not answered: false, and the script carries on. |
transfer(destination) | hands the call on; the script is done |
hangup() | ends the call |
log(text) | writes to the run list |
En destination er et nummer (en extension, ringgruppe eller kø her, ellers et eksternt nummer gennem udgående ruter; aldrig et nødnummer) eller {type, target} som ovenfor. En trykket tast under en lyd stopper den; play og say returnerer den og den næste collect starter med den. At returnere en destination sender opkaldet dertil.
const k = collect({ max: 1, timeout: 5, say: "Press 1 for sales, 2 for support." })
if (k === "1") return { type: "ringgroup", target: "600" }
if (k === "2") {
if (dial("101", 20)) return
say("Nobody is free. Leave a message after the tone.")
record({ box: "101" })
hangup()
}
Lua har de samme trin (collect{max = 1}). Giv scriptet et Nummer til at ringe for at ringe til det fra en extension.
Dets begrænsninger holder opkaldet sikkert: scriptets egen kode må køre i højst en kvart sekund mellem to trin; et opkald tager i højst 1.000 trin; og hele scriptet stopper efter sin Længste kørsel (10 minutter medmindre du siger, 60 som maks.). Når det fejler, stoppes eller slutter uden at afslutte eller overføre opkaldet, går opkaldet til dets fallback; en opkalders, der afslutter, stopper det med det samme. Prøv det kører scriptet med de taster, du siger, opkalders trykker, og listen over hvert trin, uden at placere et opkald.
AI-receptionist, voicemail-triage og spørgsmål
/receptionistsAI-funktioner bruger AI-tjenesten angivet i Indstillinger (kapitel 14): en OpenAI-kompatibel tjeneste (OpenRouter som standard) eller en, du selv kører. Hvad de behøver, sendes derhen, så vælg en tjeneste, du stoler på med opkald; til en 911-centre tæller dens egen regeringscloud som lokal.
AI-receptionist
Vælg en receptionist som, hvor opkald går hen: en rute, en menuoption eller en udvidelses Hvis ingen besvarer. Den siger, det er automatiseret, besvarer kun fra Godkendt information, tager en besked, booker en callback (se Callbacks (kapitel 30)) eller overfører til En person er. Tryk på 0 eller spørg om en person for at nå en, og så gør det også, hvis der er et problem med AI-tjenesten eller talemodellen: opkaldere bliver aldrig fastlåst med den.
Modeller
Model udfører tekstarbejdet: sammenfattelser, receptionistens svar og spørgsmål i almindelige ord. At omdanne tale til tekst kræver en model, der kan tage audio; angiv den som Tale-til-tekst-model (f.eks. google/gemini-2.5-flash på OpenRouter) for at bruge en tekst-baseret model til resten, f.eks. meta-llama/llama-3.3-70b-instruct.
Tale til tekst i bygningen
Tale kan skrives ned uden nogen sprogmodel: en talegenkender (whisper) hører audioen og skriver, hvad der blev sagt, intet mere. Hvem skriver tale ned, i AI-indstillingerne, har tre valg:
- Modellen ovenfor: audioen går til AI-tjenesten, hvis model skal kunne tage audio.
- Denne server: BitVoice kører whisper selv. Vælg en Whisper-model og gem: BitVoice henter den en gang fra whisper.cpp-projektet (
baseer 60 MB;small,mediumoglarge-v3-turboer mere nøjagtige og langsommere; alle forstår omkring 100 sprog), kontrollerer den mod dens offentliggjorte SHA-256 og starter whisper.cpp'swhisper-serverpå 127.0.0.1 ved siden af, genstartende den, hvis den stopper. Opkalders audio forlader aldrig computeren, og intet betales per opkald.whisper-server(MIT-licens) kommer med i BitVoices downloads ved siden af programmet, og installationsprogrammerne placerer den ved siden af BitVoice; BitVoice finder også en installeret på egen hånd (brew install whisper.cpp). Indstillingerne viser, hvor den står (henter modellen, starter, kører eller hvorfor den ikke er), og det gør Health (kapitel 13) også. Mens den ikke kører, mislykkes transskriptioner og siger hvorfor: de sendes aldrig til andre steder i stedet. - En tale-til-tekst-tjeneste: whisper.cpp's
whisper-serverpå en anden computer i bygningen (http://192.168.1.20:8178/inference), til en maskine med en GPU, der betjener flere BitVoice-servere, eller enhver OpenAI-kompatibel…/audio/transcriptions(med Dens model, f.eks. whisper-1, og Dens nøgle). Almindelighttpaccepteres kun til denne computer eller en privat netværksadresse; alt andet skal værehttps. For at køre en:whisper-server -m ggml-base-q5_1.bin --host 0.0.0.0 --port 8178 -l auto.
Whichever writes it down, every transcript goes there: voicemail, recorded calls, live 911 calls and receptionists hearing callers. Without the model, the Model may be left empty: transcripts are written, summaries are written from the facts the call said (below), and what needs a language model (action items, voicemail triage, call insight, receptionists' replies, asking in plain words) is left out. Notes a recogniser makes about what it heard, such as [BLANK_AUDIO] or (silence), are dropped, so a quiet stretch never reads as though something was said.
Kendsgerninger, der blev sagt i opkaldet (ingen sprogmodel)
Hver transkription læses også af regler uden en sprogmodel, for kendsgerningerne, en opkaldstager noterer: hvad der skete, hvor, hvor mange er sårede (eller at ingen er), tilstande (åndedræt, vågen, blødende ...), farer (ild, røg, gas, våben, kemikalier, brændstof), køretøjer, hvem opkaldsøgeren er i forhold til den, der har brug for hjælp, og et callback-nummer. Hver kendsgerning vises med den sætning, den kom fra, og den side, der sagde det, i transkriptionens Kendsgerninger, der blev sagt i opkaldet. Uden en model skrives sammenfattningen kun fra disse kendsgerninger og siger det.
- Intet bliver tilføjet, som ingen sagde. "Ingen er såret" er en kendsgerning i sig selv; en opkaldsøger, der viderebringer andres ord ("hun siger, han er ikke åndende") bliver markeret rapporteret; "24 Pine Lane. Nej, undskyld, 42" beholder 42; et blot "nej" besvarer spørgsmålet, der blev stillet lige før.
- Det er trofast, ikke fuldstændigt: ord, det ikke kender, bliver overset. På tre sæt opdigtede 911-opkald (ingen rigtig opkaldsøgers ord) finder det:
| Sæt | Kendsgerninger fundet | Kendsgerninger fundet, som ingen forventede |
|---|---|---|
| Træning (reglerne blev skrevet fra det) | 41 af 41 | 0 |
| Hold-out, scoret koldt, før nogen regel blev skrevet fra det | 27 af 40 (67%) | 2 |
| Hold-out, efter en anden runde af regler skrevet fra dets mangler | 40 af 40 | 0 |
| Forseglet, scoret koldt (ingen regel bliver nogensinde skrevet fra det) | 23 af 43 (53%) | 3 |
Det forseglede score er det, man kan forvente på opkald, det ikke har set, og de tre sæt blev skrevet af de samme personer som reglerne, så rigtige opkald sandsynligvis vil gøre det værre. Læs kendsgerningerne ved siden af transkriptionen, aldrig i stedet for den.
Større modeller kræver mere processor: en server, der skriver mange opkald på samme tid, skal starte med base eller bruge en maskine med en GPU som en tale-til-tekst-tjeneste for bygningen. På Apple-computere bruger whisper GPU'en.
Voicemail triage
Med Transkriber og summer voicemail aktiveret, markeres hvert meddelelse også som urgent, normal eller lav prioritet, med dens type (salg, support, fakturering...). Urgente meddelelser udløser en alarm på hver administrators skærm.
Spørg i almindelige ord
På Ændringer (kapitel 61), beskriv en ændring ("send salgsopkald til voicemail efter kl. 17"). AI'en foreslår det, BitVoice checker det som enhver anden ændring og viser nøjagtigt, hvad der vil ændre sig. Ingen ændringer sker, før du trykker på Anvend, og det bliver en revision, du kan genskabe. Adgangskoder sendes aldrig til AI'en.
Telefonsvarer
/voicemailHver extension kan have en postkasse. Opkaldere, der ikke bliver besvaret, hører dens besked og efterlader en besked; personen hører den på sin telefon, læser den på skærmen eller får den via e-mail.
Aktivering af det
På extensionen, skift Telefonsvarer til. Hvis ingen svarer er herefter sat til postkassen. Giv den et PIN (4 til 10 cifre): det åbner postkassen fra en anden telefon og logger personen ind på medarbejderportalen og på hot desks.
| Indstilling | Hvad det gør |
|---|---|
| Længste besked | 10 til 900 sekunder (180 som standard) |
| E-mail nye beskeder | til extensions e-mail-adresse, med beskeden vedhæftet |
| Besked | optaget i browseren, uploadet eller optaget fra telefonen; uden en, hører opkaldere en beep |
Aflytning
- Fra udvidelsens egen telefon, tast
*97: beskeder afspilles nyeste først; taster afspiller, sletter eller gemmer hver enkelt. - Fra en anden telefon, tast
*97, indtast postboksnummeret og dets PIN. - På Voicemail (kapitel 29) (administratore) eller i personaleportalen (personen): afspil, marker hørt, slet.
- Telefonens beskedlampe er tændt, mens der er nye beskeder.
Med AI
Med Transkriber og sammenfatter telefonsvarer aktiveret (Indstillinger, AI), skrives hver besked ud, sammenfattes i en linje og markeres som urgent, normal eller lav prioritet med dens type (salg, support, fakturering). Urgente beskeder udløser en alarm på hver administrators skærm. Se AI (kapitel 28).
Lydrensning
Lydrensning (Indstillinger) fjerner konstant baggrundsstøj og jævner niveauer, mens beskeder gemmes, så en besked fra en bil eller en travl gade er lettere at høre.
Callback
/callbacksPersoner, der har bedt om at blive ringet op. En AI-receptionist booker en, når en opkaldende beder om det: den indsamler deres navn, nummeret at ringe til (og tilbyder det nummer, de ringer fra), et godt tidspunkt og hvad det handler om, læser det op for dem og booker det kun, når opkaldende accepterer. Den lover aldrig et præcist tidspunkt. Administratore kan også tilføje callbacks manuelt.
En ny callback viser en advarsel på hver åben skærm og sendes via e-mail til ejeren af receptionistens Tag beskeder for postkasse, når denne udvidelse har en e-mail-adresse og e-mail er konfigureret i Indstillinger.
For at ringe tilbage, vælger du din udvidelse og trykker Ring tilbage: din telefon ringer først, og når du tager den, ringer BitVoice nummeret for dig, med dine normale ruter og opkaldende-id. Derefter kan du tilføje en note, hvis du ønsker, og trykke Færdig (eller Afbryd). Færdige callbacks gemmes under de åbne og kan åbnes igen.
Opkaldslinks og websamtale
/call-linksEt opkaldslink er en webadresse, der ringer din forretning fra enhver browser: ingen telefonnummer, ingen app. Sæt det i en email-signatur, tryk QR-koden på en flyer eller en butiksvindue, eller indsæt webskemaet i din side.
På Kaldlinks (kapitel 31), tilføj en link, vælg hvor dens opkald går (en udvidelse, en gruppe, en kø, en menu, AI-receptionisten, en tidsplan eller voicemail), og gem: siden viser dens adresse og QR-kode. Kaldet ser titlen og ordene, du har indstillet, giver deres navn, hvis du beder om det, tillader mikrofonen og trykker på Ring nu; tastaturet fungerer til menuer. Den, der besvarer, ser Web: og kaldets navn.
Slå Åben fra for at lukke linjen (siden siger det). Opkald på samme tid begrænser, hvor mange personer kan ringe gennem ét link (5, medmindre det er indstillet). Adressen indeholder en lang tilfældig del, så den ikke kan gættes; gentagne forkerte adresser blokeres som mislykkede logonforsøg. Opkaldsersoners mikrofoner kræver, at siden betjenes over HTTPS, så give udgangspunkt for HTTPS-adressen.
Hverdagsopkald
Hvad folk gør på deres telefoner hver dag, og hvad de indstiller for sig selv: videreformidling, følg-mig, opkaldsafhentning, konferencerum, højttalere, varme skriveborde, faks og tekster.
Funktioner, videreformidling og hurtigvalg
/codesFunktioner er, hvad folk ringer på deres telefoner for at ændre deres egne indstillinger og nå funktioner. De virker på enhver telefon, skrivebords- eller softphone, uden noget opsætning på telefonen selv. En stigende tone betyder færdig; en faldende tone betyder afvist.
Koderne på et øjeblik
| Kod | Hvad den gør |
|---|---|
*72 | videreformidler hver opkald (så nummeret og #, eller nummeret lige efter: *722125550199) |
*73 | stopper videreformidling af hver opkald |
*90 / *91 | videreformidler, når der er opkald / stopper |
*52 / *53 | videreformidler, når der ikke er besvaret / stopper |
*78 / *79 | ikke forstyr på / af |
*76 | skifter ikke forstyr (stigende tone: nu på) |
*21 | skifter følg-mig på og af |
*8 | besvarer et opkald, der ringer i din afhentningsgruppe |
** og en udvidelse | besvarer opkaldet, der ringer på den udvidelse |
*80 og en udvidelse | internkommunikation: den telefon besvarer på sin højtaler |
*0 og en kode | en hurtigvalg |
*62 | vækkeopkald: hører det, book en (fire cifre, såsom 0630) eller annuller det (stjerne) |
*68 og en cifre | rumstatus, til rengøring i hoteller |
*28 og en skifters kode | skifter en dag/nat-skifter (kapitel 25) over, eller tilbage |
*32 | blokerer den sidste opkaldende: den sidste eksterne nummer, der ringede til denne telefon, kommer på bloklisten (Spam-beskyttelse (kapitel 56)) |
*43 | ekko-testen |
*97 | din telefonsvarer |
70 | parkerer et opkald (overfører det her); 71 til 79 henter det op |
*45 / *46 | køagent: logger ind eller ud / pauserer eller genoptager |
*33 / *34 | logger ind eller ud på en varm skrivebordsplads |
*7 / *8 under et opkald | pauserer og genoptager optagelsen (kortbetalinger) |
Videreformidling
*72videreformidler hver opkald. Ring det, hør en tone, derefter ring nummeret og #. Eller ring nummeret lige efter koden.*90videreformidler opkald, der kommer, mens du er på et opkald.*52videreformidler opkald, du ikke besvarer inden for din ringetid.*73,*91og*53annullerer dem.
Videreformidling til en anden udvidelse bruger den udvidelses egne indstillinger (dens telefonsvarer, dens følg-mig), op til fire hop, så to personer, der videreformidler til hinanden, ikke kan danne en løkke. Videreformidling til et eksternt nummer går gennem de udgående ruter, som om personen havde ringet det, og kræver, at udvidelsen er tilladt eksterne opkald.
Videresendelse er en live-tilstand, ikke en konfiguration: indstilling af den medfører ingen revision, og den gemmes på tværs af genstart. Udvidelser (kapitel 3) og medarbejderportalen viser og ændrer den også.
Ikke forstyr
*78 på, *79 af, *76 skifter. Med ikke forstyr på, går opkald til telefonsvareren, eller til udvidelsens ikke-besvaret destination. Ikke forstyr sat af hånd vinder over kalenderen (Kalendere (kapitel 39)). Nødkald tilbage-ringer stadig.
Følg-mig
*21 skifter follow-me til og fra, for udvidelser der har follow-me-numre angivet (på udvidelsen eller i medarbejderportalen). Skrivebordet ringer først i sin ringetid, derefter follow-me-numrene, ét efter ét eller alle sammen. På et eksternt nummer med tryk 1 aktiveret, hører personen en tone og trykker 1 for at tage samtalen; en voicemail eller en tavshed gør aldrig det, og efter 15 sekunder flyttes samtalen videre.
Besvare nogen andres opkald
*8besvarer det ældste opkald, der ringer til nogen i din opkaldsgruppe (angivet på hver udvidelse; navne sammenlignes uden hensyn til store og små bogstaver).**og en udvidelse besvarer et opkald, der ringer til den udvidelse:**101.
Intercom
*80 og en udvidelse ringer til den med auto-svar: dens telefon svarer på højttaleren, og begge sider taler. Yealink, Grandstream og Snom læser BitVoices Call-Info-header, Poly læser Alert-Info; nogle telefoner kræver, at intercom tillades i deres egne indstillinger. En udvidelse kan afvise intercom; derefter ringer opkaldet, som det plejer.
Hurtigvalg
*0 og en kode ringer til en gemt nummer: *05. Virksomhedens hurtigvalg er på denne side; hver person kan have deres eget på deres udvidelse eller i medarbejderportalen, og deres sejrer over virksomhedens med samme kode. Koder er 1 til 3 cifre.
Ændring af koder
Hver kode kan ændres på Funktioner (kapitel 32), eller slås fra med ordet off. To funktioner kan ikke dele en kode, og ingen kode må være en udvidelses- eller en gruppenummer: BitVoice siger, hvilken af dem der er i konflikt. Echo, voicemail og park-numre er i Indstillinger (kapitel 14).
Medarbejderportalen
Medarbejderportalen giver alle mulighed for at passe deres egne opkald uden en administrator: ikke forstyr, videreformidling, følg-mig, hurtigvalg, voicemail og dens besked, deres PIN, og en liste over deres egne opkald. Den er på #/me på denne servers adresse og er linket fra login-siden.
Login
Personer logger ind med deres udvidelsesnummer og deres voicemail-PIN: samme PIN, der åbner deres voicemail fra en telefon og logger dem ind på hotdesks. En udvidelse uden PIN kan ikke logge ind; en administrator sætter en på udvidelsen.
Gentagne forkerte forsøg fra en adresse låser den ud i 10 minutter. En portal-session når kun personens egne indstillinger: aldrig en anden udvidelse, konfiguration eller nogen optagelser.
Hvad personer kan gøre
| Fane | Hvad der er der |
|---|---|
| Hvor opkald går | ikke forstyr; videreformidling af hvert opkald, når beskæftiget og når ikke besvaret; følg-mig-numre; egne hurtigvalg |
| Voicemail | beskeder at afspille og slette, med transkriptioner og sammenfattelser, når AI er aktiveret; optage eller uploade beskeden |
| Dine opkald | personens egne opkald, nyeste først, uden optagelser |
| PIN | ændre PIN, ved at give den nuværende |
Videreføring og ikke-forstyrre, der er indstillet her, er de samme som dem, der er indstillet fra telefonen med funktioner ( Funktionskoder (kapitel 32) ): hvilken der blev indstillet sidst, er i kraft. Følg-mig-numre og hurtigvalg er en del af udvidelsens konfiguration, så ændring af dem opretter en revision på Ændringer (kapitel 61), registreret som personens egen.
Videreformidling til et eksternt nummer virker kun for udvidelser, der er tilladt at ringe til eksterne numre. Portalen siger det, i stedet for at gemme en videreformidling, der aldrig kan ringe.
Chat og tilstedeværelse
Portalens Chat-fane viser kolleger med deres aktuelle status: tilgængelig, i samtale, ringer, væk (ikke forstyr, møde eller fravær fra kalenderen, med årsag) eller frakoblet (ingen telefon tilsluttet), og den status de har tastet ("Til lunch, tilbage kl. 14"). Vælg en person for at sende en besked; beskeder ankommer med det samme, og et tal ved siden af et navn tæller de ulæste beskeder. Teamrum (Indstillinger, Personalechat) er samtaler for en gruppe eller for alle, når et rum ikke viser nogen medlemmer.
Beskeder ses kun af personerne i samtalen: administratorer kan styre rummene, men læser dem aldrig. Indstillinger, Personalechat slår chat fra, og indstiller, hvor længe beskeder gemmes (0 gemmer de nyeste tusind af hver samtale).
Konference rum
/conferencesEt konference rum er et nummer, som flere personer kan ringe til for at tale sammen. Personale ringer til det fra deres skriveborde; eksterne ringere når det gennem en indgående rute eller et menuvalg, der peger på rummet.
Opsætning af et rum
- Åbn Konference rum (kapitel 34) og tryk på Tilføj konference rum.
- Tilføj et nummer (ethvert ledigt nummer, 500 som standard) og et navn.
- Tilføj eventuelt en PIN. Ringerne hører en tone, indtaster PIN'en og trykker #. Tre forkerte PIN'er, og samtalen afsluttes.
- Tilføj eventuelt en leder-PIN, der er forskellig fra PIN'en. Den person, der indtaster den, deltager som leder.
- For at give eksterne ringere adgang, peger en indgående rute (eller et menuvalg) på rummet.
Valg
| Valg | Hvad det gør |
|---|---|
| Vent på lederen | alle andre hører holdtønten, indtil en leder deltager; når den sidste leder forlader rummet, lukkes rummet, og alle hænges op. Kræver en leder-PIN. |
| Medlemmer deltager mutede | til briefing og forelæsninger: ledere taler, medlemmer lytter. Et medlem trykker 1 for at bede om at tale, og en leder afmutede dem. |
| Optag rummet | hele rummet gemmes som en enkelt optagelse i Samtalehistorik (kapitel 47), medmindre optagelse er slået fra for hele systemet |
| Toner, når personer deltager og forlader | slået til som standard |
| Flest personer på én gang | 50 som standard, op til 200 |
Taster under en samtale
1af- og tilslutter dig selv (i et rum, hvor medlemmer er mutede, beder det om at tale).2, for en leder, låser rummet, så ingen nye kan deltage, og låser det op.
Mens et rum er i brug
Siden viser hvert rum i brug: hvem der er i, hvem der taler (den grønne lygte), hvem der er muted, hvem har bedt om at tale, og hvem venter stadig på lederen. En administrator kan af- eller tilslutte en person, fjerne en person og låse eller låse rummet op.
Alle i et rum hører alle andre, der ikke er mutede, blandet af BitVoice; hver persons telefon kan bruge sin egen codec. En samtaleoptagelse gemmes for hver persons samtale, og en for rummet selv med dets varighed og optagelse.
HD-lyd
Slå HD-lyd til i et rum (nye rum har det slået til), og det blandes i 16 kHz i stedet for 8: personer på bredbånds-telefoner (G.722, Opus, browser-telefonen) hører hinanden i HD, med skarpheden af et moderne opkald, mens personer på almindelige telefoner (G.711, mobiltelefoner gennem en udbyder) hører det samme rum som sædvanligt. Live-visningen markerer rummet og hver medlem, der er i HD. HD kræver G.722 blandt codecs, telefonerne bruger (det er først i systemets liste, Indstillinger, Codecs). Optagelser af rummet forbliver i telefonkvalitet.
Video rum
Slå Video til på et rum, og video-telefoner (og softphones), der deltager, sender deres kamera og ser ét billede, skiftet, når personer taler, som i Asterisks ConfBridge:
- Følg taleren: alle ser den person, der har talt i et sekund, når den person, der er på skærmen, har været stille i et sekund; den person på skærmen ser den forrige.
- Vis lederen: alle ser lederen (der deltager med leder-PIN'en); lederen ser den person, der talte sidst.
- Gitter: alle ser alle på én gang, side om side ( ét billede fylder skærmen, to side om side, derefter 2 x 2 og 3 x 3, op til ni), hver person på sin egen plads i den rækkefølge, de deltager, inklusive sig selv.
BitVoice skifter billederne uden at afkode dem, så det koster næsten ingenting, og det beder hver ny billed-telefons fulde ramme (RTCP PLI og FIR, og SIP INFO billed-hurtig-opdatering, som de fleste skrivebords-telefoner svarer) om, så skiftet vises med det samme. Hvert medlems video bruger rummets video codec (H.264, medmindre du vælger VP8); en telefon uden det deltager med lyd alene. Hver seer får én stabil strøm (én kilde, dens egen payload-type), uanset hvem der er på skærmen. Live-visningen markerer, hvem der har video, og hvem der er på skærmen.
Et grid oprettes på en anden måde: BitVoice giver hver billede til ffmpeg på serveren, som afkoder dem, placerer dem i et 1280 x 720 billede i 15 billeder i sekundet og koder det en gang til alle. Installer ffmpeg (Indstillinger, Videoomdannelse, angiver, om det er fundet); uden det følger et grid-værelse taleren, og værelsets skærm siger det. Hvert billede koster procesortid: på en lille server, hold griddet til få værelser ad gangen. Kun medlemmer, hvis kamera sender, vises: nogen, der deltager uden video, eller hvis kamera stopper, forlader griddet (det fryser aldrig på et stille kamera), og griddet genoprettes inden for et par sekunder, når det ændrer sig, med en kort pause i billedet. Den tiende medlem og senere høres, men vises ikke. Live-visningen markerer griddets størrelse og hvem der er i griddet.
Alle menneskers video (browsere)
Vælg Alle menneskers video og rummet får sin egen side (Konference rum, Åbn video rum, eller #/video-room/NUMBER). Hver person der trykker Deltag med min kamera: browseren sender sin kamera én gang, i tre størrelser (simulcast), og modtager hver anden kamera i sit eget billede. BitVoice videreformidler billederne, som de kom, uden at afkode dem (en selektiv videreformidlingsenhed, SFU), så det koster lidt processor tid; upload af hver browser og download af hver seer er, hvad der begrænser et rum, så det kan tage op til 16 kameraer.
- Det store billede får fuld størrelse af det kamera, de små billeder får lille størrelse; Gør stort skifter dem, og skiftet sker ved det næste fulde billede af den nye størrelse, som BitVoice beder om med det samme (RTCP PLI).
- En browser, der mangler upload, stopper med at sende sin største størrelse; seerne får så den største størrelse, der stadig kommer.
- Lyden er rummets konference som altid: deltagerne ringer rummet på browser-telefonen, og enhver, der ringer til rummet fra en telefon, høres og hører alle. Video-telefoner, der ringer ind, ser hvem der taler.
- Et rum med en PIN beder om den på siden. Siden kræver en log-in til BitVoice.
Deling af skærm: tryk på Del min skærm og vælg en skærm, et vindue eller en browserfane i browserens egen vælger. Alle i rummet ser det som det store billede under dit navn, med tekst, der holdes skarp (billedfrekvensen falder i stedet, når netværket er kort). Du behøver ikke at deltage med din kamera først. Stop deling, eller browserens egen Stop deling-linje, afslutter det.
- Et rum viser kun én delt skærm ad gangen: mens nogen deler, venter de andre knapper og siger, hvem der deler. En delt skærm tæller ikke med i de 16 kameraer.
- En anden person kan gøres til det store billede med Gør stort, som med kameraer; skærmen bliver i rummet.
- Skærmens billede alene, aldrig dens lyd: rummets lyd forbliver dens konference.
- Telefoner, der ikke kan dele en skærm (de fleste telefonbrowsere), viser knappen grået ud. Skrivebords- og andre videotelefoner, der ringer til rummet, ser ikke delte skærme; de ser, hvem der taler.
Højttaler- og højtaleranlæg
/pagingHøjttaler taler gennem mange telefoner på én gang: ring et højttalernummer, og hver telefon i gruppen svarer på sin højttaler selv. Brug det til meddelelser til en lager, en skole, en butiksgulv.
Opsætning af en oplæsningsgruppe
- På Oplæsning (kapitel 35) tryk på Tilføj oplæsningsgruppe og giv den et nummer (800 som standard) og et navn.
- Vælg telefonerne. Overhead-højttalere, der er opsat som udvidelser (type Overhead-højttaler), kan også være medlemmer.
- Valgfrit, en multicast-adresse og port.
Multicast
Multicast sender også oplæsningen til en multicast-adresse og port (239.0.1.10:5000), som overhead-højttalere og mange skrivebords-telefoner kan lytte til uden en opringning hver. En gruppe kan kun have en multicast-adresse. Det fungerer på ét netværk: routere sender ikke multicast videre, medmindre de er konfigureret til det.
Oplæsning og intercom
| Oplæsning | Intercom | |
|---|---|---|
| Hvem hører | alle i gruppen | en udvidelse |
| Tale tilbage | nej, en vej | ja, begge veje |
| Hvordan | ringe gruppenummer | *80 og udvidelsen |
Telefoner, der ikke besvarer en oplæsning selv inden for få sekunder, er udelukket, så en telefon uden auto-svar holder aldrig en oplæsning tilbage. Nogle telefoner kræver auto-svar (intercom) tilladt i deres egne indstillinger.
Hot desking
/phonesEn hot desk er en delt telefon, der bliver til den, der logger ind på den: til kontorer, hvor folk ikke har faste borde. Lav en ved at slå Hot desk til i udvidelsen, telefonen er konfigureret som (deskens egen udvidelse, f.eks. 900 Desk 3).
Logge ind og ud
- Ved telefonen, taste
*33og vent på tonen. - Indtast din udvidelse og #, og vent på tonen.
- Indtast din voicemail-PIN og #. En stigende tone betyder, du er logget ind; en faldende tone betyder, det blev afvist.
Herefter ringer opkald til din udvidelse denne desk samt dine andre telefoner, og opkald du laver fra den viser dit nummer og navn og tælles som dine på Omkostninger. At logge ind på en anden desk flytter dig derhen. *34 logger dig ud. Fem forkerte forsøg låser desk'en i ti minutter.
Administrere hot desks
På Telefoner (kapitel 4), viser Hot desks, hvem der er logget ind hvor; administratorer kan logge nogen ind (uden deres PIN) eller ud. Koderne og en tid hver dag, hvor alle er logget ud, er i Indstillinger. Log-ind er gemt på tværs af genstart.
Hotel og vækkeopkald
/hotelVækkeopkald
Enhver kan bestille et vækkeopkald: gæster, nattevagter, personer på vagt. Fra deres egen telefon ringer de *62: BitVoice siger det, der er sat (hvis nogen), derefter indtaster de tiden som fire cifre (0630), eller trykker stjerne for at annullere det. På Hotel (kapitel 37) bestiller en administrator et til enhver udvidelse, en gang eller hver dag.
Ved den tid ringer telefonen med systemnavnet; besvaret høres "Godmorgen. Dette er din vækkeopkald." (vækkeopkaldsprompten i Lyde (kapitel 20), på gæstens eller udvidelsens sprog). Ubesvaret prøves det igen (3 forsøg, 5 minutter imellem, begge indstillet under Indstillinger på siden), og efter det sidste kan reception udvidelsen ringes. Med flere servere udfører kun en vækkeopkald.
Gæsteværelser
Slå Gæsteværelse til på udvidelsen af hver rooms telefon. På Hotel vises hver rooms gæst, vækkeopkald og roomstatus med Check ind og Check ud knapper.
- Bar ledige værelser: Værelser med ingen checket ind ringer kun udvidelser og nødnumre. Nødopkald virker altid.
- Ryd ved check-ud: Sletter værelsets voicemail og annullerer dets vækkeopkald, viderebefordring og ikke forstyr, klar til den næste gæst.
- En gæsts sprog (fra check-ind) er det sprog, værelsets prompts siges på.
- Roomstatus: Housekeeping dial
*68og en cifre fra værelsets telefon (*683); hotel-systemet beslutter, hvad hver cifre betyder.
The hotel system (PMS)
- FIAS: BitVoice connects to the FIAS interface of the hotel system (Oracle Opera and the many systems that speak FIAS) at its address and port. It receives check-ins, room moves, check-outs and wake-up bookings, and sends wake-up results, room status and call charges. While the link is down, what it would send waits and goes when it is back; the page says whether it is linked. The records follow Oracle's FIAS 2.20.23 specification: BitVoice describes itself as a phone system (IF PB), call charges are direct charges (PT C) with the amount in the currency's smallest unit and the dialled digits without + or spaces, and a wake-up result repeats the booked time to the second, so the hotel system can match it to its request.
- REST API: the hotel system calls
POST /api/hotel/rooms/<room>/checkin(name, account, language),/checkout, andPUT /api/wakeups/<room>, with an API key from Settings, Automation. Charges are posted as JSON to the address you give. - Charge calls: answered outside calls from occupied rooms go on the guest's bill, at the trunk's rates (from Costs (kapitel 54)) plus the markup.
Kontakter på hver telefon
/contactsKontakter er virksomhedens adressekartotek: leverandører, kunder og andre kontorer, folk ringer til. Hver telefon viser det ved siden af udvidelserne, og når et af disse numre ringer ind, viser telefoner og opkaldskortet kontaktpersonens navn (når udbyderen ikke sendte noget). Et nummer matcher uanset, hvordan det er skrevet: +1 212 555 0100 og 2125550100 er den samme linje.
Tilføje kontakter
Tilføj kontakt for en ad gangen, med så mange numre (arbejde, mobil, hjem, andre), som de har. Import tager en regneark gemt som CSV, hvis første række navngiver kolonnerne: navn, virksomhed, arbejde (eller telefon), mobil, hjem, andre, e-mail, noter. BitVoice kontrollerer hele filen først og siger, hvilke linjer er forkerte; en kontakt med samme navn som en, der allerede er der, opdateres i stedet for at blive tilføjet to gange, og Erstat hver kontakt starter listen på ny. Eksport downloader listen som CSV.
På skrivebords-telefoner
Telefoner konfigureret af Telefoner (kapitel 4) (konfiguration) får adressekartoteket uden yderligere opsætning:
- Yealink: en fjern telefonbog med navnet Virksomhed, opdateret hver time.
- Grandstream: telefonbogens download, hver time.
- Polycom: adressekartotekfilen, læst, når telefonen starter.
- Snom: listen skrives ind i telefonens indstillinger, så den opdateres, når telefonen næste gang kontrollerer dem.
I browser-telefonen
Kontakter under tastaturet finder et navn eller nummer og lægger det klar til opkald.
Fra Microsoft 365 eller Google Workspace
BitVoice kan holde Kontakter i trit med jeres organisationskatalog: alle i det, der har et telefonnummer, og dets fælles kontakter (Exchanges organisationskontakter eller Googles fælles domænekontakter). I Indstillinger (kapitel 14), Microsoft 365 og Google Workspace, vælg tjenesten, giv, hvad den behøver, og tryk Tjek nu: den logger ind, tæller personerne og siger, hvilke udvidelser matcher en person via email. Gem, og Kontakter udfyldes inden for et halvt minut; derefter hver halve time eller med det samme med Synkroniser kontakter nu.
Microsoft 365 (en app-registrering; du skal kunne give admin-samtykke):
- I Entra-admin-centret, App-registreringer, Ny registrering: navngiv den BitVoice, enkelt-lejer, ingen omdirigeringsadresse.
- API-tilgange, Tilføj en tilladelse, Microsoft Graph, Applikations-tilladelse:
User.Read.All,OrgContact.Read.AllogCalendars.ReadBasic. Derefter Give admin-samtykke. - Certifikater & hemmeligheder, Ny klient-hemmelighed: kopier værdien (vises én gang).
- I BitVoice: kataloget (lejer-ID), applikations-(klient-)ID og hemmeligheden. En hemmelighed udløber (Microsoft tilbyder op til to år): når den gør, siger kortet, at hemmeligheden blev afvist; lav en ny og indsæt den.
Google Workspace (en service-konto; du skal være en super-administrator):
- I Google Cloud, i et af dine projekter: skru People API og Google Calendar API til, lav en service-konto, og tilføj en nøgle (JSON) til den.
- I Google Admin-konsollen, Sikkerhed, Adgang og data-kontrol, API-kontroller, Domain-omfattende delegation, Tilføj ny: service-kontens klient-ID, med omfang
https://www.googleapis.com/auth/directory.readonly,https://www.googleapis.com/auth/calendar.freebusy. - I BitVoice: nøgle-filen og e-mailen for en administrator for service-konten til at agere som.
Hvad der kommer ind:
- En persons arbejdstelefonnummer og mobilnummer, navn, email og deres jobtitel og afdeling som kontaktpersonens noter; organisationens navn som deres virksomhed. Personer uden nummer bliver udeladt (en kontakt kræver et nummer); kontoer, der er slået fra, bliver også udeladt.
- Kontakter fra tjenesten er markeret med dens navn og ændres der: ændring eller fjernelse her bliver afvist, da næste synkronisering ville omgøre det. Kontakter oprettet her eller importeret fra et regneark bliver ikke ændret.
- BitVoice læser kun. Dens adgang er ovennævnte læseadgangstilladelser, og hemmeligheden eller nøglen opbevares sammen med de andre hemmeligheder: brugere ser den aldrig, og eksport til Git udelader den.
Kalendere og ikke forstyr
/extensionsEn udvidelse kan følge personens kalender: under møder og fri, går opkaldene til voicemail eller videreføres (til en anden udvidelse eller en mobil), i stedet for at ringe en telefon, som ingen vil svare på. Ringgrupper ringer de andre imens, og i køer viser agenten som Fraværende.
I udvidelsen, Kalender og ikke forstyr, indsæt kalenderens private adresse:
- Outlook: Indstillinger, Kalender, Delede kalendere, Offentliggør en kalender; vælg kalenderen og "Kan se alle detaljer", derefter kopier ICS-linket.
- Google Kalender: Indstillinger, kalenderen til venstre, derefter Hemmelig adresse i iCal-format.
Tjek læser det med det samme og viser de næste beskæftigede tider. BitVoice læser hver kalender hver femte minut. Fri (alle-dages-begivenheder og Outlooks "uden for kontoret") tæller altid; møder tæller, når Møder tæller som beskæftiget er aktiveret; begivenheder, der er markeret som fri, tæller aldrig, og heller ikke aflyste begivenheder. Gentagne møder med sprunget og flyttet forekomst forstås. Hvis en kalender ikke kan læses, siger Health det.
Ikke forstyr nu stopper udvidelsens ringning, indtil det slås fra, uanset hvad kalenderen siger. Udvidelseslisten viser, hvem der er fraværende og indtil hvornår.
Den private adresse fungerer som en adgangskode: enhver med den kan læse den kalender, så den opbevares med de andre hemmeligheder.
Alle kalendere på én gang: Microsoft 365 og Google Workspace
I stedet for en privat adresse per udvidelse, kan BitVoice læse hver persons kalender fra Microsoft 365 eller Google Workspace: konfigurer det én gang i Indstillinger (kapitel 14), Microsoft 365 og Google Workspace (se Kontakter (kapitel 38) for trinnene), med Kalendere viser, hvem der er væk aktiveret. Hver udvidelse matchas med sin person ved sin e-mail; en med en privat adresse af sin egen bruger den i stedet. Udvidelsens indstillinger her (Møder tælles som optaget, Mens optaget, opkald) gælder som med en privat adresse.
- Microsoft 365 fortæller møder fra fravær: et møde markeret som fraværende tælles som fravær; forsigtige møder og tid markeret som ledig eller arbejder andre steder, stopper aldrig telefonen fra at ringe. Et privat møde vises som "I et møde", uden dets titel.
- Google Workspace giver optagede tider uden at sige hvorfor, så de tælles altid som møder.
- Kalenderne læses hver femte minut, og med det samme, når indstillingerne ændres. En udvidelse, hvis e-mail-tjenesten ikke kender, siger det i sin kalendersektion.
Mobile apps
BitVoice-appene til iPhone og Android gør en mobiltelefon til en af en udvidelses telefoner. Den ringer som en kontor-telefon, på telefonens egen opkaldsskærm, selv når appen er lukket.
Konfiguration af push
En lukket app vækkes til opkald via en push-besked. I Indstillinger (kapitel 14), Mobile apps, vælg en:
| Push | Hvad du behøver |
|---|---|
| Push-relæ | BioDreams relæ (med hosting eller support) eller din egen bvpush: dens Relæ-adresse, Nøgle-ID og Hemmelighed |
| Egen apps | dine egne bygninger: til Apple, Team-ID, Bundle-ID, Nøgle-ID og Nøgle (.p8); til Google, Firebase-servicekonto (JSON) |
Indstil Adressen, appene bruger til denne servers https-adresse, som den nås fra hvor som helst, ikke kun kontoret.
Parre en telefon
- Åbn udvidelsen og tryk Tilføj en telefon.
- Scann QR-koden i appen. Koden virker kun én gang, i ti minutter.
Når et opkald kommer ind
BitVoice vækker appen; den tilslutter, ringer på telefonens egen opkaldsskærm og besvares som en hvilken som helst anden telefon på udvidelsen: ringegrupper og køer ringer den med udvidelsens andre telefoner. Udvidelsens side viser en liste over dens parrede telefoner, om hver Kan vækkes til opkald, hvornår den sidst blev set og sidst vækket, og eventuelle push-problemer. Fjern parring stopper en telefon med at ringe med det samme, til en tabt telefon.
Under et opkald
Appen er en fuld udvidelse, ikke kun en tastatur:
- Overfør en opkaldende til en anden udvidelse eller et eksternt nummer (opkaldsskærmens egen Overfør eller appens knap). Til parknummeret, parkeres opkaldet.
- Hold og tag tilbage, fra opkaldsskærm eller app; holdte opkaldende hører din holdemusik, hvor den er konfigureret.
- En anden opkald: taste, mens den første er på hold, og skift mellem dem.
- Tastatur-toner (DTMF) under opkaldet og Dæmp.
De andre faner
- Seneste: opkald til og fra denne udvidelse, nyeste først, tryk for at ringe tilbage (manglende opkald fremhæves).
- Telefonsvarer: hver besked med dens transskript (kapitel 29) hvor AI skriver en, afspil den, ring tilbage eller slet.
- Hold: hvem der er ledig, på et opkald, ringer eller er væk (en beskæftigelseslampe), for at ringe til dem eller overføre det aktuelle opkald til dem.
- Kontakter: virksomhedens adressekartotek, for at finde et navn og ringe til det.
- Chat: medarbejderchatten (Chat og tilstedeværelse), kolleger med deres tilstedeværelse og direkte beskeder, og teamrum, inde i telefonen. En ny besked, mens appen er i baggrunden, vises som en meddelelse, og ved at trykke på den åbnes Chat; når appen er lukket, kommer den gennem samme push som opkald.
- Deltag i et videorum: Vælg et af videorummene (kapitel 34) (det viser dem, med hvor mange der er i hvert nu). Det åbner over telefonen, som fortsætter med at køre under, og du deltager som din udvidelse: ingen administrator-login. Første gang, spørger telefonen om kameraet. Forlad, eller Tilbage på Android, returnerer til telefonen; rummets lyd forbliver et opkald på den, indtil du lægger på. Telefonen viser rummet som et videopkald på sin egen opkaldsskærm, mens du er i det.
- Opkald du laver går også på telefonens egen opkaldssystem (CallKit på iPhone, Androids Telecom), så Bluetooth, en bil eller et ur viser dem, og et mobilt opkald, der ankommer imens, kender til dem.
Live-transskription på et opkald
Med Skriv ud opkald live på (Indstillinger (kapitel 14), AI), skrives hver side af et opkald ud, mens det tales, og vises på telefonen, mens opkaldet er i gang. Lyden går til tale-til-tekst-tjenesten (på din egen computer, hvor det er indstillet) eller AI-tjenesten, mens opkaldet varer. Det er den samme skrivning som 911 live-transskriptioner (kapitel 13), for almindelige opkald.
Videoopkald
/settingsNår begge telefoner i et opkald sender video (video skrivebords-telefoner, softphones, video-dørklokkering), passerer billedet mellem dem gennem BitVoice. Intet at konfigurere: det er aktiveret, medmindre Indstillinger → Videoopkald er slukket.
- BitVoice formidler videoen, som den er, på en port for hver telefon, så telefonerne aldrig lærer hinandens adresser. Med en kodek i fællesskab (næsten hver video-telefon har H.264) dekoderer den aldrig videoen; uden en, kan den konvertere (nedenfor). Når de nummererer samme kodek forskelligt, gennumreerer BitVoice den undervejs.
- Billedet er krypteret (SRTP) til hver telefon, der krypterer sin lyd.
- En telefons anmodning om et nyt billede (efter tabte pakker) når den anden telefon, så billedet genopretter sig omgående.
- En kamera, der tændes under et opkald (en softphones video-knap), virker også: den anden telefon spørges først, og billedet starter, når den siger ja.
- En telefon uden video eller et opkald til en ekstern nummer, får kun lyd. På hold eller mens den er parkeret, pauserer billedet og kommer tilbage, når opkaldet gør. Efter en overføring fortsætter det kun, når den nye part sender video også.
- Video bruger langt mere af netværket end lyd (cirka 0,5 til 2 Mbit/s hver vej per opkald): tillad for det på langsomme forbindelser og i medieportområdet.
Konvertering af video
Telefoner og apps, der deler en video-kodek (de fleste bruger H.264), får hinandens video, som den er. Når to parter ikke har nogen kodek til fælles (en skrivebords-telefon med kun H.264 og en browser med kun VP8), skal du slå Konverter video mellem H.264 og VP8 til i Indstillinger: BitVoice tilbyder derefter begge kodeker, besvarer hver part i dens eget, og konverterer hver vej med ffmpeg, der skal være installeret på serveren (apt install ffmpeg, brew install ffmpeg; eller give dens sti). Konvertering koster cirka en processor kerne per opkald og tilføjer en lille forsinkelse, så det er slukket som standard og kun bruges, når det er nødvendigt. Indstillinger siger, om ffmpeg blev fundet.
Fax: sending og modtagning, faxmaskiner og analoge telefoner
/faxesFaxmaskiner, analoge telefoner, dørtelefoner og gamle linjer tilslutter via en SIP-gateway (eller en telefoni-kort i BitVoice-computeren: se Telefonikort (kapitel 6)): en ATA (Grandstream HT-serie, for en eller to analoge telefoner eller en fax), eller en større gateway (Patton SmartNode, AudioCodes MediaPack og Mediant) til mange analoge porte, en ISDN-linje (BRI/PRI) eller gamle analoge linjer (FXO). Hver port registrerer sig til BitVoice som en udvidelse, ligesom en telefon.
Modtagelse af faks uden en faxmaskine. På Faks, tilføj et faxnummer (300, sige), med de e-mail-adresser, som hver fax skal sendes til. Så i Opkaldsvejledning (kapitel 8) sender du et telefonnummers opkald til det. BitVoice svarer som en faxmaskine, skifter opkaldet til T.38 og modtager faxen; hver fax bliver en PDF, gemt på Faks (Vis, PDF) og sendt via e-mail. En fax, der afbrydes undervejs, gemmer de sider, der ankom, og siger det. Hver fax i listen viser den sendende eller modtagende maskines egen identitet, når den afviger fra nummeret, og hastigheden, som siderne gik med (14.400 bit/s er den hurtigste; en maskine, hvis faks ofte mislykkes ved en lav hastighed, har sandsynligvis en dårlig linje). Dette kræver en udbyder, der understøtter T.38 (de fleste gør); en fax, der sendes som lyd, kan ikke modtages på denne måde. Prøvet med T38Fax, en fax-udbyder: registrer forbindelsen med dens brugernavn og adgangskode til sip.t38fax.com, port 5080 (UDP); tillad UDP fra dens netværk (8.34.182.0/24 og 8.20.91.0/24) gennem enhver firewall foran BitVoice.
Sending af en fax. På Fax, Send en fax: Vælg det faxnummer, det skal sendes fra, skriv nummeret til at sende til, skriv en note, hvis du ønsker (den bliver den første side), og tilføj dokumenter. Tekstfiler og billeder (PNG, JPEG, GIF) virker overalt. PDF kræver poppler på serveren (apt install poppler-utils, apk add poppler-utils, brew install poppler); Word, Excel, OpenDocument og RTF kræver LibreOffice også. Siden siger, hvilke serveren kan gøre. Hver side får en overskriftslinje, som faxmaskiner printer den: tiden, faxnummrets navn, dets identitet og sideantallet. Opkaldet går ud fra identitetens cifre (+1 212 555 0300 ringer fra +12125550300), eller fra faxnummeret selv, når identiteten ikke er et nummer. Siderne er US-brevstørrelse i Nordamerika og A4 andre steder, fra landet i Indstillinger.
BitVoice ringer nummeret op over dine udgående ruter, som en udvidelse ville, og sender med den hurtigste rate, linjen kan bære (14.400 bit/s, langsommere, hvis linjen er dårlig). Fax fra et faxnummer sendes én ad gangen. Et beskæftiget nummer eller et, der ikke svarer, prøves igen fem minutter senere, tre gange i alt. Sendte fax er listet med de modtagne: Sendt, Venter på at sende, Fejlet (med Prøv igen), eller Delvist sendt, når linjen brød efter nogle sider.
Email til fax. Længere nede på listen, konfigurer en mailbox, som BitVoice kan læse (IMAP over TLS, port 993; for Google- og Microsoft-mailboxer brug en app-adgangskode), derefter Test og Gem. Enhver, der har tilladelse til at sende, skriver til den mailbox med faxnummeret i emnefeltet (Fax 212 555 0199), eller til en plus-adresse (fax+2125550199@example.com), hvis mailserveren accepterer dem. Vedhæftninger bliver siderne, og emailens egne ord bliver dæksiden (signatur og citeret mail bliver udeladt). Den sendes fra det faxnummer, der lister afsenderen: dets Email hver fax til-adresser kan altid sende, og Kan også sende fax via email tilføjer andre (hele adresser eller @example.com for et domæne). Afsenderen modtager en email, når faxen er sendt, eller hvorfor den ikke kunne.
Email er let at forfalske, så BitVoice faxer kun en besked, når din mailserver har fundet ud af, at den virkelig kom fra afsenderens domæne (DKIM, SPF eller DMARC, i Authentication-Results-linjen, den tilføjer). Andre beskeder bliver droppet uden svar. Skift Acceptér mail, som afsenderens domæne ikke har godkendt til kun for en mailbox, som ingen udenfor mail kan nå.
Faxmaskiner på gateways. BitVoice sender fax via T.38, den internationale faxstandard: når gatewayen hører en faxtone, skifter den kaldet til T.38, BitVoice beder den anden side (din udbyder eller en anden gateway) om at skifte også, og passerer faxen mellem dem. Hvis den anden side ikke kan håndtere T.38, bliver kaldet på G.711, og faxen sendes som lyd, hvilket fungerer på et godt netværk. Aktive kald viser fax (T.38), mens en fax sendes igennem.
Til pålidelige faks:
- Brug T.38 på gatewayen og vælg en udbyder, der understøtter det.
- Gør portens udvidelse til en analog adapterport (Udvidelser, Type): BitVoice tilbyder derefter kun G.711, som faks sendt som lyd har brug for.
- På gatewayens faxport: Faxtilstand T.38, kun PCMU eller PCMA, linje-echo-afkrydsning fra, og et fast, højt jitterbuffer.
Indbakke: webchat, WhatsApp og Messenger
/inboxIndboksen (kapitel 43) indeholder hver skreven konversation i én liste: chatboksen på din website, WhatsApp, Facebook Messenger og tekster (kapitel 44). Enhver, der er logget ind på webgrænsefladen, kan svare; den første, der svarer, tager konversationen (enhver kan overdrage den med Besvaret af), og Luk lægger den væk, indtil personen skriver igen. Ulæste konversationer tælles, og listen opdateres automatisk.
Chatboksen på din website
Under Kanaler, slå Webchat til, vælg dens titel, farve og første linje, og indsæt linjen den vises i dine sideskodser:
<script src="https://pbx.example.com:8443/webchat.js" async></script>
Den tegner en chatknap i hjørnet af hver side; besøgende skriver (med deres navn, hvis de ønsker) og ser dine svar, som de kommer. Konversationen forbliver i deres browser, så den fortsætter, mens de bevæger sig mellem sider. Listen over dine sites under Kun på disse sites, så boksen kører ingen andre steder. Besøgende skal nå denne servers adresse fra internettet med et certifikat, som browsere stoler på (Let's Encrypt (kapitel 14)). Ti nye chats fra én adresse i ti minutter er det maksimum, BitVoice tager.
WhatsApp Business-numre på Metas Cloud API. I Metas udviklerside, lav en app med WhatsApp, tilføj dit nummer og lav en systembruger med en permanent adgangstoken. I Kanaler, slå WhatsApp til og indtast telefonnummer-ID og forretningskonto-ID (begge fra API-oplysninger), adgangstoken og appens app-hemmelighed, og gem derefter. I appens WhatsApp-konfiguration, indstil webhook: callback-adressen og verificeringstoken BitVoice viser, abonneret på *beskeder*.
WhatsApp lader dig svare frit i 24 timer efter kundens sidste besked; derefter accepterer den kun beskedsskabeloner godkendt i WhatsApp Manager. Svarboksen bliver så til en skabelonvælger: vælg en skabelon (den viser dine kontos skabeloner, med deres sprog og type), udfyld dens værdier ({{1}}, {{2}} ...), kontroller forhåndsvisningen, som er hvad kunden vil læse, og Send skabelon. Skabeloner, som indbakken ikke kan udfylde, vises gråt med årsagen: en med et billede, video eller dokumentoverskrift, en variabel i overskriften eller en knaps link, navngivne parametre eller en kodeknap; og dem, der endnu ikke er godkendt. Lav skabeloner i WhatsApp Manager; Meta gennemgår hver enkelt, normalt inden for minutter.
Facebook Messenger
Til en Facebook-side: i Meta-appen, tilføj Messenger, tilknyt siden og lav en sideadgangstoken. I Kanaler, indtast side-ID, sideadgangstoken og app-hemmelighed; og indstil derefter webhook (adressen og verificeringstoken vist), abonneret på *beskeder* og *messaging_postbacks*. Svar er tilladt i 24 timer efter personens sidste besked. Fra da til 7 dage tager Messenger svar skrevet af en person (sendt med Metas *human agent*-tag: appen kræver Metas Human Agent-tilladelse, anmodet i App-gennemgang); den automatiske velkomst vises aldrig så.
Hver webhook kontrolleres med app-hemmeligheden (Metas signatur) før BitVoice tror på den, og en besked, som Meta sender to gange, gemmes én gang. Billeder, lydnoter og andre vedhæftninger vises som hvad de er ("[billede]"); åbn dem i Metas egne apps.
Automatisk velkomst, når den er indstillet, svarer på den første besked i hver ny konversation med det samme.
Erhvervstekstning (SMS)
/textsSend og modtag tekstbeskeder fra dine forretningsnumre på Tekster. Tekster går gennem en tekstningsudbyder. Indbygget: TextMagic, Twilio, SignalWire, Telnyx, Bandwidth, Vonage, Plivo, Flowroute og VoIP.ms, plus Din egen webhook til enhver anden tjeneste eller en gateway af din egen. Enhver antal udbyderkonti kan bruges på samme tid: hvert nummer siger, hvilken udbyder der bærer det.
Opsætning
- I udbyderens portal, find kontos API-oplysninger. Skemaet beder om præcis det, som udbyderen kalder dem (Twilio: Account SID og auth-token; Telnyx: en API-nøgle; Bandwidth: API-bruger, adgangskode, konto-ID og messaging-applikations-ID; SignalWire: også dit rumadresse) og siger, hvor du finder dem.
- På Tekster, Tekstningsopsætning, tilføj udbyderen med dem og gem. BitVoice viser en adresse for modtagne tekster: indstil den i udbyderen som, hvor modtagne beskeder sendes (dens callback, webhook eller besked-URL). For VoIP.ms, tilføj
?from={FROM}&to={TO}&message={MESSAGE}&id={ID}til slutningen. Leveringskvitteringer sendt til samme adresse ignoreres. BitVoice skal være tilgængelig fra internettet der. - Tilføj hvert nummer, du tekstér fra (med landskoden), udbyderen, der bærer det, og udvidelserne for at fortælle ved e-mail, når en tekst kommer ind.
US 10DLC
Amerikanske operatører blokerer tekstbeskeder fra almindelige forretningsnumre, der ikke er registreret. Registrer dit brand og derefter en kampagne med din tekstudbyder; listen over tekstbeskeder sporer, hvor de er, og advarer, når dit eksempelbesked mangler de afmeldingsord, operatørerne forventer.
Samtaler
Hver samtale viser, hvem det er (fra Kontakter), ulæste tekstbeskeder og tråden. Indtast sender; tælleren viser, hvor mange tekstbeskeder en lang besked tager. Når nogen besvarer STOP, kan der ikke sendes flere beskeder til dem fra det nummer, før de besvarer START. Modtagne tekstbeskeder vises også som en meddelelse i BitVoice.
Overføringsbriefing
/settingsSå en opkaldende aldrig behøver at gentage sig selv: med Brief den, som opkaldet overføres til på (Indstillinger, AI), når et opkald overføres, skriver BitVoice en to-sætnings sammenfatning af opkaldet indtil videre (hvem der ringer, hvad de vil, noget der allerede er lovet) til den person, det går til. Den vises på deres browser-telefon med det ringende opkald, på Aktive opkald (kapitel 46) og som en tekst på deres skrivebords-telefons skærm (for telefoner, der viser SIP-besked)
Det fungerer på samme måde, når AI-receptionisten overdrager en opkaldende til en person: briefing kommer fra, hvad opkaldende fortalte assistenten.
Det kræver AI-tjenesten og en tale-til-tekst-model (Indstillinger, AI), og opkaldets lyd indtil videre (op til fem minutter) sendes til den tjeneste for at blive skrevet ud. En sammenfatning tager et par sekunder, så den kan vises lige efter, at telefonen starter med at ringe.
Kunder og indsigt
At vide, hvem der har ringet og hvordan det gik: de aktive opkald og historik, kundetidslinjen, CRM-systemer, optagelser og samtykke, kvalitet, omkostninger og opkalders rygte.
Live-opkald
/callsLive-opkald viser hvert opkald i gang, opdateret, som det sker: hvem ringede til hvem, hvor længe det har været i gang, dets codec og dets kvalitet.
Hvad administratorer kan gøre
| Handling | Hvad det gør |
|---|---|
| Afslut | afslutter opkaldet for begge sider |
| Åbn døren | for et opkald fra en dørstation |
| Pause optagelse | for et kortnummer: den pausede strækning er stille i optagelsen og markeret i historikken (Opkaldsoptagelse (kapitel 51)) |
| Lyt | hør opkaldet stille |
| Whisper | tale til agenten alene; opkalderseren hører ikke |
| Barge | deltage i opkaldet; alle hører dig |
For at lytte, viske eller barge, tryk på Overvåg, vælg telefonen at bruge under Fra telefon og tryk på Ring mig: din telefon ringer, og når du svarer, deltager du i opkaldet. Du kan skifte mellem at lytte, viske og barge, mens du er i det.
Hvad andre viser
- En opkalderskort, mens et eksternt opkald ringer (fra din CRM eller tidligere opkald; se CRM (kapitel 49)).
- Den briefing, der er skrevet for personen, som opkaldet blev overført til (Overføringsoverblik (kapitel 45)).
- Opkalderskortets dom: Verificeret, Delvist verificeret eller Uverificeret (Spam-beskyttelse (kapitel 56)).
- Med flere servere vises opkald på de andre servere også, kun læs: afslut eller lyt på serveren, der har opkaldet.
Når et opkald slutter, flyttes det til Opkaldshistorik (kapitel 47).
Opkaldshistorik
/historyHvert færdigt opkald: hvem ringede til hvem, hvornår, hvor længe og hvordan det sluttede. Sortér kolonnerne, afspil optagelser (en pause for kortnumre er markeret), og download listen som CSV. Hvordan længe optagelser gemmes, er indstillet i Indstillinger, Opkaldsoptagelse; en retlig hold (kapitel 73) gemmer dem længere.
Hvordan det blev ruteret
Under hver opkalds resultat, viser Hvordan det blev ruteret i plain tekst og i rækkefølge, hvad der bestemte, hvor opkaldet gik: den indgående rute, der tog det, om en skema var åben eller lukket og tidspunktet, en toggles side, hvad en ruterings-script valgte (eller at dens fallback tog opkaldet), tasterne trykket i en menu, hvem var væk, hvem havde ingen telefon forbundet, hvem ikke svarede, den udgående rute og trunker brugt (og en trunk, som sundhedsdommeren flyttede bag de andre), toll-svindel-vagts dom, og, for et optaget opkald, hvis parter er under forskellige samtykke-regler, hvilken regel der blev anvendt.
Kvalitet, lyd og kryptering
Kvalitets-kolonnen viser hver besvaret opkalds score (MOS, ud af 5) og to mærker, når de gælder:
- Ingen lyd fra en side: opkaldet forbandt, men intet kom nogensinde fra den telefon eller leverandør (opkald under 5 sekunder, faks, holdt opkald og pagning udelades). Se Opkaldskvalitet (kapitel 53) for, hvad du skal kontrollere.
- Ikke krypteret: BitVoice bad om kryptering (SRTP), og den side svarede uden det. Krypteret betyder, at lyden blev krypteret med hver side, der sendte noget. For at afvise ukrypterede opkald fra en leverandør i stedet, skal du aktivere Kræv kryptering på dens trunk.
Transkriptioner og søgning
Med AI aktiveret og Transkriber optagede opkald slået til (Indstillinger, AI), bliver hver optaget opkald skrevet ud, med en kort sammenfatning og dets handlingselementer: hvad nogen enedes om eller blev bedt om at gøre. Hver side af opkaldet skrives ud separat fra optagelsen, så transkriptionen viser, hvem sagde hvad, og hvornår. Transkriptionsknappen ved siden af en optagelse åbner den; administratorer kan også transkribe et enkelt opkald eller transkribe et igen.
Søg efter hvad der blev sagt finder opkald efter ord fra deres transkriptioner, sammenfatninger og handlingselementer. Kun optagede opkald bliver transkriberet. En transkription slettes med dens optagelse, og læsning eller søgning i transkriptioner bliver noteret i audit-loggen, ligesom afspilning af en optagelse.
Kundetidslinje
/timelineKundetidslinjen viser alt med ét telefonnummer over de sidste 12 måneder, nyeste først, så den, der tager opkaldet, kender hele historien.
Hvad det viser
| Element | Med |
|---|---|
| Opkald | hvem der tog dem, hvor lang tid og med en transkript, dens sammenfatning, optagelsen og transkriptet |
| Beskeder | deres sammenfatninger |
| Tekster | i begge retninger |
| Callbacks | anmodet om og om det er gjort |
| Noter | teamets egne noter |
Et nummer matcher uanset hvordan det er skrevet: +1 212 555 0100 og 2125550100 er det samme.
Åbning
Fra et kaldkort (Tidslinje), fra Kontakter, fra et indgående opkald i Opkaldshistorik, fra en tekstkonversation eller skriv et nummer øverst på Tidslinje (kapitel 48).
Noter
Administratore kan Tilføje en note til teamet: den vises på tidslinjen for alle, med hvem der skrev den og hvornår, og kan fjernes.
CRM: opkaldende-kort og opkaldslogning
/settingsTilslut en kundesystem i Indstillinger (kapitel 14), CRM. Det fungerer med ethvert system, der har en webadresse, uden kode skrevet til hvert produkt.
Opkaldende-kort
Mens et opkald fra udenfor ringer, viser Live-opkald et kort: hvem det er (fra din CRM, eller udvidelsens navn), hvor ofte de har ringet i 90 dage, eventuelle callbacks (kapitel 30), de venter på, og sammenfattningen af deres sidste transkriberede opkald. Browser-telefonen viser et kortere kort til personen, der besvarer: hvem det er, tidligere opkald og ventende callbacks, men ikke andre personers opkaldssammenfattelser.
Til navnet, indstil Adresseopslag: BitVoice spørger det (GET) med opkaldendes nummer i stedet for {number}, sender Adresseopslag-header med dets værdi (en vault-reference virker), og forventer JSON med navn, virksomhed, URL og noter; 404 betyder ukendt. Svar gemmes i fem minutter. Åbn i CRM-link placerer et link til opkaldende på kortet. Brug Find det til at prøve et nummer, før du gemmer.
Et CRMs eget svar
De fleste CRMs besvarer en søgning i deres egen form, normalt en liste over match, ikke BitVoices {"name": ...}. Åbn Svarfelter og angiv, hvor hver del er, som en punkteret sti: et navn træder ind i et objekt, og et nummer ind i en liste, så list.0.name er navnet på den første match. Link til kontakten kan være en sti til en link, som CRM'et giver, eller en webadresse med stier i klammer, f.eks. https://crm.example.com/#Contact/view/{list.0.id}. Et tomt felt læser BitVoices eget navn for det. En søgning, der ikke finder nogen, er det samme som 404: kortet siger, at opkalderen ikke er kendt. Prøv et nummer med Find det før du gemmer.
For eksempel, EspoCRM (testet mod et rigtigt EspoCRM): Opret en API-bruger (Administration, API-brugere, godkendelse ved API-nøgle) med en rolle, der må læse kontakter og konti, og angiv derefter:
- Adresseopslag:
https://crm.example.com/api/v1/Contact?select=name,accountName,description&maxSize=1&where%5B0%5D%5Btype%5D=equals&where%5B0%5D%5Battribute%5D=phoneNumber&where%5B0%5D%5Bvalue%5D={number} - Opslag header
X-Api-Key, dets værdi er API-brugerens nøgle - Svarfelter: navn
list.0.name, virksomhedlist.0.accountName, noterlist.0.description, linkhttps://crm.example.com/#Contact/view/{list.0.id}
EspoCRM gemmer numre i international form (+15405550117), som BitVoice sender dem. Andre CRMs fungerer på samme måde med deres egen søgeadresse og felt navne; tjek formen på deres svar i deres API-dokumentation eller med Find det, hvis besked navngiver, hvad den fandt.
Opkaldslogning
Angiv Opkaldslog-adresse og Signeringshemmelighed, og hvert opkald sendes derhen, når det afsluttes (begivenhed call.ended), igen med sin sammenfatning, handlinger og transskription, når det er transkriberet (call.summarized), og hver booket callback (callback.new). Hver POST medfører X-BitVoice-Event, X-BitVoice-Timestamp og X-BitVoice-Signature: sha256= efterfulgt af HMAC-SHA256, med hemmeligheden, af tidsstempel, et punktum og brødteksten. En mislykket levering prøves fire gange over cirka et minut; hvis den stadig mislykkes, siger Health det. Send en testbegivenhed kontrollerer adressen og hemmeligheden.
Kald indsigt for ledere
/qualityTil kontaktcentre: bevis for, hvordan opkald gik, til en leder at lytte til, aldrig en automatisk score.
I et opkalds Transkript, viser Hvordan det gik sig, målt fra optagelsens lyd alene: hvor meget hver side talte, hver sides længste stræk, hvor ofte hver side begyndte at tale over den anden, hvor længe begge talte på samme tid, og den stille (en lang pause er ofte en hold eller død luft).
Med Notér, hvordan hver transkriberet samtale gik aktiveret (Indstillinger, AI), læser AI'en også transkriptet og siger, hvordan opkaldspersonen syntes at være til at starte og slutte, og viser op til seks øjeblikke: Gik godt, Se på (tale over opkaldspersonen, en lang hold, et uklart svar), Ikke besvaret (et spørgsmål, opkaldspersonen stillede, som ikke fik noget svar) og Løftet (noget, nogen sagde, de ville gøre), hver med tid og ord, så du kan gå direkte til det. En administrator kan bede om det på ethvert transkriberet opkald med Se på dette opkald.
På Kaldkvalitet (kapitel 50) summerer Samtaler, efter hvem tog dem de transkriberede opkald for perioden pr. person: deres andel af snakken, deres længste stræk, hvor ofte de talte over kaldet, stille tid, opkald der endte med at kaldet blev sur, og de markerede øjeblikke. Brug det til at vælge opkald at lytte til, ikke til at rangere personer.
Coachingsnoter er dine egne ord om et opkald, på det øjeblik, de er om: under Hvordan det gik, skriv Øjeblik (1:05, eller lad det være tomt for starten) og Coachingsnote, og tryk Tilføj note. Noter er listet i rækkefølge af opkaldet med, hvem der skrev dem, og hvornår; administratorer skriver og fjerner dem, visere læser dem med transkriptet, og tilføjelse eller fjernelse af en note noteres i revisionsloggen. De følger med optagelsen, så dens retention og juridiske retentioner dækker dem også. Coachingsnoter på Kaldkvalitet tæller dem pr. person.
Opkaldsoptagelse og kreditkortbetalinger
Optagelse er indstillet i Indstillinger (kapitel 14), Optagelse af opkald: fra, hvert opkald eller kun opkald fra udvidelser, der er markeret Optag opkald. Optagelser afspilles fra Opkaldshistorik (kapitel 47), og med AI aktiveret skrives de ud og summeres.
Underretning af personer
Nogle steder kræver det, at alle på et opkald bliver underrettet om, at det optages: Meddelelse, Signal og regler efter region er i Optagelsesgodkendelse (kapitel 52).
Kortbetalinger (PCI DSS)
Kortnumre må ikke gemmes i optagelser. Før en opkaldende læser et op, trykker personen på udvidelsen *7; *8 genoptager. Pause optagelse på Aktive opkald (kapitel 46) gør det samme. Den pausede del er stille i optagelsen og er opført i opkaldshistorikken, så en revisor kan se, hvor og hvor længe.
Konferencerum
Et rum med Optag rummet aktiveret gemmes som én optagelse af hele rummet (Konferencerum (kapitel 34)).
Hvor længe ting gemmes
Indstillingerne angiver, hvor mange dage optagelser, opkaldshistorik og voicemail gemmes; ældre optagelser slettes inden for en time. Alt under en retlig befaling (kapitel 73) gemmes uanset alderen. Arkivet (kapitel 72) kan gemme kopier andre steder.
Administratore og visere kan afspille optagelser og læse transskriptioner; kun administratore kan transskribere et opkald eller transskribere det igen. Afspilning af en optagelse eller læsning af dens transskript noteres i overvågningsloggen.
Optagelses-samtykke
/settingsNogle steder lader et opkald blive optaget, når én person på det ved; andre kræver, at alle skal blive underrettet eller give samtykke. I Indstillinger, Opkaldsoptagelse, vælg, hvordan personer på et optaget opkald bliver underrettet:
- Ingen meddelelse.
- Meddelelse: da opkaldet besvares, hører begge sider meddelelsen (optag den på samme sted, f.eks. "Dette opkald bliver optaget til træning og kvalitet"), og optagelse starter kun efter, at den er afspillet. Indtil en er optaget, afspilles tre bip, og Sundhedsstatus siger det.
- Bip: en kort tone til begge sider hver 15. sekund, mens opkaldet bliver optaget.
Regler vælger efter det ydre nummer (kaldet på indgående opkald, det nummer, der er valgt på udgående opkald), længste match først: f.eks. numre, der starter med 1415 (California) Meddelelse, 49 (Tyskland) Aldrig optag, alt andet som ovenfor. En regels Ingen meddelelse optager uden en; Aldrig optag udelader disse opkald fra optagelse helt. Opkald mellem udvidelser følger den overordnede indstilling.
Dit eget nummer tæller også: reglerne sammenlignes med både det eksterne nummer og dit eget (det nummer, der bliver ringet ind på, samt dit eget ID på udgående opkald), og den mest beskyttende af dem vinder (Aldrig optag før Meddele før Signal før Ingen meddelelse). Så en afdeling på et sted, der kræver samtykke fra alle parter, meddeler, hvem de ringer til, uanset hvor de er. Når parterne falder under forskellige regler, siger opkaldets post i Opkaldshistorik (kapitel 47), hvilken regel der blev anvendt og hvorfor.
Optagelse kan også pauses under et opkald med pausekoden (kortbetalinger). Ingen af dette er juridisk råd: tjek lovene, hvor du og dine opkald er.
Opkaldskvalitet
/qualityHvordan opkaldene lød over de sidste dag, uge, måned eller 90 dage, fra lyden BitVoice selv modtog på hver side af hvert opkald. Telefoner er grupperet efter deres lokation (kapitel 12) (eller "ingen lokation"), og opkald fra udenfor efter udbyderens linje, de kom ind på.
Hvert sted viser sine opkald, dens gennemsnitlige score (MOS, ud af 5: over 4 er godt, under 3,6 lyder dårligt), andelen af lydpakker, der aldrig ankom, og jitter (urent forsinkelse). Under dette fortæller BitVoice, hvad der er galt i almindelige vendinger, f.eks. "Packettab på hovedkontorets netværk: 3,2% af lyden ankom aldrig, mest mellem 14:00 og 16:00", samt hvad der skal kontrolleres. Stangdiagrammet viser den tabte lyd efter klokkeslæt.
Diagnosen sammenligner de to halvdele af de samme opkald: lyden fra stedets telefoner og lyden fra udbyderen, som de samme opkald gik gennem. Når den anden halvdel ankom ren, er tabet på dette steds side, og det siger det; når begge halvdele mistede lyd, er stedet ikke alene skyld i det, og det peger på, hvad opkaldene deler, dette systems egen internetforbindelse. Hvis hvert sted mister lyd på samme tid, er årsagen ligeså, hvad de deler. Hvordan dette blev udarbejdet listar årsagerne, trin for trin (opkaldskvalitetsregelbogen, se Sikkerhed (kapitel 60), "Hvordan BitVoice beslutter"). Steder med færre end tre opkald bliver ikke vurderet. Opkaldskvalitet pr. opkald er også i Opkaldshistorik (kapitel 47) (kvalitetskolonnen) og, mens opkald er i live, på Liveopkald (kapitel 46).
Et opkald, der connectede, men fik ingen lyd overhovedet fra den ene side, tælles separat, under med ingen lyd, og placeres først: det er ikke dårlig lyd, men lyd, der aldrig ankom, næsten altid en firewall eller NAT-router, der lader SIP igennem og holder medieudgangen tilbage. Stedets råd siger, hvad der skal kontrolleres (for en udbyder, dens medieadresseområder).
Omkostninger og budgetter
/costsBitVoice priser hvert opkald ud fra, hvad din udbyder beregner, og viser månedens udgifter efter afdeling, person og trunk, med de dyreste opkald.
Priser
På Trunk (kapitel 7), åbn en trunk og dens Opkaldspriser. Hver pris dækker numre, der starter med nogle cifre, som nummeret sendes til udbyderen (kun cifre, så 44 for Storbritannien, 1900 for US-premiumrate); den længste match vinder, og en pris uden cifre dækker alle andre numre. Angiv prisen per minut, eventuel afgift per besvaret opkald, faktureringsinterval (60 sekunder for hele minutter, 6 eller 1 for finere) og eventuel minimum. Opkald ind, per minut er for gratisnumre, du betaler for at modtage. Hvad ville det koste kontrollerer et nummer, før nogen ringer det. Valutaen er sat på Omkostninger.
Et opkalds omkostning er fast, når det slutter, med priserne på tidspunktet; ændring af en pris ændrer ikke tidligere opkald. Omkostninger siger, hvor mange besvarede opkald ud havde ingen pris.
Afdelinger og budgetter
Giv udvidelser en Afdeling (i udvidelsen). På Omkostninger, tilføj et budget for hvert opkald eller for en afdeling: en advarsel vises i BitVoice, og sendes til budgettets adresse og advarslingsadressen, på 80% og igen på 100% af måneden.
Advarslen
Opkald ud koster mere end dette i en time udløser en advarsel, når udgående opkald overstiger denne mængde inden for en time. En pludselig række dyre opkald er det sædvanlige tegn på toll-svindel (en stjålet telefonadgangskode): kontroller Opkaldshistorik, derefter deaktiver udvidelsen eller trunk'en.
Opkalders rygte og mærkede opkald
/reputationTelefonselskaber kører spamfiltre, der kan mærke et virksomhedsnummer "Spam sandsynligt", eller blokke det, og derefter besvarer næsten ingen. Opkalders rygte overvåger hvert nummer, du ringer ud fra, fra dine egne opkald, og siger i klare ord, hvordan det går:
- Besvaret: andelen af opkald, der er besvaret, og hvad det var i den foregående periode. En nedgang på halvdelen eller under 20% er det sædvanlige tegn på en ny mærkning.
- Afbrudt med det samme: besvarede opkald, der sluttede inden for 10 sekunder.
- Afvist som spam: opkald, en carriers filter afviste (SIP 608) eller som personen mærkede som uønsket (607). Et enkelt 608 betyder, at nummeret er mærket.
- tungt brug: mere end cirka 150 opkald om dagen fra ét nummer er, hvad robocallere gør, og filtre bemærker.
Numre med færre end 20 opkald vises som for få til at dømme.
Dine udgående numre giver hvert nummer et navn (sendt som opkalders navn), en årsag til opkaldet og et logo (et https://-billede). På en trunk med Send branded caller ID aktiveret, sendes logo og årsag ud som rich call data (RFC 9796 Call-Info); operatører, der understøtter branded calling, viser dem på den modtagende telefon. De fleste telefoner viser navnet fra caller-name (CNAM)-databasen i stedet, som din udbyder indstiller: spørg dem. Overvåg sætter en advarsel på Health, når et overvåget nummer begynder at se ud til at være mærket.
Siden siger også, hvad man skal gøre, når et nummer er mærket.
Spam-beskyttelse og STIR/SHAKEN
/settingsI USA og Canada signerer udbyderen, som et opkald starter med, sin opkalders-ID (STIR/SHAKEN): A, når den kender opkaldende og måske bruger nummeret, B, når den kender opkaldende, men ikke nummeret, C, når den kun har videregivet opkaldet. Din udbyder fortæller enten BitVoice sin dom (verstat) eller sender den signede Identitets-header videre, som BitVoice derefter kontrollerer selv: signatur, at den er under en minut gammel og at den nævner numrene på dette opkald. Dommen vises som Verificeret, Delvist verificeret, Ikke verificeret eller Ikke verificeret på Aktive opkald og i Opkaldshistorik.
I Indstillinger, Spam-beskyttelse, vælge, hvad der sker, når en opkalders-ID mislykkes med verificering (ringe, ringe mærket eller afvise), når den ikke er verificeret overhovedet og når nummeret er tilbageholdt. Et mærket opkald ringer med Spam? (eller din egen mærkning) før opkaldendes navn. Blokerede numre afvises; en post, der slutter med * blokerer et nummerrum (+1900* er alle amerikanske premium-rate-numre). Altid tilladt numre afvises eller mærkes aldrig. I Opkaldshistorik tilføjer knappen Blokér ved siden af en opkaldende dem til listen; afviste opkald er listet som Blokeret.
Inden for en time efter et nødopkald fra en hvilken som helst extension, afvises intet opkald (blokerede ringer i stedet med mærke), for det kan være nødtjenesten, der ringer tilbage. Et 911-opkald (fra ESInet eller en CAMA-trunk) afvises aldrig eller forsinkes af skærmning.
Callers BitVoice does not know
A caller is known when the number is always allowed, in the contacts (kapitel 38), was called from here in the last year, or passed the robot test in the last 90 days. Numbers are matched however they are written (with or without the country code, 1, 0 or +). Under Callers BitVoice does not know, choose what happens to everyone else:
| Valg | Hvad ringeren får |
|---|---|
| Ringe som normalt | opkaldet ringer som ethvert andet (standard) |
| Robot-test først | BitVoice besvarer og siger "For at blive forbundet, tryk venligst" og en cifre, som ændrer sig hver gang. Den rigtige tast sørger for, at de kommer igennem til det sted, opkaldet var bestemt for; noget andet eller intet (to gange), og de kommer til Hvor ringere, der ikke består testen, kommer, eller hører farvel. Automatiserede opkald trykker ikke på den |
| Send et andet sted hen | intet ringer: de kommer direkte til det valgte sted, en voicemail-boks for eksempel |
Robot-testen behøver sine ord: i Lyde (kapitel 20), optag eller lav (med en tale-tjeneste) skærmnings-prompter og tal fra 1 til 9 på kalderens sprog. Indtil de er optaget, ringer opkaldene, som sædvanligt (en kalder kan ikke bestå en test, han ikke kan høre), og Sundheds-tjenesten siger det. En kalder, der består, tæller som kendt i 90 dage. Testen besvarer opkaldet, så kalderens udbyder starter med at beregne det fra det øjeblik, som for ethvert besvaret opkald. Opkaldshistorik viser hvert opkalds resultat (bestået, fejlet, sendt) og hvorfor-sporet siger, hvad der skete.
Et spam-database
BitVoice kan spørge en rygte-tjeneste om hver ukendt ringer før opkaldet ringer. Brug Nomorobo gennem Twilio udfylder Twilio Lookup med Nomorobo-spam-karakter (installer Nomorobo-tilføjelsen i din Twilio-konto, og indtast derefter dens konto-ID og godkendelsestoken); enhver anden tjeneste, der besvarer i JSON, virker også: give dens adresse med {e164} (+12125550142) eller {number} (som udbyderen sendte det), hvor dens dom er (Dom-felt, en punkteret sti), og når det betyder spam (en score på eller over Spam ved score, sand, eller teksten i Eller spam, når teksten er, som f.eks. BLOCK). Vælg, hvad der sker med en ringer, den kalder spam: ringe mærket, robot-testen eller afvist.
- Disse tjenester beregnere pr. opslag. Kendte ringere bliver aldrig opslået, og hvert svar gemmes i en dag (Gem svar).
- En langsom eller fejlbehæftet tjeneste holder aldrig et opkald tilbage: efter Vent højest (1,5 sekunder, medmindre du ændrer det) ringer opkaldet, som om svaret var "ikke spam".
- Test spørger den om et nummer nu (og bliver beregnet som ethvert andet opslag).
Bloker den sidste kalder
Lige efter et uønsket opkald, tast *32 (Funktionstaster (kapitel 32)) fra telefonen, det ringede: det sidste ydre nummer, der ringede til denne udvidelse i sidste døgn, kommer på blokeringslisten, og telefonen læser nummeret op. Et altid-tilladt nummer blokeres ikke, og telefonen siger det. Hver enkelt er i revisionsloggen, med hvem blokerede det.
Foreslået fra dine opkald
BitVoice læser de sidste 30 dages opkald fra udenfor for numre, der ringer igen og igen og afvises straks: tre opkald eller mere, næsten alle af dem overstået inden for 10 sekunder, eller to robot-tester mislykkedes, og aldrig en rigtig samtale (nogen taler 30 sekunder eller mere). Kendte numre udelades. Hver kommer med hvorfor; Blokér sætter det på blok-listen, og Ikke spam betyder, at det aldrig bliver foreslået igen. Intet bliver blokeret, før en person siger det.
For at kontrollere certifikater mod STI-myndighederne, indsæt deres certifikater under STI-certifikatmyndigheder; uden dem kontrollerer BitVoice, at opkaldet blev signeret med certifikatet, det nævner, men ikke hvem udstedte det certifikat.
Signering af dine egne opkald
De fleste udbydere signerer deres kunders opkald selv. Hvis din udbyder tillader dig at signere (eller du er en udbyder, der kører BitVoice), skru Signer opkalders-ID på trunken (Trunk (kapitel 7)) og give det dit STI-certifikat (fra en STI-certifikatmyndighed med din tjenesteudbyderkodetoken) og dets private nøgle (P-256). Hvert opkald ud gennem trunken bærer derefter en signeret Identitets-header (ES256, som SHAKEN kræver).
- Certifikatadresse (x5u) er, hvor den modtagende side henter certifikatet. Lad det være tomt, og BitVoice offentliggør det på
/stir/<trunk>.pempå sin offentlige adresse (Indstillinger), som derefter skal være tilgængelig fra internettet over HTTPS. - Attestation: automatisk giver A, når en udvidelse ringer med et af systemets numre (et nummer, der er routeret ind, eller en opkalders-ID, der er indstillet på trunken eller udvidelsen), B, når en udvidelse ringer med et andet nummer, og C for opkald, der er videregivet fra udenfor (et videresendt opkald). Eller fastgør det på A, B eller C.
- Opkaldshistorik markerer hvert signeret opkald med signeret A, B eller C. Et opkald stoppes aldrig, fordi det ikke kan signeres; årsagen er i loggen.
Kørsel af BitVoice
Sikkerhed og drift: administratorer og login, sikkerhed, ændringer og opdateringer, flere servere, hosted organisationer, codecs, Teams, import og automatisering samt værktøjer til fejlfinding.
Administratore
/usersAdministratore er personer, der logger ind på dette webinterface. Personale, der kun tager sig af deres egne opkald, bruger medarbejderportalen i stedet og har ikke brug for en konto her (Medarbejderportalen (kapitel 33)).
Roller
| Rolle | Kan |
|---|---|
| Administrator | ændre alt, afspille optagelser, se hver hemmelig feltets eksistens (aldrig dens værdi) |
| Viewer | se alt, ændre intet; hemmeligheder er skjulte |
En ændring af rolle eller adgangskode logger personen ud overalt på én gang.
To-trins login
Hver person aktiverer to-trins login for sig selv: Konfigurer viser en nøgle til en autentificeringsapp; indtastning af koden den viser aktiverer det. Herefter beder login om en kode samt adgangskode. Deaktivering kræver adgangskode.
Enkelt login
Med enkelt login (Indstillinger), logger personer ind med organisationens konto (Microsoft Entra, Google, Okta, enhver OpenID Connect-udbyder), og en konto oprettes til dem første gang. Se Enkelt login (kapitel 58).
API-token
Programmer (Terraform, scripts) bruger API-token i stedet for en adgangskode: oprettet på denne side, vist én gang, og tilbagekaldt når som helst. Hver token er en administrator eller en viewer. En token oprettet med Navngiver personen, der handler (til en CAD) kan sende X-BitVoice-On-Behalf-Of med personens navn, og optagelser navngiver derefter personen ved siden af tokenet (112-opkald (kapitel 77)).
Enkelt-logon
Enkelt-logon låser personer ind i BitVoice med deres arbejdskonto, gennem enhver OpenID Connect-udbyder: Microsoft Entra ID, Google, Okta, Keycloak og andre. At forlade organisationen fjerner derefter deres adgang her også.
Konfiguration
I Indstillinger (kapitel 14), Enkelt logon:
- Registrér en applikation hos udbyderen med den Omdirigeringsadresse, der vises her.
- Udfyld for en udbyder indstiller Udsteder for de almindelige; kopier Klient-ID og Klienthemmelighed fra udbyderen.
- Navngiv udbyderens Administratorgrupper og Viewergrupper. Grupperkrav er, hvor udbyderen placerer dem (
groupsmedmindre det er angivet). - Ændr eventuelt Knapttekst på logon-siden.
- Skift Brug enkelt logon til.
Sådan virker det
- Kontoen her oprettes ved den første logon; grupperne fastsætter rollen ved hver logon, så flytning af nogen mellem grupper hos udbyderen ændrer deres rolle her.
- Nogen, der ikke er i nogen af grupperne, afvises, og afvisningen er i revisionsloggen.
- Med Tillad også adgangskoder slået fra, fungerer adgangskoder kun på denne computer, så en udbyderfejl aldrig låser dig ude.
Virksomhedsadresse (Active Directory og LDAP)
BitVoice kan læse jeres virksomhedsadresse, Active Directory eller en anden LDAP-server (OpenLDAP, Samba, 389 Directory Server, FreeIPA): personer med et telefonnummer bliver omgående tilknyttet en telefon, directorygrupper udfylder ringgrupper, og personer logger ind på webgrænsefladen med deres directoryadgangskode. BitVoice læser kun i directory; den skriver aldrig til den.
Forbindelse
I Indstillinger (kapitel 14), Virksomhedsadresse:
- Vælg Active Directory eller OpenLDAP eller en anden LDAP-server: det indstiller, hvilke attributter der læses (sAMAccountName eller uid til logonnavn, displayName eller cn, mail, telephoneNumber). Ændr eventuelt nogen af dem i dens boks.
- Server:
ldaps://dc1.example.com(port 636), ellerldap://...med StartTLS slået til. Almindelig LDAP afvises, medmindre serveren er denne computer, fordi adgangskoder ellers ville krydse netværket uden kryptering. Når serverens certifikat kommer fra jeres egen certifikatudsteder, indsæt udstederen i Virksomhedscertifikatudsteder. - Læse-konto og Dens adgangskode: en konto, der har tilladelse til at læse personer og grupper (
reader@example.compå Active Directory). Adgangskoden kan være en nøglevaultreference (Indstillinger, Nøglevault). - Base DN: hvor personer og grupper er (
dc=example,dc=com). Hvilke personer indsnævrer dem med en LDAP-filter; på Active Directory udelades inaktive konti altid. - Test logger ind med læse-kontoen og læser alle, uden at ændre noget: det viser, hvor mange personer det fandt, hvor mange der har et nummer, og hvilken telefon hver ville få.
Udvidelser og ringgrupper
- Med Opret og opdater udvidelser aktiveret, får hver person med et nummer en udvidelse: nummerets sidste Cifre gemt (4 af
+1 212 555 0123er 0123; 0 gemmer alle cifre, som derefter skal være 2 til 8). Nye udvidelser får en SIP-adgangskode og en voicemail med en tilfældig PIN; personens navn og e-mail kommer fra direktoriet. - Direktoriet ejer en udvidelse, det har oprettet: nummeret, navnet og e-mailen følger direktoriet ved hver synkronisering. Alt andet (enheder, videreformidling, voicemail-indstillinger) tilhører jer.
- En udvidelse, I har oprettet manuelt, overtages aldrig, medmindre den har personens navn eller e-mail. To personer med samme nummer, et nummer, en anden persons udvidelse allerede har, eller et nummer af forkert længde, er listet under Se på, og intet ændres for dem.
- Med Deaktiver udvidelser for personer, der er gået aktiveret, deaktiveres en udvidelse, direktoriet har oprettet, når personen forlader, deaktiveres eller mister deres nummer, og genaktiveres, når de vender tilbage.
- Ringgrupper udfyldt fra direktoriets grupper: hver linje indsætter udvidelserne for en gruppes medlemmer i en ringgruppe (på Active Directory tælles indlejrede grupper). En gruppe med ingen, der har en udvidelse, efterlader ringgruppen, som den var.
- Direktoriet læses hver Læs det hver minutter (60 som standard), og med det samme med Synkroniser nu. Hver synkronisering, der ændrer noget, er en revision (kapitel 61) med navnet "Firmaets direktori-synkronisering", så den kan fortrydes; den seneste synkroniseringsrapport vises under knappen.
Logon
Med Personer logger ind her med deres directorynavn og adgangskode slået til, tager logonsiden directorynavne og adgangskoder samt BitVoices egne konti:
- Medlemmer af Administratorgrupper logger ind som administratorer, af Seergrupper som seere (uden seergrupper logger alle andre i directory). Grupper navngives efter deres navn (cn) eller DN; på Active Directory tælles indlejrede grupper. Nogen, der ikke er i nogen af grupperne, afvises.
- Kontoen her oprettes ved den første logon, og dens rolle følger grupperne ved hver logon. Den overtager aldrig en BitVoice-konto med samme navn.
- En tom adgangskode afvises altid (LDAP ville ellers tage den som en anonym logon), en deaktiveret konto kan ikke logge ind, og navne er undslået, før de når directory.
- To-trinslogon kan tilføjes disse konti ligesom til alle andre.
Sikkerhed
/securityEt telefonisystem på internettet bliver angrebet inden for timer: scannere prøver adgangskoder på hver SIP-port, og et brudt system kører op til premiumnumre. BitVoice er bygget til at stå imod det som standard, i lag.
Imod adgangskode-gætning
- Adresser, der fortsætter med at mislykkes med at logge ind, bliver blokeret i en periode (Indstillinger, Beskyttelse): som standard ti fejl i en minut blokerer adressen i en time. Blokerede adresser er listet på Sikkerhed (kapitel 60) og kan fjernes.
- Tillidsnetværk bliver aldrig blokeret: jeres kontor-netværk.
- SIP-adgangskoder genereres, mindst 12 tegn, én per udvidelse. En telefon, der logger ind som én udvidelse, kan aldrig registrere en anden.
- En scanner, der er blokeret, får intet svar, så den lærer intet.
Imod svindel
- Udvidelser kan kun ringe til eksterne numre, når det er tilladt.
- Præmie-numre afvisses, medmindre en rute navngiver dem.
- Svindel-vagten (nedenfor) bedømmer hver samtale uden for landet, før den er placeret.
- Omstillinger (kapitel 54) alarmerer på budgetter og på løbske udgifter: mange samtaler til ét land i en time.
- Hver udvidelse kan have maksimalt fire samtaler på én gang (Indstillinger, Beskyttelse).
Svindelvagten
Skift den til i Indstillinger, Svindelvagten. Hvert opkald uden for landet (efter +, 00 eller 011, og de steder, der deler +1 med Nordamerika, men er andre lande, såsom Jamaica, et klassisk svindeldestination) bedømmes derefter, før det placeres:
| Situation | Hvad den gør |
|---|---|
| Et opkald til et land, som denne udvidelse har ringt til i de sidste 90 dage | lader det gå igennem |
| Et første opkald til det land i 90 dage | lader det gå igennem og rapporterer det |
| Et første opkald derude uden for Arbejdstid, eller placeret fra udenfor (en dial-in, en videresendelse) | beder om PIN, der bedes om (med ingen valgt, afviser det) |
| Mere end Opkald uden for landet i 10 minutter fra en udvidelse | afviser det |
| Et første opkald uden for landet, mens nogen gætter adgangskoder (tre fejl i træk fra en adresse, eller en blokering, i den sidste time) | afviser det |
| Et nødnummer | lader det altid gå igennem |
Land, der altid er tilladt (ringekoder, såsom 44) og Undtagelser (en udvidelse undtaget, indtil en dag, for en rejse) fjerner "første samtale" og "uden for åbningstid"; de undskylder aldrig mange samtaler i en kort tid eller et angreb, fordi en stjålet adgangskode ser godkendt ud. Hvis samtale-historikken ikke kan læses, ved vagten ikke, om en samtale er en første, og noget, der ikke måles, er aldrig taget for sikkert: den beder om PIN-koden. Hver bedømmelse er listet på Sikkerhed (kapitel 60) med dens årsager og er på samtale-optegnelsen i Samtale-historik (kapitel 47).
Hvordan BitVoice beslutter
BitVoices dommere (svindel-vagten, trunk-helbredsdommen, samtale-kvalitets-diagnosen og 911-opkalds-placeringstjek) følger hver en regelbog: fakta, der måles, konklusioner, de støtter, undtagelser, der overregulerer en konklusion, og valg. Hvordan BitVoice beslutter, på Sikkerhed (kapitel 60), viser hver regelbog. Reglerne, dommerne holder:
- Hver svar kommer med dens årsager: hvad der holdt, hvad der blev argumenteret imod det og hvad overregulerede det.
- Noget, der ikke er målt, er ukendt, aldrig "nej". Når et ukendt kunne ændre svaret, tager dommeren dens forsigtige valg og siger, hvad det ikke kunne måle.
- "Kan ikke bestemme" er et svar: når reglerne efterlader en situation uafgjort, tager dommeren dens forsigtige valg og siger så.
- Hver regelbog er kontrolleret i hver kombination af dens fakta, før den bruges (når BitVoice starter, og ved dens tests): aldrig to valg på én gang, og hver regel er tilgængelig. Skærmen viser, hvor mange situationer hver blev kontrolleret i.
Kryptering
- TLS krypterer signalering (port 5061), så adgangskoder og numre ikke er læselige på netværket.
- SRTP krypterer opkaldslyden; browser-telefonen og apps bruger altid det.
- Webgrænsefladen har HTTPS på port 8443 med sit eget certifikat eller et, du installerer.
Hvem kan gøre hvad
- Administratore kan ændre alt; visere ser alt, men ændrer intet; personale bruger portalen kun til deres egne opkald.
- Slå to-trins-logon til for hver administrator (Administrators (kapitel 57)): en kode fra en autentifikationsapp.
- Enkeltlogon (kapitel 58) logger personer ind via jeres identitetsudbyder.
- Revisionsloggen optager hver administrativ handling og hvem der udførte den, og kan ikke redigeres.
Ændringer, sikkerhedskopier og import
/changesHver gemt ændring er en revision: nummereret, med hvem lavede den, hvornår og en enkelt linje sammenfatning. Intet i konfigurationen går nogensinde tabt.
Sammenlign og genskab
- Hvad ændredes viser forskellen mellem en revision og den foregående, felt for felt.
- Genskab viser, hvad genskabelse ville ændre, og spørger først. Genskabelse er selv en ny revision, så den kan også fortrydes.
Eksport og import
- Eksport downloader hele konfigurationen som en fil (hemmeligheder udeladt, medmindre du beder om dem).
- Import viser en fil's ændringer, før de anvendes.
- Import (kapitel 68) læser også FreePBX og Asterisk-konfigurationer, 3CX-brugerlister og CSV-eksport fra Cisco Unified CM, Avaya og Mitel.
- Arkiv (kapitel 72) kopierer sikkerhedskopier, optagelser og voicemail til Amazon S3 eller Azure.
Ændringer lavet på samme tid
To administratorer, der redigerer det samme på samme tid, kan ikke overskrive hinanden: den anden gemt ændring afvisses med en besked om at genindlæse, og intet går tabt.
Opdateringer
/updatesAt opdatere BitVoice er ét klik, og sikkert: det checker den nye version, installerer den ved siden af den gamle, og går tilbage på egen hånd, hvis den nye ikke forbliver aktiv.
Installation af opdatering
- Download den nye version og pak den ud. Ved siden af programmet er dens signatur fra BioDream:
bitvoice.sig, ellerbitvoice.exe.sigpå Windows. - På Opdateringer (kapitel 62), upload programmet og dets
.sig-fil. - Tryk Installér. Som standard venter BitVoice, til der ikke er opkald i gang; du kan også installere med det samme.
- BitVoice genstartes på den nye version. Med flere servere overføres opkald i gang til en anden server og fortsætter.
Tilbage
Den version, du forlod, gemmes: Gå tilbage returnerer til den på ét klik. En ny version, der ikke starter to gange, eller ikke forbliver aktiv i en minut, erstattes af den forrige på egen hånd.
Signaturer
Hver udgave fra v0.1.3 bærer BioDreams udgivelsesnøgle. En sådan bygning installerer kun programmer signeret med denne nøgle: et unsigned fil, en signeret af nogen anden, eller en ændret med en enkelt byte afvistes med signaturerne matcher ikke. Siden siger, om denne bygning checker (Kræves) eller ej.
| Du kører | Opdateringer accepterer |
|---|---|
| en udgave, v0.1.3 eller senere | kun programmer signeret af BioDream |
| v0.1.2 eller tidligere, eller en bygning af din egen | ethvert program: med ingen nøgle, kan en .sig-fil ikke checkes og ignoreres |
Flere servere som ét telefonisystem
/serversTo eller flere BitVoice-servere, der deler en PostgreSQL-database, fungerer som ét telefonisystem:
- Et opkald når en telefon uanset hvilken server den er registreret hos: ringegrupper, køer, overførsler til en udvidelse og opkald fra udbyderlinjer ringer alle telefoner på hver server.
- Indstillinger, der ændres på en server, gælder på alle inden for fem sekunder; brugere, kontakter, opkaldshistorik, optagelser, transskriptioner og tekster deles.
- Beskæftigelseslamper (BLF) viser telefoner på hver server, der ringer og er beskæftiget; parkering-pladser deles, så et opkald, der er parkeret på en server, kan hentes fra en telefon på en anden; højttalere når telefoner på hver server; tekster når skriveborde, uanset hvor de er registreret.
- En køagent på et opkald på en server tælles som beskæftiget på de andre, og en udbyderlines kanalbegrænsning tæller opkald på hver server.
- Aktive opkald på hver server viser også opkaldene på de andre (kun læs: afslut eller lyt med på serveren, der har opkaldet).
- Opkaldsrekorden skrives kun én gang, af serveren, der har opkaldsstarteren, og et opkald optages der også.
Konfiguration
- Flyt den første servers data til PostgreSQL: Indstillinger, Database.
- Start hver anden server med samme database:
bitvoice -database postgres://…(eller miljøvariablen BITVOICE_DATABASE). Den slutter sig til med det samme; Servere viser den. - På Servere, kontroller hvor hver server nås (dens adresse og SIP-port på det netværk, serverne deler), og giv hver en navn. Servere, der hver især nås fra internettet på en adresse (skyservere med offentlige IP'er, ingen fælles adresse), får Dens egen offentlige adresse også: udbydere og telefoner udenfor fortælles den, så når en server overtager et opkald, følger udbyderens lyd med. Lad det stå tomt, en server bruger den offentlige adresse i Indstillinger.
- Fortæl telefonerne, hvordan de finder serverne (nedenfor).
- Udbyderlinjer (nedenfor).
Hvordan telefoner finder serverne. Telefoner, som BitVoice konfigurerer (Yealink, Polycom, Grandstream), gives en anden kørende server som deres reserve af sig selv. For de andre, Snom og telefoner, der konfigureres manuelt, brug en af disse på Servere:
- Et DNS-navn til hver server: et navn som pbx.example.com med SRV-poster (_sip._udp, _sip._tcp, _sips._tcp), der nævner hver server. Telefoner, som BitVoice konfigurerer, gives navnet, og Servere kontrollerer posterne mod de kørende servere, viser, hvad der mangler, og giver posterne til at oprette, klar til at kopiere.
- En fælles adresse: en ubrugt adresse på servernes netværk, som 192.168.1.50/24. En kørende server holder den på et tidspunkt og fortæller netværket med det samme (gratuitous ARP); hvis den stopper, tager den næste server adressen inden for sekunder, fortsætter dens opkald og besvarer dens telefoner på samme adresse, uden at de skal registrere sig igen. Det kræver Linux og NET_ADMIN- og NET_RAW-rettighederne (i en container:
--cap-add NET_ADMIN --cap-add NET_RAW), og serverne på ét netværk. Genstart hver server efter konfiguration.
Udbyderlinjer. I hver trunk, siger Deles mellem servere, hvordan:
- Hver server bruger den: hver server registrerer sig og foretager sine egne opkald. Til udbydere, der tillader flere registreringer på én konto, eller ingen.
- En server ad gangen: en server registrerer sig og håndterer linjen; de andre viser den som Reserve, holdt af den server og sender deres opkald ud gennem den. Hvis den stopper, registrerer den næste server sig inden for sekunder. Til udbydere, der tillader én registrering per konto.
Når en server stopper
- Opkald fortsætter. Hver server holder en note om sine opkald i databasen; når en stopper, tager en kørende server over hvert opkald inden for sekunder, flytter lyden til sig selv og fortæller begge parter (en re-INVITE). Der er et gap på få sekunder i lyden. En planlagt stop (en opgradering, en genstart) overdrager opkald med det samme, uden gap.
- Et opkald, hvis telefon er registreret hos den server, der overtager, fortsætter der uden at forstyrre den telefon: kun den anden part flyttes.
- Dens telefoner fortsætter gennem deres reserve-server, DNS-navnet eller den fælles adresse.
- En server, der kun genstarter (en opgradering, en genstart), kender stadig, hvor dens egne telefoner er registreret: den holder dem i sin data-mappe (
registrations.json), så opkald når dem, før de registrerer sig igen. - Health og Servere viser den som stoppet; når den kommer tilbage, tager den intet tilbage fra den server, der overtog.
Mellem servere. Serverne når hinanden på deres SIP-port over TCP eller TLS, når de har et certifikat (hver accepterer kun det certifikat, den anden har offentliggjort, og lyden mellem dem er derefter krypteret med SRTP), og sender lyd til hinandens medieporte (UDP, intervallet i Indstillinger). Opkald mellem servere er signeret med en hemmelighed, de deler i databasen, og kun accepteret fra en kørende medlem på dens egen adresse. En brandmur mellem dem skal lade disse porte gå igennem.
Prøv det først: laboratoriet. BitVoice kommer med et laboratorium, der kører to servere, deres database og testtelefoner på én computer med Docker, hver på en adresse på egen hånd: deploy/lab/run.sh up bygger og starter det og angiver den fælles adresse; run.sh call ringer mellem telefoner på forskellige servere; run.sh failover slår serveren, der bærer et opkald gennem den fælles adresse, ihjel og kontrollerer, om opkaldet fortsætter (lyden kommer tilbage efter cirka fem sekunder); run.sh impaired ringer fra en telefon på et dårligt link (forsinkelse, jitter og 5% tab) og kontrollerer opkaldskvaliteten, BitVoice rapporterer; run.sh down fjerner det. Servernes sider er på https://127.0.0.1:18501 og :18502 (bruger admin).
Hvor dataene gemmes (SQLite eller PostgreSQL)
/settingsBitVoice gemmer sine indstillinger og deres gemte versioner, brugere, kontakter, opkaldsrekorder, revisionslog, tekster, noter og transkriptioner i en database. Optagelser og voicemail bliver som lydfiler i datafoldere.
Denne servers egen fil (SQLite, standard): en enkelt fil, bitvoice.db i datafoldere, med intet at installere. Sikkerhedskopier datafoldere, og du har alt.
PostgreSQL: til flere BitVoice-servere, der deler én sæt data, eller til rapporter i værktøjer som Power BI, Grafana eller Metabase. I Indstillinger, Database, Flyt dataene til PostgreSQL: lav en tom database og en bruger, der ejer den, indtast dens adresse (postgres://bruger:adgangskode@host:5432/database), tryk Test, derefter Kopier dataene og genstart på PostgreSQL. Alt kopieres på én gang (alt eller intet) og BitVoice genstartes på det; den gamle fil bliver, hvor den var. Flytning tilbage til serverens egen fil virker på samme måde. Flytninger afvises, mens opkald er i gang.
Servere, der deler en PostgreSQL-database, ser hinandens indstillingsændringer inden for fem sekunder. Hver af dem besvarer stadig sine egne telefoner og opkald; for at en anden server skal overtage en anden servers telefoner, skal telefonerne have begge adresser (eller én adresse, der flyttes).
Databasen kan også navngives, når BitVoice starter, med -database postgres://… eller miljøvariablen BITVOICE_DATABASE; den ændres derefter der, ikke i Indstillinger.
Ældre installationer: på den første start af denne version, kopierer BitVoice sine gamle JSON-filer til databasen og flytter dem til pre-database i datafoldere.
Værter andre organisationer
/tenantsEn BitVoice kan hoste flere organisationer. Hver organisation er sin egen telefoncentral: dens egne udvidelser, numre, trunker, ruter, administratorer, voicemail, optagelser og opkaldshistorik. Ingen organisation kan se en andens. De deler kun denne servers SIP-port, IAX2-port og medieporter.
Når skal det bruges
- En udbyder eller et IT-selskab, der kører telefoncentraler for mange små kunder på én server.
- En gruppe kontorer eller klinikker, der ønsker separate systemer, administreret separat, på delt hardware.
- Flere besvarelser, der deler ét system, hver med deres egne call-takere og optagelser.
Hovedsystemet er også en organisation: den, som denne server blev konfigureret til. Dets administratorer administrerer de andre.
Tilføjelse af en organisation
- Åbn Organisationer (kapitel 65) og tryk Tilføj organisation.
- Giv dens navn og et kort navn (små bogstaver, cifre og bindestreger). Det korte navn er en del af dets web-adresse,
/t/acme/, og af dets telefoners log-in,acme.100. Det kan ikke ændres senere. - Valgfrit giv dens eget domæne, såsom
pbx.acme.example, der peger på denne server. Telefoner registrerer sig til det domæne, og dets administratorer åbner det i en browser. - Indstil dens første administrator: et brugernavn og en adgangskode på mindst 12 tegn, og dets land.
- Valgfrit indstil begrænsninger.
Organisationen starter med det samme med et tomt telefon-system, klar til at blive konfigureret af dens administrator, som beskrevet i Kom i gang (kapitel 1).
Hvordan opkald finder den rigtige organisation
| En anmodning | går til |
|---|---|
fra en telefon, der registrerer sig til pbx.acme.example | organisationen med det domæne |
fra en telefon, der logger ind som acme.100 | Acme, udvidelse 100 |
| fra en udbyder, til et nummer | organisationen, hvis trunk det kommer fra, og hvis indgående rute har det nummer |
| alt andet | hovedsystemet |
Så to organisationer kan begge have udvidelse 100, og flere kan dele én udbyderkonto med forskellige numre.
Hvor dens data er
På SQLite har hver organisation sin egen mappe under tenants/ i data-mappen, med sin egen databasefil. På PostgreSQL har hver sin egen skema i samme database (tenant_acme). Sikkerhedskopier, arkiver og eksport er pr. organisation.
Begrænsninger
| Begrænsning | Hvad sker der ved den |
|---|---|
| Udvidelser | tilføjelse af én mere afvises med en besked |
| Samtidige opkald | nye opkald afvises (503) indtil én afsluttes |
| Lagring | nye optagelser og voicemail ikke gemmes |
| AI-anmodninger om dagen | transkriptioner, sammenfattelser og AI-receptionisten stopper indtil midnat UTC |
0 er ingen begrænsning. Nødopkald afvises aldrig: en organisation ved sin opkaldsbegrænsning eller suspenderet kan stadig ringe 911 og blive ringet op.
Åbne en organisation
Åbn logger dig ind til dens webinterface som udbyderen, uden dens egen konto; det vises i dens overvågningslog som udbyderen. Dens administratorer logger ind på dens egen adresse med deres egne konti. Hver organisation har sin egen login-cookie, så at være logget ind til én af dem logger aldrig nogen ind til en anden.
Organisationer ser aldrig denne servers egne skærme: opdateringer, database, andre servere, certifikat, SIP-sporing (der viser alle organisationers meddelelser), opkaldsgenerator eller denne liste.
Suspension og fjernelse
Suspenderet stopper log-in og hver samtale, undtagen nødsamtaler; intet slettes. Fjern stopper organisationen og flytter dens mappe til side (tenants/.removed-<name>-<time>), så en fejl kan rettes manuelt.
Codec og lyd
En codec er, hvordan lyd omdannes til data i et opkald. Telefoner, browsere og operatører understøtter hver især nogle; BitVoice konverterer mellem enhver to af dens codec, når to parter afviger, så alle kan tale med alle. Når begge bruger samme codec, går lyden ubeskadet igennem.
Codec
| Codec | Lyd | Båndbredde | Bruges af |
|---|---|---|---|
| G.722 | HD (bredbånd) | 64 kbit/s | de fleste skrivebordstelefone: det bedste valg mellem dem |
| G.711 µ-lov | telefon | 64 kbit/s | Nordamerika og Japan; hver operatør |
| G.711 A-lov | telefon | 64 kbit/s | resten af verden |
| Opus | HD, kan klare tab | 24 kbit/s | browsere og mobilapps |
| G.729 | telefon, en smule grovere | 8 kbit/s | tynde forbindelser, nogle operatører |
| G.726 (40 kbit/s) | telefon; transporterer modemtoner bedst af G.726-hastighederne | 40 kbit/s | gateways, nogle DECT-systemer |
| G.726 (32 kbit/s) | nær telefon | 32 kbit/s | DECT-baser, ældre gateways |
| G.726 (24 kbit/s) | mellem 32 og 16 | 24 kbit/s | nogle DECT-systemer |
| G.726 (16 kbit/s) | ru | 16 kbit/s | meget tynde forbindelser |
| AMR-WB (G.722.2) | HD | 6,6 til 23,85 kbit/s | mobilnetværks HD-lyd, VoLTE-interconnects |
| AMR | telefon, mobil | 4,75 til 12,2 kbit/s | mobilnetværk, nogle operatører og gateways |
| iLBC | telefon, kan klare tab | 13,3 eller 15,2 kbit/s | ældre softphones og apps |
| Speex | telefon | 15 kbit/s (2,15 til 24,6) | ældre softphones, forbindelser til andre Asterisk-systemer |
| GSM | ruere | 13 kbit/s | ældre softphones og gateways |
| G.723.1 | ru; kun konverteret med ffmpeg | 5,3 eller 6,3 kbit/s | meget gamle videotelefoner og gateways |
| G.722.1 (Siren 7) | bredbånd, transporteret ubeskadet | 24 eller 32 kbit/s | Polycom-telefoner, videotelefoner og konference-telefoner |
| G.722.1C (Siren 14) | super-bredbånd, transporteret ubeskadet | 24 til 48 kbit/s | konference-telefoner, rum-systemer |
| G.719 | fuld bånd, transporteret ubeskadet | 32 til 128 kbit/s | telepræsence-rum-systemer |
| Codec2 | meget lav båndbredde, transporteret ubeskadet | 0,7 til 3,2 kbit/s | radiolinker, amatør-radiogateways |
Indstillingerne viser codec, som telefoner kan bruge, bedst først; hver trunk kan have sin egen liste. Analog adapterports bruger altid G.711, som faks, modems og alarmpaneler har brug for.
G.722.1, G.722.1C, G.719 og Codec2 transporteres ubeskadet mellem to parter, der begge bruger dem, med deres bitrate eller tilstand bevaret i tilbuddet (BitVoice konverterer dem ikke, så et opkald mellem en af disse og en telefon uden det bruger en anden codec, som begge har). Placer dem i en liste, oven over G.711, hvor rum-systemer eller konference-telefoner skal bevare deres lydkvalitet, når de ringer til hinanden. Listene navngiver G.722.1 ved 32 kHz G7221C, selvom SDP kalder begge G7221.
G.723.1 transporteres ubeskadet mellem to parter, der begge bruger det. For at lade en G.723.1-enhed tale med noget andet, skal du aktivere Konverter G.723.1 med ffmpeg i Indstillinger og installere ffmpeg (apt install ffmpeg, brew install ffmpeg): BitVoice kører derefter ffmpeg som et separat program for hver retning, der har brug for konvertering (høres ved hver af hastighederne, sendes ved 6,3 kbit/s, den hastighed, som ffmpeg-encoderen laver), omkring 60 ms senere end andre codec, og stopper det få sekunder efter opkaldet. BitVoice har ingen G.723.1-kode med: ITU's referencekode har ingen licens, der tillader inklusion, og ffmpeg installeres og køres på egen hånd.
Hvad konvertering koster
Konvertering tager procesortid, kun på opkald, hvor de to sider afviger. Pr. opkald, ca. 0,3 ms af en kerne hver 20 ms for Opus og 0,12 ms for G.729 (nogen 60 og 170 konverterede opkald pr. kerne); G.726 og GSM koster mindre end G.729; G.711 og G.722 næsten intet. G.729 sendes uden Annex B (ingen stille rammer).
Lydrensning
Lydrensning (Indstillinger) dæmper konstant baggrundsstøj og jævner niveauer, til voicemail og, hvis du ønsker det, under opkald.
Microsoft Teams (Direct Routing)
/trunksBitVoice kan være session border controller (SBC) for en Microsoft Teams-lejer, så Teams-brugere ringer BitVoice-udvidelser og jeres telefonlinjer, og BitVoice ringer Teams-brugere.
Hvad du behøver: et offentligt navn for denne server i et domæne, jeres Microsoft 365-lejer har verificeret (sbc.example.com), port 5061 åben begge veje til Microsofts netværk 52.112.0.0/14 og 52.120.0.0/14, og et certifikat til dette navn fra en offentlig myndighed. Teams-brugere behøver en Phone System-licens.
Trin
- Indstillinger, Certifikat: Installer certifikatet og dens private nøgle (PEM). Det bruges med det samme, til denne grænseflade og til SIP over TLS, og BitVoice præsenterer det for Microsoft.
- Trunk, Tilføj, start fra Microsoft Teams: Indtast serverens offentlige navn. Skuffen siger, om certifikatet dækker det.
- Kopier PowerShell-koden, som skuffen viser, og køre den som en Teams-administrator: Den tilføjer SBC (New-CsOnlinePSTNGateway), en stemmerute og -politik, og en dialplanregel, så korte extensionsnumre når BitVoice, som de er taste. Derefter giver hver Teams-bruger politikken og deres nummer.
- For at ringe til Teams-brugere fra BitVoice, tilføj en udgående rute for deres numre gennem Teams-trunk. Teams finder kun brugere ved numre med + og landskoden: Hvis personer ringer dem uden, skal + og landskoden indsættes i ruten Foranstil (opkaldets hvorfor-spor siger det, når et går ud uden).
Når en Teams-bruger overfører et opkald, beder Microsoft BitVoice om at placere det (en REFER, der navngiver sin egen proxy, med nummeret eller Teams-brugerens ID): BitVoice ringer præcis, hvad Microsoft navngav, med den Referred-By, som Microsoft gav, så en overføring til en anden Teams-bruger fungerer lige så godt som en til et telefonnummer. BitVoice sender aldrig en Replaces-header til Teams, som Microsoft afviser.
BitVoice sender Microsoft OPTIONS hvert minut med SBC-navnet i Kontakt, som Microsoft kræver, og forsøger sip, sip2 og sip3.pstnhub.microsoft.com i rækkefølge. Medie er altid krypteret (SRTP). Health advarer, når certifikatet ikke dækker navnet, er selvsigneret eller udløber snart, og når Microsoft stopper med at svare.
Dette følger Microsofts offentliggjorte SBC-krav og er testet mod en simuleret Microsoft-proxy; BitVoice er ikke på Microsofts liste over certificerede SBC'er.
Importér
/importBringér extensions, ringgrupper, køer og trunker over fra FreePBX, Asterisk eller 3CX; og personer, jagt og ringgrupper, SIP-trunker, indgående numre og dialmønstre fra Cisco, Avaya og Mitel. Upload de eksporterede filer, flere ad gangen (en .zip eller .tar af dem virker også); BitVoice viser nøjagtigt, hvad der vil ændre sig, før noget bliver anvendt, og importen bliver en revision, du kan fortryde på Ændringer (kapitel 61).
Flytning fra FreePBX
Den bedste fil er en FreePBX-sikkerhedskopi: den indeholder alt, inklusive SIP-adgangskoder.
- I FreePBX: Admin → Backup & Restore → Tilføj Backup. Afkryds mindst Core, Ringgrupper, Køer og Voicemail (alle moduler er i orden), gem, og Kør.
- Download sikkerhedskopien fra dens række (filen er navngivet som
20261001-100000-1790000000-17.0.19-1234567.tar.gz). - Installer BitVoice på den nye server og afslut konfigurationen med en enkelt extension, som FreePBX ikke bruger (såsom 199), og ingen telefonlinje: importen bringer linjerne.
- På Importér (kapitel 68), slip .tar.gz, som den er. Læs forhåndsvisningen: advarslerne listar alt, der ikke kan overføres.
- Vælg Tilføj. Det er en revision på Ændringer (kapitel 61): fortryd det der, hvis noget ser forkert ud, og importér igen.
- Flyt telefonerne: pege hver af dem mod BitVoice (eller konfigurere dem fra Telefoner (kapitel 4)), med samme extensionsnummer og SIP-adgangskode, de havde.
- Test opkald ind og ud, og flyt derefter carrierens registrering (eller nummervisningen) sidst.
Prøvet på et rigtigt system: en FreePBX 17.0.33 (den officielle Debian 12-installation) med fire extensioner og voicemail, en PJSIP-trunk, der registrerer, to udgående ruter (en med et dialpræfiks), en ringgruppe, en kø med straffe og tre DIDs, sikkerhedskopieret af Backup & Restore med alle moduler afkrydset. Sikkerhedskopien er 70 MB, næsten alt af det er lydfiler og opkaldshistorik: BitVoice læser det, som det kommer, og gemmer kun konfigurationen, så en sikkerhedskopi på op til 512 MB kan uploades. Alt ovenfor kom over: adgangskoderne, voicemail-PIN'erne og e-mail, trunkens registrering og codec, ruterne med deres præfikser, ringgruppens voicemail, når den ikke blev besvaret, køens straffe og DIDs til gruppen, køen og extensionen.
Hvad kommer over:
- Extensioner: nummer, navn, udgående opkalds-ID, ringetid og SIP-adgangskode (BitVoice opretter en ny, hvis FreePBX's er kortere end 12 tegn: genindtast den i telefonen). Voicemail med dens PIN og e-mail-adresse (og om beskeder sendes vedhæftet).
- Trunker: PJSIP- og chan_sip-carrierkonti: server, port, brugernavn, adgangskode, registrering, fra-domæne, codec, opkalds-ID, kanalbegrænsning. Slukkede trunker bliver slukkede. DAHDI-trunker bliver Telefoni-korttrunker.
- Udgående ruter, i FreePBX's rækkefølge: hver mønstrets præfiks bliver cifre, der droppes, dens præfiks cifre tilføjes. En rute, hvis mønstre dropper eller tilføjer forskellige cifre, bliver en enkelt BitVoice-rute for hver.
- Ringgrupper: medlemmer, ringetid, ring-al eller en-efter-en (jagt, hukommelsejagt, først tilgængelig), og hvor ubesvarede opkald går.
- Køer: medlemmer med deres straffe, strategi (ring-al, mindst-recent, færrest-opkald, round-robin, lineær, tilfældig), ringetid, afslutningstid og længste ventetid.
- Indgående ruter: hver DID til dens extension, ringgruppe, kø, voicemail-boks eller afslutning.
Hvad ikke, og siges i forhåndsvisningen: IVR'er, tidsbetingelser, meddelelser, følg-mig, brugerdefinerede trunker og kontekster, opkalds-ID-matching på ruter, og eksterne numre i ringgrupper. Byg dem på Menuer (kapitel 21), Schedules (kapitel 26) og extensionens Følg-mig. Ældre sikkerhedskopier (FreePBX 13 og før) og en ren mysqldump asterisk af FreePBX-databasen læses på samme måde.
Andre systemer
Hvor hver eksport er:
- FreePBX (kun udvidelser): Admin → Bulk Handler → Eksport → Udvidelser (CSV).
- Asterisk: pjsip.conf eller sip.conf.
- 3CX: Brugere → Eksport (CSV).
- Cisco Unified CM: Bulk Administration → Telefoner → Eksport Telefoner, alle detaljer; eller Brugere → Eksport Brugere. Telefonernes første linje bliver udvidelsen, med linjens alertnavn eller mærke som navn.
- Avaya IP Office: Manager → Fil → Import/Eksport → Eksport, Brugere.
- Avaya Communication Manager:
list stationgemt som CSV; virtuelle stationer og VDN'er udelades. - Mitel MiVoice Business: System Data Management → Bruger- og enheds konfiguration → Eksport.
Grupper og ruter. Upload dem med personfilen, så hver gruppes medlemmer kan findes ved nummer eller navn:
- Cisco Unified CM: Bulk Administration → Import/Eksport → Eksport, med Line Group, Hunt List, Hunt Pilot, SIP Trunk og Route Pattern markeret; upload .tar-filen som den kommer. Hver hunt pilot bliver en ringgruppe med medlemmerne af dens hunt liste's line grupper, Top Down og Circular som én efter én, Broadcast som alle på én gang, RNA-reversion-tidsgrænsen som ringetid. Route patterns bliver udgående ruter:
9.[2-9]XXXXXXmed PreDot er mønster9[2-9]XXXXXXog dropper 9;!bliver et punktum til sidst. Mønstre, der bruger@(det nationale plan), er listet til håndskrivning. - Avaya IP Office: Eksportér Hunt Group samt Brugere (begge er CSV uden header-række). Gruppe tilstand er alle på én gang; Hunt, Rotary og Longest Waiting ringer én efter én.
- Avaya Communication Manager:
list hunt-groupgemt som CSV, med medlemmerne i en Medlemmer-kolonne eller en separat medlemsfil. - Mitel MiVoice Business: Ring Grupper og Ring Gruppe Tildeling (Cascade er én efter én, Ring All alle på én gang), og Hunt Grupper.
Trunk fra disse eksporter kommer ind slukket og uden adgangskoder, da eksporten ikke medfører dem. Ruter går ud på den importeret trunk med samme navn; en rute, hvis trunk ikke er her, er udeladt og nævnt. Roterende og længst ledig ringning er tættere på en kø end en ringgruppe: forhåndsvisningen siger det, så du kan gøre det til en.
Disse eksporter (alle undtagen en FreePBX-sikkerhedskopi) indeholder ingen SIP-adgangskoder, så hver udvidelse får en ny; voicemail-PIN'er, navne og e-mail-adresser kommer over, hvis eksporten har dem. Cisco-, Avaya H.323/DCP- og Mitel-telefoner kører deres egen software og kan ikke konfigureres af BitVoice: importen siger, hvor mange der blev nævnt. Cisco-telefoner kan genprogrammeres med Cisco's multiplatform (SIP)-firmware; Avaya J100- og Mitel 6800/6900-telefoner kan registrere sig hos BitVoice manuelt i SIP-tilstand.
Konfiguration som kode
Alt, hvad skærmene gør, går gennem BitVoices REST-API, så hvad som helst kan skrives som script, gemmes i Git eller administreres med Terraform. API'et er beskrevet for værktøjer på /api/openapi.json (/api/openapi.json).
API-token
Oprettet på Administratore (kapitel 57): en pr. program, kun læs eller i stand til at ændre alt. Send det som Authorization: Bearer bv_.... Det vises én gang; tilbagekald, når det ikke længere er nødvendigt. En tokens ændringer vises i Ændringer og revisionsloggen under dets navn.
curl -H "Authorization: Bearer bv_..." https://pbx.example.com/api/extensions
Terraform eller OpenTofu
Repositorys deploy/terraform viser udvidelser, ringgrupper og ruter administreret med den generiske REST-leverandør: plan viser, hvad der ville ændre, anvend gør ændringen. Leverandøren checker BitVoices certifikat; mens BitVoice stadig bruger sit eget selvsignerede certifikat, enten få et fra Let's Encrypt (Indstillinger, Certifikater) eller angiv bitvoice_insecure = true på et netværk, du stoler på (på Linux, SSL_CERT_FILE pegende på BitVoices certifikat virker også). Ressourcer matchas af den id, BitVoice giver dem, så en anden plan viser ingen ændringer, før filen eller skærmene ændrer noget.
Konfiguration fra Git
I Indstillinger (kapitel 14), Konfiguration fra Git, læser BitVoice konfigurationen fra en fil i et repository hver få minutter og enten viser, hvad der afviger, eller gør ændringerne. Start filen med Eksportér til Git, som udelader adgangskoder; BitVoice beholder sine egne, så hemmeligheder kommer aldrig ind i repository.
Asterisk-kompatibilitet (AMI, ARI og AGI)
Værktøjer skrevet til Asterisk kan styre BitVoice: CRM, wallboards, klik-for-at-ringe-knapper, kaldeoptagerkontrollere. Slå det til i Indstillinger (kapitel 14), Asterisk-kompatibilitet. Værktøjer ser opkald som kanaler med navne som PJSIP/100-..., som på Asterisk.
AMI
Managergrænsefladen på TCP-port 5038 (AMI lytter på: denne computer alene som standard). Understøttet:
| Type | Navne |
|---|---|
| Handlinger | Login (ren eller MD5-udfordring), Ping, Begivenheder, Filter, ListCommands, CoreShowChannels, Status, CoreStatus, CoreSettings, PJSIPShowEndpoints, ExtensionState, ExtensionStateList, DeviceStateList, Getvar, Originate, Redirect, BlindTransfer, Hangup, Logoff |
| Køer | QueueStatus, QueueSummary, QueuePause, QueueAdd og QueueRemove (de logger en agent ind eller ud af alle deres køer), Agents |
| Andre | Parkerede opkald; ConfbridgeListRooms, ConfbridgeList, ConfbridgeKick, ConfbridgeMute, ConfbridgeUnmute, ConfbridgeLock, ConfbridgeUnlock; MailboxCount, MailboxStatus; PauseMonitor, UnpauseMonitor; UserEvent; Reload (intet at genindlæse: ændringer anvendes med det samme) |
| Begivenheder | Newchannel, Newstate, Hangup, DialBegin, DialEnd, Hold, Unhold, PeerStatus, ContactStatus, MessageWaiting, ConfbridgeJoin, ConfbridgeLeave, ConfbridgeEnd, UserEvent |
Filter gemmer kun de begivenheder, som en regulær udtryksmæssig sammenligning matcher (Event: Newchannel), eller dropper dem med ! først, som på Asterisk. Der er ingen Asterisk-kommandolinje: Kommando returnerer med en fejl.
ARI
På /ari/, med grundlæggende godkendelse eller ?api_key=user:secret:
| Anmodning | Hvad den gør |
|---|---|
GET /ari/channels | opkald i gang |
POST /ari/channels?endpoint=PJSIP/100&extension=5551234 | ring 100, derefter ringe til nummeret |
DELETE /ari/channels/{id} | afslut |
POST /ari/channels/{id}/redirect?endpoint=PJSIP/102 | send opkaldet til 102 |
/ari/endpoints, /ari/bridges, /ari/asterisk/info | telefoner, broer, version |
/ari/events | en WebSocket med begivenheder |
POST /ari/channels/externalMedia?external_host=host:port&encapsulation=rtp&format=ulaw | en kanal, der sender lyd til et program via RTP (ulaw eller alaw over UDP); den lokale port er i kanalens UNICASTRTP_LOCAL_PORT |
POST /ari/channels/externalMedia?external_host=host:port&encapsulation=audiosocket&transport=tcp&format=slin&data=<uuid> | det samme via AudioSocket |
POST /ari/bridges/{call}/addChannel?channel={id} | den eksterne mediekanal deltager i et opkald: den hører begge parter, og begge parter hører den; med role=listener hører ingen den (til live-transkription) |
POST /ari/bridges/{call}/removeChannel?channel={id} | den forlader opkaldet; de to parter taler direkte igen |
En ekstern mediekanal, der ikke er tilføjet til et opkald inden for en minut, lukkes.
ARI-applikationer
En ARI-applikation (Asterisks Stasis()) kører opkald fra jeres eget program. Tilføj den under ARI-applikationer i Indstillinger, Asterisk-kompatibilitet: et navn, et valgfrit nummer extensioner, der ringer, og en fallback. Så send opkald til den som til enhver destination: en indgående rute, en menuknop, en tidsplan.
Dit program tilslutter sig /ari/events?app=NAME (en WebSocket, med login i ?api_key=user:secret). Hver opkald, der når applikationen, bliver besvaret og ankommer som StasisStart, med kanalen; programmet kører derefter:
| Anmodning | Hvad den gør |
|---|---|
POST /ari/channels/{id}/play?media=sound:goodbye,digits:42 | afspiller prompts fra Sounds (sound:), digits:, number:, tone:beep eller en gemt optagelse (recording:); PlaybackStarted og PlaybackFinished følger. DELETE /ari/playbacks/{id} stopper det. |
POST /ari/channels/{id}/record?name=msg1&maxDurationSeconds=60&maxSilenceSeconds=5&beep=true&terminateOn=%23 | optager (wav) til de gemte optagelser; RecordingStarted og RecordingFinished. POST /ari/recordings/live/{name}/stop stopper det, DELETE smider det væk. |
GET /ari/recordings/stored, .../{name}, .../{name}/file, DELETE .../{name} | de gemte optagelser |
POST /ari/channels/{id}/dtmf?dtmf=123 | sender taster til opkaldsøgeren |
GET/POST /ari/channels/{id}/variable?variable=X&value=Y | kanalens variabler |
POST /ari/bridges?bridgeId=room1, .../addChannel?channel=a,b, .../removeChannel, .../play, DELETE | miksebroer: alle i én hører alle andre |
POST /ari/channels/{id}/continue?extension=101 | slipper opkaldet: til den udvidelse, ringegruppe eller kø, ellers fallback |
DELETE /ari/channels/{id} | afslutter opkaldet |
POST /ari/channels?endpoint=PJSIP/101&app=NAME | ringer til 101; når det bliver besvaret, kommer det ind i applikationen |
GET /ari/applications | applikationerne, om et program er tilsluttet, og deres kanaler |
POST /ari/channels/{id}/mute?direction=in, DELETE .../mute | dæmper, hvad opkaldsøgeren siger (in), hvad de hører (out) eller begge |
POST/DELETE /ari/channels/{id}/hold, .../moh, POST .../silence | holdmusik til opkaldsøgeren (ChannelHold, ChannelUnhold), eller stilhed |
GET/POST /ari/channels/{id}/variables | flere variabler på én gang (ChannelVarset) |
POST /ari/channels/{id}/move?app=other | overdrager kanalen til en anden applikation (StasisEnd, derefter StasisStart der; ApplicationMoveFailed når intet program kører det) |
POST /ari/channels/{id}/snoop?spy=in&app=NAME | en snoop-kanal i en applikation, der hører, hvad opkaldsøgeren siger, for at optage det (POST /ari/channels/{snoop}/record) |
POST /ari/channels/create?endpoint=PJSIP/101&app=NAME, derefter POST .../dial | en kanal, der venter, til den bliver ringet; Dial-begivenheder fortæller, hvordan ringningen går, og den kommer ind i applikationen, når den bliver besvaret |
GET /ari/channels/{id}/rtp_statistics | pakker og bytes sendt og modtaget, tab og jitter |
POST /ari/playbacks/{id}/control?operation=pause | pause, genoptag, genstart, baglæns og frem (tre sekunder) |
POST /ari/bridges/{id}/moh, .../record, .../variable, .../play/{playbackId} | holdmusik til en bro, optagelse af dens mikse, dens variabler |
POST /ari/recordings/stored/{name}/copy, POST/DELETE /ari/recordings/live/{name}/pause, .../mute | kopierer en optagelse; pauser eller dæmper en live optagelse |
POST /ari/applications/{app}/subscription?eventSource=deviceState:Custom:lamp, PUT .../eventFilter | abonnementer (kanal:, bro:, endpoint:PJSIP/100, deviceState:) og begivenhedsfilter ({"disallowed": [{"type": "ChannelVarset"}]}) |
GET /ari/deviceStates, PUT /ari/deviceStates/Custom:lamp?deviceState=INUSE | telefoners tilstand (PJSIP/100: NOT_INUSE, INUSE, RINGING, UNAVAILABLE) og brugerdefinerede tilstande, som programmer selv opretholder (DeviceStateChanged); telefoners tilstand kommer også som EndpointStateChange |
GET /ari/mailboxes, PUT /ari/mailboxes/{name}?newMessages=1&oldMessages=0 | udvidelsers voicemail-tællere (100@default), og mailbokse, som et program selv opretholder |
GET /ari/sounds | Sounds' prompts, på de sprog de er optaget i, og lyde, der er uploadet til AGI-script |
PUT /ari/endpoints/sendMessage?to=pjsip:100&body=Hi | en tekst til udvidelse 100's telefoner |
POST /ari/events/user/{name}?application=NAME | en brugerbegivenhed til en applikation (ChannelUserevent) |
GET /ari/asterisk/ping, GET/POST /ari/asterisk/variable, GET /ari/asterisk/modules | ping, globale variabler og BitVoices komponenter, navngivet efter de moduler, de står for |
BitVoice besvarer hver enkelt operation af Asterisks offentliggjorte ARI (dens test-suite kalder hver enkelt og checker, hvad der kommer tilbage har de felter, Asterisks beskrivelse kræver). Nogle har intet at gøre her og besvarer 501 med årsagen: indlæselige moduler (BitVoice er et program), Sorcerys dynamiske konfiguration (BitVoice er konfigureret i dets webinterface), log-kanaler, broers video-kilder (ARI-broer transporterer lyd), sending af REFER til telefoner og krav om broadcast-opkald. En snager hører kun opkalderen (spy=in), og whisper tilbydes ikke: bro en kanal med deres for at tale med dem. Kanal-hændelser for hvert opkald (ChannelCreated, ChannelStateChange, ChannelDestroyed) går til hvert program, som med Asterisks subscribeAll=true. ARI-biblioteker, der læser grænsefladen fra serveren (ari-client og andre), finder den på /ari/api-docs/resources.json. Hvilke programmer holder nu, under ARI-applikationer i Indstillinger, viser applikationerne, brugerdefinerede enheds-tilstande, postkasser, globale variabler og broer programmer har konfigureret.
Tastetryk ankommer som ChannelDtmfReceived; en opkalders afslutning som StasisEnd. Når der ikke er nogen program tilkoblet, går opkaldet til standardværdien; når programmet sidste forbindelse lukkes, går opkaldene deres også efter fem sekunder (tid til genforbindelse). Til opkaldslogik uden et program af din egen, brug Scripts (kapitel 27), der kører hele opkaldet; for at overføre lyden til et program, tale-robotter (kapitel 24).
AGI-scripts
Et AGI-script (Asterisks AGI() og EAGI()) kører et opkald kommando for kommando, så IVR og integrationer skrevet til Asterisk (phpagi, pyst2, Asterisk-Java, enhver FastAGI-server) fungerer stadig. Tilføj det under AGI-scripts i Indstillinger, Asterisk-kompatibilitet:
| Felt | Hvad det er |
|---|---|
| Scriptnavn | hvordan destinationer navngiver det |
| Adresse | en FastAGI-server, agi://host:4573/script?x=1 (port 4573 når ingen er angivet), hagi://domain/script for serverne i domænets _agi._tcp SRV-records, prøvet i prioritetsrækkefølge, eller filnavnet på et program i mappen AGI-programmer |
| Argumenter | passeret som agi_arg_1, agi_arg_2 … |
| Nummer til at ringe | valgfrit: udvidelser ringer det som ethvert nummer |
| Standardværdi | hvor opkaldet går, når scriptet afslutter uden at vælge et nummer, eller ikke kan nås |
| Længste kørsel | et script, der kører længere, stoppes (standard en time) |
| EAGI | for et program: opkaldersens lyd (8 kHz, signed 16-bit, little-endian) på filbeskrivningsnummer 3. Linux og macOS |
Test tilslutter serveren (eller checker, om programmet er der og kan køres) uden at sende et opkald. Så send opkald til det som til ethvert andet destination.
BitVoice besvarer opkaldet, sender agi_-variablerne (agi_network_script, agi_callerid, agi_dnid, agi_extension, agi_language …) og udfører kommandoerne, besvarende som Asterisk 20 gør (test-suiten sammenligner hver besvarelse med en optagelse af Asterisks):
| Kommandoer | Noter |
|---|---|
| ANSWER, HANGUP, CHANNEL STATUS, NOOP, VERBOSE | HANGUP med kun en kanalnavn afslutter kun scriptets eget opkald |
| STREAM FILE, CONTROL STREAM FILE, GET OPTION, GET DATA, WAIT FOR DIGIT | escape-taster, sample-offset og slutposition som på Asterisk; hurtig-frem, tilbage og pause i CONTROL STREAM FILE |
| SAY DIGITS, SAY NUMBER, SAY ALPHA, SAY PHONETIC, SAY DATE, SAY TIME, SAY DATETIME | med en tale-service i Indstillinger, AI de er tale; uden, er cifrene sagt fra Lyde |
| RECORD FILE | s=N stilhed, en bip, escape-taster; filen lander i lydbiblioteket |
| SET VARIABLE, GET VARIABLE, GET FULL VARIABLE | CALLERID(num), CALLERID(name), EXTEN, UNIQUEID, CHANNEL … og ${NAME}-udtryk |
| DATABASE GET, PUT, DEL, DELTREE | Asterisks database (AstDB), vedligeholdt af BitVoice og vist under AGI-database |
| SET CALLERID, SET EXTENSION, SET CONTEXT, SET PRIORITY, SET AUTOHANGUP, SET MUSIC | SET EXTENSION er, hvor opkaldet går, når scriptet afslutter |
| SPEECH CREATE … SPEECH RECOGNIZE | bruger tale-til-tekst i Indstillinger, AI: resultatet er, hvad opkalderen sagde, som text0, til scriptet kan sammenligne; grammatikker accepteres og ikke brugt |
| EXEC | Answer, Hangup, Playback, Background, Read, Set, MSet, SayDigits, SayNumber, SayAlpha, Wait, Dial (ringer hver nummer i tur; DIALSTATUS), Goto, VoiceMail, Queue, MusicOnHold, Record, NoOp, Verbose, Log. Andre besvarer -2, som Asterisk gør for en manglende applikation |
BitVoice har ingen dialplan: hvor et script ville gå videre i Asterisks dialplan (SET EXTENSION, EXEC Goto), går opkaldet til det nummer her (en udvidelse, ringegruppe, kø, menu eller et eksternt nummer gennem udgående ruter) når scriptet afslutter. Scripts ringer aldrig nødnumre. Når opkalderen afslutter, får en FastAGI-script HANGUP og et program SIGHUP; kun kommandoer, der er tilladt på en død kanal, kører derefter (511 for de andre), og forbindelsen lukkes 30 sekunder senere, hvis scriptet fortsætter. Hver kørsel vises under Seneste kørsler med dens VERBOSE-linjer og går til begivenhedsstrømmen som agi.ran.
Lyde til AGI-scripts. Scripts afspiller lyde ved navnene, de bruger på Asterisk: upload dem under Lyde til AGI-scripts med en mappe (custom/welcome; es/custom/welcome til opkaldere på spansk). WAV, MP3 og Asterisks .gsm, .ulaw, .alaw, .sln og .sln16 accepteres; en sti som /var/lib/asterisk/sounds/en/custom/welcome.gsm finder custom/welcome. Asterisks digits/0–digits/9, beep, silence/N og nogle andre (vm-goodbye, invalid, please-hold) afspiller BitVoices egne prompts og tone. Hvad scripts optager, gemmes i samme bibliotek, markeret optaget af et script, for de dage, du vælger (30 som standard). Biblioteket kan holde op til 1 GB.
Programmer. Et program køres på denne server med BitVoices rettigheder, så det aldrig uploades via web: kopier det ind i mappen AGI-programmer, som vises på skærmen (DATA/agi-bin), og gør det eksekverbart. Det modtager kun PATH og AST_AGI_DIR fra miljøet, køres i denne mappe, og hvad det skriver til standardfejl går til serverloggen. FastAGI sender kommandoer i ren TCP: hold serveren på denne computer eller et privat netværk.
Logins
Hver login har et Brugernavn og en Hemmelighed. Logins er kun læs medmindre de er markeret Kan ændre opkald. Hold AMI på denne computer, medmindre værktøjet køres et andet sted: AMI er ren, ukrypteret TCP.
AI-assistenter (MCP)
En AI-assistent, såsom Claude, ChatGPT, Gemini eller Cursor, kan bruge BitVoice gennem Model Context Protocol (MCP), den standardmåde, assistenter når andre programmer på. Spørg det i almindelige ord: hvem ringede i morges og om nogen ringede tilbage, hvad opkaldende fra tandlægen sagde, hvorfor 9-tiden-opkaldet gik til telefonsvareren, om udbyderlinjen er nede. Med din tilladelse kan det også foretage et opkald, sende en tekst eller afslutte et opkald.
BitVoice is the MCP server, at https://YOUR-SERVER/mcp (Streamable HTTP; the address shows in Settings). Nothing goes to any AI service unless an assistant you connected asks for it, and then only what it asked for.
Aktivering
I Indstillinger (kapitel 14), AI-assistenter (MCP):
- Tillad AI-assistenter at tilknytte: fra som standard. Fra,
/mcpbesvarer intet andet end, at det er fra. - Tillad assistenter at handle: fra som standard. Fra, assistenter kan kun læse, uanset deres token. Til, en assistant, hvis token kan ændre ting, får også værktøjerne, der handler.
Kortet viser adressen og klar-til-kopiering-indstillinger for de almindelige assistenter og listen over alle værktøjer.
Hvad en assistent kan gøre
Læsning (enhver token):
- calls_now: de aktuelle opkald.
- call_history: tidligere opkald, søgt efter nummer eller navn, efter retning og fra en bestemt tid, med årsag til hvorfor hvert opkald gik hvor det gik.
- extensions: navne, numre, afdelinger, email; aldrig en telefons adgangskode.
- phones_connected: hvilke telefoner er registreret, hvorfra.
- voicemail, search_transcripts: beskeder og hvad der blev sagt på optagede opkald.
- queues, trunks, health: køer nu, leverandørlinjer, BitVoices egne kontroller.
- directory, text_messages: virksomhedens telefonbog og tekstbeskeder.
Handling (med Lad assistenter handle, og en token der måske ændrer ting):
- place_call: klik for at ringe. Den pågældendes telefon ringer først; når nogen der tager den, ringer BitVoice nummeret som om de havde taste det, så deres ruter, caller-id og begrænsninger gælder.
- send_text: en tekstbesked fra en af virksomhedens tekstnumre.
- hang_up_call: afslutter et opkald i gang.
Hvert værktøj er en af API'ens egne ruter, kørt som assistenten: den ser og ændrer præcis det, dens token må, samme kontroller gælder, og dens ændringer er i revisionsloggen under dets navn. Et svar holdes til omkring 60.000 tegn; assistenten bedes om at begrænse sin søgning, når en er afkortet.
Tilslutning af en assistent
Assistenter, der logger ind (Claude.ai og ChatGPT-brugerdefinerede connectores, og andre): tilføj en connector med BitVoices adresse. Assistenten åbner BitVoices login i din browser; log ind som normalt (adgangskode, to-trins, enkelt-sign-on), og siden siger hvilken assistent beder og hvor den vender tilbage til. En administrator kan lade det handle eller Kun lade det læse; en seers assistent kan kun læse. Tillad ikke sender det væk med ingenting. Dets adgang er derefter på Administratore (kapitel 57), API-tokens, som AI-assistent, logget ind: det fungerer kun på /mcp, aldrig for resten af API'et, varer en time ad gangen og fornyer sig selv i op til 30 dage, hvis det ikke bruges. Tilbagekald afslutter det med det samme. Disse assistenter når BitVoice fra deres egne servere, så det kræver en adresse, der kan nås fra internettet, og et certifikat, de stoler på (Let's Encrypt, i Certifikat (kapitel 14)).
Assistenter, der får en token (Claude Code, Cursor, VS Code og andre værktøjer, der tager en adresse og en header): opret en API-token på Administratore (kapitel 57), kun læs, medmindre det skal handle, og give det som Authorization: Bearer bv_...:
claude mcp add --transport http bitvoice https://pbx.example.com:8443/mcp --header "Authorization: Bearer bv_..."
Assistenter, der starter et program (Claude Desktop, og andre, der tager en kommando): BitVoices program medfører en bro, bitvoice mcp, der passerer hver besked til serveren over HTTPS. Giv det serverens adresse og tokenet:
{ "mcpServers": { "bitvoice": { "command": "bitvoice", "args": ["mcp", "-url", "https://pbx.example.com:8443"], "env": { "BITVOICE_TOKEN": "bv_..." } } } }
Med BitVoices eget certifikat (ikke et fra en myndighed), afviser broen det og printer dets SHA-256: kontroller, at det er jeres server, derefter tilføj "-pin", "THAT-SHA256" til argumenterne. Kun dette certifikat accepteres herefter.
Sikker at lade være på
- Kun tokens: en browsers login til BitVoice når aldrig
/mcp, og en side på en anden side afvises (Origin), så en web-side ikke kan bruge en assistent-forbindelse. - Assistenter kan tage fejl. Giv dem en læse-token, medmindre de skal handle; alt, de gjorde, er i revisionsloggen, og at ringe et opkald ringer altid en persons telefon først.
- Login via OAuth 2.1, som MCP specificerer: assistenten registrerer sig selv (kun offentlige klienter, med PKCE), vender kun tilbage til de adresser, den registrerede (https, eller http til dens egen computer), og en kode er gyldig én gang, i ét minut.
- En organisation, der er vært på en andens BitVoice, giver sine assistenter tokens; login via OAuth der er endnu ikke prøvet.
Arkiv
/archiveArkivet gemmer kopier af optagelser, voicemail og konfiguration et andet sted: en Amazon S3-bruger (eller en hvilken som helst S3-kompatibel butik) eller en Azure Blob Storage-beholder. Hvis denne servers disk gå tabt, har arkivet dem stadig.
Konfiguration
- På Arkiv (kapitel 72), vælg Hvor arkiveret: Amazon S3 eller Azure.
- Til S3: Bucket, dens Region, en valgfri Mappe i bucket og Endpoint (til S3-kompatible butikker), og en Adgangsnøgle-ID og Hemmelig adgangsnøgle. Kopier politik giver den eneste tilladelse BitVoice behøver, for at vedhæfte til brugeren eller rollen.
- Til Azure: en Container SAS-URL med skriveadgang, og en valgfri Mappe i beholderen.
- Vælg, hvad der skal kopieres ud over konfigurationen: Optagelser, Voicemail, eller begge.
Hvad sker der
Hver tiende minut kopierer BitVoice nye optagelser og beskeder, der ikke er i arkivet endnu, og en gang om dagen en dateret kopi af konfigurationen (config/2026-10-13.json). Siden viser den seneste kørsel, den seneste succes og eventuelle fejl.
Sletning af noget her (ved retention eller med hånden) sletter ikke arkivets kopi: angiv bucketens eller beholderens egne livscyklusregler for, hvor længe arkivet gemmer ting.
Juridisk retention
/holdsEn juridisk retention bevarer opkaldsrekorder, optagelser og voicemail, som en sag måske har brug for, og forhindrer, at nogen sletter dem, indtil den frigøres. Brug den, når en advokat beder om, at rekorderne skal bevares.
Tilføjelse af en pause
På Juridiske pauser (kapitel 73), tryk Tilføj:
| Felt | Hvad det er |
|---|---|
| Navn | hvad sagen hedder |
| Årsag | hvorfor, til protokollen |
| Numre | udvidelserne og ydre numre, det dækker (101, +15551234567), eller Alt |
| Fra, Til | datoerne, det dækker; tom for ingen begrænsning |
Mens en pause er aktiv
- Bevaring lader, hvad det dækker, være uforandret, uanset dets alder.
- Ingen kan slette et pauseholdt opkald, optagelse eller voicemail, inklusive administratorer.
- Pauseholdte opkald viser en lås i Opkaldshistorik (kapitel 47).
Frigørelse
Frigør gør, hvad retentionen holdt, til genstand for bevaringsindstillingerne igen: ting, der er ældre end bevaringsperioden, slettes ved den næste rengøring. Frigjorte retentioner bliver vist, med hvornår og af hvem, og tilføjelse og frigørelse af retentioner er i revisionsloggen.
Metrikker: Prometheus, OpenTelemetry, Grafana, SNMP og opkaldsoptagelser
/settingsPrometheus scraper /metrics på webadressen. Opret en API-nøgle under Administratore (en visernøgle er tilstrækkelig) og give den til Prometheus som dens bærertoken:
scrape_configs:
- job_name: bitvoice
scheme: https
authorization: { credentials: bv_... }
static_configs: [{ targets: ['pbx.example.com'] }]
Den læser opkald i gang (efter tilstand), opkald afsluttet (efter retning og udfald), tale tid, telefoner registreret, hver trunk's tilstand og rundtur, opkaldende i venten og agenter i hver kø, lydpakker modtaget og tabt, en histogram over opkaldskvalitetsvurderinger (MOS), og callbacks booket. Tællere starter igen fra nul, når BitVoice genstartes, som Prometheus forventer.
OpenTelemetry: i Indstillinger, Metrikker, indtast en samlers OTLP/HTTP-adresse (og en header som f.eks. Autorisation, med dets værdi) for at få de samme målinger pushet hver minut (eller så ofte, som du indstiller, fra 15 sekunder). Push nu kontrollerer de gemte indstillinger.
Grafana-dashboard downloader et færdigt dashboard: importér det i Grafana og vælg din Prometheus-datakilde.
SNMP
For overvågningsystemer, der taler SNMP (Zabbix, PRTG, LibreNMS, Nagios, SolarWinds), slå SNMP-agenten til i Indstillinger. Den besvarer SNMPv2c GET, GETNEXT og GETBULK, kun læs, på UDP-port 161 (eller en anden, du vælger: port 161 kræver retten til at åbne lavports på Linux), og kun fra de netværk, du listar. Vælg en fællesskabsstreng, der ikke er offentlig eller privat: det er en adgangskode, der krydser netværket i klart.
Den serverer den standardmæssige systemgruppe (sysDescr, sysUpTime, sysContact, sysName, sysLocation) og BitVoice's egne værdier under base OID: opkald i gang og ringende, telefoner registreret, trunk'er oppe og konfigureret, opkaldende i venten, opkald afsluttet, talesekunder, tabte pakker, gennemsnitlig opkaldskvalitet, en trunk-tabel (navn, oppe eller nede, latency) og en kø-tabel (ventende, agenter, besvaret, opgivet). Downloade BITVOICE-MIB ved siden af indstillingerne for din overvågning til at indlæse. BioDream LLC har endnu ikke en virksomhedsnummer, så standard-base OID er i Net-SNMP's eksperimentelle rum; placer en under dit eget virksomhedsnummer for at holde det stabilt.
Fælder (SNMPv2) går til hver modtager, du listar, når en trunk går ned eller kommer tilbage, et nødopkald bliver foretaget, eller en server i en cluster ophører med at svare. SNMPv3 er ikke understøttet endnu.
Opkaldsoptagelser andre steder
Ved siden af Opkaldshistorik kan hver optagelse gå, når opkaldet slutter, til:
- Syslog (RFC 5424, som JSON) over UDP, TCP eller TLS, til en logserver eller en SIEM.
- En CSV-fil om dagen, med Asterisk's Master.csv-kolonner, så rapport- og faktureringsværktøjer lavet til Asterisk kan læse den. Downloade filerne ved foden af Opkaldshistorik (kapitel 47). Cellen, der ville køre som en formel i et regneark, skrives sikkert.
- En PostgreSQL-tabel i en anden database, lavet første gang med Asterisk's
cdr-kolonner (calldate, clid, src, dst, duration, billsec, disposition, uniqueid…) plus BitVoice's retning, trunk, omkostning og MOS. Hver opkald skrives én gang.
Send en testoptagelse prøver syslog-serveren og databasen med de gemte indstillinger.
Opkaldsgenerator
/loadtestOpkaldsgeneratoren placerer rigtige opkald med rigtigt lyd i BitVoice fra denne computer: for at se, hvor mange opkald en server kan håndtere, og hvor godt, eller for at kontrollere efter en ændring, at opkald stadig går, hvor de skal.
Kør en test
| Indstilling | Hvad det er |
|---|---|
| Nummer at ringe til | et nummer inden for BitVoice: en udvidelse, en gruppe, en kø, en menu |
| Opkald kommer fra | opkalders nummer, som opkald viser |
| Besvar som | en udvidelse, som generatoren besvarer for sig selv; eller ingen, når nummeret besvarer sig selv (en menu, ekko-test) |
| Opkald | hvor mange i alt |
| Samtidigt | det maksimale antal samtidige opkald, op til 2.000. Hvert videreformidlet opkald tager medieporte fra Medie fra og Medie til (Indstillinger): standard 10000-20000 kan rumme omkring 1.800, så udvid det for mere |
| Nye per sekund | hvor hurtigt de starter |
| Hver varer (s) | hvor lang tid hver taler |
Læsning af resultaterne
| Resultat | Hvad det siger |
|---|---|
| Besvaret, Mislykket | og Hvorfor opkald mislykkedes, efter årsag |
| Besvartid, median og 95% | hvor lang tid kalderne ventede |
| Audio tabt | andelen af lydpakker, der aldrig ankom |
| Audio-score | en vurdering af lyden (MOS): 4 og over er godt, under 3,6 er dårligt |
| Jitter, 95% af opkald | hvor ujævnt lyden kom tilbage (RFC 3550 interarrival jitter, gennemsnitligt over hvert opkald); telefoner glatter op til omkring 20 ms |
| Længste pause, værst opkald | den længste ventetid mellem to lydpakker i et opkald; de kommer hver 20 ms, så en blokering af serveren viser her |
| Hukommelsepauser, længste pause | hvor ofte, og hvor længe på det højeste, Go-runtiden standsede alt for at rydde hukommelse under kørslen |
| Opkald i gang over tid | et diagram over belastningen |
SIP-sporing
/traceSIP-sporingen viser de meddelelser, BitVoice sender og modtager, live: det første sted at se på, når en telefon ikke kan registrere eller et opkald fejler, og hvad en leverandørs supportafdeling vil bede om.
Find en meddelelse
BitVoice gemmer de sidste 2.000 meddelelser i hukommelsen (intet bliver skrevet til disken, og de forsvinder efter en genstart). Skriv en del af et nummer, en adresse eller en Call-ID i filteret. Tryk Opdater for de nyeste.
Vælg en meddelelse for at se den i fuld udstrækning og, ved siden af den, opkaldsflowet: hver meddelelse i samme opkald i rækkefølge, mellem telefonen, BitVoice og leverandøren, som i figuren.
Læsning af en sporingslog
| Du ser | Det betyder normalt |
|---|---|
| REGISTER besvaret 401, derefter intet | telefonen har ikke adgangskoden, eller har den forkerte |
| REGISTER besvaret 403 | adressen er blokeret, eller telefonen logger ind som en anden udvidelse |
| INVITE besvaret 404 | ingen rute svarer til det valgte nummer (Rutevalg (kapitel 8)) |
| INVITE besvaret 403 af udbyderen | udbyderen afviser opkalders-ID eller nummer |
| 486 | den anden side er optaget |
| 488 | de to sider har ingen fælles codec (Codecs (kapitel 66)) |
| 200 OK, derefter BYE efter ca. 30 sekunder | ACK anmodningen ankom aldrig: en router imellem omskriver eller dropper beskeder (sluk for dens "SIP ALG") |
| Et opkald tilslutter, men ingen hører noget | lyden er blokeret: kontroller den offentlige adresse i Indstillinger og medieportene i brandmuren |
Offentlig sikkerhed: laboratorie-sporet
911-svarprofilen, radiodispatchkonsollen og NG911 Core Services. De er et laboratorie- og designpartner-sporet: bygget og testet mod optagede captures, eksempeldata og stand-ins, men ikke certificeret til live 911 eller radiodispatch og endnu ikke afprøvet med en live ESInet, P25-system eller CAD. De er ikke på menuen, før de er aktiveret i Indstillinger. Nødopkald fra jeres egne telefoner (Kom i gang) er ikke en del af dette sporet: de er en del af enhver telefon-system.
911-opkald (911-profilen)
/psapBitVoice besvarer 911-opkald som et PSAP's opkaldshåndteringssystem: opkald fra det nødnetværk (ESInet, NENA i3) ankommer med opkalders placering og netværksdata, og opkaldshåndtageren ser dem med det samme, og CAD underrettes, når opkaldet besvares.
Konfiguration.
- På Trunk (kapitel 7) tilføjes trunk fra ESInet-udbyderen (eller NG911-kernens ESRP) og slå Fra ESInet til.
- I Opkaldsdirigering (kapitel 8) sendes opkaldene til call-tagerne: en kø, eller en ringgruppe.
- På 911-opkald indtastes myndigheds-ID'et (et domæne, som
psap.county.example.gov) og hvad CAD modtager: adresse og port for dens ALI-lytter og dens EIDO-adresse.
Når et 911-opkald ringer, vises det på 911-opkald med:
- adressen, som netværket sendte (civile lokalitet), og positionen med usikkerheden (inden for så mange meter), tegnet på kortet med dets usikkerhedscirkel (når et kort er valgt, nedenfor), og et link til OpenStreetMap;
- udbyderen, servicetype (trådløs, VoIP, bolig, virksomhed), enhed og abonnent, når opkaldet medførte dem (Yderligere data, RFC 7852);
- eventuelle fejl under læsningen.
Lokalitet kommer i opkaldet (ved værdi) eller som en reference, som BitVoice henter med HELD. Et opkald med en reference har Rebid lokalitet: BitVoice beder om det igen, hvis opkaldsstederne er i bevægelse eller hvis den første fastlæggelse var upræcis.
Når en rebid ændrer lokaliteten, siger lokalitetskontrollen, hvilken der skal vises først, og hvorfor: den nye lokalitet som regel; den første, hvis den var en præcis enhedsfastlæggelse (GPS, inden for 100 m) og mindre end to minutter gammel, og den nye er upræcisere; og begge, hvis to lokaliteter er uenige med mere end deres usikkerhed tillader, så call-tageren beder om oplysninger.
Når en call-tager besvarer, modtager CAD hver for sig, så en CAD, der er nede, aldrig forhindrer opkaldet:
- ALI-udløsningen: den tekstblok, CAD-systemer læser (callback-nummer, servicetype, adresse, position og usikkerhed, udbyder), sendt over TCP;
- EIDO'en, det incidentdokument fra NENA-STA-024, via HTTPS-POST (med en bærertoken, hvis den er angivet). EIDO på et opkald viser det. Adressen skal være
https, eller kunhttptil en CAD på samme computer (http://127.0.0.1:…): en EIDO bærer opkaldsstedets lokalitet og token, så den aldrig krydser et netværk uden kryptering, inklusive et privat netværk. Det samme gælder for Send radiobegivenheder til CAD på. Gemning af andre urenskedehttp-adresser afvises; en adresse, der er gemt af en ældre version, forbliver, så BitVoice stadig starter, og andre ændringer gemmes stadig, men intet sendes til den, og Sundhedsstatus (kapitel 13) viser den i rødt, indtil den ændres.
Selv ALI-spillet er plain TCP, da legacy CAD-lyttere tager det, så det ikke kan kræves at være krypteret. Når det går til en anden computer, advarer Health: hold denne sti uden for enhver delt netværk, med en direkte serieforbindelse (serial:/dev/…) eller en VPN eller privat kredsløb til CAD. Indstil også Agent-ID: EIDOs og i3-loggen navngiver agenturen efter det, og Health (kapitel 13) advarer, mens det er tomt.
Et 911-opkald afvises aldrig. Et taleopkald fra ESInet (eller en CAMA-trunk) hvis indgående rute ville afvise det, fordi ruten afbryder, ringer en gruppe uden nogen i den eller ikke eksisterer, eller at ingen besvarer, ringer i stedet alle call-tagere: hver aktiveret udvidelse og enhver telefon, der tilslutter, mens det ringer, indtil nogen besvarer eller opkaldsstederne afbryder. Et tekstopkald venter på denne skærm på samme måde. Opkaldets Sådan blev det dirigeret fortæller, hvad der skete, og Sundhedsstatus (kapitel 13) advarer om en sådan rute, så den kan rettes. Kun testopkald (urn:service:test.sos) og opkald, der ikke er 911-opkald, beholder deres rutes afvisning.
Ej heller tabt ved overførsel. Når en call-tager overfører et 911-opkald, og overførslen ikke kan oprette forbindelse, fordi udvidelsen ikke har nogen telefon tilsluttet eller ingen besvarer den, går opkaldet tilbage til call-tageren, mens de stadig er på. Hvis de allerede har afbrudt (de fleste skrivebordstelefone gør det lige efter en blind overførsel), ringer alle call-tagere i stedet, indtil en besvarer. Et 911-opkald overføres aldrig til udvidelsens beskeder eller anden ikke-svar-destination, og dets rute-spor fortæller, hvad der skete. På ethvert opkald frigør en telefon, der afbryder lige efter at have bedt om overførsel, kun sig selv: overførslen fortsætter.
En opkaldssted, der forsvandt. Når den ene side af et opkald stopper med at sende lyd i et minut (en telefon, der mistede strøm eller signal, sender ingen afbrydelse), mens den anden side stadig sender, afbrydes opkaldet med årsagen *opkaldsstedets lyd stoppede* (eller hvis det var), i opkaldsrekorden og i call.ended-begivenheden, som CAD hører (cause, endedBy). En side på hold, under faxing eller som sagde, at den sender intet (en højtaler), afbrydes aldrig på denne måde. Stilhed sender stadig pakker, så en opkaldssted, der ikke kan tale, holder opkaldet oppe.
Live transcripts. With Write out 911 calls live on (Settings, AI), each side of an answered 911 call is written out as it is spoken, by the speech-to-text service when one is set (so the audio stays in the building (kapitel 28)), else by the AI service, cut where the speaker pauses, and shown under the call as Live transcript. CAD gets each piece as a call.transcript event: {"call": id, "lines": [{"speaker": "Caller", "side": "caller", "text": "…", "second": 12.4}]}. The calls' audio goes to the AI service while they last, recorded or not. The recording's own transcript still comes when the call ends.
CAD dispatchers by name. A CAD acting through one API token can name the dispatcher behind each request: make the token with Names the person it acts for (Administrators, API tokens) and send X-BitVoice-On-Behalf-Of: <the person's name>. The exposure log, text calls taken, calls ended and the audit log then name that person with the token (*Dana Ruiz via bitdispatcher CAD*). From any other token the header is ignored.
Opkalders video og fotos. På et 911-opkald gør Send opkalders video-link en link, der kun åbnes af dette opkald: tekstet til opkalders fra nummeret under Tekst link fra, eller oplæst. Når det ikke kan tekstes (ingen tekstnummer er angivet, eller opkalders sendte ingen nummer), siger skærmen og API'ens problem, hvorfor. Opkalders åbner det i deres telefons browser (ingen app): Del live-video sender bagkameraet live (WebRTC, WHIP: RFC 9725), og Send fotos eller videoer sender, hvad de allerede har taget, inklusive dashcam- og action-camera-filer. På opkaldet:
- live-video viser LIVE; Se opkalders video afspiller den uskarpet, og Afslør (kan være chokerende) viser den; Uskarpet igen gemmer den;
- hver fil viser sin størrelse, hvornår den blev taget (efter kameraets eget ur), hvor (fra dets GPS, når den har nogen), og dens SHA-256, taget som den ankom, så en kopi kan senere vises at være den samme fil; Afslør åbner den; Gem som bevis holder opkaldets filer ud over opbevaringsperioden;
- visningslinket under den (WHEP) lader CAD, en enheds skærm eller en anden position se den samme live-video, uden at logge ind: behandle den som en nøgle.
Video tager aldrig fra opkald: hver live-video har sine egne porte, denne server tager maksimalt Live-videoer på én gang af dem (4 medmindre angivet), hver bedt om at forblive under Video-bitrate, og video, der stopper i ti sekunder, afsluttes. Opkalders' telefoner må nå denne server på Link-adresse (https) og dens media-porte (UDP). Filer gemmes Gem filer og exponeringslog dage (tom: indtil slettet), bortset fra opkald, der holdes.
Optagelse af live-video. Med Optag opkalders live-video aktiveret, gemmes opkalders live-video sammen med fotos og klip som en fil per video-sekvens: samme billeder, som telefonen sendte, ikke konverteret, i en IVF-fil (H.264 eller VP8 med hvert billede sin egen tid), hashet, som den skrives. Et billede, der er beskadiget af en tabt pakke, efterlades ude i stedet for at blive gemt ødelagt, og telefonen bedes om et fuldt billede for at fortsætte fra. Afslør afspiller den (fra en kopi i WebM eller MP4, som ffmpeg laver, samme billeder i en anden container; uden ffmpeg kun den originale downloader); Downloader den originale giver filen, som hashen er af. ffmpeg, VLC og retsmedicinske videoværktøjer åbner den originale.
Ind i CAD. Den EIDO (NENA-STA-021), der sendes til CAD, navngiver hver foto, klip og optagelse samt livevideoen, så længe den varer, som ekstra data ved reference: urlPurpose er caller-photo, caller-video, caller-video-recording eller caller-video-live, og additionalDataByReferenceUrl er filen på /m/{viewToken}/{n} eller livevideoen på /whep/{viewToken}. BitVoice sender CAD EIDO igen, når en fil ankommer eller livevideo starter eller stopper. Links bruger Linkadresse (eller denne servers offentlige adresse); uden nogen af dem, navngiver EIDO ingen medier. Hver hentning gennem dem er i eksponeringsloggen. Eventstreamen siger det samme (GET /api/events: call.media, call.video). BitVoices EIDOs er kontrolleret mod NENAs offentliggjorte EIDO-skema.
Link, der ikke eksisterer, gættes ikke hurtigere end log-ind: en adresse, der fortsætter med at prøve, afvises i en periode. Filer fra opkaldere serveres i en sandbox, aldrig som en side på denne server.
Exponering. Hver afsløring af en live-video og hver åbning af et foto eller en klip tælles under Exponering på 911-opkald: hvem, hvor ofte, over hvor mange opkald. Det er til supervisorer og centerets trivselsprogram.
Video, en telefon sender i 911-opkaldet selv (SIP-video over ESInet), kan ses på samme måde: Se tager den som kilde, når der ikke er nogen link-video live.
Opkald med kun et nummer. Et 911-opkald, der bringer et callback-nummer og ingen placering (fra en CAMA-trunk eller et ESInet-opkald, hvis placering ikke kom), kan søges: giv Placering-søgning (ALI) adressen på din ALI-databases eller placeringsservers HELD-grænseflade (RFC 5985, spurgt af telefonnummer som RFC 6155 har det). BitVoice spørger, da opkaldet ankommer, uden at holde det op, og placeringen vises på opkaldet, når svaret kommer; opkaldet siger, når søgningen fejlede og hvorfor.
Den legacy ALI-forbindelse. Uden en HELD-server kan BitVoice spørge en ALI-controller eller ALI-databasens dataforbindelse på den gamle måde: den sender en anmodning og læser tilbage optegnelsen som tekst over netværket (ALI-forbindelsesadresse host:port) eller ud af en serieport (serial:/dev/ttyUSB0?baud=9600&parity=none, med bits og stop også; en USB-serieadapter virker; på Linux og macOS, ikke Windows: der bruges en serie-til-netværksomdannelse og dens adresse). Anmodning er hvad der skal sendes: {ani10} de ti cifre i tilbageslutningsnummeret, {ani7} de sidste syv, {pos2} positionen, STX og ETX ({ani10} når blank). Svaret læses indtil dets ETX. ALI-layouts varierer mellem udbydere og stater, så du placerer hver felt: dets linje, dets kolonne og dets længde (0: til slutningen af linjen), fra en udskrift af en ALI-skærm; Gade (hele linjen) splitter en gadelinje op i dets dele, eller placer de enkelte dele en efter en. Indsæt en prøveoptegnelse og Læs prøven for at se linjerne med en kolonnerækkeregler og hvad hvert felt læser; Spørg spørger forbindelsen selv om et nummer. Optegnelsens adresse og position bliver opkaldets placering, dets navn opkalders navn, og dets serviceklasse vises på opkaldet. Protokoller, der ikke er en anmodning og en tekstsvarelse (PAM, E2 og andre udbyderes egne), tales ikke: de kræver en gateway.
ALI-overskridelse over en serieport. ALI-overskridelse til tager også en serieport (serial:/dev/ttyS0?baud=9600), til en CAD, der læser overskridelsen fra en seriekabel.
Kortet. Under Kort i 911-indstillingerne giver du BitVoice dets kortfliser: en .mbtiles-fil med rastertilinger (PNG, JPEG eller WebP) på denne server, til et kort, der fungerer uden internet (dit GIS-team, TileMill, gdal2tiles eller en tile-udbyder laver en til dit område), eller en tile-server med {z}, {x} og {y} i dets adresse (dit countys, eller en kommerciel: husk dets vilkår; de offentlige OpenStreetMap-servere er ikke til dette). Uanset hvilken måde, henter opkaldstagerne browserne fliser fra BitVoice alene: den læser filen eller henter fra tile-serveren og holder de sidste fliser i hukommelsen. Det samme kort viser radiopositioner på radiokonsollen. Vektortilinger understøttes ikke.
i3-loggen gemmer NENA i3-begivenhederne for hvert opkald (opkaldsstart, svar, placering, EIDO sendt), en fil om dagen. Svartider viser, hvor mange opkald blev besvaret inden for dit mål (NENA: 90% inden for 15 sekunder, 95% inden for 20), de forladte, og hver opkaldstagers gennemsnit. En række om dagen (CSV) downloader tællingerne stat 911-kontorer normalt beder om (opkald, besvaret, forladt, inden for målet og inden for 20 sekunder, gennemsnit og længste ventetid) for de valgte dage; En række om opkald (CSV) listar hvert 911-opkald med, hvornår det blev besvaret, af hvem, og om det var tekst. Hver stat har sin egen form: layout din under Rapportlayout. En tekstopkald taget på denne skærm eller gennem en CAD tælles under personen, der tog det; en, der ingen tog, før opkalderen forlod, tælles som forladt.
Rapportlayout. Nyt rapportlayout layouter en rapport, som din stat eller countys form har det: hvad hver række er (en dag, en uge, en måned, en time af dagen, en opkaldstager, eller en række i alt), en samlet række, og kolonnerne i rækkefølge, hver med sin egen overskrift, hvis formen ordlægger det anderledes: opkald, besvaret, forladt (en tælling eller en andel), besvaret inden for så mange sekunder (en tælling eller en andel; sekunderne er dine, så 10 og 20 for en form og 15 og 40 for en anden), besvaret efter mere end så mange sekunder, gennemsnitlig og længste ventetid, tiden inden for hvilken 90% blev besvaret, gennemsnitlig opkaldslængde, og tekstopkald (TTY, real-time tekst, tekst til 911). En ventetid tælles fra opkaldets ankomst til en opkaldstagers svar. Vælg et layout og datoer og Kør det for at læse det her, Regneark (CSV) for at downloade det, eller Side til udskrift til en plain side til udskrift eller gemme som PDF. Layouts gemmes med indstillingerne, så de følger med en backup og ind i Git.
TTY-opkald. Døve og hørehæmmede opkaldere kan ringe 911 med en TTY (en teksttelefon, Baudot ved 45,45 bit/s). BitVoice lytter efter en på hvert 911-opkalds stemme, fra det første øjeblik: hvad opkalderen skriver, vises på opkaldet, mens de skriver, under Tekst, med en pause eller en ny linje, der starter en ny linje. Et stille opkald kan være en TTY, der venter på dig: når du svarer, sender Svar med TTY tekst, selv før nogen er kommet. Skriv svaret og tryk Send: det går til opkalderen som TTY-toner (opkaldstagerens stemme er dæmpet, mens den afspilles, da TTY'er tager tur), i store bogstaver, og TTY-etikette gælder: slut hver tur med GA ("gå videre"), og SK, når du skriver af. Karakterer, en TTY ikke kan vise, udelades. Tale, musik og tonefrekvenser tages aldrig for TTY-tekst: en karakter tælles kun, når hver bit af den er en ren TTY-tone. Samtalen gemmes med opkaldet i opkaldshistorikken og i i3-loggen (en MessageLogEvent per tur). Fjern markeringen Lytt efter TTY'er på 911-opkald i 911-indstillingerne for at stoppe lytten.
Overførsler. En 911-opkald, der sendes videre til en anden PSAP, beholder sin placering: PIDF-LO følger med opkaldet.
Realtids-tekst (RTT). En telefon, der sender tekst sammen med sin stemme (RFC 4103, som VoLTE-telefoner og NG911-opkald gør), får sin tekst besvaret af BitVoice selv, da kontorstelefoner ikke viser nogen: hver karakter vises på opkaldet, mens afsenderen skriver, og din svar går tilbage som tekst. Tabte pakker genskabes ved den redundans, RTT medfører; tekst, der går tabt ud over det, vises som .
Tekst til 911. En tekstkontrolcentral (TCC) sender tekster til PSAP som en session uden stemme (MSRP, RFC 4975, over ESInet-forbindelsen). BitVoice besvarer det og venter på 911-opkald, der er markeret Tekst til 911, med de tekster, der er kommet; ingen telefoner ringer. Tag denne tekst gør dig til call-taker (besvartiden tælles derefter, og CAD får ALI-spillet og EIDO derefter); besvar i boksen under samtalen, og Afslut samtale, når du er færdig. TCC's lukning af sessionen afslutter den også. En SIP-MEDDELELSE, der sendes inden for en 911-opkalds dialog, behandles som afsenderens tekst på samme måde, og svar går tilbage via SIP-MEDDELELSE. Tekster modtages kun fra forbindelser, der er markeret Fra ESInet.
En TCC, der tilbyder sessionen over TLS (TCP/TLS/MSRP, msrps: stier, RFC 4975, afsnit 14), får den over TLS, med denne servers certifikat (Indstillinger › Certifikater; uden et sådant afvisses tilbuddet). TCC's certifikat skal være det, som tilbuddet nævner (a=fingerprint, SHA-256); når det ikke nævner noget, skal det spores tilbage til PSAP Credentialing Agency-rødder, der er angivet under Core services, hvis nogen er angivet. BitVoice's svar nævner sit eget certifikat på samme måde.
Hele samtalen, uanset hvordan den kom, gemmes med opkaldet i opkaldshistorikken og i i3-loggen.
Hvad der endnu ikke er her: at videregive en tekstsession gennem NG911-kernen (ESRP-ruter stemme; en tekstsession besvares, hvor den ankommer); EIDO-overførselsstandardens egne abonnementer (NENA-STA-024 WebSocket): BitVoice poster EIDOs til en adresse.
Radiodispatch-konsol
/radioDispatchere taler på radiokanaler fra samme hovedtelefon som deres telefonopkald. BitVoice når radioerne via radio-over-IP (RoIP)-gatewaye; radio-netværket selv forbliver hos den, der driver det.
Opsætning. Under Konsolopsætning, vælg en konsolnummer (800, sige) og tilføj hver kanal: dens navn, porten på denne server, gatewayen sender kanalens lyd til, og gatewayens adresse og port for lyden, der går ud. På gatewayen: RTP, G.711 µ-law, til denne servers adresse og den port; tænd radioen på lyd (VOX). Hver kanal bruger sin port og den næste, uden for rækken telefonopkald bruger.
Tilslutning. En dispatcher ringer konsolnummeret fra deres skrivebords telefon eller trykker Tilslut med browser-telefonen. De hører herefter hver kanals trafik blandet sammen; Høring / Dæmpet på en kanal fjerner den fra deres hovedtelefon. Lampen på en kanal lyser, mens den modtager.
Tale. Hold en kanals Hold til tale-knap (eller fokusér den og hold mellemrumstasten): din stemme går kun til den kanal, og kanalen viser TX med din udvidelse. En dispatcher taler på en kanal ad gangen; knappen er grået for de andre, mens nogen taler. Intet sendes til en kanal, mens ingen taler, så en stemme-aktiveret radio er aldrig holdt på luften.
Forbindelse. Tryk Forbind på en kanal, derefter Forbind her på en anden: de to hører hinanden (en brandkanal og en fælles-hjælpekanal, sige) indtil du trykker Afbrud.
P25-talgrupper. En kanal kan også være en P25-talgruppe, som tilsluttes direkte over ISSI (TIA-102.BACA, grænsefladen mellem P25-underystemer; med Send CSSI-konsol PTT-ord aktiveret, tilføjer BitVoice konsol-under-systemets ord til hver anmodning). Vælg En P25-talgruppe (ISSI), angiv talgruppe-ID, SIP-adresse og -ID for RFSS, der er hjemsted for talgruppen, og en port for dens stemme. Under Denne konsol på P25-systemet, indtast WACN og system-ID, RFSS-ID, din P25-administrator gav denne konsol, enheds-ID, dispatchere transmitter som, og SIP-porten, ISSI bruger her; P25-systemet skal kende denne server som en RFSS på den adresse. Flisen viser P25, mens gruppeopkaldet er oppe (P25 ned og årsagen, når det ikke er), og enheds-ID for den radio, der taler, i rød med NØDSITUATION, når det er et nødopkald. Hold til tale beder om hjem-RFSS for kanalen (Bedende om kanalen…); din stemme går, når den bevilger den, og hvis den afviser (nogen med højere prioritet har den) siger flisen det. Stemme konverteres til og fra IMBE, P25-vokoderen, i BitVoice.
Krypterede talegrupper. Under Krypteringsnøgler, tilføj hver trafiknøgle, som din radiobutik giver dig: et navn, algoritmen (AES-256, DES-OFB eller triple DES), nøgle-ID og nøglen selv i hex (TIA-102.AAAD). En nøgle vises aldrig igen, når den er gemt, ikke engang for administratorer, og efterlader feltet tomt, så den bliver gemt. Konsollen hører en krypteret transmission, når den har nøglen med den pågældende algoritme og nøgle-ID: flisen viser en lås og algoritmen ved siden af den talende enhed. Uden nøglen bliver transmissionen dæmpet, aldrig afspillet som støj, og flisen siger ingen nøgle: dæmpet. For at transmittere krypteret på en talegruppe skal du vælge en nøgle under Transmit til den kanal; flisen viser derefter TX AES-256 (eller den algoritme, du valgte). En fuld konfigurations-eksport (Indstillinger, en administrators backup) medfører nøglerne, så behold disse filer så sikre som nøglerne.
Private opkald. Med konsollen på et P25-system, Ring en radio i din positionsbar ringer en radio efter dets enheds-ID (slå Nød til for at ringe det som en nødsituation). Opkaldet bliver en flise af sig selv, Privat opkald: enhed 197, med Hold for at tale ligesom enhver kanal og Afslut. Radioer kan også ringe konsollen, på den enheds-ID, som dispatcherne transmitterer som: opkaldet vises som en flise markeret ringet ind (i rødt med NØD når radioen ringede som en nødsituation), hver dispatcher hører det, og det forsvinder, når enten side afslutter.
Advarselstoner. Send en advarselstone... på en kanal sender en af følgende: Advarsel 1, en fast tone på 1000 Hz i 3 sekunder; Advarsel 2, en krigende tone mellem 1000 og 1500 Hz; Advarsel 3, 1000 Hz pulser; eller en kort Bip. Tonen holder kanalen, mens den afspilles (flisen viser tone og din udvidelse), hver dispatcher, der overvåger kanalen, hører den gå ud, og på en P25-talegruppe går den, så snart hjem-RFSS'en giver kanalen.
Nødsituationer. Når en radio transmitterer som en nødsituation (dens nødknap), skifter dens flise til rød med NØDSITUTION og enheds-ID'et, serverloggen noterer det, og CAD underrettes straks (nedenfor). Nødsituationen forbliver aktiveret på hver console efter radien holder op med at tale, indtil en dispatcher trykker Godkend: flisen siger derefter, hvem der godkendte det og hvornår, og CAD modtager et radio.emergency.ack-begivenhed. Godkendelse navngiver den viste enhed: hvis en anden enheds nødsituation erstattede den et øjeblik før, afviser BitVoice og flisen viser den nye, så en anden nødsituation aldrig undertrykkes ved en fejl. CAD kan godkende gennem API på samme måde: POST /api/radio/channels/{id}/ack med {"unit": "bee07.1d5.00044d"} (eller radio-ID'et, "1101") returnerer 409, når kanalenes nødsituation nu er en anden enheds; uden en brødtekst godkender den, hvad kanalen indeholder.
Simulselect. For at sige noget på flere kanaler på én gang skal du markere Vælg på hver kanal og derefter holde Tal på N kanaler i baren over fliserne. Det er enten alt eller intet: hvis en anden dispatcher taler på en af dem, bliver ingen af dem aktiveret, og du bliver underrettet om, hvilken kanal det er.
Radio positioner. Radioer rapporterer, hvor de er over radio systemets data side, ikke tale siden console joiner: P25 lokalitetstjeneste, Motorolas LRRP eller en leverandørs egen, samlet af radio butikkens data eller AVL gateway. Lad gatewayen (eller et lille script ved siden af) POST hver rapport til BitVoice med en API-token: POST /api/radio/locations med {"unit": 1205, "lat": 40.2633, "lon": -76.8823, "speed": 42, "heading": 90, "accuracy": 8, "at": "2026-10-15T14:05:00Z"}, eller en liste over op til 500 (hastighed i km/t, retning i grader, nøjagtighed i meter; alle tre og tiden er valgfrie). Radio positioner på console listen så viser hver radios sidste fastlæggelse, med dets navn, og CAD modtager hver enkelt som en radio.location begivenhed. BitVoice afkoder ikke LRRP eller P25 lokalitetstjenesten selv.
Radio-navne. Under Radio-navne kan du navngive radioer efter deres P25-enheds-ID (1205 er "Motor 5", for eksempel): flisen viser navnet ved siden af enheden, mens den taler, og radio-loggen og CAD's begivenheder medfører det.
Radio-log og optagelse. Slå Optag hver transmission til under Optagelse og CAD: hver transmission på hver kanal, hørt eller sendt, gemmes som en optagelse med en linje i Radio-loggen: hvornår, kanalen, hvem (radioens enhed eller dispatcheren udvidelse), hvor lang tid og om det var en nødsituation, en advarselstone, krypteret eller et privat opkald. En hørt transmission starter med den første tale og slutter 1,5 sekund efter det sidste ord. Find en enhed, dispatcher eller kanal med søgefeltet og tryk Afspil for at lytte. Optagelser gemmes så længe opkaldsoptagelser gemmes (Indstillinger, Optagelse).
Radio data to CAD. Give CAD's address under Send radio events to CAD at (and a shared secret if CAD wants one; it is sent as a bearer token and never shown again). BitVoice then POSTs each event (radio.unit, radio.emergency, radio.emergency.ack, radio.transmission and radio.location) as JSON, {"type": ..., "agency": ..., "data": {...}}: radio.unit when a radio starts talking on a channel (its unit ID, WACN, system, the channel, emergency, encryption), radio.emergency for an emergency (tried three times if CAD does not answer), and radio.transmission for each finished transmission as it appears in the radio log. CAD can also read the log itself with GET /api/radio/log (filters: channel, q, since, until). A CAD that is down never holds up the console. P25 radios' GPS positions are not part of this: they travel over P25 packet data (location services), not over the ISSI's voice.
Ikke her endnu: P25-fase 2 (TDMA)-tale i sin egen halv-rates kodek. En fase 2-system fungerer med consolen, når dens ISSI-samtalegrupper indeholder fuld-rates (fase 1)-tale eller dens transkoder konverterer dem, hvilket er almindeligt: spørg din P25-administrator. En samtalegruppe, hvis tale ankommer i blokke, som denne console ikke kan afkode (halv-rates tale sendt uden transkodning, sandsynligvis), viser Stille her på dens flise, mens en radio taler, så ingen tager stilheden for en stille kanal. Afkodning af den kræver to ting, som BitVoice ikke har: halv-rates kodeken (AMBE+2, patenteret indtil 2028: en licens fra dens ejer eller en licenseret hardware-kodek-chip) og ISSI's halv-rates tale-blok-format (TIA-102.BACA-B, solgt af TIA, ikke offentligt).
NG911 Core Services (ECRF, ESRP, LVF, BCF, LIS, logging)
/coreTil en stat eller regional 911-myndighed, der kører sin egen NG911-kernel: BitVoice besvarer LoST som ECRF og ruter hvert 911-opkald som ESRP til PSAP, der betjener opkaldsstedet.
Serviceområder. Eksporter jeres grænser fra GIS som GeoJSON-polygoner (PSAP-grænser for urn:service:sos; politi-, brand- eller EMS-områder for urn:service:sos.police og de andre) og upload dem på Core services. En polygons name, uri og number-egenskaber læses; angiv en standard-PSAP-URI for dem, der ikke har en. Rediger et område for at tilføje de byer eller amter, det betjener, til opkaldere, hvis placering kun er en civile adresse. Prøv et sted viser, hvilket område besvarer en position eller en by, som en LoST-forespørgsel ville.
ECRF. Slå Besvar LoST-forespørgsler til og listen over adresser, der må spørges (jeres ESInet): andre elementer sender findService til /lost (RFC 5222) og får PSAP's URI. En bestemt service (sos.police) besvares fra dens egne områder først, derefter fra sos. Et sted, der ikke er dækket af nogen af jeres områder, kan gå til Skovguiden (RFC 5582: den nationale directory af ECRF'er): en rekursiv forespørgsel stilles der på forespørgerens vegne, og svaret returneres (begge servere er listet i svarets sti), og enhver anden forespørgsel får en omdirigering til den, og en forespørgsel, der allerede er gået gennem denne ECRF, afvisses som en løkke.
ESRP'en. Listen over PSAP'er: hver enkelt URI (som områderne navngiver den), trunken, der når den, og dens overflow-PSAP, og vælg standard-PSAP'en. Så send ESInets indgående 911-opkald til ESRP i Rutevalg (kapitel 8). Hvert opkald går til PSAP'en for dens placering (fra denne servers områder eller et eksternt ECRF via LoST), med dens placering og den service, det bad om, medført; når den PSAP ikke tager det, til dens overflow; uden en placering eller fra et sted, ingen område dækker, til standarden. Hver beslutning er i i3-loggen på 911-opkald (kapitel 77).
Policyregler. Når ECRF har valgt en PSAP, kontrolleres reglerne under Policyregler i rækkefølge, og den første, hvis betingelser alle er opfyldt, afgør: send opkaldet til en anden PSAP eller afvis det som beskæftiget. En regel kan se på servicen (kun brandopkald, f.eks.), PSAP, som ECRF valgte, en tidsplan (mens nattevagtscenteret er lukket), opkald uden placering, opkald, som BCF har markeret som mistænkelige, og forbindelsen, opkaldet kom fra. Hver beslutning er i i3-loggen som en RouteLogEvent, der nævner reglen.
Grænsekontrol (BCF). Med Check omkald fra ESInet aktiveret, kontrolleres hvert opkald fra en ESInet-trunk først: adresser under Afvis altid afvises, og det samme gør en adresse, der starter flere opkald per minut eller holder flere opkald på én gang, end du tillader (en telefoni-afvisningstjeneste sender oversvømmelser af opkald fra få kilder). Afviste opkald modtager 503 med Retry-After. Aktivér Lad opkaldet gå igennem markeret som mistænkeligt for at sende sådanne opkald videre i stedet og lade en politikregel afgøre (til et center, der screener dem, eller afvist); en rigtig opkaldsaktør i en oversvømmelse går ikke tabt. Grænsekontrol: seneste viser, hvad der blev afvist eller markeret. Check STIR/SHAKEN-signaturer kontrollerer den signerende opkalders ID (Identity-headeren) for hvert opkald, der bærer en, mod STI-roden, der er angivet under Opkaldsskærmning i Indstillinger: et opkald, hvis signatur mislykkes, går igennem markeret som mistænkeligt, og en politikregel kan sende det et andet sted, og det vises i BCF-loggen; et 911-opkald afvises aldrig på grund af det, og usignede opkald (de fleste i dag) bliver stående. Hvert opkald forlader BitVoice som en ny anmodning på egen hånd (BitVoice er en back-to-back-agent), der kun bærer de headers og bodies, som BitVoice forstår og videreformidler: placeringen, Yderligere Data og sessionen. Inspecter medie kontrollerer hver RTP-pakke af et ESInet-opkald, før den bruges eller videreformidles: pakker fra en adresse, der ikke er den, som opkaldets SDP gav, med en payload-type, som tilbuddet ikke nævnte, med headerlængder (CSRCs, udvidelse, padding), der ikke passer pakken, større end Største pakke (1.500 byte, hvis feltet er tomt), eller forbi Pakker per sekund (150, hvis feltet er tomt; G.711 ved 20 ms sender 50), bliver droppet og talt. Den første af hver type, derefter den 10., 100. og så videre, kommer i Grænsekontrol: seneste (som *medie droppet*) og i opkaldets noter. Opkaldet afsluttes aldrig på grund af dets medie: opkaldsaktøren beholder de gode pakker. Opkald fra CAMA-trunker kommer fra det lokale kortprogram og inspiceres ikke.
Adressevalidering (LVF). Upload din 911 GIS-adresse-data som GeoJSON i NENA GIS-data-modellen (NENA-STA-006): vejcenterlinjer med FromAddr_L, ToAddr_L, Parity_L, IncMuni_L og resten, og sted-/struktur-adressepunkter med Add_Number, St_Name, Inc_Muni. En LoST-forespørgsel med validateLocation="true" får så adressens gyldige, ugyldige og ikke-afprøvede dele i svaret (RFC 5222), så bærere og placeringsservere kan korrigere en adresse, før et 911-opkald nogensinde bruger den. Check en adresse gør det samme her: et præcist adressepunkt er den bedste match, derefter en vejsegment, hvis interval på vejens højre side indeholder nummeret (ulige og lige sider respekteres); staveformer som Street og St, North og N behandles ens.
i3-logtjenesten. Slå Kør en i3-logtjeneste til: de andre elementer i din kerne (ESRPer, BCFer, PSAPer) sender deres loghændelser (NENA-STA-010), hver signeret som en JWS med elementets certifikat i dets x5c-header, ved POST til /i3log/LogEvents fra de tilladte adresser. Hver kommer som en JWS i den fladde JSON-form (signeret eller usigneret med algoritme none, som en logtjeneste kan acceptere: markeret som ikke sporet til PCA), kontrolleres og gemmes, og svaret er loghændelsens ID. Læs tilbage med GET /i3log/LogEvents/{logEventId}; listen med GET /i3log/LogEvents (startTime, endTime, logEventType, limit, start); find ID'erne for et opkald eller en incident med /i3log/LogEventIds, /CallIds, /IncidentIds og /AgencyIds; og læs en opkaldstekstsamtale med /i3log/Conversations?callId=. GET /i3log/Versions siger, hvad denne tjeneste taler. Loghændelser modtaget viser en dags hændelser med, hvem har signeret hver. Hvert svar kontrolleres mod NENAs offentliggjorte OpenAPI-definition af tjenesten; tjenesten er endnu ikke testet med en anden leverandørs elementer.
PSAP-Credentialeringsselskab. Indsæt PCA'ens root-certifikater under PSAP-Credentialeringsselskab roots: et signeret loghændelses-ID modtages herefter kun, hvis dens signaturs certifikat er knyttet til en af dem (og ikke er udløbet), og vises med PCA. Uden dem kontrolleres kun signaturerne alene, og hændelsen vises som ikke sporet til PCA.
Lokationsposter (LIS). Slå Besvar lokationsanmodninger (LIS) til og upload en regneark (CSV) med lokationsposter: en overskriftsrække og på hver række enten et nummer (ALI-data, eksporteret), et netværk (en adresseinterval såsom 10.20.3.0/24, eller en enkelt adresse: et bygning, en etage, en VLAN, et Wi-Fi-netværk) eller en mac-adresse (en enhed: en bordtelefon, en vægkontakts switchport), derefter adressen som hno, rd, sts, unit, floor (eller flr), a3 (by), a1 (stat), pc og land, med lat, lon og radius hvor dette er kendt (andre navne, såsom phone, street, zip, subnet og ip, er også forstået). PSAP'er, legacy-netværksgateveje og telefoner beder herefter om /held (HELD, RFC 5985) fra de tilladte adresser og får en PIDF-LO. En anmodning navngiver sin enhed efter telefonnummer, IP-adresse eller MAC-adresse (RFC 6155); en anmodning, der ikke navngiver nogen, besvares for den adresse, den kommer fra, som en LIS på et kontor- eller campusnetværk gør. En adresse lokaliseres ved det smalleste netværk, der indeholder den, så en etages /24 sejrer over campus /16. En enhed uden post får HELD's locationUnknown; en identitet af en anden art (en NAI, en port) får notLocatable. En BitVoice PSAP peger sin Lokationsopslag (ALI) her. Find en nummer, adresse eller MAC-adresse kontrollerer en post og siger, hvilket netværk den kommer fra. En nummer, netværk eller MAC-adresse, der er nævnt igen, erstatter sin gamle post; Erstat hver post starter forfra. Kun de tilladte adresser besvares: en LIS, der besvarer for enhver adresse, den bedes om, må ikke være åben for alle.
The i3 web services. Under NENA i3 web services, switch on what this core offers the other elements of your ESInet, at /i3/<service>/v1, for the addresses under May ask only. Each answers as NENA's published OpenAPI definitions say (NENA-STA-010.3, the NENA911 repositories), and each has a tab under i3 web services:
- Policy Store (
/i3/PolicyStore/v1/Policies,/PolicyEnums): agencies store, update and delete their routing policies (Policy Routing Rules), each a JWS signed by the agency that owns it (the signer's certificate must name the owner, and come from the PCA when its roots are set). A policy is kept byte for byte as it came. The ESRP runs them: the OriginationRoutePolicy for This ESRP's incoming queue first, else the NormalNextHopRoutePolicy of the PSAP the ECRF chose. Of the rules whose conditions hold, the highest priority acts; when its route fails (busy, no answer within its rnaTimer, 20 seconds when it gives none), the next one does; a BusyAction answers 600 Busy Everywhere. Conditions taken: time periods, SIP headers, Additional Data, body types, location (circle or civic), call suspicion, queue state (BitVoice's own PSAPs), LoST service URN and Normal-NextHop, call source, request URI, incoming queue, and the SDP offer's media and languages; service state and security posture are taken as unknown (Unreachable and Green, as the standard says). Body-part, CAP and calling-number-verification conditions are not run: they count as false. Without a stored policy, the Policy rules above decide. The tab lists what is stored and lets you paste one, or sign one with this server's certificate. - Discrepancy reports (
/i3/DiscrepancyReports/v1): other agencies report problems with this server's services; each shows on the tab, where you answer it with a resolution, sent to the reporter. File a report sends one to another agency's DR service; its answer and later resolution show under Reports this server filed. - Bad actors (
/i3/BadActor/v1/BadActors, with the BCF): each call the BCF passes on carries its source's ID (Call-Info: <sip:ID>;purpose=emergency-source); a PSAP that finds that source attacking reports the ID, and the BCF refuses its calls, or raises their suspicion score for the policies, for A report lasts hours. Lift ends a report early. - Geocode and MSAG conversion (
/i3/Gcs/v1,/i3/Mcs/v1): civic address to position and back from the LVF's address points (the nearest within 150 m), and civic address to MSAG address (120 N MARKET STREET, HARRISBURG CITY, PA) and back, from the centerlines'MSAGComm_L/MSAGComm_Rfields. Answers are JSON objects, or XML when the asker asks for it. - Additional Data (
/i3/Adr/v1/AdditionalData?callerUri=): blocks you keep by caller (RFC 7852 XML), served by value, or by reference for an asker that wants JSON. One block per caller is served by value: the first kept. - Locator (
/i3/ServiceAgencyLocator/v1): this agency's own record (its ID from the 911 calls page, with its logging and discrepancy addresses) and the agencies you add. - Dequeue (
/i3/DequeueRegistration/v1/Registrations): positions or PSAPs sign up to take a queue's calls (this ESRP's queue, or a PSAP's URI); the ESRP sends calls for that queue to them, the most preferred first (preference 5 before 1), over the PSAP's trunk. - Test calls: a PSAP asks this core to send it test calls (
/i3/TestCall/v1/SendTestCalls/{agency ID}: every so many minutes, five at least, between two dates, with a location); BitVoice places each tourn:service:test.sosover the PSAP's trunk and keeps what came back. Place one now tries one. - PSAP states (SIP, not REST): Subscribe to each PSAP's queue and service state has the ESRP SUBSCRIBE (RFC 6665) to every PSAP listed, over its trunk, for
emergency-QueueStateandemergency-ServiceState(NENA-STA-010.3 4.2.1.3 and 2.4.2), for an hour at a time, renewed before it ends. What the PSAPs NOTIFY shows under PSAP states and is what the policy rules' queue state, service state and security posture conditions read. A PSAP whose queue says Inactive, Disabled, Full or ResourceExhausted (or holds its most calls), or whose service says Unstaffed, ScheduledMaintenanceDown, Overloaded, GoingDown or Down, is passed over for its overflow, and the call's notes say so; when every PSAP in the chain says it cannot take calls, the call is sent as listed anyway, never left with nowhere to go. A PSAP that does not answer the SUBSCRIBE is Unreachable (as the standard says a subscriber must assume) and is tried again each minute; one that refuses it (489, 603 ...) is tried again in ten minutes. - This server's states: Tell other elements this server's element, service and queue state answers SUBSCRIBEs for
emergency-ElementState,emergency-ServiceStateandemergency-QueueStatefrom the addresses under May ask (others get 603 Decline; a queue that is not this server's incoming queue, 488). The queue's length is the 911 calls not yet answered here, and it says Full at Most calls waiting in the queue (20 when blank); the service says Overloaded at this server's call limit, else Normal. NOTIFYs go out when the state changes, at most one a second, and once a minute regardless (the standard's default rates); their bodies are checked against NENA's notify-body schemas.
Testopkald ved en PSAP. En BitVoice PSAP besvarer et testopkald fra ESInet (urn:service:test.sos, NENA-STA-010.3 sektion 9, RFC 6881) på egen hånd: dens svar siger PSAP-navnet, servicen og den lokalitet, opkaldet kom fra, de første tre lydpakker sendes tilbage, og den afbryder. Et andet test fra samme sted inden for to minutter afvisses (486), ligesom et femte på én gang. En ESRP videreformidler et testopkald som et rigtigt, stadig markeret som et test. Slå Besvar testopkald fra på siden for 911-opkald for at afvise dem (404).
JWS-algoritmer: NENA-STA-010.3 kræver EdDSA med Ed448. Go's standardbibliotek, som BitVoice bruger til hver kryptografisk trin, har Ed25519 men ikke Ed448, så EdDSA-signaturer kontrolleres med Ed25519-nøgler, og ECDSA- og RSA-signaturer accepteres også; en Ed448-certifikat afvisses.
Meant du. En adresse, der ikke er gyldig, får op til fem forslag fra samme data, bedst først, hver med en begrundelse: en gade et par bogstaver væk (en ombyttet bogstavspar tæller som ét), samme gade i den næste by, eller det nærmeste nummer gaden har, på samme side når det kan (lige numre forbliver lige). Brug udfylder et forslag. En position med adressen. Giv en bredde- og længdegrad (og positionens radius, når den er kendt) med adressen: positionen kontrolleres mod adressens egen adressepunkt, med tilladelse til dets radius og 100 m mere (størrelsen af en grund og GIS-fejl). Svaret giver afstanden og om de to er enige, og hvis de ikke er, det nærmeste adressepunkt ved positionen. En adresse, der kun er kendt fra vejmidter, har ingen punkt at kontrollere mod, og svaret siger det. LoST's validateLocation har ingen plads til nogen af delene, så operatører, der spørger via LoST, får kun valideringen.