BitVoice-manual
Innhold
- Del 1. Komme i gang
- Del 2. Hvor samtaler går
- 16. Samtaleflyt
- 17. Ringgrupper
- 18. Køer
- 19. Utgående oppkobler
- 20. Lyder: prompter, språk og ventemusikk
- 21. Menyer (auto attendant)
- 22. Navn-oppkoblingsskatalog
- 23. Innkobling (DISA)
- 24. Taleboter (AudioSocket)
- 25. Dag/natt-omkoplinger
- 26. Timeplaner
- 27. Skript (JavaScript og Lua)
- 28. AI-resepsjonist, voicemail-triage og spørsmål
- 29. Postkasse
- 30. Tilbakekall
- 31. Samtalelenker og nettsamtaler
- Del 3. Hverdags samtaler
- 32. Funksjonskoder, videreformidling og hurtigvalg
- 33. Ansattportalen
- 34. Konferanserom
- 35. Paging og høyttalere
- 36. Hot desking
- 37. Hotell og vekkingoppkall
- 38. Kontakter på hver telefon
- 39. Kalendere og ikke forstyr
- 40. Mobilappene
- 41. Videotelefoner
- 42. Faks: sending og mottak, faks-maskiner og analoge telefoner
- 43. Innboks: web-chat, WhatsApp og Messenger
- 44. Bedriftsteksting (SMS)
- 45. Overføringsorienteringer
- Del 4. Kunder og innsikt
- 46. Aktive oppringninger
- 47. Oppringningshistorikk
- 48. Kundetidslinje
- 49. CRM: oppringerkort og oppkallshistorikk
- 50. Innsikt i samtaler for overordnede
- 51. Oppringingsopptak og kortbetalinger
- 52. Innspillings-samtykke
- 53. Samtalekvalitet
- 54. Kostnader og budsjetter
- 55. Ringende ID-reputasjon og merket samtale
- 56. Spam-beskyttelse og STIR/SHAKEN
- Del 5. Kjøre BitVoice
- 57. Administratorene
- 58. Enkelt innlogging
- 59. Bedriftskatalog (Active Directory og LDAP)
- 60. Sikkerhet
- 61. Endringer, sikkerhetskopier og import
- 62. Oppdateringer
- 63. Flere servere som ett telefonisystem
- 64. Hvor dataene lagres (SQLite eller PostgreSQL)
- 65. Vert for andre organisasjoner
- 66. Kodeker og lyd
- 67. Microsoft Teams (Direct Routing)
- 68. Importér
- 69. Konfigurasjon som kode
- 70. Asterisk-kompatibilitet (AMI, ARI og AGI)
- 71. AI-assistenter (MCP)
- 72. Arkiv
- 73. Juridisk varetekt
- 74. Målinger: Prometheus, OpenTelemetry, Grafana, SNMP og oppkallshistorikk
- 75. Oppkallsgenerator
- 76. SIP-sporing
- Del 6. Offentlig sikkerhet: lab-sporet
Komme i gang
Fra en ny installasjon til et fungerende telefonsystem: utvidelser, telefoner, et telefoniselskap, hvor samtaler går, nødsamtaler fra kontorene, og hvordan du forteller at alt er klart.
Komme i gang
/BitVoice er et fullstendig telefon-system i ett program: bytte som telefoner logger inn på, menyene og køene ringere går gjennom, voicemail, opptak, konferanserom, faks og tilkoblinger til telefon-selskaper. Alt settes opp i nettleseren, på skjermene denne håndboken beskriver. Det finnes ingen konfigurasjonsfil å redigere og ingenting annet å installere.
Hva du trenger
- En datamaskin å kjøre det på: en liten kontor-server, en virtuell maskin, en sky-eksempel eller for et første blikk din egen bærbare datamaskin. Linux, macOS og Windows fungerer alle. En Raspberry Pi 4 kjører en liten kontor.
- Telefoner: skrivebords-telefoner fra Yealink, Poly, Grandstream eller Snom settes opp automatisk; enhver annen SIP-telefon eller softphone fungerer med sine egne innstillinger; og hver nettleser er en telefon også.
- En trunk (en konto med et telefon-selskap) for å ringe utenom numre og bli ringt. Du kan starte uten en: utvidelser ringer hverandre og ekko-testen.
Første start
Start BitVoice og åpne adressen den skriver ut (på en skrivebord åpner nettleseren seg selv). Web-grensesnittet er HTTPS bare, på denne datamaskinen også. Til du installerer et sertifikat av din egen (Innstillinger, Sertifikat), bruker BitVoice ett det har laget selv, så nettleseren advarer en gang: velg å fortsette til siden. Oppsettsguiden spør fire ting: organisasjonens navn og land, den første administrator-passord, den første utvidelsen og ditt telefon-selskap hvis du har en. Landet bestemmer nød-numre, tone ringere hører og måten telefon-numre skrives på.
Første time
- Utvidelser: en per person eller skrivebord. Hver har et nummer og en SIP-passord. Åpne Utvidelser (kapittel 3)
- Telefoner: koble en skrivebordstelefon, softphone eller nettleser-telefon til hver utvidelse. Åpne Telefoner (kapittel 4)
- Trunk: ditt telefoniselskapskonto, så du kan ringe utenom numre og motta samtaler. Åpne Trunk (kapittel 7)
- Samtale-ruting: hvor samtaler fra utenom går (en person, en ring-gruppe, en meny), og hvilken trunk som brukes for utenom-samtaler. Åpne Samtale-ruting (kapittel 8)
- Helse forteller deg hva som ennå mangler, nødsamtaler først. Åpne Helse (kapittel 13)
Deretter gjør en test-oppringing: fra enhver telefon tast *43, ekko-testen. Du hører deg selv tilbake, hvilket beviser at lyd fungerer begge veier.
Installerer det i ett 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 laster ned den siste utgaven for datamaskinen, sjekker den mot utgavens SHA-256-sum og BioDreams utgave-signatur (med OpenSSL 3, eller ellers med OpenSSHs ssh-keygen, som Windows 10 og 11, macOS og Ubuntu 20.04 har; ssh-keygen sjekker utgaver fra v0.1.14 og oppover), og installerer den som en tjeneste som starter selv:
- Linux:
/usr/local/bin/bitvoice, enbitvoice-systembruker, data i/var/lib/bitvoice, systemd-tjenestenbitvoicemed web-grensesnittet på port 443. Når ufw eller firewalld er på, åpner den 443, SIP (5060, 5061) og lydportene for samtaler (10000 til 20000 UDP). Den skriver ut adressen for å åpne og innstillingsskoden som hjelpen spør om fra en annen datamaskin. - macOS: BitVoice i din Applikasjonsmappe (
~/Applications/BitVoice.app), startet når du logger inn, web-grensesnittet på port 8443, data i~/Library/Application Support/BitVoice(åpen bare for deg) og logger i~/Library/Logs/BitVoice(bitvoice.log, holdt under 10 MB). Åpne BitVoice fra Launchpad eller Spotlight for å nå web-grensesnittet; når den ble stoppet, starter den det igjen. Den kjører undercaffeinate, så Macen ikke går i søvn mens BitVoice kjører: en sovende Mac svarer ikke på samtaler, og selv kortvarige vedlikeholdssøvner stopper alt i mange sekunder. Skjermen kan likevel slå av. Kjør manuelt, brukcaffeinate -i -s ./bitvoicefor samme.
For en Mac som svarer på samtaler mens ingen er logget inn, installer med sudo (curl -fsSL https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.sh | sudo sh): da er BitVoice i /Applications, starter med Macen, kjører som en skjult bruker på egen hånd (_bitvoice), betjener web-grensesnittet på port 443, holder dataene i /Library/Application Support/BitVoice og loggene i /Library/Logs/BitVoice, og Macens brannmur, når den er på, lar den akseptere forbindelser. En av de to per Mac: installatoren nekter den andre mens en er der. Når Macens brannmur er på, spør en BitVoice installert for deg om den kan akseptere inngående forbindelser: tillat det, så telefoner kan koble til. Hvis noe allerede bruker porten, navngir installatoren det og stopper (velg en annen med BITVOICE_HTTPS=:8444). sh install.sh --uninstall (med sudo for Macens egen) fjerner den og holder dataene; --purge fjerner dataene og loggene også. Prøvd på macOS 26 (Apple-silikon), installert for en person: installert, signatur sjekket med Macens egen ssh-keygen, en andre start på samme data nektet, tilbake etter programmet ble drept, startet igjen fra appen, oppgradert på plass, et manipulert program nektet, en port i bruk nektet, avinstallert og beholdt dataene, reinstallert på dem, og renset med ingenting igjen. Installasjonen for hele Macen (sudo) er prøvd på hver endring på GitHub's macOS-maskiner (Apple-silikon): kjører som _bitvoice på port 443, en brukerinstallasjon like ved siden av nektet, tilbake etter programmet ble drept, oppgradert, renset med ingenting igjen (den skjulte brukeren også). Intel-Mac er ikke prøvd ennå.
- Windows: som administrator,
C:\Program Files\BitVoice, startet med Windows, data iC:\ProgramData\BitVoice, og en brannmurregel for private og domenenettverk; ellers for deg alene, startet når du logger inn. Den fungerer i Windows PowerShell 5.1 (hva Windows Server har) og i PowerShell 7, og i 5.1 startet fra innen 7. BitVoice skriver sin logg tilbitvoice.logi data-mappen (holdt under 10 MB, den eldre delen ibitvoice.log.1), og installatoren skriver ut innstillingsskoden hjelpen spør om fra en annen datamaskin. Windows kaller et nytt Wi-Fi- eller nettverk Offentlig inntil det blir fortalt noe annet, og brannmurregelen lar ingenting inn der: for et hjemme- eller kontornettverk sier installatoren hvordan du kan gjøre det Privat (Innstillinger, Nettverk og internett, nettverkets Egenskaper); for en skytjener skriver den ut regelen du må legge til (åpne portene i leverandørens brannmur også). Installert som administrator, er data-mappen bare lesbar for administratorer (den inneholder databasen og nøklene), og Start-menyens BitVoice åpner web-grensesnittet; installert for deg, starter Start-menyen BitVoice, eller åpner det når det allerede kjører. Uansett er det i Innstillinger, Apper, Installerte apper, som fjerner det og spør om du vil fjerne dataene også. Prøvd på Windows 11 (som administrator og ikke) og på Windows Server 2022 på Amazon EC2: installert, nådd fra utsiden, kjører igjen etter en omstart. - Prøvd på: Ubuntu 24.04 og 20.04, Debian 12 og Fedora 42 (hver med systemd): installert, signatur sjekket, en andre start på samme data nektet, tilbake etter programmet ble drept, oppgradert på plass, et manipulert program nektet, avinstallert og beholdt dataene, reinstallert på dem, og renset med ingenting igjen.
- Linux på en skytjener: adressen den skriver ut er maskinens egen, private; installatoren sier det. Åpne serveren ved dens offentlige adresse eller navn, med 443, SIP og lydportene åpne i leverandørens brannmur.
Run the same command again to upgrade (or use Updates (kapittel 62)). sh -s -- --version v0.1.5 (after the pipe) picks a release; --uninstall removes the program and service and keeps the data, --purge removes the data too. On Windows, save the script and run .\install.ps1 -Version v0.1.5, -Uninstall or -Purge, or remove it in Installed apps. For a server kept off the internet, copy the release's archive and SHA256SUMS into a folder and set BITVOICE_FROM to it.
Hvor det kjører
BitVoice kjører på Linux, macOS og Windows.
| System | Hvordan starte det | Hvor dataene er |
|---|---|---|
| Linux | ./bitvoice (eller systemd-tjenesten i utgaven) | ~/.config/BitVoice |
| macOS | ./bitvoice | ~/Library/Application Support/BitVoice |
| Windows | dobbeltklikk 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.
Portene det bruker
| Port | Hva for |
|---|---|
| 5060 UDP og TCP | SIP: telefoner og trunker |
| 5061 TCP | SIP over TLS (kryptert signalisering) |
| 4569 UDP | IAX2-trunker, bare når en er konfigurert |
| 1720 TCP | H.323-trunker, bare når en er konfigurert |
| 2000 TCP | Skinny (SCCP)-telefoner, bare når de er slått på |
| 2727 UDP | MGCP-gateway, bare når de er slått på |
| 10000–20000 UDP | lyden av samtaler (RTP), konfigurert i Innstillinger |
| 8443 TCP | denne web-grensesnittet, HTTPS bare (vanlig HTTP sendes videre til HTTPS) |
Hvis en annen telefon-system allerede har 5060, tar BitVoice neste ledige port og Helse sier det.
Alt i web-grensesnittet
Hver innstilling har en skjerm, og hver skjerm har et kapittel her. Ingen ting trenger en konfigurasjonsfil, en kommandolinje eller et annet verktøy. For automatisering, er de samme skjermene et REST-API, og konfigurasjonen kan følge en fil i Git (Konfigurasjon som kode (kapittel 69)), men ingen av delene er noen gang nødvendig.
Hva BitVoice er for
BitVoice er først og fremst et telefon-system for kontorer og kontakt-sentre, og en vertet telefon-tjeneste for leverandører: alt i de fem første delene av denne håndboken. 911-svar-profilen, radio-dispatch-konsollen og NG911 Core Services er en separat lab- og design-partner-spor (Offentlig sikkerhet (kapittel 77)): de er utenfor menyen til de er slått på i Innstillinger, og ikke sertifisert for live-bruk. Nød-samtaler fra dine egne telefoner er ikke en del av dette sporet; de fungerer på hvert telefon-system fra første start.
Finner veien
- Trykk ⌘K (Ctrl+K) hvor som helst for å hoppe til en skjerm, eller skriv inn et navn eller nummer på en utvidelse for å åpne den.
- På en telefon, er menyen bak ☰-knappen øverst til venstre (og søk ved siden av, øverst til høyre); å velge en side lukker den igjen.
- Hver skjerm har en Hjelp-lenke øverst til høyre som åpner kapitlet sitt i denne håndboken.
- Endringer beholder hver versjon av konfigurasjonen: du kan se hva som er endret og angre det.
- Tre temaer (Midnight, Dark og Light) er på bunnen av menyen.
Hvor moden hver del er
Hvor langt hver del er bevist, åpent. Felttestet: kjørt mot virkelige systemer over et virkelig nettverk (Amazon EC2, internettet, virkelige leverandør-tjenester). Sjekket mot en referanse: testet mot en uavhengig implementering eller standardens egne data. Programtestet: BitVoices egne tester og nettlesertester bare, ikke ennå med virkelig utstyr eller kontoer. Lab: offentlig-sikkerhets-deler, ikke sertifisert.
| Område | Modenhet | Hva det hviler på |
|---|---|---|
| SIP-trunker: registrering, inn- og utgående samtaler, ringeidentitet, beskjeftiget, nøkler (RFC 4733) | Felttestet | en kommersiell operatør, SIP.US (demonstrationskonto, fra EC2): registrering og utgående samtaler til det offentlige telefonnettet over UDP og over TLS med operatørens sertifikat kontrollert; MOS 4,39, ingen tap. Innkommende samtaler fra det offentlige telefonnettet: T38Fax (faxsamtaler til dens nummer, registrering over UDP). Asterisk som operatør over internettet på EC2; MOS 4,4. Kamailio 5,7 (registrering med digest-signering over TLS, inn- og utgående samtaler, nøkler) og FreeSWITCH 1,11 (TLS og SRTP, inn- og utgående samtaler, G.722 til G.711) som den fjerne enden; MOS 4,39 |
| Skrivebords telefoner over SIP | Felttestet | Asterisk som skrivebords telefon over internettet. Reelle Yealink-, Poly- eller Grandstream-telefoner er ikke prøvd enda |
| Netleser-telefon (WebRTC) | Felttestet | fra utsiden til EC2; Chromium-nettleser-tester med lyd begge veier |
| To servere, en PostgreSQL, feilover | Felttestet | kill -9 og planlagt stopp på EC2: samtalen fortsetter, operatørlinjen flyttes |
| En-kommando-installasjon | 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-silikon (for en person, og med sudo for hele Mac-en i CI); tilbake etter omstart |
| Kapasitet | Felttestet | 2 000 samtaler samtidig, ingen tap, MOS 4,41, på en 16-vCPU c7i.4xlarge (om lag 10 vCPUs i bruk); 200 samtidig på c7g.large, c7i.large, t4g.small, en M4 og Lightsail-nano. Ved 2 000: jitter 4,0 ms for 95 % av samtaler, lengste gap mellom pakker 74 ms, lengste garbage-samlingpause 4,2 ms |
| FreePBX-migrering (Import) | Felttestet | en ekte FreePBX 17,0,33-sikkerhetskopi (70 MB) importert hele; andre fra FreePBX' egne formater |
| AI-transkript, sammenfatninger, resepsjonist | Felttestet | en ekte modell gjennom OpenRouter |
| Fakta og sammenfatninger uten språkmodell | Programvaretestet | oppfunne 911-samtaler bare: 23 av 43 fakta (53 %) på den lukkede mengden, 3 fakta ingen ventet; 41/41 trening, hold-out 27/40 kald. Aldri målt på ekte samtaler. |
| Tale til tekst på denne serveren (whisper) | Felttestet på macOS og Linux | whisper-server 1,9,5 kjørt av BitVoice: på en Mac, og på Ubuntu på EC2 (x86-64), der den skrev live-samtale- og voicemeldingstranskriptene i telefonappens felttest; nedlastinger for hver plattform bygget og prøvd i CI |
| Arkiv til S3, hemmeligheter fra AWS Secrets Manager | Felttestet | ekte AWS, vår egen SigV4 |
| SNMP-overvåking og feller | Felttestet | net-snmp's snmpwalk og snmptrapd |
| Let's Encrypt | Felttestet | utsteder og fornyer den offentlige demoens sertifikat |
| Maskinbilder (AWS) og konfigurasjon som kode | Felttestet | en EC2-bilde bygget av deploy/cloud/build-images.sh fra Ubuntu 24,04: hver server fra det starter nytt; deploy/terraform med OpenTofu 1,13 (opprett, endre, ingen drift, ødelegg). Azure-bilder er ikke prøvd |
| IAX2-trunker | Kontrollert mot en referanse | Asterisk 23 |
| Full ICE bak NAT (STUN og TURN-klient) | Kontrollert mot en referanse | Chromiums ICE-agent (vertskandidater og relé bare), JsSIP-softtelefoner med BitVoices tilbud, coturn 4,18 og BitVoices egen TURN-server som reléer, mDNS-vertsnavn fra Chromium løst. Ikke prøvd fra en server bak en ekte NAT-router enda |
| ICE-gjenopptak (en telefon som endrer nettverk midt i en samtale) | Kontrollert mot en referanse | Chromium gjenopptar ICE på en nettleser-telefonsamtale (BitVoice som ICE-lite og som en fullstendig agent) og SIP.js 0,21 gjenopptar ved re-INVITE over SIP over WebSocket: nye legitimasjoner begge veier, et nytt kandidatpar, lyd hver halvannen sekund gjennom gjenopptak. Ikke prøvd på en telefon som faktisk flytter fra Wi-Fi til et mobilnett |
| SIP History-Info og Diversion (videreførte samtaler) | Kontrollert mot en referanse | Asterisk 20s PJSIP begge veier: dens videreførte samtaler lest av BitVoice, og BitVoices videreføringer lest av Asterisks REDIRECTING() fra History-Info alene og fra Diversion alene; RFC 7044-innstillinger beholdt og utvidet på en videreføring på. Ikke prøvd med en operatør eller Teams som sender dem |
| Bedriftskatalog (LDAP, Active Directory) | Kontrollert mot en referanse | OpenLDAP 2,4 (StartTLS og LDAPS, 1 203 personer lest gjennom sidning forbi dens 1 000-grense, grupper, innlogging) og Samba 4s Active Directory (LDAPS, sidning forbi 1 000, disabled konti utelatt, nestede grupper for ringegrupper og roller). Ikke prøvd mot Microsofts egen Windows Server-domenekontroller |
| ARI (Asterisk REST-grensesnitt) | Kontrollert mot en referanse | hver operasjon av Asterisks publiserte ARI kalt og dens svar kontrollert mot modellens påkrevde felt; ari-client 2,2,0, Asterisks JavaScript-bibliotek, leser /ari/api-docs og kjører en applikasjon |
| Alle-video-rom (SFU, simulcast) og skjermdele | Kontrollert mot en referanse | Tre Chromium-nettlesere i ett rom, hver sender tre størrelser (VP8-simulcast) og mottar de to andre; størrelser skiftet på nøkkelrammer når fliser vokser og krymper. Kameraer og en delt skjerm (Chromiums egen skjermfanging) i et H.264-rom. Ikke prøvd med Firefox eller Safari, over internettet, eller med mer enn tre kameraer; H.264-simulcast velger lag ved nettleserens rekkefølge bare. |
| AGI og FastAGI (Asterisk-gatewaygrensesnitt) | Kontrollert mot en referanse | hver kommandos svar sammenlignet med Asterisk 20,6s over FastAGI; en FastAGI-server skrevet med pyst2 som kjører en samtale; EAGI-lyd til et program. Ikke prøvd med en produksjons-IVR |
| AI-assistenter over MCP | Kontrollert mot en referanse | den offisielle MCP TypeScript SDK (1,32,2) som klient: verktøy liste og kalt med en API-nøkkel over Streamable HTTP (protokoll 2025-11-25), og dens OAuth-innlogging fra ende til ende (oppdagelse, registrering, PKCE, nøkkel, fornyelse); samtykkessiden i Chromium; stdio-broen mot en testserver. Ikke prøvd med Claude, ChatGPT eller en annen assistent selv, som trenger en server som er tilgjengelig fra internettet med et pålitelig sertifikat. |
| Microsoft 365 og Google Workspace (kontakter og kalendere) | Programvaretestet | mot stand-ins av Microsoft Graph (brukere, organisasjonskontakter, kalender getSchedule, klient-credentials-token) og av Googles People API, Calendar freeBusy og JWT-bærertoken, skrevet fra deres publiserte referanser; stand-in-ene sjekker hva BitVoice sender (JWT-signaturen og krav, sidning, forespørselskropper). Ikke prøvd med en ekte Microsoft 365-leietaker eller Google Workspace-domene. |
| Skjermene på 14 språk | Programvaretestet | hver del av tekst skjermene viser (om lag 5 000, fra koden: JSX-tekst, strenger og serverens meldinger) maskinoversatt av Llama 3,3 70B til 13 språk, 99 % beholdt av sjekken (samme placeholders, adresser og kode uendret); tysk tegnet gjennom nettleser-tester (innlogging, meny, søk, skjema, tilbake til engelsk). Ikke gjennomgått av en person på noe språk. |
| H.323-trunker | Kontrollert mot en referanse | H323Plus 1,28 (dens simph323 som spiller og recorder WAV-filer) på EC2: samtaler begge veier med Fast Connect og G.711, hver ende hører den andres tone, MOS 4,39; samtaleopprettelse også med Asterisks chan_ooh323 (hvis eget lyd er ødelagt i Asterisk 22) |
| SIP over WebSocket | Kontrollert mot en referanse | JsSIP og SIP.js |
| Kodek: GSM, G.726, iLBC, MP3-holdemusikk | Kontrollert mot en referanse | ffmpeg, RFC 3951-referanseprogrammet og minimp3, prøve for prøve |
| Kodek: G.711, G.722, G.729, Opus, Speex | Kontrollert mot en referanse | G.711 og G.722 byte for byte og prøve for prøve med spandsp; G.729s dekoder prøve for prøve på alle syv av ITUs egne Annex A-testvektorer (bcg729 er ikke), dens encoder samarbeider med bcg729 på samme kvalitet (G.729 krever ikke at encodere matcher); Opus-pakker dekodet av libopus 1,6,1 og libopus-pakker dekodet som libopus gjør; Speex-pakker og lyd identisk til libspeex 1,2,1; Opus-samtaler med Android-appen |
| Kodek: AMR-NB, AMR-WB | Kontrollert mot en referanse, med en kjent gap | AMR-WB dekoder som opencore-amr prøve for prøve, og på 3GPPs egne TS 26,174-testsekvenser matcher 3GPPs dekoder nøyaktig på 167 av 198 og er aldri målbart under; AMR-NB-encoder ramme for ramme med opencore-amr, men dens dekoder er nær, ikke nøyaktig (om lag 31 dB fra opencore). Begge kommer fra de fikserte goamr-bibliotekene |
| Kodek som føres uendret: G.722.1 (Siren 7), G.722.1C (Siren 14), G.719, Codec2 | Programvaretestet | egne tester: tilbudt med deres båndbredde eller modus, svart, pakker begge veier byte for byte; ikke konvertert (ingen gratis referansekode BitVoice kan levere for G.722.1 og G.719). Ikke prøvd med en ekte Polycom eller romsystem enda |
| ISDN PRI og BRI, T1/E1 | Kontrollert mot en referanse | libpri (Asterisks), begge sider; og på EC2 gjennom den ekte DAHDI 3,4-kernel-drivere (to spann koblet sammen i kernelen, Asterisk 20s chan_dahdi som telefonoperatør): samtaler begge veier med numre og navn, alle 23 kanalene samtidig, MOS 4,39. Ingen fysisk kort eller linje ennå |
| MFC-R2, E&M | Kontrollert mot en referanse | OpenR2; MF-toner ved våre egne tester. Ingen ekte kort eller linje prøvd |
| SS7 (ISUP, MTP, linksett med flere linker med ombytte) | Kontrollert mot en referanse | libss7 (Asterisks chan_dahdi-bibliotek), ITU og ANSI. Ingen ekte operatør-forbindelse prøvd |
| Faks (T.30, T.38) | Felttestet | en faksoperatør, T38Fax (gratis prøve, fra EC2): BitVoice sender en faks over det offentlige telefonnettet til dens eget nummer og mottar den, begge over T.38 (2 sider, 14 400 bit/s, sidene ankom intakt; registrering med brukernavn og passord); og passerer en faks gjennom mellom en faks-maskin på en gateway (Asterisk med spandsp, som står for en) og T38Fax, ut og tilbake, 2 sider på 14 400 bit/s begge veier: en gang alle på G.711 (gatewayen nektet T.38) og en gang skiftet til T.38 på begge sider. spandsp (gjennom Asterisk 20) på EC2: mottar og sender over T.38 med feilkorreksjon, og passerer faks mellom to andre maskiner over T.38 og over G.711. Ingen hårdvar-faksgateway prøvd, og T38Fax ba aldri om T.38 selv, så en operatørs switch nektet av gatewayen ble ikke sett |
| Konfigurasjon: Yealink, Poly, Grandstream, Snom, Fanvil, Cisco, Mitel, Sangoma, Algo, CyberData | Programvaretestet | leverandørenes dokumenterte formater; ikke på ekte håndapparater |
| Skinny (SCCP)-telefoner, MGCP-gateway | Kontrollert mot en referanse | Skinny: telefoner fra det åpne mwicat/sccp-biblioteket, hver melding lest av Wiresharks dissektor, størrelser som Asterisks chan_skinny; MGCP: Yates MGCP-gateway (gjenopptak, midlertidige svar, bekreftelser; den har ingen analoge porter, så ingen samtale). Ingen Cisco-telefon eller gateway-hårdvar prøvd |
| Microsoft Teams Direct Routing | Programvaretestet | mot en simulert Microsoft-proxy som følger Microsofts publiserte Direct Routing SIP-regler (OPTIONS, Contact, user=phone, klient-sertifikat, overføringer Teams ber om ved REFER med x-m og x-t); ingen Teams-leietaker prøvd: Microsoft tilbyr ingen gratis (Teams Phone-lisenser) |
| Hotell (FIAS) | Kontrollert mot en referanse | hver post BitVoice sender kontrollert mot Oracles publiserte FIAS 2,20,23-specifikasjon (lenke start, lenkeposter, innlegg, våkne svar); egne tester. Ikke ennå mot Opera selv |
| Tekstmeldinger, WhatsApp, Messenger, web-chat | Kontrollert mot en referanse (Twilio, Telnyx, Bandwidth, Vonage, TextMagic, WhatsApp) | Tekstmeldinger gjennom Twilio, Telnyx, Bandwidth, Vonage og TextMagic, og WhatsApp-tekstmeldinger, mal og mal-liste, mot mock-objekter bygget fra leverandørenes egne publiserte OpenAPI-specifikasjoner (Stoplight Prism, nektet alt som ikke er tillatt av spesifikasjonen; TextMagics er den som dens egen klient er generert fra). Vonages viste at nøkkelen hører hjemme i HTTP Basic, ikke lenger i skjemaet. SignalWire snakker Twilios API; Plivo, Flowroute, VoIP.ms og Messenger publiserer ingen spesifikasjon og er kontrollert mot stand-ins skrevet fra deres dokumentasjon. Ingen live-konto prøvd |
| CRM-kontakt-kort, Azure Blob, Azure Key Vault | Kontrollert mot en referanse | EspoCRM (en ekte åpen kilde-CRM, i Docker) for kontakt-kort; Microsofts Azurite-emulator for Blob-opplasting (container-SAS, nektelser); Lowkey Vault for Key Vault med en managed identitet. Ikke ennå mot Azure selv eller en vert CRM |
| Spam-filtering: robot-test, ukjente ringere, spam-database, *32, forslag | Programvaretestet | BitVoices egne tester: en operatør som ringer inn over SIP og trykker nøkler (RFC 4733) på robot-testen, består og mislykkes den; kjente, alltid-tillatte og nødsituasjon-ringer samtidig; spam-databasen mot en stand-in som svarer på måten Twilio dokumenterer sin Lookup med Nomorobo-tillegget (ingen Twilio-konto prøvd); *32 fra en skrivebords-telefon; forslag fra samtale-logger; innstillingene gjennom nettleser-tester. Ikke ennå prøvd mot ekte robocall eller en betalt database |
| iPhone- og Android-apper | Felttestet (Android) | Android: en Google Pixel 8 (Android 16, Wi-Fi) med den signerte utgivelsesbygget mot BitVoice på EC2 med et Let's Encrypt-sertifikat: parret via lenke, ringte med Androids samtale-varsel, svarte fra det, lyd begge veier, forblev tilkoblet med skjermen av og i bakgrunnen (dens pågående-samtale-varsel, Hang up); uten push ringte den ikke i bakgrunnen. En Google Pixel 11 (Android 17) i AWS Device Farm: parret, ringte, svarte, ringte ut; Opus, MOS 4,1. iPhone: appen (SwiftUI, CallKit, PushKit VoIP) bygges mot den nåværende SDK-en (Xcode 27) og serveren signerer Apple VoIP-pusninger (APNs, ES256); samme ekte-enhet-fikser som Android og en App Store-listing (ios/AppStore) er i. Begge apper er en fullstendig utvidelse: overføring (blind, over REFER), hold og en annen samtale, tastatur og mute, med Nylige, visuell Voicemail (med transkript), en Team-beskjeftiget-lampe, Kontakter, den ansattes Chat (kolleger med tilstedeværelse, direkte meldinger og rom, med en varsel i bakgrunnen og en push når appen er lukket), et video-rom-valg (lister SFU-rom med hvem som er i hvert, slutter seg som utvidelsen, vist som en video-samtale på telefon-samtaleskjermbildet) og en live AI-transkript på samtalen (AI.LiveCallTranscripts); overføring, hold, live-transkript, chat når en kollega, rom-liste, et rom slutter seg til og chat-pusj-form er hver dekket av en motor-nivå-, API- eller nettleser-test. På Pixel 8 (2026-10-30, feil-søk-bygget, EC2 med Let's Encrypt): ringte og svarte fra varselet, holdt og gjenopptok (Androids samtale-tilstand følger), ringte ut på Androids samtale-system, Opus begge veier med MOS 4,38 og ingen tap; sluttet seg til et video-rom med dens kamera (bedt om ved første bruk) og så en skrivebordskamera, begge live; en chat-melding i bakgrunnen varslet og åpnet Chat. Hold og overføring når den native samtale-skjermen (CallKit, Telecom). Ikke ennå kjørt på en iPhone eller sendt inn: push, system-samtale-skjermen og signing trenger vår egen Apple-utviklerkonto |
| 911-profil, radio-konsoll, NG911 Core Services, ringers video | Lab | NENAs skjemaer og eksempeldata, Wireshark, spandsp, OpenSSL, ExifTool, ffmpeg, en NIST P25-oppfanget (dens IMBE-lyd-rammer pakket ut som mbelib pakker dem ut: samme tonehøyde, harmonier, stemme og amplituder); aldri på en live ESInet, P25-system eller PSAP CAD, og ikke sertifisert |
| P25-fase-2-halvrate-lyd (AMBE+2) | Ikke tilbudt | patentert til 2028 |
| Ed448-signaturer (NENA) | Ikke tilbudt | ikke i Gos standard-bibliotek, og BitVoice skriver ingen kryptografi selv; Ed25519 brukes |
| SS7-signalingsoverføring (STP), SCCP og TCAP | Kontrollert mot en referanse | OsmoSTP 2,3,0 over M3UA/TCP med libosmo-sigtrans SCCP-eko-bruker bak det: UDT og XUDT begge veier, UDTS returnert, global tittel-oversettelse gjennom STP-en, en switch på et linksett som når ekoen over IP; TCAP mot libosmo-asn1-tcap begge veier. ITU bare; ingen SCTP, connection-orientert SCCP eller SCCP-håndtering; ingen ekte operatør prøvd |
| MFC-R2 Kina-variant (Kina nr. 1) | Programvaretestet | hver signal på en samtale kontrollert mot Ciscos publiserte Kina-tabeller og anropsskema (KA, KD, gruppe B ved KD sendt, C og D-biter 11). OpenR2s Kina-variant er uenig med seg selv, så ingen program å teste mot; ingen ekte linje prøvd |
| ALI over PAM eller E2 | Ikke tilbudt | PAM er Intrados eget protokoll med ingen publisert spesifikasjon; E2 (J-STD-036, NENA 05-001) kjører mellom en mobilposisjons-senter og ALI-databasen, ikke til en PSAP. BitVoice snakker anmodning-og-tekst ALI-lenker og HELD i stedet |
Utvidelser
/extensionsEn utvidelse er et nummer for en person eller et skrivebord. Telefoner logger inn med utvidelsesnummeret og dets SIP-passord; samtaler til nummeret ringer alle telefoner som er logget inn som det, samtidig.
Legg til en utvidelse
- Åpne Utvidelser (kapittel 3) og trykk Legg til utvidelse. Det neste ledige nummeret og et sterkt SIP-passord er allerede fylt inn.
- Skriv inn personens navn (vises på andre telefoner når de ringer) og e-post (for voicemail via e-post).
- Fyll inn 911-locasjon: sted, etasje og rom. Den sendes med nødsamtaler.
- Velg hva som skjer Hvis ingen svarer: voicemail som standard, eller en annen utvidelse, en gruppe eller en meny.
- Lagre. Utvidelsen kan logge inn med en gang.
Feltene
| Felt | Hva det gjør |
|---|---|
| Nummer | 2 til 8 siffer; ingen andre utvidelser, grupper, køer, rom eller funksjonskoder kan ha det |
| SIP-passord | hva telefonen logger inn med; minst 12 tegn; Generer lager et nytt |
| Ring i | sekunder før Hvis ingen svarer skjer (25 som standard) |
| Ekstern kaller-ID | nummeret som vises på utgående samtaler; tom brukes trunkens |
| Kan ringe eksterne numre | av slår telefonen til interne samtaler og nødnumre |
| Ta opp samtaler | når Innstillinger bare tar opp valgte utvidelser |
| Hot desk | en delt telefon som blir hvem som logger inn på den |
| Krypter samtaler til denne telefonen | mediakryptering (SRTP); bruk det med TLS så nøklene forblir private |
| Avdeling | grupperer denne utvidelsens samtalekostnader |
Følg meg, plukk opp og intercom
Hver persons egen samtalebehandling er i sin egen boks på utvidelsen:
- Følg meg ringer flere numre når telefonene her ikke svarer: en mobil, en annen skrivebordstelefon. De ringer en etter en, eller alle sammen, for deres egen ringetid. Med Utenom numre trykk 1 for å ta samtalen på, trykker den som svarer på en mobil 1 først, så mobilens egen voicemail aldri tar samtalen. Se Funksjonskoder (kapittel 32).
- Oppringingsgruppe: hvem som helst i samme gruppe svarer denne utvidelsens ringerende samtaler ved å taste
*8. - Tillat intercom:
*80og dette nummeret svarer på høyttaleren av seg selv. Slå det av for personer som aldri ønsker det. - Egne hurtigvalg: korte koder bare for denne personen, tastet etter
*0.
Videreformidling nå
Under innstillingene vises og endres Videreformidling nå hva personen har satt fra telefonen eller ansattportalen: ikke forstyr, og videreformidling av hver samtale, samtaler mens busy, og samtaler som ikke svarer. Disse er live-tilstand, ikke konfigurasjon: å endre dem gjør ingen revisjon.
Hva som er koblet til
- Telefon: en skrivebordstelefon, softphone eller app.
- Dørstasjon: en intercom ved en dør. Hver som svarer trykker tastekoden, eller Åpne dør på Live-samtaler. Med en dørkontrolleradresse ringer BitVoice til den adressen (2N, Axis, Akuvox, relæbrett); uten en, sendes koden til stasjonen, som åpner døren selv.
- Høyttaler: samtaler til den svarer med en gang og høres over høyttaleren.
- Analogt adapterport: en gammel telefon, faks eller alarmpanel på en adapter. Samtaler bruker bare G.711, som faks trenger.
Koblete enheter
En åpen utvidelse viser hver enhet som er logget inn som den: telefonens merke og modell, hvordan den kobler til (UDP, TCP, TLS eller nettleseren) og siden når. Adressen og porten som skal gis til en telefon vises der også.
Koble telefoner
/phonesEnhver SIP-telefon eller app fungerer: peke den mot denne serverens adresse og port 5060, med utvidelsesnummeret som bruker og dets SIP-passord. Skrivebords-telefoner fra de fire store produsentene settes opp automatisk i stedet, så ingen skriver et passord inn i en telefons tastatur.
Automatisk oppsett (provisioning)
- På Telefoner (kapittel 4) trykk Legg til telefon og skriv inn telefonens MAC-adresse (på en sticker underside) og utvidelsen den tilhører.
- Velg merke: Yealink, Poly, Grandstream (inkludert HT-analog-adaptere), Snom, Fanvil, Cisco, Mitel, Sangoma, Algo eller CyberData.
- Fortell telefonen hvor BitVoice er: i din DHCP-server, sett valg 66 til provisioning-adressen som vises på skjermen, så hver telefon på nettverket finner den selv; eller skriv inn samme adresse på telefonens egen nettside, under auto-provisioning.
- Start telefonen på nytt. Den henter sin fil over HTTPS, logger inn og dens linjetaster viser hvem som er på telefonen.
HTTPS eller vanlig HTTP. Telefoner henter sine filer over HTTPS når de kan. Noen eldre telefoner kan ikke bruke HTTPS i det hele tatt, og mange stoler ikke på sertifikatet BitVoice lagde selv; for disse viser skjermen også en vanlig http://-adresse på samme port. Vanlig HTTP er bare for disse filene: hver andre side går fortsatt til HTTPS. Over vanlig HTTP går telefonens SIP-passord ukryptert over nettverket, så hold det til et pålitelig kontornettverk, eller installer et sertifikat fra en myndighet og slå på HTTPS bare for telefoner.
Filen inneholder utvidelsen, dets passord, tidszonene, kodekene, busy-lampe-tastene og adressen til denne serveren. Provisjonering er beskyttet av et brukernavn og passord telefonene får en gang.
| Produsent | Testede modeller | Hva den får |
|---|---|---|
| Yealink | T3x, T4x, T5x | konto, BLF-taster, tid, kodeker |
| Poly | VVX, Edge E | det samme, i Polys eget format |
| Grandstream | GRP, GXP, HT802/814 | konto per port på adaptere |
| Snom | D7xx | konto, taster, tid |
Disse produsentene er også provisjonert, med filer skrevet fra hver produsents dokumenterte format, men ikke ennå prøvd på deres enheter (Telefoner-skjermen markerer dem som uprøvd):
| Merke | Modeller | Filen enheten ber om |
|---|---|---|
| Fanvil | X og V-serie | dens MAC-adresse .cfg |
| Cisco | 6800, 7800, 8800 multiplatform (3PCC), SPA-adaptere | dens MAC-adresse .xml (bedriftsfirmware trenger multiplatform-firmware først) |
| Mitel (Aastra) | 6800, 6900 SIP | dens MAC-adresse .cfg, i store bokstaver |
| Sangoma | S-serie | Fanvil-formatfilen |
| Algo | høyttalere for høytaleranlegg, adaptere | algop og dens MAC-adresse .conf |
| CyberData | høyttalere, intercom, høyttaleradaptere | dens MAC-adresse .xml |
Hver får sin konto, serveren (og reserve-serveren, med flere servere), transport og kryptering, og voicemail-nummeret der det har ett. Sett Algo- og CyberData-høyttalernes utvidelser til Høyttaler slik at samtaler til dem besvares med en gang.
Telefoner uten provisioning
Softphone og andre merker tar de samme tre ting: server (denne datamaskinens adresse, port 5060, eller 5061 med TLS), bruker (utvidelsesnummeret) og passord (dens SIP-passord). Helse lister telefoner som prøvde et feil passord; etter noen forsøk blir adressen blokkert en stund (se Sikkerhet (kapittel 60)).
Nettelefonen
Telefonikonet nederst på hver skjerm gjør denne nettleseren til en telefon for en utvidelse, med din mikrofon og høyttalere. Den bruker WebRTC: lyden er kryptert fra ende til ende, og den fungerer gjennom de fleste brannmurer uten noen innstilling.
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 (kapittel 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 trenger ingen pålogging av seg selv: softtelefonen logger på med SIP, og mislykkede påloggingsforsøk og for mange forespørsler teller for dens egen adresse, som for enhver telefon. En softtelefonside betjent fra en annen nettside må stole på denne serverens sertifikat (bruk Let's Encrypt), og nåværende Chrome spør brukeren før en offentlig nettside kan nå en server på det lokale nettverket.
Testet med to uavhengige biblioteker, JsSIP 3.13 og SIP.js 0.21: to softtelefoner av hver registrerer seg, ringer hverandre og hører hverandre gjennom BitVoice. Andre softtelefoner (Linphones nett-klient, Zoipers) snakker samme protokoll, men har ikke blitt prøvd.
TURN, for nettverk som blokkerer UDP
Noen nettverk (hoteller, gjest-Wi-Fi, strenge bedrifts-brannmurer) lar ingen UDP ut, eller skjuler datamaskiner bak NAT som WebRTC ikke kan komme gjennom. For disse, slå på TURN-server i Innstillinger (kapittel 14): BitVoice kjører da sin egen TURN-server (RFC 8656) på port 3478 (UDP og TCP) og, med denne serverens sertifikat, på port 5349 over TLS. Browser-telefoner, stab-telefon og samtale-lenker får midlertidige legitimasjoner for det, og bruker det når de ikke kan nå mediaportene direkte; lyden er fortsatt kryptert fra ende til ende, og BitVoice relayer den bare til sine egne adresser, så ingen kan bruke det til å nå noe annet.
Åpne TURN-porten, TLS-porten og relay-portene (49152 til 49407 med mindre du endrer dem) i brannmuren. TURN over TLS trenger et sertifikat nettleserne stoler på for navnet de bruker, som ett fra Let's Encrypt (kapittel 14): inntil det er ett, tilbyr BitVoice det ikke til nettleserne (de ville prøve det, feile og vente); og setter det tilgjengelig så snart sertifikatet ankommer; sett dets port til 443 på en server med en ledig adresse for å komme gjennom brannmurer som bare tillater HTTPS.
Endring av nettverk under et oppkall
En telefon som flytter til et annet nettverk under et oppkall (ut av kontorets Wi-Fi og inn på et mobilnett, eller en bærbar datamaskin fra ett Wi-Fi til et annet) får en ny adresse, og den gamle kommunikasjonsveien stopper å bære lyd. Web-telefoner og BitVoice-appene merker dette selv: når nettleseren sier at nettverket har endret seg, eller kommunikasjonsveien til oppkallet stopper å svare i to sekunder, starter telefonen ICE på nytt (RFC 8445 9). Den tilbyr nye ICE-legitimasjoner for oppkallet den har, og BitVoice svarer med nye legitimasjoner av sin egen og sjekker den nye kommunikasjonsveien, og oppkallet flyttes til den uten å måtte ringe på nytt. Krypteringen fortsetter med de samme nøklene. Mens dette skjer, vises oppkallet som Gjenkobler…; på en kommunikasjonsvei som fortsatt fungerer, er det ingen gap, ettersom den gamle kommunikasjonsveien bærer oppkallet til den nye kommunikasjonsveien er klar. SIP-softphone over WebSocket (JsSIP, SIP.js) gjør det samme ved å sende en ny INVITE med nye ICE-legitimasjoner. Ingen innstillinger må aktiveres, med BitVoice som ICE-lite eller bak en NAT.
BitVoice bak NAT
TURN-serveren ovenfor hjelper nettlesere på strenge nettverk å nå en BitVoice som har en offentlig adresse. Når BitVoice selv ikke har noen (i en bedrift bak en router uten portvidereføring, eller i et skytjenestenettverk uten offentlig adresse på maskinen), slå på Dette serveren er bak NAT under BitVoice bak NAT i Innstillinger (kapittel 14). BitVoice deltar deretter fullt ut i ICE (RFC 8445) i stedet for å svare på én adresse (ICE-lite):
- Den tilbyr nettleserne sine egne adresser, sin offentlige adresse som STUN-tjenestene ser den, og relayer på TURN-tjenestene den logger inn på (UDP; et brukernavn og passord hver), og sjekker hver adressepar med nettleseren, som nettleseren gjør.
- Relay hver samtale via TURN sender all nettlesermedia gjennom TURN-tjenestene, for nettverk som krever det.
- Finn mine adresser ber tjenestene som en samtale ville og lister hva BitVoice vil tilby: sine egne adresser, den offentlige adressen sett gjennom STUN (en STUN-tjeneste som ikke svarer, blir sagt så), og dens relayer.
- Den fungerer for nettlesertelefonen, samtalelenker, ekko-testen og SIP-over-WebSocket-softtelefoner, i begge roller: BitVoice svarer på nettleserens tilbud, og tilbyr en softphone den ringer. Nettlesere som skjuler sine adresser bak mDNS-navn (
name.local) løses på det lokale nettverket, og nettleserens adresse som webtjeneren så den, blir sluppet gjennom relayer fra starten. - Av ved default; den legger til et øyeblikk til hver samtale mens tjenestene svarer (høyst en og en halv sekund). Oppringerens video bruker ICE-lite uansett.
Den ansattes telefon
Åpne #/phone på enhver datamaskin eller mobilnettleser: personer logger inn med sin utvidelse og SIP-passord, uten en administrator-konto. Det er en fullstendig telefon: taste, svare, holde og overføre og tastaturet. For deres egen videreføring og voicemail bruker de ansattes portalen på #/me (se Ansattes portalen (kapittel 33)).
Mobilappene
BitVoice-appene for iPhone og Android kobles fra utvidelsessiden med en QR-kode. Oppkall vekker appen gjennom Apples og Googles push-tjenester, så den ringer selv når den er lukket (én gang push er konfigurert; se under).
Skinny-telefoner og MGCP-gateway
/desk-phonesTelefoner og gateway som ikke snakker SIP kan fortsatt brukes. Skinny-telefoner og MGCP-gateway (under Samtaler) tar to eldre protokoller:
- Skinny (SCCP): Cisco-skrivebordstelefoner som kjører SCCP-firmware (79xx, 69xx, 89xx). Legg til hver telefon etter dens MAC-adresse og velg dens utvidelse; slå på Aksepter Skinny-telefoner og peke telefonen mot BitVoice (TCP-port 2000) i dens TFTP-innstillingsfil eller meny.
- MGCP (RFC 3435): gateway som BitVoice styrer ett og ett, som f.eks. analoge telefonadaptere og linjekort. Legg til gatewayen etter domenenavnet den bruker i sine endpointnavn (aaln/1@navn), dens adresse og utvidelsen til hver linje; sett gatewayens samtaleagent til BitVoice (UDP-port 2727).
Hver Skinny-telefon eller MGCP-linje er en mer enhet til dens utvidelse: den ringer med utvidelsens andre telefoner, ringer ut som utvidelsen og vises i utvidelsens enheter. Siden viser hver enkelt enhets tilstand.
Hva fungerer
- Skinny: registrering, linjen og dens nummer på skjermen, dialtone, valg (nummeret kommer etter en pause eller #, eller med en gang fra telefonens tastatur når den løftes etter valg), ringback, ringing med caller ID, svar og avslutt med håndsett, høyttaler eller bløtkeknapper (NewCall, Redial, Answer, EndCall), busy og reorder-toner.
- MGCP: dialtone, sifre samlet av gatewayen med en sifferkort, ringing med caller ID (ringer uten det når gatewayen avviser caller ID), ringback, busy og reorder-toner, og lydkoblingen (CRCX, DLCX). En gateway som starter på nytt (RSIP) får portene sine konfigurert på nytt.
- Lyden er G.711 µ-lov på begge; BitVoice konverterer til hva den andre parten bruker.
Hold, overføring og konferanse gjøres fra utvidelsens andre telefoner for øyeblikket, og en Skinny-telefons andre linje brukes ikke.
Sikkerhet
Ingen av protokollene har passord. Skinny-telefoner aksepteres bare fra det lokale nettverket og bare når de er listet; MGCP-kommandoer følges bare fra gatewayens adresse (eller, uten en, fra det lokale nettverket). Hold begge portene utenfor internettet.
En gateway som fortsatt arbeider med en kommando, kan svare "100 Trying" først: BitVoice venter deretter lengre før den sender kommandoen igjen og bekrefter det endelige svaret (000), slik RFC 3435 ber om. En port som gatewayen ikke vil overvåke, viser gatewayens egen nekt på siden, slik som gatewayen nektet å overvåke porten: 507 Unsupported Functionality fra en mediegateway uten analoge porter.
Hvordan de testes
- Skinny: to telefoner bygget fra en separat Skinny-implementering (den åpne mwicat/sccp-biblioteket) registrerer seg, ringer hverandre, svarer og legger på; en telefon som ikke er listet, blir nektet. Wiresharks Skinny-dissektor leser hver melding BitVoice sender uten feil, og meldingene har samme størrelse som Asterisks chan_skinny sender til Cisco-telefoner.
- MGCP: mot Yates MGCP-gateway (restart, midlertidige svar, bekreftelser, nekt) og BitVoices egen testgateway for hele samtaler. Yate-gatewayen har ingen analoge porter, så ingen samtale ble ringt gjennom 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 telefoniselskapslinjer. Et separat program, bitvoice-dahdi, driver kortet og kobler portene til BitVoice over computerns egen nettverkskobling, så BitVoice selv aldri berører kernel-drivere og et kortproblem ikke kan stoppe telefonisystemet.
Konfigurasjon
- Installer DAHDI-drivere og konfigurer portene som vanlig i /etc/dahdi/system.conf (
fxoks=1-4for porter med telefoner,fxsks=5-8for porter med linjer, og landets toner iloadzoneogdefaultzone), og kjørdahdi_cfg. - Under Telefoni-kort (under Samtaler) slå på Bruk telefoni-kort. En token blir laget; kopier den inn i en fil som bare root kan lese, som /etc/bitvoice/cards.token.
- Legg til hver port etter sin DAHDI-kanalnummer: en telefon-port (FXS, en telefon, faks eller dørtelefon plugges inn) med dens utvidelse, eller en linje-port (FXO, en telefoniselskapslinje) med linjens nummer. Velg A-lov for Europa og de fleste deler av verden, µ-lov for Nord-Amerika og Japan.
- For linjer, legg til en trunk med protokollen Telefoni-kort-linjer på Trunker, og ruter numre til den som til noen trunk; innkommende ruter matcher hver linjes nummer.
- Start
bitvoice-dahdi -server https://127.0.0.1:8443 -token-file /etc/bitvoice/cards.tokensom en tjenestebruker som kan åpne /dev/dahdi. Den er i Linux-nedlastingen ved siden av bitvoice. Siden viser om den kjører og hver ports tilstand; endringer når den innen ti sekunder. En kanal en annen program fortsatt holder (eller en dahdi_cfg ikke har konfigurert ennå) prøves igjen hver to sekunder, så rekkefølgen ting starter i har ingen betydning.
Hva fungerer
- Telefoner: dialtone, valg (sifre høres av BitVoices egen tone-detektor; nummeret kommer etter en pause eller #), ringback, busy og congestion-toner fra kortets tone-sone, ringing for innkommende samtaler, og knappetrykk under en samtale (sendes på som RFC 4733-hendelser også).
- Linjer: en ringende linje ringer nummeret her og blir besvart når samtalen er; utgående samtaler tar en ledig linje, venter på telefoniselskapets dialtone og ringer nummeret som toner. Den fjerne enden som legger på blir merket når linjen rapporterer det (loop-strøm eller polaritet, avhengig av linjen). Analoge linjer sier ikke når den fjerne enden svarer, så en utgående samtale teller som besvart en gang nummeret er ringt.
- Lyden er G.711 til og fra kortet; BitVoice konverterer til hva den andre parten bruker.
Digitale linjer: T1 og E1 PRI
En T1 (23 samtaler på en gang) eller E1 (30) linje kjører som primær rate ISDN plugges inn i et digitalt kort (Digium/Sangoma TE-serie, OpenVox D-serie og lignende). BitVoice snakker PRI selv (Q.921 på D-kanalen, og Q.931 samtalekontroll), så hver samtale kommer inn med nummeret valgt og caller ID, går ut med utvidelsens caller ID, og telefoniselskapet sier når den fjerne enden svarer, ringer eller er busy.
- I /etc/dahdi/system.conf, sett spann opp for PRI som vanlig (
span=1,1,0,esf,b8zs,bchan=1-23,hardhdlc=24for en T1;span=1,1,0,ccs,hdb3,crc4,bchan=1-15,17-31,hardhdlc=16for en E1), og kjørdahdi_cfg. - Under Digitale linjer på Telefoni-kort (kapittel 6), legg til spann: T1 eller E1, dens første DAHDI-kanal, om BitVoice er PBX på telefoniselskapets linje (vanlig) eller nettverket (en annen PBX kobler til BitVoice som om til telefoniselskapet), og switch-typen telefoniselskapet ga deg.
- Legg til kort-trunk på Trunker hvis det ikke finnes ennå, og innkommende ruter for numrene (DIDs) telefoniselskapet sender.
Utgående samtaler tar en PRI først, de analoge linjene etter; en busy-nummer, en feil-nummer eller ingen ledige kanal kommer tilbake som busy, ikke funnet eller utilgjengelig, som nettverket sier. Siden viser om hver spanns D-kanal er opp og hvor mange av dens kanaler er i samtaler. T1-kanaler konfigurert med robbed-bit-signaling (fxsks, fxoks) fungerer som de analoge portene ovenfor.
Navn, videreformidling og overføring. En ringers navn kommer inn med samtalen (fra Visnings-elementet, eller på Nasjonal ISDN-2 fra navnet nettverket sender som en fasilitet) og telefoner viser det; utgående samtal sender utvidelsens navn på samme måte. Nummeret et samtal ble videreformidlet fra kommer inn som dets omdirigeringsnummer (BitVoice sender det videre som SIPs Diversion, med årsaken: opptatt, ikke besvart, ubetinget), og når en utvidelses videreformidling sender et samtal ut på PRI, følger utvidelsens nummer med som omdirigeringsnummer, så den fjerne enden og telefon-selskapet vet hvem som ringer. Når et eksternt samtal besvares, forteller BitVoice nettverket nummeret som besvarte (det tilkoblede nummeret).
Slå på Overføring gjennom telefon-selskapet på en spann (brukerside, Nasjonal ISDN-2, 5ESS, DMS-100 eller EuroISDN) og når noen overfører en ringer på denne linjen til et annet nummer på samme linje, ber BitVoice nettverket om å koble de to samtalen selv: To B-kanal-overføring på Nasjonal ISDN-2 og 5ESS-linjer, Release Link Trunk-overføring på en Nortel DMS-100, eksplisitt samtale-overføring (ringeren holdes, så kobles) på EuroISDN. En DMS-100 gir kun en overførings-identifikator til samtal som BitVoice plasserer, så der må en av de to samtalen være et utgående samtal (det vanlige tilfelle: en ringer videreformidlet eller overført til et eksternt nummer). Begge kanalene frigjøres så snart nettverket har koblet dem. Linjen trenger tjenesten (spør telefon-selskapet om "to B-kanal-overføring" eller "ECT"); hvis nettverket nekter, fungerer overføringen likevel, gjennom BitVoice, ved å bruke begge kanalene som før.
Prøv det uten en kort
DAHDI's egne dynamiske spann kan stå inn for en kort: to spann koblet sammen inne i kjernen, BitVoice på en og en annen PBX (Asterisk's chan_dahdi, for eksempel) som telefon-selskapet på den andre. Last 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
La det siste nummeret (tidsstyring) være 0 på begge: DAHDI's egen tidsstyring driver dem da. Spann som er hverandres tidsstyringskilde tikker bare når den andre sender, og D-kanalen kommer og går. Legg til spann 1 her som en T1 (første kanal 1), og sett opp den andre PBX-en som nettverksiden på kanalene 25 til 48.
Grunnrate ISDN (BRI)
En BRI bærer to samtal på samme tid (B1 og B2) og er vanlig i Europa for små kontorer; den kobler også ISDN-bordtelefoner. BRI-kort (Digium B410P, HFC-baserte kort fra OpenVox, Junghanns og andre) fungerer gjennom DAHDI som PRI-kortene gjør: i /etc/dahdi/system.conf er spann span=1,1,0,ccs,ami med bchan=1-2 og hardhdlc=3. Legg til det under Digitale linjer med BRI som linjetypen; kanalene er B1, B2 og deretter D-kanalen.
- BitVoice er PBX-en (brukerside), punkt-til-punkt: en PBX-linje fra telefon-selskapet (Tysklands *Anlagenanschluss*): innkommende samtal bærer nummeret som ble valgt, utgående samtal bærer utvidelsens nummer.
- Brukerside, flerpunkt: en linje delt med andre enheter (*Mehrgeräteanschluss*): BitVoice ber nettverket om sin egen TEI (terminal-identifikator) og besvarer samtal til linjen ved siden av andre enheter på den; telefon-selskapet sender nummeret som ble valgt (MSN), som innkommende ruter matcher.
- BitVoice er nettverket, flerpunkt: ISDN-telefoner kobles til kortets S-buss som til en telefon-selskapslinje. Hver ber BitVoice om en TEI; et samtal til bussen ringer alle telefoner på den, den første som besvarer tar det og de andre holder opp med å ringe. Numre valgt digit for digit (som ISDN-telefoner ringer) samles inntil telefonen sier det er fullstendig, # er trykket, eller ingen digit kommer i fire sekunder. Rute numrene til og fra bussen med kort-trunken som for noen linje.
Navn, videreformidling, overføring på EuroISDN (eksplisitt samtale-overføring) og råd om avgift fungerer på en BRI som på en PRI.
E&M-trunker på en T1
En T1 hvis kanaler er satt opp som E&M (robbed-bit-signalling: e&m=1-24 i /etc/dahdi/system.conf) gir 24 trunker, hver signalisert på sin egen: tilkoblingslinjer til en annen PBX, kanalbanker og langdistanse-leverandørenes Feature Group D-trunker. Under Digitale linjer, legg til en T1 og sett Signalling til E&M, deretter:
- Startsignal: Wink start (det vanlige: den fjerne enden blinker når den er klar for nummeret, og BitVoice blinker tilbake ved et innkommende samtal), Umiddelbar start (nummeret følger straks etter beslag), Forsinket valg (den fjerne enden går av hook mens den blir klar, deretter på hook), eller Feature Group D (wink start med MF-numre, ringers nummer sendt først: KP 00 ANI ST, deretter KP nummer ST; ANI blir ringers ID).
- Numre sendt som: DTMF, eller MF (MF R1, KP nummer ST) som de fleste leverandør-trunker ønsker.
- Nummer når ingen er sendt: hva et innkommende samtal når hvis den fjerne enden beslagtar trunken uten å velge (en privat linje rett til resepsjonen, for eksempel).
Et utgående oppkall tar en ledig trunk, besetter den, venter på startsignalet (ingen blink innen fem sekunder er "ingen blink", og oppkallet feiler), sender nummeret og besvares når den fjerne enden går av hook (svarsovervåking). Et innkommende oppkall besvares ved å gå av hook når utvidelsen besvares.
CAMA-trunker (911, lab-spor). En PSAP som fortsatt mates av en 911-selektiv router over CAMA-trunker setter Startsignal til CAMA (911-trunk). Routeren besetter, BitVoice blinker, og routeren sender oppkallers nummer (ANI) i MF: forbedret CAMA som KP, to informasjons-siffer og alle ti siffer, ST; tradisjonell CAMA som KP, én nummerplan-siffer og syv siffer, ST. For tradisjonell CAMA, list opp under Områdeskoder for NPD 0 til 3 områdeskoden hver nummerplan-siffer står for (routerns konfigurasjonsark har dem); en siffer over 3 betyr at routeren ikke kunne identifisere linjen. Hvert oppkall går til innkommende rute for 911 som et 911-oppkall, med ANI som tilbakekallingsnummer, og BitVoice ser opp dens plassering etter dette nummeret (se 911-oppkall (kapittel 77), Plasseringsoppslag (ALI)). Informasjons-sifferne vises på oppkallet som CAMA (II 00).
MFC-R2 på en E1
I Latin-Amerika, deler av Asia og Afrika, er E1-linjer ofte MFC-R2 i stedet for ISDN: 30 kretser, hver med sine linjesignaler på A- og B-biter i timeslot 16 (ITU-T Q.421) og nummer, kategorien til oppringeren og oppringerens nummer utveksles i multifrekvens-toner (Q.441), frem og tilbake. Sett opp spannet som CAS i /etc/dahdi/system.conf (span=1,1,0,cas,hdb3, cas=1-15:1101, cas=17-31:1101, dchan fjernet), så under Digitale linjer legg til en E1, sett Signalling til MFC-R2 og velg Landvariant: ITU-T, Argentina, Brasil, Kina, Colombia, Tsjekkia, Ecuador, Mexico, Filippinene eller Venezuela. Hver land tilordner noen signaler forskjellig (hva som betyr beskjeftiget, hvordan slutten av nummeret fortelles, Mexicos ekstra gruppe C); varianten holder disse. Kina nr. 1 ber om oppringerens klasse (KA) og nummer etter nummeret som ble valgt, sender samtaletypen (KD: 3, en lokal samtale) sist, leser beskjeftiget og ledig etter KD den sendte, og setter både C- og D-biter til 1: der, skriv cas=1-15:1111 og cas=17-31:1111.
Hver krets bærer samtaler begge veier. En innkommende samtale når innkommende ruter med nummeret som ble valgt og oppringerens nummer (skjulte numre kommer inn som anonyme); en beskjeftiget utvidelse eller et feil nummer signaliseres tilbake som beskjeftiget eller ikke tilgjengelig, slik varianten sier. En utgående samtale sender nummeret og utvidelsens oppringer-ID, eller "nummer skjult"-signalet når oppringeren skjuler det.
MFC-R2-signalingen testes mot OpenR2 (R2-biblioteket Asterisks chan_dahdi bruker), i hver variant som tilbys og i begge retninger, inkludert et oppkall som avvistes som beskjeftiget; E&M mot BitVoices egne simuleringskanaler.
SS7
En bærer kan overføre T1-er eller E1-er signalisert av SS7 i stedet for ISDN: talekretsene bærer oppkall, hver navngitt av en kretsidentifikasjonskode (CIC), og en timeslot bærer signallinken til bærerens signaloverføringspunkt eller switch, over hvilken ISUP setter oppkallene opp. BitVoice er da et signalpunkt i seg selv, med en punktkode som bæreren tilordner. I /etc/dahdi/system.conf sett opp spannet som rene kanaler med signallink-tidsdelen som mtp2 eller hardhdlc (timeslot 16 på en E1, 24 på en T1). Under Digitale linjer legg til spannet, sett Signalling til SS7 (ISUP) og gi:
- SS7-variant: ANSI (Nord-Amerika; punktkoder nettverk-kluster-medlem, som 245-16-1) eller ITU-T (resten av verden; punktkoder sone-område-punkt, som 1-10-2, eller et vanlig nummer).
- Vår punktkode og Tilstøtende punktkode, Nettverk (nasjonal, vanlig, eller internasjonal), signallink-Link-kode (SLC, 0 med mindre det er oppgitt annet), og Første CIC: koden for spannets første talekanal, de andre følger i rekkefølge. Alle disse kommer fra bæreren.
Linksett med flere linker. Spann med samme variant, punktkoder og nettverk er ett linksett (inntil 16 linker): hver spanns signallink er en av dens linker, og trenger sin egen Link-kode, og hver spanns kretser tilhører det (deres CIC-er kan ikke overlappe). Trafikken deles mellom linkene i tjeneste ved meldingenes SLS, så en oppkalls meldinger holder seg til en link. Når en link feiler (linktesten blir ikke besvart, eller meldinger blir ikke bekreftet), skifter trafikken over til de andre (Q.704: COO og COA, meldingene den fjerne enden ikke fikk sendt på nytt på en annen link; eller, uten svar i tide, ved tid), oppkallene på hver spann fortsetter, og Telefonkort sier hvor mange linker er i tjeneste og hvordan denne spanns linker står. Når linken kommer tilbake og testes, skifter trafikken tilbake (CBD og CBA). Bare når alle linker er nede, er linksettet nede. Prøvd mot libss7 med to linker, en kuttet midt i et oppkall: libss7 tar nettverksledelsesmeldinger bare på linken deres SLS navner, så en omstillingmelding om den kuttete linken (sendt på den andre, som Q.704 har det) blir droppet der, og begge ender omstiller ved tid i stedet, som fungerer; mellom to BitVoice-ender går det via COO og COA.
Når lenken kommer opp, justerer BitVoice den (MTP nivå 2, med nødsituasjonsperioden som en enkelt-lenke-lenkesett bruker), tester den med lenketesten (SLTM/SLTA), bytter trafikken om igjen og nullstiller hver sirkuit (GRS). Samtaler som når inn til innkommende ruter med nummeret som ble valgt, samtaleres nummer (med unntak av anonyme), nummeret en samtale ble videreformidlet fra og, på ANSI, samtalerens navn; samtaler som går ut bærer utvidelsens samtale-ID og navn. Bærerens blokkering eller nullstilling av sirkuitene adlydes. Ved dobbel beslag tar enden med det høyere punktkoden beholdene sirkuitene, som Q.764 sier, og BitVoice tar de sirkuitene den beholder først.
SS7 testes mot libss7 (SS7-biblioteket Asterisk's chan_dahdi bruker), ITU og ANSI: justering, lenketest, trafikkgjenopptak, sirkuittnullstilling, samtaler begge veier med numre og navn, frigjøring, opptatt og blokkering; og BitVoice mot seg selv med rammer tapt på lenken (sendt igjen av MTP2-feilkorreksjon) og en dobbel beslag. Signaaloverføring (som en STP for andre) og SCCP/TCAP (nummerportabilitetsoppslag, tollfrie oversettelser) tilbys ikke: en PBX er en endepunkt, og disse er bærerens.
Signaloverføringspunkt (STP). bitvoice-dahdi kan også være et STP for sine ITU SS7-lenkesett: slå på Signaloverføringspunkt (SS7) under digitale linjer. Dets STP-punktkode er spansenes egen. Med Send meldinger for andre punktkoder, går en melding fra ett lenkesett for det nærmeste punktet i et annet til det lenkesettet, og en for en annen punktkode går til IP STP (M3UA): en IP STP eller signalgateway på vert:port, nås over M3UA (RFC 4666) over TCP, hvis meldinger for lenkesettets punkter kommer tilbake samme vei (BitVoice registrerer sin punktkode og de bak den, med mindre en Rutingskontekst er gitt). Global titteloversettelse sender SCCP-meldinger adressert til STP ved global tittel til punktkoden og underordnet system for den lengste matchende prefikset, som en SCCP-relé gjør. En melding som ikke kan leveres, kommer tilbake til avsenderen som en UDTS eller XUDTS når den ba om det: ingen oversettelse, ingen rute (MTP-feil), ingen underordnet system her, eller dens hoppteller er gått ut. STPs status viser M3UA-lenken og hvor mange meldinger den har sendt videre, oversatt og returnert. Dets SCCP (UDT, XUDT, UDTS, XUDTS) og TCAP (Start, Fortsett, Slutt, Avbryt, dialoger og komponenter) er sjekket mot Osmocom: OsmoSTP over M3UA, libosmo-sigtrans SCCP-ekko-bruker bak det, og libosmo-asn1-tcaps eget TCAP-koder begge veier. SCTP er ikke tilbudt (Go har ingen): M3UA går over TCP, som OsmoSTP og mange IP STP-er tar. Koblingsorientert SCCP, ANSI-lenkesett og SCCP-håndtering (SST, SSA) er ikke tilbudt.
Råd om avgift. På en EuroISDN-linje, slå på Råd om avgift og BitVoice ber telefonsselskapet, med hver samtale ut, om å si hva det koster: under samtalen (AOC-D) og ved dens slutt (AOC-E), i penger eller i avgiftsenheter. Den siste figuren havner på samtaleposten (belastet EUR 1,50 i Historikk, og ved siden av samtalen på Kostnader); når det er i din valuta (angitt på Kostnader) er det samtalekostnaden, i stedet for figuren fra stammeprisene. Telefonsselskapet må tilby tjenesten på linjen. SIP-stammer kan sende samme råd, som 3GPP AOC XML i en INFO eller BYE, og BitVoice beholder det på samme måte.
PRI-koden testes mot libpri (ISDN-biblioteket Asterisk bruker), både som brukersiden og som nettverksiden, for nasjonale ISDN-2 og EuroISDN-samtaler, navn, omdirigering og tilkoblede numre, eksplisitt samtaleoverføring, to B-kanaloverføring og DMS-100-frigjøringslenkeanmodningsbyte for byte (med libpri's PBX koblet til BitVoice som DMS-100), og råd om avgift i begge retninger; og på BRI, punkt-til-punkt og multipunkt, som terminal og som nettverk (TEI-tildeling, samtaler kringkastet til bussen, numre valgt tall for tall).
Ikke ennå: samtale-ID vist på analoge telefoner eller lest fra analoge linjer, hook flash og ekko-kansellering utover hva kortet selv gjør.
Trunker
/trunksEn trunk er din konto hos et telefoniselskap. Den bærer samtaler til og fra eksterne numre. De fleste er SIP-trunker; en Asterisk- eller FreePBX-server, eller en IAX2-tilbyder, kan nås med IAX2 i stedet.
Legg til en SIP-trunk
- På Trunker (kapittel 7) trykk Legg til trunk.
- Skriv inn provider-serveren telefoniselskapet ditt ga deg (
sip.provider.com), og porten hvis den ikke er 5060. - Skriv inn brukernavn og passord, og slå på Registrer hvis provideren sier det (de fleste gjør det).
- Lagre. Innen noen sekunder vises trunken som registrert; hvis ikke, vises årsaken ved siden av.
Trunkhelsevurdering
Med to eller flere trunker på en utgående rute, vurderer BitVoice hver 15. sekund om hver trunk brukes på riktig måte eller prøves etter de andre trunkene. En trunk flyttes bak de andre når dens provider slutter å svare på keep-alive-sjekker, eller når dens siste utgående samtaler feiler ett etter ett på providerens side (Feilende samtaler på rad innen Innen (minutter), Innstillinger, Trunkhelsevurdering), og en annen trunk fungerer. Den flyttes ikke på grunn av en feilende keep-alive alene mens samtaler via den fortsatt kommer frem; og når alle trunker feiler samtidig, er det sannsynligvis dette systemets eget internett-tilknytning som er årsaken, så ingen trunker flyttes. En endring krever to vurderinger på rad (30 sekunder), så en trunk vil aldri flakke. En trunk tas aldri helt ut: den prøves fortsatt når de andre feiler, så en nødsamtale har alltid alle mulige utveier. Trunkens side viser vurderingen og dens årsaker; en samtale som gikk ut en annen vei viser det i sin journal.
- Legg til en inngående rute for ditt nummer og en utgående rute som bruker denne trunken (Samtale-ruting (kapittel 8)).
| Felt | Hva det gjør |
|---|---|
| Transport | UDP (vanlig), TCP eller TLS for kryptert signalisering |
| Registrer | logg inn hver få minutter, så provideren vet hvor den skal sende samtaler |
| Autentiseringsbrukernavn | bare når provideren gir et eget |
| Fra domene | domenet i brukerens adresse, når provideren ber om det |
| Caller ID | nummeret som vises på utgående samtaler; en utvidelses eget caller ID vinner |
| Også aksepter samtaler fra | providerens andre adresser eller nettverk som sender samtaler inn. Samtaler fra denne datamaskinen fra telefoner som er registrert her, og den innebygde samtale-generatoren, tas aldri som trunkens, selv når den tillater 127.0.0.1 |
| Samtaler på gang | grensen din plan tillater; samtaler utover dette går til neste trunk i ruten |
| Krypter media | SRTP, for providere som støtter det. En provider som svarer uten det, får likevel samtalen, ukryptert, og Samtale-historikk markerer samtalen Ikke kryptert |
| Krever kryptering | (med Krypter media) avvis hva provideren ikke vil kryptere: en utgående samtale som provideren svarer uten SRTP, avsluttes, og en inngående samtale som provideren sender uten SRTP, avvises; Samtale-historikk sier hvorfor |
| Codec | la det være på *samme som Innstillinger*, eller velg hva denne provideren støtter, best først |
| Tariffer | hva samtaler koster etter nummerprefiks, for Kostnader (kapittel 54) |
Sky-providere
Start fra fyller inn Microsoft Teams Direct Routing, Amazon Chime SDK Voice Connector eller Azure Communication Services, med en notis om hva som må settes på deres side. Teams beskrives i sin egen kapittel (Microsoft Teams (kapittel 67)).
IAX2-trunker til Asterisk og FreePBX
Velg IAX2 som protokollen for å koble til en annen Asterisk- eller FreePBX-server, eller en IAX2-provider. IAX2 bærer signalisering og lyd på én UDP-port, 4569, som gjør det enkelt å gå gjennom brannmurer.
- Server-adresse: den andre serveren. La det være tomt når den andre serveren registrerer seg til BitVoice i stedet (en filial bak en endrende adresse); da er brukernavn og passord det den registrerer seg med.
- Brukernavn og passord: det samme på begge sider. BitVoice svarer og sender MD5-utfordringer, og håndterer samtale-token.
- Registrer: logg inn til den andre serveren, så den kan sende samtaler hit.
På Asterisk-siden er en peer som denne alt som trengs:
[bitvoice] type=friend host=dynamic secret=the shared password context=from-bitvoice
IAX2-port 4569 åpnes bare når den første IAX2-trunken legges til, så en Asterisk som kjører på samme datamaskin holder det til da.
H.323-trunker
Velg H.323 som protokollen for eldre gateways, PBX-er og video-konferansesystemer som snakker H.323, men ikke SIP. Gi gateways adresse (port 1720); samtaler aksepteres bare fra den. Samtaler settes opp med Hurtig-tilkobling og G.711 (µ-lov eller A-lov; trunkens codec-liste kan begrense det til ett), og lyden går rett mellom gatewayen og BitVoices media-porter. BitVoice konverterer til hva den andre parten bruker.
H.323 her er bevisst liten: ingen gatekeeper (RAS), ingen H.245 (så en gateway som ikke vil bruke Hurtig-tilkobling, får ingen samtale, og blir fortalt det), ingen video, ingen H.235-sikkerhet. Caller ID kommer fra Q.931-oppringer-nummer eller brukerens valgte-nummer-alias, navnet fra display eller dets H.323-ID. BitVoices H.225.0- og H.245-koding ble sjekket mot en uavhengig ASN.1-koder, men ikke ennå mot gateway-hardware.
Videreformidde anrop
Når et anrop når deg allerede videreformidlet (noen andres nummer er videreformidlet til ditt, eller en Teams-bruker), sier leverandøren det med History-Info (RFC 7044) eller Diversion (RFC 5806). BitVoice leser begge: Anropshistorikk (kapittel 47) viser videreformidlet av nummeret som sendte det videre, med nummeret som først ble ringt og grunnen i dets tips, anropssporingen sier det med ord, og anropsopptaket beholder det (forwardedFrom, original, forwardReason). Når leverandøren ber om at historikken skal være privat, beholdes ikke numrene.
Når en utvidelse videreformidler et anrop ut gjennom en trunk (videreformidler alle, når det er opptatt, når ingen svarer), fortelles leverandøren hvilken utvidelse som videreformidlet det og hvorfor, så den kan vise ditt nummer og fakturere riktig konto: som standard med begge headerne, og med historikken anropet kom inn med beholdes og videreformidlingen legges til. En leverandør som er forvirret av en av dem kan settes til den andre under trunkens Avansert, Videreformidde anrop sier hvis de er med. På en T1/E1-telefonikort blir hver header nettverkets omadresseringsnummer.
Hva status betyr
| Status | Betydning |
|---|---|
| registrert | logget inn; anrop kan komme inn |
| klar | registrerer ikke, eller IAX2 venter på anrop |
| utilgjengelig | serverens navn er ikke i DNS, eller ingenting svarer |
| feilet | leverandøren avviste innloggingen; grunnen vises |
| reserve | servere deler denne trunken en etter en og en annen holder den |
Anropsruting
/routesAnropsruting avgjør to ting: hvor anrop fra utsiden går, etter nummeret som ble ringt, og hvilken trunk anrop til utenfor numre bruker.
Innkommende ruter
Hver innkommende rute matcher nummeret som ble ringt (eller noe nummer) og sender anropet til en destinasjon: en utvidelse, ringgruppe, kø, meny, timeplan, skript, konferanserom, AI-resepsjonist eller voicemail. Numre matcher i noen form: +1 212 555 0100, 2125550100 og 12125550100 er det samme.
- En rute for ett nummer vinner over en rute for noe nummer.
- En rute kan begrenses til en trunk, for numre som to leverandører begge sender.
- Med nødstilstand på (Innstillinger), går hver innkommende anrop til ett sted i stedet, uansett hva rutene sier: en evakuering, en stengning, en hendelse.
Utgående ruter
Utgående ruter matcher hva folk ringer, etter mønster, og sender det til trunker i rekkefølge: hvis den første er nede eller full, prøves den neste.
| Mønster | Matcher |
|---|---|
X | noen siffer |
Z | 1 til 9 |
N | 2 til 9 |
[1-5] | ett av en sett |
. på slutten | ett eller flere flere siffer |
NXXNXXXXXX | et ti-sifret nordamerikansk nummer |
1NXXNXXXXXX | det samme med 1 foran |
011. | et internasjonalt anrop fra USA |
- Fjern fjerner siffer fra forkant (en 9 ringt for en utenlinje); Legg til foran legger noen på (et landskode).
- Rekkefølgen betyr noe: den første ruten som mønsteret matcher, brukes. Dra ruter for å endre den.
- Premium-numre (900 og lignende) avvises med mindre en rute navngir dem.
Nødanrop
Nødanroppene fungerer alltid. En rute som navngir nummeret nøyaktig, brukes først; med ingen, prøves hver arbeidende trunk i tur og orden. Et anrop til dem avvises aldri for en utvidelses begrensninger, en vert organisasjons begrensninger eller en manglende rute. Helse advarer når ingen trunk kan bære dem.
PIN-sett
/pin-setsEt PIN-sett (kapittel 9) er en liste over PIN-koder en utgående rute ber om før den ringer ut: for å holde internasjonale eller langdistanse-samtaler til personer med en PIN, eller for å fakturere samtaler til kunder og prosjekter etter deres kode.
- Legg til PIN-sett og liste ut dets PIN-er (4 til 10 sifre hver).
- Slå på Behold PIN-en i samtaleposten for å skrive PIN-en brukt inn i hver samtalepost som dets konto-kode (konto-kode-kolonnen i CSV, syslog og PostgreSQL samtale-post-utdata, og
accounti API-et). - På Samtale-ruting (kapittel 8), åpne en utgående rute og velg settet under Spør om en PIN.
Ringere som ringer et nummer som ruten tar, hører "Vennligst tast inn din PIN, deretter trykk på hash", taster den inn, og samtalen går ut. Tre feil PIN-er avslutter samtalen, og forsøket logges som et sikkerhets-hendelse. Nødstilfeller ber aldri om en PIN, uansett rute de tar, og videre-samtaler og følg-meg-numre blir ikke bedt om det heller: bare personer som ringer fra en telefon.
Ringere-id-søk
/lookupsMange telefon-selskaper sender en ringers nummer, men ingen navn. BitVoice ser først i selskaps-kontakter (kapittel 38); etter det kan en inn-gående rute be om en ringere-id-søk (kapittel 10):
- En nettadresse: din CRM eller en tjeneste som svarer med navnet. Sett
{number}der nummeret skal være (https://crm.example.com/api/callers?phone={number}). Et ren tekst-svar gir navnet på første linje; for JSON, gi navn-feltet som en punktum-adresser (data.contact.name; et nummer går inn i en liste, som iresults.0.name). Grunnleggende autentisering er valgfri. - OpenCNAM: den nord-amerikanske oppringers navn-database, med din konto-SID og autentiseringstoken.
Velg søket på en inn-gående rute på Samtale-ruting (kapittel 8) (Ringere-id-søk). Telefoner viser navnet mens de ringer, og det går inn i samtale-posten.
Et søk holder aldri en samtale opp: BitVoice venter i maks vente (1,5 sekunder med mindre du endrer det, 5 som maks) og ringer deretter uten et navn. Svar beholdes i en dag (eller så lenge du setter, eller aldri med -1), så en vanlig ringer ikke søkes opp på hver samtale; numre tjenesten ikke kjenner, spørres igjen etter en time. Prøv det på søkets side ber om et nummer med en gang, med innstillingene som lagret.
Nødstilfeller
Nødstilfeller går alltid ut, fra hver enkelt utvidelse, selv de som ikke kan ringe utenfor numre. Dette kapitlet handler om nødstilfeller fra telefonene BitVoice kjører: et kontor som ringer 911. Å svare på 911-samtaler er 911-profilen (kapittel 77).
Hva BitVoice gjør på hver nødstilfelle
- Ruter den, alltid: en rute som navngir nummeret først; med ingen, hver arbeidende trunk i tur. Begrensninger stopper aldri det: en utvidelse som ikke er tillatt utenfor numre, en vert-organisasjon på sin samtale-grense eller suspendert, en trunk på sin kanal-grense.
- Sender hvor ringeren er: med Send ringerens adresse på (Innstillinger), samtalen bærer lokalitetens sivile adresse, etasje og rom til leverandøren som PIDF-LO.
- Forteller personer på stedet (Kari's Law i USA): utvidelsene under Varsle får en melding på telefonene sine, hver åpen BitVoice-skjerm viser en varsling, og adressene under Også e-post får en e-post med ringerens navn, utvidelse, lokalitet, etasje og rom, så noen kan møte svarene ved døren.
- Låter samtalen gå tilbake: i en time etter en nødstilfelle, innkommende samtaler nektas aldri, så svare-punktet alltid kan ringe tilbake.
Oppsett
- Sjekk nødstilfells-numrene i Innstillinger (kapittel 14) (sett etter land: 911 og 933 i USA).
- Legg til hver bygning under Steder (kapittel 12), med sin gate-adresse og nettverkene telefonene bruker.
- Gi hver utvidelse sin lokalitet, etasje og rom.
- Sørg for at en utgående rute og trunk tar nødstilfeller; Helse (kapittel 13) advarer når ingen kan.
- Fyll inn Varsle og Også e-post.
- Ring
933(i USA) for å høre adressen din leverandør har.
Fjern-arbeidere
En telefon som registrerer seg fra utenfor lokalitetens nettverk er en fjern-arbeider: deres telefon-side ber om hvor de er, og den adressen brukes i stedet. Varslinger sier når den ikke ble bekreftet.
Nødmodus
En annen ting: en bryter som sender alle innkommende samtaler til ett sted (evakuering, stengning, hendelse). Sett hvor samtaler går, en valgfri kode som *55 og utvidelsene som er tillatt å ringe det i Innstillinger (kapittel 14); slå det på Dashbord (kapittel 1), eller ved å ringe koden (stigende toner for på, en lav tone for av). En rød linje vises på hver skjerm mens det er på.
Steder og kontor 911
/sitesEt sted er en bygning: dens gateadresse og nettverkene dens telefoner bruker. Steder er hvordan en nødrop oppgir hvor oppringeren er, ned til etasje og rom. I USA krever Kari's Law og RAY BAUM'S Act nøyaktig dette fra bedriftstelefoner.
Legg til en lokalitet
På Steder (kapittel 12), trykk Legg til:
| Felt | Hva det er |
|---|---|
| Navn | hva folk kaller det: Hovedkontor |
| Gate, By, Fylke eller provins, Postnummer, Land | den sivile adresse hjelpere sendes til |
| Nettverk | adresseområdene det bruker til telefoner, som 10.1.0.0/16; ett per linje |
Deretter på hver utvidelse gi dens sted, etasje og rom. Helse (kapittel 13) lister utvidelser uten en plassering.
Hvor en telefon plasseres
- En telefon som registrerer seg fra ett av et stedets nettverk, er på det stedet, med etasje og rom for dens netttelefonnummer.
- En varm skrivebord bærer skrivebordets eget sted, etasje og rom, ikke personen som er logget inn (Varmplassering (kapittel 36)).
- En telefon som registrerer seg fra utenfor alle stedets nettverk er en remsearbeider. Ved sin første nødsituasjonskapable registrering fra et nytt sted, blir dens bruker bedt om å bekrefte sin adresse på sin telefonside; nødsamtaler har deretter denne adressen.
- Hvis en remsearbeider aldri har bekreftet, går samtalen likevel ut, med netttelefonnummerets vanlige sted, og varslinger sier at adressen ikke ble bekreftet.
##Varsler på stedet Med E-post når noen ringer 911 angitt i Innstillinger, mottar personene som er navngitt der, navn, utvidelse, sted, etasje og rom så snart et oppkall til en nødnummer begynner, slik at noen kan møte respondentene ved døren. Varsle utvidelser får en melding på telefonene sine, og hver åpen BitVoice-skjerm viser en varsling. Se Nødanrop (kapittel 11).
Helse
/healthHelse sier om systemet er klart for samtaler, og hvis ikke, hva du skal gjøre. Hver linje sier hva som er galt på vanlig språk og lenker til skjermen hvor det fikses. Sjekk det etter hver endring av noen størrelse.
Hva det sjekker
| Sjekk | Hvorfor det er viktig |
|---|---|
| Nødsamtaler kan komme ut | en rute og en fungerende trunk bærer nød-numrene |
| Utvidelser uten en nød-lokasjon | deres 911-samtaler ville bære ingen etasje eller rom |
| Telefon-tjenesten | SIP lytter, og på hvilken port |
| Telefoner ikke koblet til | utvidelser ingen har logget inn som |
| Trunker | registrert, eller grunnen til at de ikke er |
| Menyer uten en innspilt prompt | samtale-partnere ville høre stillhet |
| Tidssonen | timeplaner følger den |
| Opptak og deres lagring | disk-plass, og hvor lenge opptakene beholdes |
| Sertifikater | når TLS-sertifikatet går ut |
| Nøkkel-hvelv | hemmeligheter et hvelv ikke kan lese |
| Andre servere | når flere deler en database, om hver er kjørende |
Problemer er fargede: rød stopper samtaler (ingen nød-rute), gul skal sjekkes (en telefon ikke koblet til), og grå er for informasjon.
Innstillinger
/settingsInnstillinger inneholder alt om systemet som helhet. Hver seksjon lagrer på egen hånd, og hver lagring er en revisjon på Endringer (kapittel 61).
| Section | What is there |
|---|---|
| System | name, country, time zone, language, the public address phones and providers see |
| Numbers | the echo test, voicemail and park numbers, and the emergency numbers |
| Codecs | the codecs phones may use, best first (Codecs (kapittel 66)) |
| Call recording | off, every call, or selected extensions; consent rules; how long recordings are kept |
| Sound | clean-up for voicemail and during calls |
| Protection | bans after failed sign-ins, trusted networks, calls per extension, premium numbers |
| Emergency | send the caller's address, who is notified, who is emailed, emergency mode |
| AI | the AI service, models, and which AI features are on (AI (kapittel 28)) |
| Single sign-on | the identity provider (Single sign-on (kapittel 58)) |
| Asterisk compatibility | AMI and ARI for programs written for Asterisk (Asterisk compatibility (kapittel 70)) |
| AI assistants (MCP) | whether AI assistants such as Claude or ChatGPT may connect, and whether they may act (AI assistants (kapittel 71)) |
| Microsoft 365 and Google Workspace | people and shared contacts into Contacts, and calendars for who is away (Contacts (kapittel 38), Calendars (kapittel 39)) |
| Mobile apps | the push service that wakes the apps |
| the mail server voicemail, faxes and alerts go through | |
| Key vaults | secrets kept in AWS Secrets Manager or Azure Key Vault |
| Configuration from Git | keep the configuration in step with a file in a repository |
| Database | SQLite or PostgreSQL (Database (kapittel 64)) |
| Certificate | the certificate for this interface and SIP over TLS: from Let's Encrypt, installed by hand, or BitVoice's own |
Passord og nøkler vises aldri igjen en gang de er lagret; la dem være tomme for å beholde dem. Visere ser Innstillinger med alle hemmeligheter fjernet.
Sertifikatet og Let's Encrypt
BitVoice starter med et sertifikat det har laget selv, som nettlesere og telefoner advarer om. For en server med et offentlig navn, slå på Let's Encrypt under Sertifikat: angi navnene (pbx.example.com), valgfritt en e-postadresse, og apply. BitVoice får et gratis sertifikat fra Let's Encrypt, bruker det med en gang for nettgrensesnittet, SIP over TLS og Teams, og fornyer det omtrent 30 dager før det utløper (Let's Encrypt-sertifikater varer 90 dager eller mindre). Statuslinjen sier når det ble utstedt, når det fornyes og, hvis det feilet, hvorfor; det prøver igjen etter en time, så mindre ofte, innen Let's Encrypts grenser. Sjekk nå prøver med en gang.
Let's Encrypt må nå serveren under hvert navn fra internettet for å bevise at det er deres:
- http-01 (valget med mindre webgrensesnittet er på port 443): en forespørsel til port 80. BitVoice svarer på port 80 selv (på Linux trenger det retten til å åpne lavports, som
setcap cap_net_bind_service=+ep bitvoice), eller viderevider port 80 på ruteren til webgrensesnittets port, som også svarer. Alt annet som ankommer port 80 sendes videre til HTTPS, bare for sertifikatets navn. Når BitVoice ikke kan åpne port 80, sier Let's Encrypt-boksen hvorfor i amber og hva som tillater det (den eksaktesetcap-linjen for dette programmet, eller systemd'sAmbientCapabilities=CAP_NET_BIND_SERVICE; eller et annet program allerede holder porten). Test navn ber deretter hver navn om en testfil over internettet, som Let's Encrypt vil, og sier for hver om den nådde BitVoice, nådde noe annet eller ikke er i DNS. Noen ruter gjør ikke hårnåle-NAT (hairpin NAT): der feiler testen fra innside selv om Let's Encrypt, fra utsiden, lykkes. - tls-alpn-01: en TLS-tilkobling til port 443, besvart på webgrensesnittets egen port: for en server hvis webgrensesnitt er på 443.
Andre ACME-myndigheter som ikke trenger konto-binding (et selskaps eget step-ca, Let's Encrypts testtjeneste for tester) velges under Myndighet. Wildcard-navn trenger DNS-bevis, som BitVoice ikke gjør: installer disse sertifikatene manuelt. Hver server i en cluster får sitt eget sertifikat.
Skjermene på ditt språk
BitVoices skjermer kommer på engelsk og på tretten andre språk: Deutsch, Français, Español, Italiano, Português, Nederlands, Polski, Svenska, Dansk, Norsk bokmål, Suomi, 日本語 og 简体中文.
Velg ett
Hver nettleser har sitt eget språk: velg det under menyen (språklisten ved siden av temaene), på innloggingssiden eller på oppsettsguidens første side. Før du velger, bruker BitVoice nettleserens eget språk når det er ett av disse, ellers engelsk. Valget lagres bare i denne nettleseren: to personer på en server kan hver arbeide på sitt eget.
Alt på skjermene er oversatt: menyen, overskrifter, knapper, hint, meldinger fra serveren og navn skjermlesere annonserer. Søk (⌘K) finner en side etter dens navn på ditt språk eller på engelsk. Igjen som de er: hva mennesker skriver (navn, numre, notater), adresser, koder, skript i redigeringsverktøyene og navn på produkter og protokoller. Datoer og numre følger nettleserens egne innstillinger.
Hvordan det oversettes, og hvor godt
Oversettelsene er laget av en maskin (en stor språkmodell), for hver del av teksten skjermene viser, om lag 5 000 av dem; ingen har blitt sjekket av en person. Noen setninger skjermene bygger fra deler (et nummer og et ord) kan lese ujevnt, og en term kan bli oversatt på to måter på to steder. Alt uten oversettelse, som en skjerm nyere enn oversettelsene, forblir engelsk.
Hjelp holder denne håndboken på engelsk, som skrevet, med en lenke øverst på hvert kapittel til samme kapittel oversatt hele (også av maskin) på bitvoice.org.
Telefondelen er separat: hva ringere hører (lydinnspillinger, valgmeny for voicemail) er på standard lydinnstillingspråket (Lyder (kapittel 20)), med mindre en utvidelse eller en kø har sitt eget språk.
Hvor samtaler går
Byggeklossene som ringere går gjennom: grupper og køer, menyer og planer, skript og AI-resepsjonist, voicemail og diagrammet som viser alt.
Samtaleflyt
/flowSjekk hver situasjon
Sjekk hver situasjon, øverst på Samtaleflyt (kapittel 16), prøver hele ditt samtaleplan i hver situasjon det kan være i, ikke et utvalg:
- hver kombinasjon av åpne og lukkede som dine planer faktisk når over det kommende året (hver helligdag inkludert), funnet i 15-minutters skritt;
- hver kombinasjon av dag/natt-omskifter (eller, med mer enn seks, hver enkelt omskiftet alene);
- hver inngående rute, og hver tast en caller kan trykke i hver meny, hver "hvis ingen svarer" og hver kø-tidsavbrudd langs veien;
- hver utvidelse 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 sjekken kjøres på endringer før de gjøres: et forslag fra Spør på en enkel måte og Gjenopprett denne ser på en gammel revisjon, begge lister hva endringen ville bryte som fungerer i dag.
Prøv et oppringning
Angi hvem som ringer (en utvidelse eller et eksternt nummer), hva de ringer og når, og trykk Prøv det. BitVoice følger oppringningen nøyaktig som den ville for ekte, uten å ringe noe: den innkommende ruten, tidsskjemaer på den tiden, routingskript (de kjører, i deres sandkasse), menyer, grupper og køer, og hva som skjer hvis ingen svarer. Veien denne oppringningen tar, er merket; andre veier på (en menys nøkler, et tidsskjemas andre side) kan åpnes. Grønt betyr det fungerer, gul betyr se på det (en telefon som ikke er koblet til, et skript som faller tilbake), rødt betyr oppringningen feiler der. Velg Anta at hver telefon er koblet til for å se planen som den er designet, i stedet for hvordan den er akkurat nå; Ankommer på velger trunken for ruter som bare tar en.
Diagrammet
Diagrammet viser hvor oppringninger fra utsiden går, boks for boks: hver innkommende rute, deretter menyer, grupper, køer, tidsskjemaer, skript og personer det leder til.
Klikk en boks (eller trykk Tab til den og trykk Enter) for å endre hvor oppringninger går fra den: en rutes destinasjon, en utvidelses eller gruppes Hvis ingen svarer, et tidsskjemas åpne og lukkede destinasjoner, en menys nøkler (legg til eller fjern nøkler rett der), et skripts fallback eller en resepsjonists person. Lagring av sjekker endringen som enhver annen og lager en revisjon. Åpne full redigerer går til elementets egen side. Legg til innkommende rute legger til en rute uten å forlate diagrammet.
Ringgrupper
/ring-groupsEn ringgruppe er ett nummer som ringer flere utvidelser: en salgsteam, resepsjonen og dens reserve, alle i verkstedet.
Ringestrategier
- Alle på en gang: hver medlems telefon ringer sammen, og den første som svarer tar anropet. De andre holder opp med å ringe.
- En etter en: hver medlem ringer for gruppen sin ringetid, i rekkefølgen de er listet. Flytt medlemmer med pilene, eller Alt+↑ og Alt+↓.
Medlemmer som er borte (i et møte på deres kalender, eller med ikke forstyr på) hopper over; gruppen ringer de andre. Medlemmer med mobilappen våkner med en push og ringer også.
Hvis ingen svarer
Når ingen svarer innen ringetiden, går anropet til Hvis ingen svarer: en medlems voicemail, en kø, en meny, en annen gruppe. Med ingenting satt, ringer det til den som ringer gir opp.
Grupper, køer eller plukk?
| Bruk | Når |
|---|---|
| En ringgruppe | noen mennesker, hvor noen kan ta anropet, og anropet skal ringe nå |
| En kø | anropere kan måtte vente på noen som er ledig, og skal høre sin plass |
| En plukkgruppe | hver person har sine egne anrop, men kolleger kan svare for dem |
Køer
/queuesEn kø holder anropere i rekkefølge, med musikk, og ringer den neste ledige agenten. Det er hjertet av en kontakt-senter, og nyttig i noen kontor hvor anrop kommer raskere enn mennesker kan ta dem.
Hvordan samtaler tilbys
| Strategi | Hvem ringer |
|---|---|
| Lengst inaktiv | den ledige agenten som har ventet lengst siden sin siste samtale |
| Runde robin | hver ledig agent i tur, fortsetter fra den siste |
| Ring alle | alle ledige agenter samtidig |
| Færrest samtaler | den ledige agenten som tok færrest samtaler i dag |
| I rekkefølge (lineær) | alltid fra toppen av listen: den første ledige agenten |
| Tilfeldig | en tilfeldig ledig agent |
| Vektet tilfeldig | tilfeldig, agenter med en lavere straff blir valgt mye oftere |
- Rekkefølge: listen over agenter er i rekkefølge; flytt dem opp og ned. I rekkefølge og Round robin følges den.
- Straffpoeng rangerer agenter (0 til 100, 0 når tom): samtalene tilbys de ledige agentene med lavest straffpoeng, og en agent med høyere straffpoeng rings bare når ingen med lavere straffpoeng er ledig. Bruk dem for en første linje og en overflødslinje i én kø.
- Vekt rangerer køer som deler agenter: mens en kø med høyere vekt har noen som venter, tar dens agenter først dens oppringere.
- Avslutning gir en agent tid etter en samtale før neste.
- Lengste ventetid: oppringere som venter lengst går til køens tidsutløpsdestinasjon. 0 venter for alltid.
- Musikk på vent: oppringerne hører køens musikk (enhver klasse fra Lyder (kapittel 20)), systemets, eller køtons.
- Fortell ventende oppringere deres plass i køen og den forventede ventetiden (gjennomsnittlig ventetid for besvarte oppringere i dag, i minutter), hver så mange sekunder, på køens språk. Ordene kommer fra køens prompter i Lyder (kapittel 20); inntil de er innspilt, sies ingenting.
Skjermen Køer er en live tavle: hvem venter, hvor lenge, og hver agents tilstand.
Agenter
Agenter ringer *45 for å logge inn eller ut av hver kø, og *46 for å pause (en pause) og gjenopprette; pausede og logged-out agenter tilbys ikke samtaler. Tavlen har samme knapper, og viser hvorfor en agent pauserte.
| Tilstand | Mening |
|---|---|
| tilgjengelig | ledig; vil bli tilbudt neste samtale |
| ringer | blir tilbudt en samtale |
| opptatt | på en samtale |
| avslutning | nettopp ferdig; avslutningstiden løper |
| pause | på en pause, med årsaken gitt |
| borte | på et møte eller på permisjon, fra deres kalender |
| logged out | tar ikke køsamtaler i det hele tatt |
Overvåkere
På Aktive samtalene (kapittel 46), Overvåk ringer en overvåkers telefon; når de svarer, kan de lytte (høres av ingen), viske (høres bare av agenten) eller bryte inn (høres av begge), og kan skifte mellom dem under samtalen.
Køer med faste agenter og VIP-er
Slå på Faste i en kø, og en gjentakende samtale (en som ble besvart i løpet av de siste 30 dagene, eller så mange som du setter) blir først tilbudt agenten som svarte sist, hvis den agenten er ledig; hvis de ikke svarer, fortsetter køen som vanlig. VIP-samtaler, nederst i Køer, går foran hver kø de ringer, etter eventuelle VIP-samtaler som allerede venter, og er merket VIP på tavlen.
Utgående oppkobler
/dialerDen utgående oppringeren (kapittel 19) ringer liste over kontakter for en kø (kapittel 18)'s agenter: fornyelser, avtalepåminnelser, innkrevinger, undersøkelser. Hver kampanje har sin egen kø, sin liste og sin måte å ringe på:
| Modus | Hvordan den ringer |
|---|---|
| Forhåndsvisning | en agent ber om neste kontakt, ser detaljene, deretter ringer den (deres telefon ringer først) eller hopper over den |
| Progressiv | en samtale for hver ledig agent |
| Kraft | et fast antall samtaler for hver ledig agent (1 til 3) |
| Forutsigbar | BitVoice justerer samtaler per agent, med vekt på mens få samtaler er fraflyttet og bakover mens fraflyttingsraten nærmer seg grensen |
- Legg til kampanje: dens kø, dens ringende ID (nummeret kontaktene ser), timene samtaler kan gjøres i en tidssone, hvor lenge en kontakts telefon ringer, hvor mange forsøk og hvor langt fra hverandre.
- Åpne Kontakter og Legg til en liste: en CSV-fil med en header-rad og en kolonne kalt
number(ellerphone);nameog andre kolonner vises til agenten i forhåndsvisning. Duplikate og ugyldige numreer hoppe over. - Ta opp meldingen (i kampanjen): hvem som ringer og hvorfor, og "trykk 9 hvis du ikke ønsker disse samtaler". Den spilles av til en person som har svart når ingen agent er ledig, og, hvis du velger, etter en beskjed på en telefonsvarer.
- Start den. Den ringer bare innenfor sine timer, og stopper å ringe når den er pause eller ingenting er due.
Personer og maskiner. BitVoice lytter til de første sekundene etter en beskjed: en lang, uavbrutt hilsen er en telefonsvarer; en kort «hallo?» og en pause er en person. En maskin kan legges på (og forsøkes igjen), eller en melding kan bli etterlatt, eller den kan overføres til en agent som hvem som helst andre. Når det er tvil, tar den svaret for en person.
Frafunnete oppkall. En person som har svart når ingen agent er ledig i to sekunder, hører meldingen og teller som frafunnet. Med kraftig og prediktiv ringing, hvis andelen frafunnete oppkall over de siste hundre svarene går over kampanjens grense (3% med mindre du endrer det, US-regel), ringer kampanjen ett oppkall per ledig agent til det er tilbake under. Kampanjen viser sin frafunnsrate, oppkall som ringer og ledige agenter live.
Ikke ring liste. Ingen kampanje ringer et nummer på ikke ring listen, uansett hvilken liste det kom inn på; hvem som helst som trykker 9 under meldingen, legges til med en gang. Legg til numre for hånd eller gjennom API (POST /api/dnc). For den nasjonale registret (i USA, FTCs National Do Not Call Registry: last ned områdeskodene du ringer som en flat fil), velg filen under Nasjonalt register og Import: hver linje med et nummer teller (212,5550100 som FTC skriver dem, eller ett nummer per linje), overskrifter og ødelagte linjer hopper over og teller. Med Erstatt siste import på, fjernes de forrige nedlastningens numre først, så et nummer som har forlatt registret kan ringes igjen; numre lagt til for hånd eller ved å trykke 9 forblir alltid. Registret må oppdateres minst hver 31. dag (US-regler); siden teller listen og hvor mye av den som kom fra registret. API er POST /api/dnc/import?replace=1 med filen som brødteksten.
Lyder: prompter, språk og ventemusikk
/soundsLyder (kapittel 20) inneholder alt BitVoice sier eller spiller til oppringere, bortsett fra hilsener og menyprompter, som blir innspilt der de brukes.
Prompter, på hvert språk
En prompt er en ting BitVoice sier: "Vennligst tast inn din PIN", "Din plass i køen er", tallene den leser opp. Navn- og oppslagskataloger, innringing (DISA), vekkingssamtaler og køannonsering snakker med dem. BitVoice har ordene til hver prompt på engelsk, spansk, fransk, tysk, italiensk, portugisisk, nederlandsk og polsk; tall leses opp siffer for siffer, som høres likt ut på hvert språk.
- Samtaler hører setter språket for alle. En kø, en innringingsnummer, en katalog eller en utvidelse kan velge et annet.
- Hver prompt kan innspilles i nettleseren, lastes opp (en hvilken som helst lydfil; den blir omgjort til telefonlyd) eller laget av tale-tjenesten: med en talemodell satt i Innstillinger, AI, en knapp lager hver prompt i et språk fra dens ord. Prompter som allerede er innspilt, blir beholdt med mindre du ber om å erstatte dem.
- Legg til et språk for et hvilket som helst annet språk (en kode som sv, ja eller pt-BR); dens prompter blir innspilt eller lastet opp, med de engelske ordene vist som en guide.
- En manglende prompt i et språk spilles på standard-språket, deretter på engelsk; med ingen innspilt i det hele tatt, hører samtaler en kort tone, så hver funksjon fungerer før en enkelt prompt er innspilt.
Bakgrunnsmusikk
Bakgrunnsmusikk er gruppert i klasser (Roft, Jazz, Salgs Tilbud…), hver en liste over spor som spilles ett etter ett, fra starten eller tilfeldig. Last opp spor på opptil femten minutter i ethvert format nettleseren kan lese; MP3- og WAV-filer kan også sendes direkte til API-et (PUT /api/music/{class}/{name}), og BitVoice dekoderer MP3 selv (MPEG-1, 2 og 2.5 Lag III, med en dekoder som gir samme eksempler som minimp3).
Internett radio. En klasse kan spille en strøm i stedet for sine spor: oppgi en MP3-strøms adresse (Icecast, Shoutcast, de fleste internett radio) under Internett radio. BitVoice kobler til når den første samtaler blir satt på vent med denne klassen, spiller den ene strømmen til alle som venter, og kobler fra halvannen minutt etter at den siste forlater.
| Hvem hører det | Hvilken musikk |
|---|---|
| noen som er satt på vent | musikken valgt på den som holder samtalen, ellers standard |
| en parkert samtaler | musikken til personen som parkerte dem, ellers standard |
| en samtaler som venter i en kø | køens musikk, ellers standard |
| en samtaler som venter på en konferanseleder | standard |
Standard for alle kan være ventetonen, så ingenting endres før du velger musikk. Velg ventetonen på en kø eller utvidelse holder tonen der.
Navn-oppkoblingsskatalog
/directoriesEn dial-by-name-katalog (kapittel 22) lar oppringere nå noen uten å kjenne deres nummer: de staver de første bokstavene i navnet på tastaturet (2 for ABC, 3 for DEF, opp til 9 for WXYZ) og blir koblet gjennom.
- Legg til katalog, navngi det, og gi det et nummer (411, for eksempel) eller la nummeret være tomt og bruk det som et menyvalg.
- Velg hva samtaler skal stave: etternavn (vanlig), fornavn, eller begge.
- Velg hvem som er listet, eller ingen for å liste alle med en telefon.
Samtaler hører "Vennligst oppgi de første tre bokstavene i personens navn". En match kobles til med en gang. Flere leses opp, åtte om gangen: hver persons navn, deretter "for å ringe denne personen, trykk 1", 2 og så videre, med 9 for flere navn. Ingen match: "Ingen matcher", og de prøver igjen (tre forsøk).
Uttales navn: Innspill hver persons navn på deres utvidelse (Uttales navn: Innspill i nettleseren eller last opp en fil), og katalogen sier det; inntil da leser den ut utvidelsesnummeret. Katalogens egne ord kommer fra katalogpromptene i Lyder (kapittel 20), på dets språk.
Innkobling (DISA)
/dial-inEn dial-in (kapittel 23) (DISA, "direkte innvendig systemtilgang") lar noen ringe inn fra utsiden, bevise hvem de er, og ringe ut igjen gjennom kontoret: samtalen går ut med kontorets oppringer-ID, dens ruter og dens takster, som om de var ved deres skrivebord.
- Legg til dial-in, og sett et PIN (4 til 10 sifre), de numrene som er tillatt å bruke det (Kun fra disse numrene), eller begge deler. En av de to er påkrevd.
- Velg utvidelsen som samtalen blir gjort fra: dens utenom-kalle-tillatelse, oppringer-ID og utgående ruter gjelder. Den må være tillatt å ringe utenom.
- Gi det et nummer å ringe inn, og send et telefonnummer til det på Samtale-ruting (kapittel 8) (velg dial-in som destinasjon).
Oppringere hører "Vennligst tast inn ditt PIN, så trykk på hash", så "Vennligst tast inn nummeret du vil ringe, så trykk på hash", og blir koblet gjennom. Ordene kommer fra dial-in-promptene i Lyder (kapittel 20).
Taleboter (AudioSocket)
/voice-botsEn talebot (kapittel 24) er et program du selv har laget (en AI-agent, en tale-gjenkjenning IVR, en opptaker) som tar oppkall over AudioSocket, det enkle protokollen Asterisk bruker: BitVoice svarer på oppkallet, åpner en TCP-tilkobling til boten og sender oppkallets UUID, deretter callerens lyd som 20 ms-rammer av 8 kHz 16-bit lineær audio og hver tast trykket; hva som helst lyd boten sender tilbake, spilles til calleren. Bots og tale-tjeneste-tilkoblinger skrevet for Asterisks AudioSocket fungerer uendret med BitVoice.
- Legg til talebot: dens navn, botens adresse (
10.0.0.9:9092) og, valgfritt, et nummer for å ringe den. - Velg hvor calleren går hvis boten ikke kan ta oppkallet, eller bryter av (en person, en kø, voicemail): påkrevd, så ingen caller noen gang blir droppet fordi en bot er nede.
- Send oppkall til den fra Oppkallsruting (kapittel 8), en menyvalg, en timeplan eller en omkopling.
Når boten sender en AudioSocket-oppkobling, avsluttes oppkallet; når calleren legger på, sendes en til boten. En bot som ikke kan nås innen tre sekunder, eller hvis tilkoblingen bryter uten en oppkobling, overfører calleren til reservevalget, og feilen logges.
For å bringe et program inn i et oppkall som allerede er i gang (en lytting transkriber, en assistent som hvisker til ingen), bruk ARI-ekstern media: se Asterisk-kompatibilitet (kapittel 70).
Dag/natt-omkoplinger
/togglesEn dag/natt-omkopling (kapittel 25) er en bryter for en oppkallstrøm (FreePBX kaller det oppkallstrøm-kontroll). Oppkall sendt til den går til dens normale destinasjon, eller til den andre mens noen har skiftet den over: kontoret lukker tidlig på grunn av en storm, noen ringer *281 på vei ut, og oppkall går til voicemail til det skiftes tilbake om morgenen. Den forblir som den ble latt, over omstarter.
- Legg til omkopling, gi den en kode (1 til 3 siffer: ringt etter
*28) og velg hvor oppkall går normalt og når den er skiftet over. Begge sider kan være en timeplan, så en omkopling kan sitte foran åpningstidene og overstyre dem. - Velg hvem som kan skifte den fra en telefon (ingen valgt lar hvilken som helst utvidelse).
- Send oppkall til den fra Oppkallsruting (kapittel 8), en menyvalg eller en timeplan, som enhver annen destinasjon.
Skift den ved å ringe *28 og dens kode (en stigende tone: skiftet over; en synkende tone: tilbake til normalt), med omkoplingen ved siden av den på Omkoplinger-siden, eller gjennom API (POST /api/toggles/{id}/state). En busy-lampe-nøkkel som overvåker *281 er lys mens den omkoplingen er skiftet over, så personen som lukker opp kan se det fra sin pult. Omkoplingskoden selv er på Funksjonskoder (kapittel 32).
Timeplaner
/schedulesEn timeplan sender samtalene en vei når du er åpen og en annen når du er stengt. Peke en innkommende rute mot en timeplan, og timeplanen mot menyen (åpen) og voicemail (stengt).
Åpningstider
Hver linje med tider er en sett av dager og en tid fra og til. Flere linjer er tillatt: mandag til fredag 9:00 til 17:00, og lørdag 10:00 til 13:00. Tider kan kryss midnatt (22:00 til 06:00) for nattskifter.
Helligdager
Helligdager teller som stengt hele dagen, uansett hva tider sier. Legg til hver dato med et navn; navnet vises på Samtaleflyt (kapittel 16) når du prøver en samtale på den dagen.
Tidssone
Tidssonen er den i Innstillinger. Når klokken endrer, følger timeplanene lokal tid.
Skript (JavaScript og Lua)
/scriptsEt skript bestemmer hvor en samtale går når menyer, timeplaner og grupper ikke er nok: ringende fra ett område til ett kontor, VIP-numre rett til en person, en beslutning fra dine egne data. Eller, sett til Kjører hele samtalen, besvarer det samtalen og kjører den, som en Asterisk-dialplan eller AGI-skript ville: promter og tale, taster, innspillinger, ringing av personer, overføring (nedenunder). Skriptene skrives i JavaScript eller Lua på Skript (kapittel 27).
Sikker ved design
- Et ruting-skript kjører i maks 200 ms. Hvis det feiler eller tar for lang tid, går samtalen til skriptets fallback, så en feil aldri mister en samtale. (Samtale-skript har sine egne begrensninger, nedenfor.)
- Det kjører i en sandbox: det kan ikke nå nettverket eller disken. Et ruting-skript kan bare velge; et samtale-skript kan bare gjøre de trinnene listen nedenfor, til sin egen samtale.
- Nødoppringer kjører aldri skript.
Hva et skript ser
call har:
| Felt | Hva det er |
|---|---|
from, fromName | oppringerens nummer og navn |
to | nummeret som ble valgt |
direction | inbound eller internal |
trunk | trunken det kom inn på |
weekday, hour, minute | tid nå (0 er søndag) |
date | YYYY-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
Bruke et skript
Pek en innkommende rute, en menytast eller en timeplan mot skriptet, som mot en hvilken som helst destinasjon. Test kjører det med et oppring du beskriver, uten å plassere et oppring; kjørelisten viser hver ekte kjøring med dens avgjørelse, tid brukt og eventuelle feil. Oppringsflyt (kapittel 16) kjører også skript når du prøver et oppring.
Skript som kjører hele oppringen
Velg Kjører hele oppringen. Skriptet svarer da på oppringen og går fra topp til bunn, hvor hvert steg venter til det er ferdig:
| Steg | Hva det gjør |
|---|---|
play(name) | spiller en prompt fra Lyder (kapittel 20) på oppringerens språk (goodbye, digit-5...), digits:1234, eller en tone: beep, confirm, error, off, hold. En prompt som ikke er innspilt enda er en beep. |
say(text) | snakker ordene med tale-tjenesten i Innstillinger, AI (en beep uten en) |
collect({max, timeout, interDigit, end, say, prompt}) | samler inn tastene: maks max (32), venter timeout sekunder for den første (5) og interDigit for hver neste (3), til end (#). say eller prompt spør først. Returnerer tastene, "" når ingen. |
record({box, seconds, beep}) | innspiller en melding til en extensions postkasse, til # eller tiden; returnerer sekundene |
wait(seconds) | venter, returnerer en tast trykket |
dial(destination, ringSeconds) | ringer det med at oppringeren hører ringesignal. Besvart: de snakker og skriptet er ferdig (true). Ikke besvart: false, og skriptet fortsetter. |
transfer(destination) | overfører oppringen; skriptet er ferdig |
hangup() | avslutter oppringen |
log(text) | skriver til kjørelisten |
En destinasjon er et nummer (en utvidelse, ringgruppe eller kø her, ellers et eksternt nummer gjennom utgående ruter; aldri et nødnummer) eller {type, target} som ovenfor. En tast trykket under en lyd stopper den; play og say returnerer den og den neste collect starter med den. Å returnere en destinasjon sender oppringen dit.
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 stegene (collect{max = 1}). Gi skriptet et Nummer å ringe for å ringe det fra en utvidelse.
Dets grenser holder oppringen trygg: skriptets egen kode kan kjøre maks en fjerdedel sekund mellom to steg; en oppring tar maks 1 000 steg; og hele skriptet stopper etter sin Lengste kjøring (10 minutter med mindre du sier, 60 som mest). Når det feiler, stoppes eller avslutter uten å avslutte eller overføre oppringen, går oppringen til sin fallback; en oppringer som legger på stopper det med en gang. Prøv det kjører skriptet med tastene du sier oppringeren trykker og lister hver steg, uten å plassere et oppring.
AI-resepsjonist, voicemail-triage og spørsmål
/receptionistsAI-funksjoner bruker AI-tjenesten satt i Innstillinger (kapittel 14): en OpenAI-kompatibel tjeneste (OpenRouter som standard) eller en du kjører selv. Hva de trenger sendes der, så velg en tjeneste du stoler på med samtaler; for en 911-sentrale, dens eget regjeringsnettverk teller som lokal.
AI-resepsjonist
Velg en resepsjonist som hvor samtaler går: en rute, et menyvalg eller en utvidelses Hvis ingen svarer. Den sier at den er automatisert, besvarer bare fra Godkjent informasjon, tar en melding, booker en tilbakekalling (se Tilbakekallinger (kapittel 30)), eller overfører til En person er. Trykk 0 eller spør om en person når du alltid når noen, og så gjør også noen problemer med AI-tjenesten eller talemodellen: ringere blir aldri stukket med den.
Modeller
Modell gjør tekstarbeid: sammenfatninger, resepsjonistens svar og spørsmål på vanlig språk. Å omdanne tale til tekst trenger en modell som tar audio; sett den som Tale-til-tekst-modell (for eksempel google/gemini-2.5-flash på OpenRouter) for å bruke en tekst-basert modell for resten, som meta-llama/llama-3.3-70b-instruct.
Tale til tekst i bygningen
Tale kan skrives ned uten noen språkmodell: en talegjenkjenner (whisper) hører audioen og skriver hva som ble sagt, ikke mer. Hvem skriver tale ned, i AI-innstillingene, har tre valg:
- Modellen over: audioen går til AI-tjenesten, hvis modell må ta audio.
- Denne serveren: BitVoice kjører whisper selv. Velg en Whisper-modell og lagre: BitVoice henter den en gang fra whisper.cpp-prosjektet (
baseer 60 MB;small,mediumoglarge-v3-turboer mer nøyaktig og langsommere; alle forstår omtrent 100 språk), sjekker den mot dens publiserte SHA-256, og starter whisper.cpp sinwhisper-serverpå 127.0.0.1 ved siden av den, og starter den på nytt hvis den stopper. Ringernes audio forlater aldri datamaskinen og ingenting betales per samtale.whisper-server(MIT-lisens) kommer i BitVoice sine nedlastinger ved siden av programmet, og installatorene legger den ved siden av BitVoice; BitVoice finner også en installert på egen hånd (brew install whisper.cpp). Innstillingene viser hvor den står (henter modellen, starter, kjører, eller hvorfor den ikke er), og det gjør også Helse (kapittel 13). Mens den ikke kjører, feiler transkripsjoner og sier hvorfor: de blir aldri sendt noen andre steder i stedet. - En tale-til-tekst-tjeneste: whisper.cpp sin
whisper-serverpå en annen datamaskin i bygningen (http://192.168.1.20:8178/inference), for en maskin med en GPU som betjener flere BitVoice-servere, eller noen OpenAI-kompatibel…/audio/transcriptions(med Dens modell, som whisper-1, og Dens nøkkel). Barehttper akseptert til denne datamaskinen eller en privat nettverksadresse; alt annet må værehttps. For å kjø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.
Fakta nevnt i samtalen (ingen språkmodell)
Hver transkript leses også av regler, uten språkmodell, for faktene en call-taker noterer: hva som skjedde, hvor, hvor mange som er skadet (eller at ingen er), tilstander (pusting, våken, blødende ...), farer (brann, røyk, gass, våpen, kjemikalier, drivstoff), kjøretøy, hvem ringende er i forhold til personen i need, og et tilbakekallingsnummer. Hver faktum vises med setningen det kom fra og siden som sa det, i transkriptets Fakta nevnt i samtalen. Uten en modell, skrives sammenfatningen fra disse faktene alene, og sier det.
- Ingen ting legges til som ingen sa. "Ingen er skadet" er et faktum for seg; en ringende som videreformidler noen andres ord ("hun sier han puster ikke") merkes rapportert; "24 Pine Lane. Nei, unnskyld, 42" beholder 42; et bart "nei" svarer på spørsmålet som ble stilt rett før.
- Det er trofast, ikke fullstendig: ord det ikke kjenner, blir oversett. På tre sett med oppfunnete 911-samtaler (ingen ekte ringendes ord), finner det:
| Sett | Faktum funnet | Faktum funnet som ingen forventet |
|---|---|---|
| Trening (reglene ble skrevet fra den) | 41 av 41 | 0 |
| Hold-out, scoret kaldt, før noen regel ble skrevet fra den | 27 av 40 (67%) | 2 |
| Hold-out, etter en andre runde med regler skrevet fra dens savn | 40 av 40 | 0 |
| Forseglet, scoret kaldt (ingen regel er noen gang skrevet fra den) | 23 av 43 (53%) | 3 |
Det forseglende poengsummen er det en kan forvente på samtaler den ikke har sett, og de tre settene ble skrevet av samme personer som reglene, så virkelige samtaler vil sannsynligvis gjøre det dårligere. Les faktumene ved siden av transkripsjonen, aldri istedenfor den.
Større modeller trenger mer prosessor: en server som skriver ut mange samtaler samtidig, bør starte med base, eller bruke en maskin med en GPU som en tale-til-tekst-tjeneste for bygningen. På Apple-computere bruker whisper GPU-en.
Voicemail-triaging
Med Transkriber og summer voicemail på, blir hvert meldingsopptak også merket som急, normalt eller lav prioritet, med sin type (salg, support, fakturering...). Urgente meldinger utløser en varsel på hver administrators skjerm.
Spør på enkelt måte
På Endringer (kapittel 61), beskriv en endring ("send salgsoppringer til voicemail etter kl. 17"). AIen foreslår den, BitVoice sjekker den som enhver annen endring og viser nøyaktig hva som ville endre seg. Ingenting endres før du trykker Apply, og den blir en revisjon du kan gjenopprette. Passord sendes aldri til AIen.
Postkasse
/voicemailHver utvidelse kan ha en postkasse. Oppringere som ikke blir besvart hører dens hilsen og lar en melding; personen hører den på sin telefon, leser den på skjermen eller får den via e-post.
Slå det på
På utvidelsen, slå på Postkasse. Hvis ingen svarer er da satt til postkassen. Gi den et PIN (4 til 10 sifre): det åpner postkassen fra en annen telefon, og logger personen inn på medarbeiderportalen og på varme skrivebord.
| Innstilling | Hva det gjør |
|---|---|
| Lengste melding | 10 til 900 sekunder (180 som standard) |
| E-post nye meldinger | til utvidelsens e-postadresse, med meldingen vedlagt |
| Hilsen | innspilt i nettleseren, lastet opp, eller innspilt fra telefonen; uten en, hører oppringere en beep |
Avspilling
- Fra egen telefon på utvidelsen, tast
*97: meldinger spilles av nyeste først; tastene gjentar, sletter eller beholder hver enkelt. - Fra en annen telefon, tast
*97, skriv inn postkassenummer og dets PIN. - På Voicemail (kapittel 29) (administratorer) eller i portalen for ansatte (personen): avspill, markér som hørt, slett.
- Telefonens meldingslys er på så lenge det er nye meldinger.
Med AI
Med Transkriber og summer postkasse på (Innstillinger, AI), blir hver melding skrevet ut, summerert på en linje, og merket som急, normal eller lav prioritet med sin type (salg, support, fakturering). Urgente meldinger utløser en varsling på hver administrators skjerm. Se AI (kapittel 28).
Lydrensing
Lydrensing (Innstillinger) fjerner jevne bakgrunnsstøy og jevner ut nivåer mens meldinger lagres, så en melding fra en bil eller en travel gate er lettere å høre.
Tilbakekall
/callbacksPersoner som ba om å bli ringt tilbake. En AI-resepsjonist bestiller en når en ringer ber om det: den samler inn navn, nummeret til å ringe (og tilbyr nummeret de ringer fra), en god tid og hva det gjelder, leser det opp igjen og bestiller det bare når ringeren samtykker. Den lover aldri en nøyaktig tid. Administratorer kan også legge til tilbakekall manuelt.
En ny tilbakekall viser en advarsel på hver åpen skjerm og blir sendt til eieren av resepsjonistens Ta meldinger for postboks når den utvidelsen har en e-postadresse og e-post er satt opp i Innstillinger.
For å ringe tilbake, velg din utvidelse og trykk Ring tilbake: telefonen din ringer først, og når du tar opp, ringer BitVoice nummeret for deg, med dine normale ruter og ringernavn. Deretter legg til en notis hvis du ønsker og trykk Ferdig (eller Avbryt). Fulle tilbakekall blir vist under åpne og kan åpnes igjen.
Samtalelenker og nettsamtaler
/call-linksEn samtalelenke er en nettadresse som ringer bedriftens telefon fra enhver nettleser: ingen telefonnummer, ingen app. Sett den i en e-post-signatur, skriv ut QR-koden på en flyer eller et butikkvindu, eller lim inn nettsideknappen på nettstedet ditt.
På Oppringingslenker (kapittel 31) legger du til en lenke, velger hvor oppringningene går (en utvidelse, en gruppe, en kø, et meny, AI-resepsjonist, en timeplan eller en voice-mail), og lagrer: siden viser adresse og QR-kode. Oppringeren ser tittelen og ordene du har satt, angir navn hvis du ber om det, tillater mikrofonen og trykker på Ring nå; tastaturet fungerer for menyer. Den som svarer ser Web: og oppringerens navn.
Slå Åpen av for å lukke linjen (siden sier det). Samtaler på en gang begrenser hvor mange personer som kan ringe gjennom en lenke (5 med mindre det er satt). Adressen inneholder en lang tilfeldig del, så den kan ikke gjettes; gjentatte feilaktige adresser blokkeres som feil innlogginger. Oppringernes mikrofoner trenger at siden serveres over HTTPS, så del ut HTTPS-adressen.
Hverdags samtaler
Hva folk gjør på telefonene sine hver dag, og hva de setter for seg selv: videreformidling, følg-meg, oppringning, konferanserom, høyttalere, varme skrivebord, faks og tekster.
Funksjonskoder, videreformidling og hurtigvalg
/codesFunksjonskoder er hva folk ringer på telefonene sine for å endre egne innstillinger og nå funksjoner. De fungerer på hver telefon, skrivebords- eller softphone, uten at noe er konfigurert på telefonen selv. En stigende tone betyr ferdig; en fallende tone betyr avvist.
Kodesamlingen på ett blunk
| Kode | Hva den gjør |
|---|---|
*72 | videreformidler hver samtale (så nummeret og #, eller nummeret rett etter: *722125550199) |
*73 | stopper videreformidling av hver samtale |
*90 / *91 | videreformidler når du er i en samtale / stopper |
*52 / *53 | videreformidler når ikke besvart / stopper |
*78 / *79 | ikke forstyr på / av |
*76 | slår av/på ikke forstyr (stigende tone: nå på) |
*21 | slår av/på følg meg |
*8 | besvarer en samtale som ringer i din opphentingsgruppe |
** og en utvidelse | besvarer samtalen som ringer på den utvidelsen |
*80 og en utvidelse | intercom: den telefonen besvarer på høyttaleren |
*0 og en kode | en hurtigvalg |
*62 | vekkingssamtale: hører den, bestiller en (fire sifre, som 0630) eller avbestiller den (stjerne) |
*68 og en siffer | romstatus, for rengjøring i hoteller |
*28 og en omkoplings kode | slår over eller tilbake en dags/natt-omkopling (kapittel 25) |
*32 | blokkerer den siste ringende: den siste eksterne nummeret som ringte denne telefonen havner på blokkeringslisten (Spam-beskyttelse (kapittel 56)) |
*43 | ekko-testen |
*97 | din voicemail |
70 | parkerer en samtale (overfører den hit); 71 til 79 henter den opp |
*45 / *46 | kø-agenter: logger inn eller ut / pauser eller gjenopptar |
*33 / *34 | logger inn eller ut på en varm skrivebord |
*7 / *8 under en samtale | pauser og gjenopptar opptak (kortbetalinger) |
Videreformidling
*72videreformidler hver samtale. Ring det, hør en tone, så ring nummeret og #. Eller ring nummeret rett etter koden.*90videreformidler samtaler som kommer mens du er på samtale.*52videreformidler samtaler du ikke besvarer innen din ringetid.*73,*91og*53avbryter dem.
Videreformidling til en annen utvidelse bruker den utvidelsens egne innstillinger (dens voicemail, dens følg meg), opp til fire hopp så to personer som videreformidler til hverandre ikke kan danne en loop. Videreformidling til et eksternt nummer går gjennom utgående ruter, som om personen ringte det, og trenger at utvidelsen er tillatt eksterne samtaler.
Videreformidling er live-tilstand, ikke konfigurasjon: å sette den gjør ingen revisjon, og den beholdes over omstarter. Utvidelser (kapittel 3) og personaleportalen viser og endrer den også.
Ikke forstyr
*78 på, *79 av, *76 skifter. Med ikke forstyr på, samtaler går til voicemail, eller til utvidelsens ikke-svar-destinasjon. Ikke forstyr satt for hånd vinner over kalenderen (Kalendere (kapittel 39)). Nødsamtaler ringer fortsatt.
Følg meg
*21 slår follow-me på og av for utvidelser som har follow-me-numre angitt (på utvidelsen eller i ansattportalen). Skrivebordet ringer først i sin ringetid, deretter follow-me-numrene, ett etter ett eller alle sammen. På et eksternt nummer med trykk 1 på, hører personen en tone og trykker 1 for å ta opp samtalen; en voicemail eller stilhet gjør aldri det, og etter 15 sekunder flyttes samtalen videre.
Besvarer noen andres samtale
*8besvarer den eldste samtalen som ringer noen i din hentegruppe (angitt på hver utvidelse; navn sammenlignes uten hensyn til store og små bokstaver).**og en utvidelse besvarer en samtale som ringer den utvidelsen:**101.
Intercom
*80 og en utvidelse ringer den med auto-svar: dens telefon svarer på høyttaleren, og begge sider snakker. Yealink, Grandstream og Snom leser BitVoices Call-Info-header, Poly leser Alert-Info; noen telefoner trenger intercom tillatt i sine egne innstillinger. En utvidelse kan nekte intercom; da ringer samtalen som vanlig. Dørstasjoner tar aldri intercom.
Hurtigvalg
*0 og en kode ringer et lagret nummer: *05. Selskapets hurtigvalg er på denne siden; hver person kan ha sine egne på sin utvidelse eller i ansattportalen, og deres seirer over selskapets med samme kode. Kodene er 1 til 3 sifre.
Endre kodene
Hver kode kan endres på Funksjonskoder (kapittel 32), eller slås av med ordet off. To funksjoner kan ikke dele en kode, og ingen kode kan være en utvidelses eller en gruppes nummer: BitVoice sier hvilken som kolliderer. Ekko, voicemail og park-numre er i Innstillinger (kapittel 14).
Ansattportalen
Personaleportalen lar alle se etter sine egne samtaler uten en administrator: ikke forstyr, videreformidling, følg-meg, hurtigvalg, voicemail og dens hilsen, deres PIN, og en liste over deres egne samtaler. Den er på #/me på denne serverens adresse, og koblet fra innloggingssiden.
Innlogging
Personer logger inn med sin utvidelsesnummer og sin voicemail-PIN: samme PIN som åpner deres voicemail fra en telefon og logger dem inn på varme skrivebord. En utvidelse uten PIN kan ikke logge inn; en administrator setter en på utvidelsen.
Gjentatte feil forsøk fra en adresse låser den ute i ti minutter. En portaløkt når bare personens egne innstillinger: aldri en annen utvidelse, konfigurasjon eller noen opptak.
Hva personer kan gjøre
| Fane | Hva som er der |
|---|---|
| Hvor samtaler går | ikke forstyr; videreformidling av hver samtale, når de er opptatt og når de ikke er besvart; følg-meg-numre; egne hurtigvalg |
| Voicemail | meldinger å spille av og slette, med transkripsjoner og sammenfatninger når AI er på; spille inn eller laste opp hilsenen |
| Dine samtaler | personens egne samtaler, nyeste først, uten opptak |
| PIN | endre PIN, ved å gi den nåværende |
Videreformidling og ikke forstyr som settes her er de samme som de som settes fra telefonen med funksjonskoder (Funksjonskoder (kapittel 32)): hvilken som helst som ble satt sist er i kraft. Følg-meg-numre og hurtigvalg er en del av utvidelsens konfigurasjon, så å endre dem gjør en revisjon på Endringer (kapittel 61), registrert som personens egen.
Chat og tilstedeværelse
Portalens Chat-faner viser kolleger med hvordan de er akkurat nå: tilgjengelig, på samtale, ringer, borte (ikke forstyr, et møte eller fravær fra kalenderen, med årsaken) eller frakoblet (ingen telefon tilkoblet), og statusen de har skrevet ("På lunsj, tilbake kl 14"). Velg en person for å sende melding; meldinger ankommer med en gang, og et tall ved siden av et navn teller ubeskjedne meldinger. Teamrom (Innstillinger, Personalechat) er samtaler for en gruppe eller for alle når et rom ikke har noen medlemmer.
Meldinger sees bare av personene i samtalen: administratorer håndterer rommene, leser dem aldri. Innstillinger, Personalechat slår av chat, og setter hvor lenge meldinger beholdes (0 beholdes de nyeste tusen av hver samtale).
Konferanserom
/conferencesEt konferanserom er et nummer mennesker ringer for å snakke sammen. Ansatte ringer det fra sine skrivebord; eksterne ringere når det gjennom en inngående rute eller et menyvalg som peker på rommet.
Oppsett av et rom
- Åpne Konferanserom (kapittel 34) og trykk Legg til konferanserom.
- Gi det et nummer (ethvert ledig nummer, 500 som standard) og et navn.
- Valgfritt sett et PIN. Ringere hører en tone, skriver inn PIN og trykker #. Tre feil PIN og samtalen avsluttes.
- Valgfritt sett et leder-PIN, forskjellig fra PIN. Den som skriver det inn, går med som leder.
- For å la eksterne ringere komme inn, peker en inngående rute (eller et menyvalg) på rommet.
Valg
| Valg | Hva det gjør |
|---|---|
| Vent på leder | alle andre hører ventetonen til en leder går med; når den siste lederen forlater, lukkes rommet og alle henges opp. Trenger et leder-PIN. |
| Medlemmer går med stumt | for briefing og forelesninger: ledere snakker, medlemmer lytter. En medlem trykker 1 for å be om å snakke, og en leder demper dem opp. |
| Ta opp rommet | hele rommet beholdes som en opptak i Samtalehistorikk (kapittel 47), med mindre opptak er av for hele systemet |
| Toner når mennesker går med og forlater | på som standard |
| De fleste mennesker på en gang | 50 som standard, opp til 200 |
Nøkler under en samtale
1demper og demper opp deg selv (i et rom hvor medlemmer er stumt, ber det om å snakke).2, for en leder, låser rommet så ingen nye kan gå med, og låser det opp.
Mens et rom er i bruk
Siden viser hvert rom i bruk: hvem som er i, hvem som snakker (den grønne lykten), hvem som er stumt, hvem som har bedt om å snakke, og hvem som fortsatt venter på lederen. En administrator kan dempe eller dempe opp noen, fjerne noen, og låse eller låse opp rommet.
Alle i et rom hører alle andre som ikke er stumt, blandet av BitVoice; hver persons telefon kan bruke sin egen codec. En samtaleopptak beholdes for hver persons samtale, og en for rommet selv med varighet og opptak.
HD-lyd
Slå på HD-lyd i et rom (nye rom har det på) og det blandes i 16 kHz i stedet for 8: mennesker på bredbåndstelefoner (G.722, Opus, nettleser-telefonen) hører hverandre i HD, med skarpheten til et moderne oppkall, mens mennesker på vanlige telefoner (G.711, mobiltelefoner gjennom en leverandør) hører samme rom som vanlig. Den live-visningen markerer rommet og hver medlem som er i HD. HD trenger G.722 blant codecene telefonene bruker (det er først i systemets liste, Innstillinger, Codec). Opptak av rommet beholdes i telefonkvalitet.
Videorom
Sett Video på et rom og videotelefoner (og softtelefoner) som går med, sender kamera og ser ett bilde, skiftet når mennesker snakker, som i Asterisks ConfBridge:
- Følg taleren: alle ser hvem som har snakket i ett sekund, en gang den på skjermen har vært stille i ett sekund; personen på skjermen ser den før.
- Vis lederen: alle ser lederen (som går med med leder-PIN); lederen ser hvem som snakket sist.
- Rutenett: alle ser alle på en gang, side om side (ett bilde fyller skjermen, to side om side, så 2 på 2 og 3 på 3, opp til ni), hver person i sin egen plass i rekkefølgen de gikk med, inkludert seg selv.
BitVoice skifter bildene uten å dekodere dem, så det koster nesten ingenting, og det ber hver nytt bilde fra telefonen om et fullt bilde (RTCP PLI og FIR, og SIP INFO billed-hurtigoppdatering de fleste skrivebords-telefoner svarer) så skiftet vises med en gang. Hvert medlems video bruker rommets video codec (H.264 med mindre du velger VP8); en telefon uten det går med med lyd bare. Hver seer får en stabil strøm (en kilde, sin egen payload-type), uansett hvem som er på skjermen.
Et rutenett lages på en annen måte: BitVoice gir hver bilde til ffmpeg på serveren, som dekoder dem, plasserer dem i et 1280 x 720-bilde med 15 bilder per sekund og koder det en gang for alle. Installer ffmpeg (Innstillinger, videoomvandling, sier om den er funnet); uten den følger et rutenettrom speakeren og rommets skjerm sier det. Hvert bilde koster prosessortid: på en liten server, hold rutenettene til noen få rom samtidig. Bare medlemmer hvis kamera sender er vist: noen som slutter seg uten video eller hvis kameraet stopper, forlater rutenettet (det fryser aldri på et stille kamera), og rutenettet gjenoprettes innen noen sekunder når det endres, med en kort pause i bildet. Den tiende medlemmen og senere høres, men vises ikke. Live-visningen markerer rutenettets størrelse og hvem som er i rutenettet.
Alle videoer (nettlesere)
Velg Alle videoer og rommet får sin egen side (Konferanserom, Åpne videorommet, eller #/video-room/NUMBER). Hver person der trykker Slå på med kameraet mitt: nettleseren sender kameraet en gang, i tre størrelser (simulcast), og mottar hvert annet kamera i sitt eget bilde. BitVoice videreformidler bildene som de kom, uten å dekodere dem (en selektiv videreformidlingsenhet, SFU), så det koster lite prosessortid; opplastingen av hver nettleser og nedlasting av hver viser er hva som begrenser et rom, så det tar opp til 16 kameraer.
- Det store bildet får full størrelse på det kameraet, de små bildene får liten størrelse; Gjør stort bytter dem, og switching skjer ved neste fullstendig bilde av den nye størrelsen, som BitVoice ber om med en gang (RTCP PLI).
- En nettleser som er kort på opplasting stopper å sende sin største størrelse; viserne får da den største størrelsen som fortsatt kommer.
- Lyden er rommets konferanse som alltid: å slå på kaller rommet på nettleser-telefonen, og hvem som ringer rommet fra en telefon høres og hører alle. Videotelefoner som ringer inn ser hvem som snakker.
- Et rom med en PIN ber om den på siden. Siden trenger en pålogging til BitVoice.
Del en skjerm: trykk Del min skjerm og velg en skjerm, et vindu eller en nettleserfane i nettleserens egen velger. Alle i rommet ser det som det store bildet, under ditt navn, med tekst som holdes skarp (bildesendingen reduseres i stedet når nettverket er kort). Du trenger ikke å bli med på kameraet ditt først. Stop deling, eller nettleserens egen Stop deling-linje, avslutter det.
- Et rom viser en delt skjerm om gangen: mens noen deler, venter andre knapp og sier hvem som deler. En delt skjerm teller ikke med i de 16 kameraene.
- En annen person kan gjøres til det store bildet med Gjør stor, som med kameraer; skjermen forblir i rommet.
- Skjermens bilde bare, aldri lyden: rommets lyd forblir konferansen.
- Telefoner som ikke kan dele en skjerm (de fleste nettleserbrett) viser knappen grået ut. Skrivebords- og andre videotelefoner som ringer inn til rommet ser ikke delte skjermer; de ser hvem som snakker.
Paging og høyttalere
/pagingPaging snakker gjennom mange telefoner på en gang: ring et pagingsnummer, og hver telefon i gruppen svarer på sin høyttaler av seg selv. Bruk det til annonseringer til en lager, en skole, en butikk-gulv.
Oppsett av en høyttalergruppe
- På Høyttalere (kapittel 35) trykk Legg til høyttalergruppe og gi den et nummer (800 som standard) og et navn.
- Velg telefonene. Overhead-høyttalere som er satt opp som utvidelser (type Overhead-høyttaler) kan også være medlemmer.
- Valgfritt, en multicast-adresse og port.
Multicast
Multicast sender også siden til en multicast-adresse og port (239.0.1.10:5000), som G.711 µ-law, som overhead-høyttalere og mange skrivebords-telefoner kan lytte til uten en samtale hver. En gruppe kan bare ha en multicast-adresse. Den fungerer på ett nettverk: routere passerer ikke multicast med mindre de er konfigurert til det.
Høyttalere og intercom
| Høyttalere | Intercom | |
|---|---|---|
| Hvem hører | alle i gruppen | en utvidelse |
| Snakk tilbake | nei, en vei | ja, begge veier |
| Hvordan | ring gruppenummeret | *80 og utvidelsen |
Telefoner som ikke svarer på en høyttaler selv innen noen få sekunder, utelates, så en telefon uten auto-svar holder aldri en høyttaler opp. Noen telefoner trenger auto-svar (intercom) tillatt i sine egne innstillinger.
Hot desking
/phonesEn hot desk er en delt telefon som blir til den som logger inn på den: for kontorer hvor folk ikke har faste plasser. Lag en ved å slå på Hot desk i utvidelsen telefonen er satt opp som (deskenes egen utvidelse, slik som 900 Desk 3).
Innlogging og utlogging
- Ved telefonen, ring
*33og vent på tonen. - Skriv inn din utvidelse og #, og vent på tonen.
- Skriv inn din voicemail-PIN og #. En stigende tone betyr at du er logget inn; en synkende tone betyr at det ble avvist.
Deretter ringer samtaler til din utvidelse også denne desken, samt dine andre telefoner, og samtaler du foretar fra den viser ditt nummer og navn og teller som dine på Kostnader. Innlogging på en annen desk flytter deg dit. *34 logger deg ut. Fem feil forsøk låser desken i ti minutter.
Administrasjon av hot desker
På Telefoner (kapittel 4), viser Hot desker hvem som er logget inn hvor; administratorer kan logge noen inn (uten deres PIN) eller ut. Kodene, og en tid hver dag når alle er logget ut, er i Innstillinger. Innlogninger beholdes over omstarter.
Hotell og vekkingoppkall
/hotelVekkingoppkall
Hvem som helst kan bestille en vekking: gjester, nattskifter, personer på vakt. Fra sin egen telefon ringer de *62: BitVoice sier den ene som er satt (hvis noen), deretter angir de tiden som fire siffer (0630), eller trykker stjerne for å avbryte den. På Hotell (kapittel 37) bestiller en administrator en for enhver utvidelse, en gang eller hver dag.
Når det er tid, ringer telefonen med systemnavnet; besvart, hører den "God morgen. Dette er din vekking." (vekking-prompten i Lyder (kapittel 20), på gjestens eller utvidelsens språk). Ubesvart, prøves det igjen (3 forsøk, 5 minutter apart, begge innstilt under Innstillinger på siden), og etter siste gang kan resepsjon-utvidelsen ringes. Med flere servere, gjør bare en vekkingssamtaler.
Gjesterom
Slå på Gjesterom på utvidelsen til hver roms telefon. På Hotel vises hver rom sin gjest, vekking og romstatus, med Sjekk inn og Sjekk ut-knapper.
- Bar ledige rom: rom med ingen innkvartert gjest ringer bare utvidelser og nødnumre. Nødoppringer fungerer alltid.
- Tøm ved utsjekking: sletter rommets voicemail og avbestiller dens vekking, videreformidling og ikke forstyr, klar for neste gjest.
- En gjests språk (fra innkvartering) er språket rommets promter uttales på.
- Romstatus: hotellpersonale ringer
*68og en siffer fra rommets telefon (*683); hotellsystemet bestemmer hva hver siffer betyr.
Hotellsystemet (PMS)
- FIAS: BitVoice kobler til FIAS-grensesnittet til hotellsystemet (Oracle Opera og de mange systemene som snakker FIAS) på dets adresse og port. Den mottar inncheckinger, romflyttinger, utsjekking og vekkingbestillinger, og sender vekkingresultater, romstatus og oppkallingsgebyrer. Mens koblingen er nede, venter det den skulle sende og går når den er tilbake; siden sier om den er koblet. Postene følger Oracles FIAS 2.20.23-specifikasjon: BitVoice beskriver seg selv som et telefonisystem (IF PB), oppkallingsgebyrer er direkte gebyrer (PT C) med beløpet i valutas minste enhet og de valgte digitene uten + eller mellomrom, og et vekkingresultat gjentar den bestilte tiden til sekundet, så hotellsystemet kan matche det med sin forespørsel.
- REST API: hotellsystemet ringer
POST /api/hotel/rooms/<room>/checkin(navn, konto, språk),/checkout, ogPUT /api/wakeups/<room>, med en API-nøkkel fra Innstillinger, Automatisering. Gebyrer postes som JSON til den adresse du gir. - Gebyr for oppkall: besvarte eksterne oppkall fra besatte rom går på gjestens regning, til trankens satser (fra Kostnader (kapittel 54)) pluss påslag.
Kontakter på hver telefon
/contactsKontakter er bedriftskatalogen: leverandører, kunder og andre kontorer folk ringer. Hver telefon lister den ved siden av utvidelsene, og når ett av disse numrene ringer inn, viser telefonene og samtalekortet kontaktens navn (når leverandøren sendte ingen). Et nummer matcher uansett hvordan det er skrevet: +1 212 555 0100 og 2125550100 er samme linje.
Legg til kontakter
Legg til kontakt for en om gangen, med så mange numre (arbeid, mobil, hjem, annet) som de har. Importér tar en regneark lagret som CSV hvis første rad navngir kolonnene: navn, selskap, arbeid (eller telefon), mobil, hjem, annet, e-post, notater. BitVoice sjekker hele filen først og sier hvilke linjer som er feil; en kontakt med samme navn som en som allerede er der oppdateres i stedet for å bli lagt til to ganger, og Ersett alle kontakter starter listen på nytt. Eksporter laster ned listen som CSV.
På skrivebords telefoner
Telefoner satt opp av Telefoner (kapittel 4) (provisioning) får katalogen uten mer oppsett:
- Yealink: en fjern telefonbok navngitt Bedrift, oppdatert hver time.
- Grandstream: telefonbok nedlastning, hver time.
- Polycom: katalogfilen, lest når telefonen starter.
- Snom: listen skrives inn i telefonens innstillinger, så den oppdateres når telefonen neste sjekker dem.
I nettleser-telefonen
Kontakter under tastaturet finner et navn eller nummer og setter det klart til å ringe.
Fra Microsoft 365 eller Google Workspace
BitVoice kan holde Kontakter i takt med din organisasjons katalog: alle i den som har et telefonnummer, og dens delte kontakter (Exchanges organisasjonskontakter eller Googles delte domenekontakter). I Innstillinger (kapittel 14), Microsoft 365 og Google Workspace, velg tjenesten, gi hva den trenger, og trykk Sjekk nå: den logger inn, teller personene og sier hvilke utvidelser matcher en person etter e-post. Lagre, og Kontakter fylles inn innen en halv minutt; så hver halvtime, eller med en gang med Synkroniser kontakter nå.
Microsoft 365 (en app-registrering; du må kunne gi admin-samtykke):
- I Entra-administrasjonssenteret, App-registreringer, Ny registrering: gi den navnet BitVoice, enkeltleiet, ingen omadresseringsadresse.
- API-tilganger, Legg til en tilgang, Microsoft Graph, Applikasjons-tilganger:
User.Read.All,OrgContact.Read.AllogCalendars.ReadBasic. Deretter Gi admin-samtykke. - Sertifikater & hemmeligheter, Ny klienthemmelighet: kopier verdien (vises én gang).
- I BitVoice: katalogen (leier) ID, applikasjons (klient) ID og hemmeligheten. En hemmelighet utløper (Microsoft tilbyr inntil to år): når den gjør det, sier kortet at hemmeligheten ble avvist; lag en ny og lim den inn.
Google Workspace (en tjenestekonto; du må være en super-administrator):
- I Google Cloud, i ett av dine prosjekter: slå på People API og Google Calendar API, lag en tjenestekonto, og legg til en nøkkel (JSON) til den.
- I Google Admin-konsollen, Sikkerhet, Tilgang og datakontroll, API-kontroller, Domene-omfattende delegasjon, Legg til ny: tjenestekontoenes klient-ID, med omfanget
https://www.googleapis.com/auth/directory.readonly,https://www.googleapis.com/auth/calendar.freebusy. - I BitVoice: nøkkel-filen, og e-posten til en administrator for tjenestekontoen å fungere som.
Hva som kommer inn:
- En persons arbeidsnummer og mobil, navn, e-post, og deres stillingstittel og avdeling som kontaktenes notater; organisasjonens navn som deres selskap. Personer uten nummer er ikke med (en kontakt trenger ett); kontoer som er slått av er ikke med.
- Kontakter fra tjenesten er merket med dens navn, og blir endret der: å endre eller fjerne en her blir avvist, ettersom neste synkronisering ville gjøre det om.
- BitVoice leser bare. Dens tilgang er de lesen-tilganger ovenfor, og hemmeligheten eller nøkkelen blir lagret med de andre hemmelighetene: visere ser den aldri, og eksport for Git lar den utenfor.
Kalendere og ikke forstyr
/extensionsEn utvidelse kan følge personens kalender: under møter og fritid, går samtaler til voicemail eller blir videreformidlet (til en annen utvidelse eller en mobil), i stedet for å ringe en telefon som ingen vil svare på. Ringegrupper ringer de andre i mellomtiden, og i køer vises agenten som Borte.
I utvidelsen, Kalender og ikke forstyr, lim inn kalenderens private adresse:
- Outlook: Innstillinger, Kalender, Delte kalendere, Publiser en kalender; velg kalenderen og "Kan vise alle detaljer", så kopier ICS-lenken.
- Google Kalender: Innstillinger, kalenderen på venstre side, så Hemmelig adresse i iCal-format.
Sjekk leser den med en gang og lister de neste opptatte tidene. BitVoice leser hver kalender hver femte minutt. Fritid (alle døgns hendelser og Outlooks "utenfor kontor") teller alltid; møter teller når Møter teller som opptatt er på; hendelser merket som ledig teller aldri, og heller ikke avlyste hendelser. Gjentakende møter, med hoppede og flyttede hendelser, forstås. Hvis en kalender ikke kan leses, sier Helse det.
Ikke forstyr nå stopper utvidelsen fra å ringe til den slås av, uansett hva kalenderen sier. Utvidelseslisten viser hvem som er borte og til når.
Den private adressen fungerer som en passord: alle med den kan lese den kalenderen, så den holdes med de andre hemmelighetene.
Hver kalender på en gang: Microsoft 365 og Google Workspace
I stedet for en privat adresse per utvidelse, kan BitVoice lese hver persons kalender fra Microsoft 365 eller Google Workspace: konfigurer det en gang i Innstillinger (kapittel 14), Microsoft 365 og Google Workspace (se Kontakter (kapittel 38) for trinnvis vejledning), med Kalendere sier hvem er borte på. Hver utvidelse er koblet til sin person ved sin e-post; en med en privat adresse av sin egen type bruker den i stedet. Utvidelsens innstillinger her (Møter teller som opptatt, Mens opptatt, samtaler) gjelder som med en privat adresse.
- Microsoft 365 forteller møter fra fravær: et møte merket som utenfor kontor teller som fravær; usikre møter, og tid merket som ledig eller arbeider andre steder, stopper aldri telefonen fra å ringe. Et privat møte vises som "I et møte", uten tittelen.
- Google Workspace gir opptatte tider uten å si hvorfor, så de teller alltid som møter.
- Kalenderne leses hver femte minutt, og med en gang når innstillingene endres. En utvidelse hvis e-post tjenesten ikke kjenner, sier det i sin kalenderdel.
Mobilappene
BitVoice-appene for iPhone og Android gjør en mobiltelefon til en av utvidelsens telefoner. Den ringer som en skrivebords telefon, på telefonens egen samtale-skjerm, selv når appen er lukket.
Konfigurere push
En lukket app våknes for samtaler av en push-melding. I Innstillinger (kapittel 14), Mobilappene, velg en:
| Push | Hva du trenger |
|---|---|
| Push-relay | BioDreams relay (med hosting eller støtte) eller din egen bvpush: dens Relay-adresse, Nøkkel-ID og Hemmelighet |
| Egne apper | dine egne bygginger: for Apple, Lag-ID, Pakke-ID, Nøkkel-ID og Nøkkel (.p8); for Google, Firebase-tjenestekonto (JSON) |
Sett Adressen appene bruker til denne serverens https-adresse som den nås fra hvor som helst, ikke bare kontoret.
Koble en telefon
- Åpne utvidelsen og trykk Legg til en telefon.
- Skann QR-koden i appen. Koden fungerer én gang, i ti minutter.
Når en samtale kommer inn
BitVoice våkner appen; den kobler seg, ringer på telefonens egen samtale-skjerm, og blir svart som en hvilken som helst annen telefon for utvidelsen: ring-grupper og køer ringer den med utvidelsens andre telefoner. Utvidelsens side listar sine koblete telefoner, om hver Kan våknes for samtaler, når den sist ble sett og sist våknet, og eventuelle push-problemer. Fjern kobling stopper en telefon fra å ringe med en gang, for en tapt telefon.
Under et oppkall
Appen er en fullstendig utvidelse, ikke bare en oppkallingsfunksjon:
- Overfør en oppkaller til en annen utvidelse eller et eksternt nummer (oppkallingskvalitets eget Overfør, eller appens knapp). Til parknummeret, parkeres oppkallet.
- Hold og ta tilbake, fra oppkallingskvaliteten eller appen; holdte oppkallere hører din holdemusikk der den er konfigurert.
- Et annet oppkall: ring mens det første er på hold, og byt mellom dem.
- Tastatone (DTMF) under oppkallet, og Mute.
De andre fanene
- Nylige: oppkall til og fra denne utvidelsen, nyeste først, trykk for å ringe tilbake (savnet oppkall markeres).
- Voicemail: hver melding med sin transkript (kapittel 29) der AI skriver en, spill den av, ring tilbake eller slett.
- Lag: hvem som er ledig, på et oppkall, ringer eller er borte (en busy-lampe), for å ringe dem eller overføre det nåværende oppkallet til dem.
- Kontakter: bedriftskatalogen, for å finne et navn og ringe det.
- Chat: lagets chat (Chat og tilstedeværelse), kolleger med deres tilstedeværelse og direkte meldinger, og lagrom, inne i telefonen. En ny melding mens appen er i bakgrunnen vises som en notifikasjon, og å trykke på den åpner Chat; når appen er lukket, kommer den gjennom samme push som oppkall.
- Deltag i et videorom: velg ett av videorommene (kapittel 34) (det lister dem, med hvor mange som er i hvert nå). Det åpner over telefonen, som fortsetter å kjøre under, og du deltar som din egen utvidelse: ingen administrator-innlogging. Første gang, spør telefonen om kameraet. Forlat, eller Tilbake på Android, returnerer til telefonen; rommets lyd forblir et oppkall på den til du legger på. Telefonen viser rommet som et videopkall på sin egen oppkallingskvalitet mens du er i det.
- Oppkall du gjør går på telefonens eget oppkallingsystem også (CallKit på iPhone, Androids Telecom), så Bluetooth, en bil eller en klokke viser dem, og et mobiloppkall som ankommer i mellomtiden vet om dem.
Live-transkript under et oppkall
Med Skriv ut oppkall live på (Innstillinger (kapittel 14), AI), skrives hver side av et oppkall ut mens det tales og vises på telefonen mens oppkallet pågår. Lyden går til tale-til-tekst-tjenesten (på din egen datamaskin, der det er konfigurert) eller AI-tjenesten mens oppkallet varer. Det er samme skrivning-ut som 911 live-transkripter (kapittel 13), for vanlige oppkall.
Videotelefoner
/settingsNår begge telefoner i et samtale sender video (videotelefoner, softphone, videodørklokkor), går bildet mellom dem gjennom BitVoice. Ingen å konfigurere: det er på med mindre Innstillinger → Videotelefoner er slått av.
- BitVoice formidler videoen som den er, på en egen port for hver telefon, så telefonene aldri lærer hverandres adresser. Med en kodek i fellesskap (nesten hver videotelefon har H.264) dekoder den aldri videoen; uten en, kan den konvertere (nedover). Når de nummerer samme kodek forskjellig, nummerer BitVoice den om på veien.
- Bildet er kryptert (SRTP) til hver telefon som krypterer sin lyd.
- En telefons forespørsel om et nytt bilde (etter tapte pakker) når den andre telefonen, så bildet gjenopprettes i et øyeblikk.
- En kamera slått på under et samtale (en softphones videoknapp) fungerer også: den andre telefonen spørres først, og bildet starter når den sier ja.
- En telefon uten video, eller et samtale til en ekstern nummer, får bare lyd. På hold eller mens parkert pauses bildet, og kommer tilbake når samtalen gjør. Etter en overføring fortsetter den bare når den nye parten sender video også.
- Video bruker mye mer av nettverket enn lyd (omtrent 0,5 til 2 Mbit/s hver vei per samtale): la plass for det på langsommere koblinger og i medieportområdet.
Konvertering av video
Telefoner og apper som deler en videokodek (de fleste bruker H.264) får hverandres video som den er. Når to parter ikke har noen kodek til felles (en skrivebords-telefon med bare H.264 og en nettleser med bare VP8), slå på Konverter video mellom H.264 og VP8 i Innstillinger: BitVoice tilbyr da begge kodekene, svarer hver part på sin egen, og konverterer hver vei med ffmpeg, som må være installert på serveren (apt install ffmpeg, brew install ffmpeg; eller gi dens sti). Konvertering koster omtrent en prosessor-kjerne per samtale og legger til en liten forsinkelse, så den er av som standard og brukes bare når nødvendig. Innstillinger sier om ffmpeg ble funnet.
Faks: sending og mottak, faks-maskiner og analoge telefoner
/faxesFaksmaskiner, analoge telefoner, dørtelefoner og gamle linjer kobles til gjennom en SIP-gateway (eller en telefoni-kort i BitVoice-datamaskinen: se Telefonikort (kapittel 6)): en ATA (Grandstream HT-serie, for en eller to analoge telefoner eller en faks), eller en større gateway (Patton SmartNode, AudioCodes MediaPack og Mediant) for mange analoge porter, en ISDN-linje (BRI/PRI) eller gamle analoge linjer (FXO). Hver port registrerer seg hos BitVoice som en utvidelse, som en telefon.
Motta faks uten en faks-maskin. På Faks, legg til et faks-nummer (300, si), med e-postadressene hver faks går til. Deretter i Telefonvei (kapittel 8) send en telefonnummers samtaler til den. BitVoice svarer som en faks-maskin, bytter samtalen til T.38 og tar imot faksen; hver faks blir en PDF, lagret på Faks (Vis, PDF) og sendt via e-post. En faks som bryter av delvis beholder sidene som ankom og sier det. Hver faks i listen viser den sendende eller mottakende maskinens egen identitet når den avviker fra nummeret, og hastigheten sidene gikk på (14 400 bit/s er den raskeste; en maskin hvis fakser stadig feiler på en lav hastighet har vanligvis en dårlig linje). Dette krever en leverandør som støtter T.38 (de fleste gjør det); en faks sendt som lyd kan ikke mottas på denne måten. Prøvd med T38Fax, en faks-leverandør: registrer stammen med dens brukernavn og passord til sip.t38fax.com, port 5080 (UDP); tillat UDP fra dens nettverk (8.34.182.0/24 og 8.20.91.0/24) gjennom enhver brannmur foran BitVoice.
Send en faks. På Faks, Send en faks: velg faks-nummeret det går fra, skriv nummeret til å sende til, skriv en notis hvis du ønsker (den blir den første siden) og legg til dokumenter. Tekstfiler og bilder (PNG, JPEG, GIF) fungerer overalt. PDF trenger poppler på serveren (apt install poppler-utils, apk add poppler-utils, brew install poppler); Word, Excel, OpenDocument og RTF trenger LibreOffice også. Siden sier hvilke serveren kan gjøre. Hver side får en header-linje, som faks-maskiner skriver ut: tiden, faks-nummerets navn, dens identitet og side-tellingen. Anropet går ut fra identitetens siffer (+1 212 555 0300 ringer fra +12125550300), eller fra faks-nummeret selv når identiteten ikke er et nummer. Sider er US-brevstørrelse i Nord-Amerika og A4 andre steder, fra landet i Innstillinger.
BitVoice ringer nummeret over dine utgående ruter, som en utvidelse ville, og sender på den raskeste hastigheten linjen bærer (14 400 bit/s, langsommere hvis linjen er dårlig). Faks fra ett faks-nummer går ett om gangen. Et beskjeftiget nummer, eller ett som ikke svarer, prøves igjen fem minutter senere, tre ganger i alt. Sendte faks er listet med mottatte faks: Sendt, Venter på å sende, Feilet (med Prøv igjen), eller Delvis sendt når linjen brøt etter noen sider.
Email to fax. Below the list, set up a mailbox for BitVoice to read (IMAP over TLS, port 993; for Google and Microsoft mailboxes use an app password), then Test and Save. Anyone allowed to send writes to that mailbox with the fax number in the subject (Fax 212 555 0199), or to a plus address (fax+2125550199@example.com) if the mail server takes them. Attachments become the pages and the email's own words the cover note (the signature and quoted mail are left out). It goes from the fax number that lists the sender: its Email each fax to addresses may always send, and May also send faxes by email adds others (whole addresses, or @example.com for a domain). The sender gets an email when the fax has gone through, or why it could not.
E-post er lett å forfalske, så BitVoice sender en faks bare når din postserver fant ut at den virkelig kom fra avsenders domene (DKIM, SPF eller DMARC, i Autentiserings-resultat-linjen den legger til). Andre meldinger droppes uten svar. Slå Aksepter e-post avsenderens domene ikke garanterer for på bare for en postkasse ingen ekstern e-post kan nå.
Faks maskiner på gateways. BitVoice sender faks over T.38, den internasjonale faksstandarden for internett: når gatewayen hører en faks tone, bytter den til T.38, BitVoice ber den andre siden (din provider eller en annen gateway) om å bytte også, og sender faksen mellom dem. Hvis den andre siden ikke kan håndtere T.38, forblir samtalen på G.711 og faksen sendes som lyd, som fungerer på et godt nettverk. Aktive samtaler viser faks (T.38) mens en faks pågår.
For pålitelige faks:
- Bruk T.38 på gatewayen og velg en provider som støtter det.
- Gjør portens utvidelse til en analog adapterport (Utvidelser, type): BitVoice tilbyr da bare G.711, som faks sendt som lyd trenger.
- På gatewayens faksport: Faksmodus T.38, bare PCMU eller PCMA, linje-ekkoavbryter av, vent på samtale av, og en fast, høy jitterbuffer.
Innboks: web-chat, WhatsApp og Messenger
/inboxDen Innboksen (kapittel 43) inneholder alle skrevne samtaler i én liste: chatboksen på nettstedet ditt, WhatsApp, Facebook Messenger og tekster (kapittel 44). Alle som er logget inn på nettgrensesnittet kan svare; den første som svarer tar samtalen (hver enkelt kan overføre den med Besvart av), og Lukk legger den bort til personen skriver igjen. Uleste samtaler teller seg, og listen oppdateres automatisk.
Chat-boksen på nettstedet ditt
Under Kanaler, slå på Web-chat, velg tittelen, fargen og første linjen, og legg til linjen som vises på nettstedets sider:
<script src="https://pbx.example.com:8443/webchat.js" async></script>
Den tegner en chat-knapp i hjørnet av hver side; besøkende skriver (med sitt navn hvis de ønsker) og ser dine svar mens de kommer. Samtalen forblir i deres nettleser, så den fortsetter mens de beveger seg mellom sider. List opp dine nettsteder under Kun på disse nettstedene så boksen kjører ingen andre steder. Besøkende må nå denne serverens adresse fra internettet, med et sertifikat nettleserne stoler på (Let's Encrypt (kapittel 14)). Ti nye chats fra en adresse på ti minutter er maksimum BitVoice tar.
WhatsApp Business-numre på Metas Cloud API. På Metas utviklerside, lag en app med WhatsApp, legg til ditt nummer og lag en systembruker med en permanent tilgangstoken. Under Kanaler, slå på WhatsApp og gi telefonnummer-ID og forretningskonto-ID (begge fra API-oppssett), tilgangstoken og appens app-hemmelighet, så lagre. I appens WhatsApp-konfigurasjon, sett webhook: tilbakekall-adressen og verifiser token BitVoice viser, abonnert på *meldinger*.
WhatsApp lar deg svare fritt i 24 timer etter kundens siste melding; etter det aksepterer det bare meldingsskjemaer godkjent i WhatsApp Manager. Svar-boksen blir da en skjema-velger: velg et skjema (det lister opp kontoens skjemaer, med språk og type), fyll inn verdiene ({{1}}, {{2}} ...), sjekk forhåndsvisningen, som er hva kunden vil lese, og Send skjema. Skjemaer innboksen ikke kan fylle ut, er listet grått med årsaken: ett med bilde-, video- eller dokumentoverskrift, en variabel i overskriften eller en knapps lenke, navngitte parametre eller en kodeknapp; og de som ikke er godkjent enda. Lag skjemaer i WhatsApp Manager; Meta gjennomgår hver enkelt, vanligvis innen minutter.
Facebook Messenger
For en Facebook-side: i Meta-appen, legg til Messenger, kobler siden og lag en side-tilgangstoken. Under Kanaler, gi side-ID, side-tilgangstoken og app-hemmelighet; så sett webhook (adressen og verifiser token som vises), abonnert på *meldinger* og *messaging_postbacks*. Svar er tillatt i 24 timer etter personens siste melding. Fra da til 7 dager, tar Messenger svar skrevet av en person (sendt med Metas *human agent*-tag: appen trenger Metas Human Agent-tillatelse, bedt om i App-gjennomgang); den automatiske hilsenen går aldri da. Etter 7 dager, tar innboksen ikke svar før de skriver igjen.
Hver webhook sjekkes med app-hemmeligheten (Metas signatur) før BitVoice tror på den, og en melding Meta sender to ganger, blir lagret én gang. Bilder, lydnotater og andre vedlegg vises som hva de er ("[bilde]"); åpne dem i Metas egne apper.
Automatisk hilsen, når den er satt, svarer på den første meldingen i hver ny konversasjon med en gang.
Bedriftsteksting (SMS)
/textsSend og motta tekstmeldinger fra bedriftsnumre på Tekster. Tekster går gjennom en tekst-leverandør. Innbygget: TextMagic, Twilio, SignalWire, Telnyx, Bandwidth, Vonage, Plivo, Flowroute og VoIP.ms, pluss Din egen webhook for enhver annen tjeneste eller en egen gateway. Ethvert antall leverandørkontoer kan brukes samtidig: hvert nummer sier hvilken som bærer det.
Oppsett
- I leverandørens portal, finn kontoens API-detaljer. Skjemaet ber om eksakt hva leverandøren kaller dem (Twilio: Konto-SID og autentiseringstoken; Telnyx: en API-nøkkel; Bandwidth: API-bruker, passord, konto-ID og meldingsapplikasjons-ID; SignalWire: også ditt rom-adresse) og sier hvor du finner dem.
- På Tekster, Tekstoppsett, legg til leverandøren med dem, og lagre. BitVoice viser en adresse for mottatte tekster: sett den i leverandøren som hvor mottatte meldinger sendes (dens tilbakekall, webhook eller meldings-URL). For VoIP.ms, legg til
?from={FROM}&to={TO}&message={MESSAGE}&id={ID}til slutten. Leveringskvitteringer sendt til samme adresse, ignoreres. BitVoice må være tilgjengelig fra internettet der. - Legg til hvert nummer du tekster fra (med landskoden), leverandøren som bærer det, og utvidelsene for å varsle på e-post når en tekst kommer inn.
US 10DLC
US-operatørene blokkerer tekstmeldinger fra vanlige bedriftsnumre som ikke er registrert. Registrer din merkevare og deretter en kampanje med din tekstleverandør; sjekklisen på Tekster sporer hvor de står, og advarer når din eksempelmelding mangler avmeldingsordene operatørene forventer.
Samtaler
Hver samtale viser hvem det er (fra Kontakter), uleste tekster og tråden. Send knappen sender; telleren viser hvor mange tekster en lang melding tar. Når noen svarer STOPP, kan ikke flere meldinger sendes til dem fra det nummeret før de svarer START. Mottatte tekster vises også som en melding i BitVoice.
Overføringsorienteringer
/settingsSå en ringsignal behøver aldri å gjenta seg selv: med Brief hver enkelt en samtale overføres til på (Innstillinger, AI), når en samtale overføres, skriver BitVoice en to-setningers sammenfatting av samtalen så langt (hvem som ringer, hva de ønsker, alt som allerede er lovet) for personen det går til. Den vises på deres nettleser-telefon med den ringende samtalen, på Aktive samtaler (kapittel 46), og som en tekst på deres skrivebords-telefons skjerm (for telefoner som viser SIP-meldinger).
Det fungerer på samme måte når AI-resepsjonisten overfører en ringende til en person: orienteringen kommer fra hva ringende fortalte assistenten.
Det trenger AI-tjenesten og en tale-til-tekst-modell (Innstillinger, AI), og samtalelyden så langt (inntil fem minutter) sendes til den tjenesten for å bli skrevet ut. En sammenfatting tar noen sekunder, så den kan vises like etter at telefonen begynner å ringe.
Kunder og innsikt
Vite hvem ringte og hvordan det gikk: live-samtaler og historikk, kundetidslinje, CRM, opptak og samtykke, kvalitet, kostnader og ringers rykte.
Aktive oppringninger
/callsAktive oppringninger viser hver oppringning i gang, oppdatert mens det skjer: hvem ringte hvem, hvor lenge det har pågått, dens kodeker og dens kvalitet.
Hva administratorer kan gjøre
| Handling | Hva det gjør |
|---|---|
| Legg på | avslutter samtalen for begge parter |
| Åpne døren | for et oppringning fra en dørstasjon |
| Pause innspilling | for et kortnummer: den pausede delen er stille i innspillingen og merket i historikken (Innspilling av samtale (kapittel 51)) |
| Lytte | høre samtalen stille |
| Whisper | snakke med agenten alene; oppringeren hører ikke |
| Barge | delta i samtalen; alle hører deg |
For å lytte, viske eller barge, trykk Overvåk, velg telefonen du vil bruke under Fra telefon og trykk Ring meg: din telefon ringer, og når du svarer, slår du inn i oppringningen. Du kan bytte mellom å lytte, viske og barge mens du er i den.
Hva som vises ellers
- En oppringerkort mens en ekstern oppringning ringer (fra din CRM, eller tidligere oppringninger; se CRM (kapittel 49)).
- Den skriftlige briefing skrevet for personen en oppringning ble overført til (Overføringsbriefing (kapittel 45)).
- Oppringer-ID-dommen: Verifisert, Delvis verifisert eller Uverifisert (Spam-beskyttelse (kapittel 56)).
- Med flere servere, oppringninger på de andre også, kun lese: legg på eller lytt på serveren som har oppringningen.
Når et oppkall slutter, flyttes det til Oppkallshistorikk (kapittel 47).
Oppringningshistorikk
/historyHver ferdig oppringning: hvem ringte hvem, når, hvor lenge og hvordan den avsluttet. Sorter kolonnene, spill av innspillinger (en pause for kortnumre er merket), og last ned listen som CSV. Hvor lenge innspillinger beholdes, er angitt i Innstillinger, Oppringningsinnspilling; en rettslig hold (kapittel 73) holder dem lengre.
Hvordan det ble rutevalgt
Under hver samtale-resultat, Hvordan det ble rutevalgt lister, på vanlig språk og i rekkefølge, hva bestemte hvor samtalen gikk: den innkommende ruten som tok den, om en timeplan var åpen eller stengt og tid, en toggles side, hva en rutevalgsskript valgte (eller at dens fallback tok samtalen), tastene trykket i et meny, hvem var borte, hvem hadde ingen telefon koblet til, hvem ikke svarte, den utgående ruten og trunkene som ble brukt (og en trunk som helse-dommeren flyttet bak de andre), toll-svindel-vaktens dom, og, for en innspilt samtale hvis parter er under forskjellige samtykkes-regler, hvilken regel som ble brukt.
Quality, sound and encryption
The Quality column shows each answered call's score (MOS, out of 5) and two marks when they apply:
- No sound from a side: the call connected but nothing ever arrived from that phone or provider (calls shorter than 5 seconds, faxes, held calls and paging are left out). See Call quality (kapittel 53) for what to check.
- Not encrypted: BitVoice asked for encryption (SRTP) and that side answered without it. Encrypted means the sound was encrypted with every side that sent any. To refuse unencrypted calls from a provider instead, switch on Require encryption on its trunk.
Transkriberinger og søk
Med AI på og Transkriber innspilte samtaler slått på (Innstillinger, AI), hver innspilt samtale skrives ut, med en kort sammenfatting og dens handlingselementer: hva noen ble enige om eller ble bedt om å gjøre. Hver side av samtalen skrives ut separat fra opptakene, så transkriptet viser hvem sa hva, og når. Transkript-knappen ved siden av en opptak åpner den; administratorer kan også transkribere en enkelt samtale, eller transkribere en igjen.
Søk hva som ble sagt finner samtaler ved ord fra deres transkriberinger, sammenfatninger og handlingselementer. Bare innspilte samtaler transkriberes. En transkript slettes med dens opptak, og lesing eller søking av transkriberinger noteres i revisjonsloggen, som å spille av en opptak.
Kundetidslinje
/timelineKundetidslinjen viser alt med ett telefonnummer over det siste året, nyeste først, så den som plukker opp vet hele historien.
Hva det viser
| Element | Med |
|---|---|
| Samtaler | hvem som tok dem, hvor lenge og med en transkript, en sammenfatting, opptak og transkript |
| Voice-mails | deres sammenfatninger |
| Tekster | begge veier |
| Tilbakekall | bedt om og om det er gjort |
| Notater | teamets egne notater |
Et nummer matcher uansett hvordan det er skrevet: +1 212 555 0100 og 2125550100 er det samme.
Opening it
From a caller card (Timeline), from Contacts, from an incoming call in Call history, from a text conversation, or type a number at the top of Timeline (kapittel 48).
Notater
Administratorene kan Legg til en notat for teamet: det vises på tidslinjen for alle, med hvem som skrev det og når, og kan fjernes.
CRM: oppringerkort og oppkallshistorikk
/settingsKoble til en kundesystem i Innstillinger (kapittel 14), CRM. Den fungerer med alle systemer som har en webadresse, uten kode skrevet for hvert produkt.
Oppringerkort
Mens et oppkall fra utsiden ringer, viser Live calls et kort: hvem det er (fra din CRM, eller utvidelsens navn), hvor ofte de har ringt i 90 dager, eventuelle tilbakekall (kapittel 30) de venter på, og en sammenfatting av deres siste transkriberte oppkall. Nettside-telefonen viser et kortere kort til personen som svarer: hvem det er, tidligere oppkall og ventende tilbakekall, men ikke andre personers oppkallssammenfatninger.
For navnet, sett Oppslagadresse: BitVoice spør den (GET) med oppringers nummer i stedet for {number}, sender Oppslagheader med dets verdi (en vault-referanse fungerer), og forventer JSON med navn, selskap, url og notater; 404 betyr ukjent. Svar blir lagret i fem minutter. Åpne i CRM-lenke legger en lenke til oppringeren på kortet. Bruk Søk det opp for å prøve et nummer før du lagrer.
Et CRMs eget svar
De fleste CRMs svarer på en søkning i deres egen form, vanligvis en liste over treff, ikke BitVoices {"name": ...}. Åpne Svarfelt og angi hvor hver del er, som en punktert sti: et navn går inn i et objekt og et nummer inn i en liste, så list.0.name er navnet på det første treffet. Lenke til kontakt kan være en sti til en lenke som CRM-en gir, eller en nettadresse med stier i klammer, som https://crm.example.com/#Contact/view/{list.0.id}. Et tomt felt leser BitVoices eget navn for det. En søkning som ikke finner noen er det samme som 404: kortet sier at oppringeren ikke er kjent. Prøv et nummer med Søk det opp før du lagrer.
For eksempel, EspoCRM (testet mot en ekte EspoCRM): lag en API-bruker (Administrasjon, API-brukere, autentisering ved API-nøkkel) med en rolle som kan lese kontakter og kontoer, og deretter sett:
- Oppslag adresse:
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} - Oppslag header
X-Api-Key, dens verdi er API-brukerens nøkkel - Svarfelt: navn
list.0.name, selskaplist.0.accountName, notaterlist.0.description, lenkehttps://crm.example.com/#Contact/view/{list.0.id}
EspoCRM holder numre i internasjonal form (+15405550117), som BitVoice passerer. Andre CRMs fungerer på samme måte med deres egen søkeadresse og felt navn; sjekk formen på deres svar i deres API-dokumentasjon, eller med Søk opp, hvis melding navngir hva den fant.
Logg av samtaler
Sett Loggadresse for samtaler og Hemmelig nøkkel for signering, og hver samtale sendes deretter når den avsluttes (hendelse call.ended), igjen med en sammenfatting, handlinger og transkript når det er transkribert (call.summarized), og hver booket tilbakekalling (callback.new). Hver POST-innhold bærer X-BitVoice-Event, X-BitVoice-Timestamp og X-BitVoice-Signature: sha256= etterfulgt av HMAC-SHA256, med hemmelig nøkkel, av tidsstempel, en punktum og innholdet. En mislykket levering prøves fire ganger over omtrent ett minutt; hvis den fortsatt mislykkes, sier Health det. Send en testhendelse sjekker adressen og hemmelig nøkkel.
Innsikt i samtaler for overordnede
/qualityFor kontaktssentere: bevis om hvordan samtaler gikk, for en overordnet å lytte til, aldri en automatisk score.
I en samtale Transkript, Hvordan det gikk viser, målt fra opptakets lyd alene: hvor mye hver side snakket, hver sides lengste strek, hvor ofte hver side begynte å snakke over den andre, hvor lenge begge snakket samtidig, og den stille (en lang stillhet er ofte et hold eller dødt luft).
Med Noter hvordan hver transkribert samtale gikk på (Innstillinger, AI), leser AIen også transkriptet og sier hvordan oppringeren syntes på begynnelsen og slutten, og lister opp til seks øyeblikk: Gikk bra, Se på (snakke over oppringeren, et langt hold, et uklart svar), Ikke besvart (et spørsmål oppringeren stilte som ikke fikk noe svar) og Løftet (noe noen sa de ville gjøre), hver med tid og ord sagt, så du kan gå rett til det. En administrator kan be om det på enhver transkribert samtale med Se på denne samtalen.
På Kvalitet på samtaler (kapittel 50) summerer Samtaler, etter hvem tok dem de transkriberte samtaler for perioden per person: deres andel av samtalen, deres lengste sammenhengende tale, hvor ofte de talte over samtalepartneren, stille tid, samtaler som endte med at samtalepartneren ble irritert, og øyeblikkene som er merket. Bruk det til å velge samtaler å lytte til, ikke til å rangere mennesker.
Veiledningsnotater er dine egne ord på en samtale, i øyeblikket de handler om: under Hvordan det gikk, skriv Øyeblikk (1:05, eller la det stå tomt for begynnelsen) og Veiledningsnotat, og trykk Legg til notat. Notater listes i rekkefølgen til samtalen med hvem som skrev dem og når; administratorer skriver og fjerner dem, visere leser dem med transkriptet, og å legge til eller fjerne ett notat noteres i revisjonsloggen. De følger med opptakene, så deres oppbevaring og juridiske hold dekker dem også. Veiledningsnotater på Samtalekvalitet teller dem per person.
Oppringingsopptak og kortbetalinger
Opptak er satt i Innstillinger (kapittel 14), Oppringingsopptak: av, hver oppring, eller bare oppringene til utvidelser merket Opptak av oppring. Opptak spilles av fra Oppringslogg (kapittel 47), og med AI på blir de skrevet ut og summerert.
Informere mennesker
Noen steder må alle på et oppkall bli informert om at det er oppbevart: Announce, Beep og regler etter region er i Recording consent (kapittel 52).
Kortbetalinger (PCI DSS)
Kortnumre må ikke lagres i opptak. Før en oppringer leser ett høyt, trykker personen på utvidelsen *7; *8 gjenopptar. Pause opptak på Live calls (kapittel 46) gjør det samme. Den pauseerte delen er stille i opptaket og er listet i oppkallshistorikken, så en revisor kan se hvor og hvor lenge.
Konferanserom
Et rom med Opptak av rom på blir lagret som ett opptak av hele rommet (Konferanserom (kapittel 34)).
Hvor lenge ting blir lagret
Innstillinger bestemmer hvor mange dager opptak, oppkallshistorikk og voicemail blir lagret; eldre enn det slettes innen time. Alt under en rettslig hold (kapittel 73) blir lagret uansett alder. Arkiv (kapittel 72) kan lagre kopier andre steder.
Administratorene og seerne kan spille av opptak og lese transkriberinger; bare administratorer kan transkribere et oppkall eller transkribere det igjen. Å spille av et opptak eller lese dets transkript blir notert i revisjonsloggen.
Innspillings-samtykke
/settingsNoen steder lar en samtale bli innspilt når en person på den vet; andre krever at alle må bli informert, eller samtykke. I Innstillinger, Innspilling av samtaler, velg hvordan personer på en innspilt samtale blir informert:
- Ingen varsel.
- Kunngjør: når samtalen besvares, hører begge sider varselet (innspill det på samme sted, for eksempel "Denne samtalen blir innspilt for opplæring og kvalitet"), og innspilling starter bare etter at det har blitt spilt. Inntil en er innspilt, spilles tre pip, og Helse sier det.
- Pip: en kort tone til begge sider hver 15. sekund mens samtalen blir innspilt.
Regler velger etter det ytre nummeret (ringende på innkommende samtaler, nummeret som blir ringt på utgående samtaler), lengste match først: for eksempel numre som starter med 1415 (California) Kunngjør, 49 (Tyskland) Aldri innspill, alt annet som ovenfor. En regels Ingen varsel innspiller uten varsel; Aldri innspill lar disse samtaler være uten innspilling i det hele tatt. Samtaler mellom utvidelser følger hovedinnstillingen.
Ditt eget nummer teller også: reglene sammenlignes med både det eksterne nummeret og ditt eget (nummeret som blir ringt inn på innkommende samtaler, din ID på utgående samtaler), og den mest beskyttende av dem vinner (Aldri opptak før Annonsere før Signal før Ingen varsel). Så et kontor i et sted som trenger alle parters samtykke annonserer hvem de ringer, uansett hvor de er. Når partene faller under forskjellige regler, sier samtalenes historikk i Samtalehistorikk (kapittel 47) hvilken regel som ble brukt og hvorfor.
Opptak kan også pauses under en samtale med pausekoden (kortbetalinger). Ingen av dette er juridisk råd: sjekk lovene der du og dine samtalepartnere er.
Samtalekvalitet
/qualityHow calls sounded over the last day, week, month or 90 days, from the sound BitVoice itself received on each side of each call. Phones are grouped by their site (kapittel 12) (or "no site"), and calls from outside by the provider's line they came in on.
Hver plass viser sine samtaler, gjennomsnittlig score (MOS, på en skala fra 1 til 5: over 4 er bra, under 3,6 lyder dårlig), andelen lydpakker som aldri ankom, og jitter (uregelmessig forsinkelse). Under dette forteller BitVoice hva som er galt på vanlig språk, for eksempel "Tap av lydpakker i hovedkontorets nettverk: 3,2% av lyden ankom aldri, hovedsakelig mellom 14:00 og 16:00", samt hva som bør sjekkes. Diagrammet viser lyden som gikk tapt etter klokkeslett.
Diagnosen sammenligner de to halvdelene av samme samtaler: lyden fra stedets telefoner og lyden fra leverandøren som samme samtaler gikk gjennom. Når den andre halvdelen ankommer ren, er tapet på dette stedets side, og det sier det; når begge halvdelene taper lyd, er stedet ikke alene skyldig og det peker på hva samtaler deler, dette systems eget internett-tilknytning. Hvis hvert sted mister lyd samtidig, er årsaken likeledes hva de deler. Hvordan dette ble arbeidet ut listar årsakene, steg for steg (samtalekvalitetsregelboken, se Sikkerhet (kapittel 60), "Hvordan BitVoice avgjør"). Steder med færre enn tre samtaler blir ikke vurderinger. Samtalekvalitet per samtale er også i Samtalehistorikk (kapittel 47) (Kvalitetskolonnen) og, mens samtaler er aktive, på Aktive samtaler (kapittel 46).
En samtale som koblet til, men fikk ingen lyd i det hele tatt fra en side, blir telt for seg, under uten lyd, og plassert først: det er ikke dårlig lyd, men lyd som aldri ankom, nesten alltid en brannmur eller NAT-router som lar SIP gå gjennom og holder media ute. Plassens råd sier hva som bør sjekkes (for en leverandør, dens media-adresser).
Kostnader og budsjetter
/costsBitVoice priser hver samtale fra hva din leverandør beregner, og viser månedens utgifter etter avdeling, person og trunk, med de dyreste samtaler.
Priser
På Trunker (kapittel 7), åpne en trunk og dens Samtalepriser. Hver pris dekker numre som starter med noen siffer, slik nummeret sendes til leverandøren (siffer bare, så 44 for Storbritannia, 1900 for US premium rate); den lengste matchen vinner, og en pris uten siffer dekker alle andre numre. Gi prisen per minutt, eventuell avgift per besvart samtale, faktureringssteg (60 sekunder for hele minutter, 6 eller 1 for finere) og eventuell minimum. Innkommende samtaler, per minutt er for gratis numre du betaler for å motta. Hva ville det koste sjekker et nummer før noen ringer det. Valutaen settes på Kostnader.
En samtalekostnad er fast når den avsluttes, med prisene på tidspunktet; å endre en pris endrer ikke tidligere samtaler. Kostnader sier hvor mange besvarte utgående samtaler ikke hadde pris.
Avdelinger og budsjetter
Gi utvidelser en Avdeling (i utvidelsen). På Kostnader, legg til et budsjetter for hver samtale eller for en avdeling: en advarsel vises i BitVoice, og sendes til budsjetts e-postadresse og advarseladresse, på 80% og igjen på 100% av måneden.
Advarselen
Utgående samtaler koster mer enn dette i en time utløser en advarsel når utgående samtaler overstiger denne summen innen en time. En plutselig rekke dyre samtaler er det vanlige tegnet på tollsvindel (en stjålet telefonpassord): sjekk Samtalehistorikk, så deaktiver utvidelsen eller trunken.
Ringende ID-reputasjon og merket samtale
/reputationTelefonselskaper kjører spam-filtre som kan merke et bedriftsnummer "Svindel sannsynlig", eller blokkere det, og deretter svarer nesten ingen. Ringende ID-reputasjon overvåker hvert nummer du ringer ut fra, fra dine egne samtaler, og sier i klart språk hvordan det går:
- Svart: andelen samtaler som ble svart, og hva det var perioden før. En nedgang på halvparten eller under 20% er det vanlige tegnet på en ny merking.
- Lagt på med en gang: samtaler som ble svart og avsluttet innen 10 sekunder.
- Avvist som spam: samtaler en bærers filter avviste (SIP 608) eller som personen merket uønsket (607). Én 608 betyr at nummeret er merket.
- Tungt bruk: mer enn ca. 150 samtaler per dag fra ett nummer er hva robocallere gjør, og filtre merker.
Numre med færre enn 20 samtaler vises som for få til å dømme.
Dine utgående numre gir hvert nummer et navn (sendt som navnet til oppringeren), en årsak for å ringe og et logo (en https://-bilde). På en trunk med Send merket oppringer-ID på, går logoen og årsaken ut som rik oppringerdata (RFC 9796 Call-Info); operatører som støtter merket ringing viser dem på den ringede telefonen. De fleste telefoner viser navnet fra oppringer-navn (CNAM)-databasen i stedet, som din provider setter: spør dem. Overvåk setter en advarsel på Helse når et overvåket nummer begynner å se merket ut.
Siden sier også hva du skal gjøre når et nummer er merket.
Spam-beskyttelse og STIR/SHAKEN
/settingsI USA og Canada, signerer leverandøren en samtale starter med sin samtale-ID (STIR/SHAKEN): A når den kjenner ringende og kan bruke nummeret, B når den kjenner ringende, men ikke nummeret, C når den bare har videreformidlet samtalen. Din leverandør forteller enten BitVoice sin dom (verstat) eller sender den signerte Identitet-headeren videre, som BitVoice så sjekker selv: signatur, at den er under en minutt gammel, og at den navngir numrene i denne samtalen. Dommen vises som Verifisert, Delvis verifisert, Uverifisert eller Ikke verifisert på Aktive samtaler og i Samtalehistorikk.
I Innstillinger, Spam-beskyttelse, velg hva som skjer når en samtale-ID mislykkes verifisering (ringe, ringe merket, eller avvis), når den ikke er verifisert i det hele tatt, og når nummeret er skjult. En merket samtale ringer med Spam? (eller din egen merking) før ringendes navn. Blokkerte numre avvises; en post som slutter med * blokkerer et nummerområde (+1900* er alle amerikanske premium-numre). Alltid tillatt numre avvises eller merkes aldri. I Samtalehistorikk, knappen for å blokkere en ringende legger dem til listen; avviste samtaler vises som Blokkert.
Innen en time etter et nødkall fra noen utvidelse, avvises ingen kall (blokkerte ringer i stedet), i tilfelle det er nødetaten som ringer tilbake. Et 911-kall (fra ESInet eller en CAMA-trunk) avvises aldri eller hindres av skjerming.
Callers BitVoice does not know
A caller is known when the number is always allowed, in the contacts (kapittel 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 | Hva ringeren får |
|---|---|
| Ring som vanlig | samtalen ringer som noen andre (standard) |
| Robot-test først | BitVoice svarer og sier "For å bli koblet til, trykk" og en tall, som endres hver samtale. Riktig tast setter dem igjennom til hvor samtalen var ment å gå; noe annet, eller ingenting (to ganger), og de går til Ringer som mislykkes i testen går til, eller hører farvel. Robot-samtaler trykker det ikke |
| Send andre steder | ingenting ringer: de går rett til stedet valgt, en voicemail-boks for eksempel |
Robottesten trenger ord: i Lyder (kapittel 20), ta opp eller lag (med en tale-tjeneste) skjermingsprompene og tallene 1 til 9 på kallerens språk. Inntil de er tatt opp, ringer slike oppkallinger som vanlig (en kaller kan ikke bestå en test de ikke kan høre), og Helse sier det. En kaller som består, teller som kjent i 90 dager. Testen besvarer oppkallet, så kallers leverandør starter å belaste dem fra det øyeblikket, som for ethvert besvart oppkall. Oppkallingshistorikken viser hver oppkallings resultat (bestått, feilet, sendt) og hvorfor-sporet sier hva som skjedde.
Et spam-database
BitVoice kan spørre en rykte-tjeneste om hver ukjent kaller før oppkallet ringer. Bruk Nomorobo via Twilio fyller inn Twilio Lookup med Nomorobo spam-poeng (installer Nomorobo-tillegget i din Twilio-konto, så skriv inn dets konto-ID og autentiseringstoken); enhver annen tjeneste som svarer i JSON fungerer også: gi dens adresse med {e164} (+12125550142) eller {number} (som leverandøren sendte det), hvor dens uttalelse er (Uttalelse-felt, en punktert sti), og når det betyr spam (et poeng på eller over Spam ved poeng, true, eller teksten i Eller spam når teksten er, som f.eks. BLOCK). Velg hva som skjer med en kaller det kaller spam: ring merket, robottesten eller avvist.
- Disse tjenestene belaster per oppslag. Kjente kallere blir aldri oppsøkt, og hvert svar blir lagret i en dag (Lagre svar).
- En langsom eller ødelagt tjeneste holder aldri et oppkall tilbake: etter Vent maks (1,5 sekunder med mindre du endrer det) ringer oppkallet som om svaret var "ikke spam".
- Test spør det om et nummer nå (og blir belastet som ethvert oppslag).
Blokker den siste kalleren
Like etter et uønsket oppkall, tast *32 (Funksjonskoder (kapittel 32)) fra telefonen det ringte: den siste ytre nummeret som ringte den utvidelsen i løpet av den siste dagen havner på blokkeringslisten, og telefonen leser nummeret igjen. Et alltid-tillatt nummer blir ikke blokkert, og telefonen sier det. Hver enkelt er i kontroll-loggen, med hvem blokkerte det.
Forslag fra dine oppkall
BitVoice leser de siste 30 dagers oppkall fra utsiden for numre som ringer igjen og igjen og blir kvitt med en gang: tre eller flere oppkall, nesten alle av dem over innen 10 sekunder, eller to robottester feilet, og aldri en ekte samtale (noen som snakker 30 sekunder eller mer). Kjente numre er ikke med. Hver kommer med hvorfor; Blokker setter det på blokkeringslisten og Ikke spam betyr at det aldri blir foreslått igjen. Ingenting blir blokkert før en person sier det.
For å sjekke sertifikater mot STI-myndighetene, lim inn deres sertifikater under STI-sertifikatmyndigheter; uten dem, sjekker BitVoice at samtalen ble signert med sertifikatet det navngir, men ikke hvem utstedte det sertifikatet.
Signering av egne samtaler
De fleste leverandører signerer kundenes samtaler selv. Hvis din leverandør lar deg signere (eller du er en leverandør som kjører BitVoice), slå på Signer avsender-ID på trunken (Trunker (kapittel 7)) og angi STI-sertifikat (fra en STI-sertifiseringsmyndighet, med din tjenesteleverandørkodetoken) og dens privat nøkkel (P-256). Hver samtale ut via trunken har deretter en signert Identity-header (ES256, som SHAKEN krever).
- Sertifikatadresse (x5u) er hvor den andre siden henter sertifikatet. La det være tomt og BitVoice publiserer det på
/stir/<trunk>.pempå sin offentlige adresse (Innstillinger), som må være tilgjengelig fra internett over HTTPS. - Verifisering: automatisk gir A når en utvidelse ringer med ett av systemets numre (et nummer som er ruteinn, eller en samtale-ID som er satt på trunken eller utvidelsen), B når en utvidelse ringer med et annet nummer, og C for samtaler som er videreformidlet fra utsiden (en videresendt ringende). Eller fastsett det på A, B eller C.
- Samtalehistorikk merker hver signert samtale med signert A, B eller C. En samtale stoppes aldri fordi den ikke kunne signeres; årsaken er i loggen.
Kjøre BitVoice
Holdning det trygt og kjørende: administratorer og pålogging, sikkerhet, endringer og oppdateringer, flere servere, vertede organisasjoner, kodeker, Teams, importering, automatisering og verktøy for feilsøking.
Administratorene
/usersAdministratorene er personer som logger inn på dette nettgrensesnittet. Ansatte som bare tar hånd om sine egne samtaler, bruker ansattportalen i stedet og trenger ingen konto her (Ansattportalen (kapittel 33)).
Roller
| Rolle | Kan |
|---|---|
| Administrator | endre alt, avspille opptak, se hver hemmelig feltets eksistens (aldri verdien) |
| Viser | se alt, endre ingenting; hemmeligheter er skjulte |
En endring av rolle eller passord, logger personen ut overalt på en gang.
To-trinns innlogging
Hver person aktiverer to-trinns innlogging for seg selv: Konfigurer viser en nøkkel for en autentiseringsapp; å angi koden den viser, aktiverer den. Deretter ber innlogging om en kode i tillegg til passordet. Å deaktivere den, krever passordet.
Enkelt innlogging
Med enkelt innlogging (Innstillinger), logger personer inn med organisasjonens konto (Microsoft Entra, Google, Okta, enhver OpenID Connect-leverandør), og en konto opprettes for dem første gangen. Se Enkelt innlogging (kapittel 58).
API-tekster
Programmer (Terraform, skript) bruker API-tekster i stedet for passord: opprettet på denne siden, vist én gang, og tilbakekalt når som helst. Hver tekst er en administrator eller en viser. En tekst laget med Navngir personen det virker for (for en CAD) kan sende X-BitVoice-On-Behalf-Of med personens navn, og opptak navngir da personen ved siden av teksten (911-samtaler (kapittel 77)).
Enkelt innlogging
Enkelt innlogging lar mennesker logge inn i BitVoice med deres arbeidskonto, gjennom enhver OpenID Connect-leverandør: Microsoft Entra ID, Google, Okta, Keycloak og andre. Å forlate organisasjonen fjerner deres tilgang her også.
Setting it up
In Settings (kapittel 14), Single sign-on:
- Register an application with the provider, with the Redirect address shown here.
- Fill in for a provider sets the Issuer for the common ones; copy the Client ID and Client secret from the provider.
- Name the provider's Administrator groups and Viewer groups. Groups claim is where the provider puts them (
groupsunless set). - Optionally change the Button text on the sign-in page.
- Switch on Use single sign-on.
Hvordan det fungerer
- Kontoen her blir laget ved første pålogging; gruppene setter rollen ved hver pålogging, så å flytte noen mellom grupper hos leverandøren endrer deres rolle her.
- Noen i ingen av gruppene blir nektet, og nektelsen er i revisjonsloggen.
- Med Tillat også passord av, fungerer passord bare på denne datamaskinen, så en leverandørfeil aldri låser deg ute.
Bedriftskatalog (Active Directory og LDAP)
BitVoice kan lese bedriftskatalogen din, Active Directory eller en annen LDAP-tjener (OpenLDAP, Samba, 389 Directory Server, FreeIPA): personer med telefonnummer blir utvidelser, kataloggrupper fyller ringgrupper, og personer logger inn på webgrensesnittet med deres katalogpassord. BitVoice leser bare katalogen; den skriver aldri til den.
Tilkobling
I Innstillinger (kapittel 14), Bedriftskatalog:
- Velg Active Directory eller OpenLDAP eller en annen LDAP-tjener: det setter hvilke attributter som leses (sAMAccountName eller uid for påloggingsnavn, displayName eller cn, mail, telephoneNumber). Endre noen av dem i dens boks.
- Tjener:
ldaps://dc1.example.com(port 636), ellerldap://...med StartTLS på. Vanlig LDAP avvies med mindre tjeneren er denne datamaskinen, fordi passord ville krysse nettverket uten kryptering. Når tjenerens sertifikat kommer fra din egen sertifikatmyndighet, lim inn myndigheten i Bedriftssertifikatmyndighet. - Lese-konto og Dens passord: en konto som har tillatelse til å lese personer og grupper (
reader@example.compå Active Directory). Passordet kan være en referanse til en nøkkelhvelv (Innstillinger, Nøkkelhvelv). - Base DN: hvor personer og grupper er (
dc=example,dc=com). Hvilke personer begrenser dem med en LDAP-filter; på Active Directory, er disabled accounts alltid utelatt. - Test logger inn med lese-kontoen og leser alle, uten å endre noe: det viser hvor mange personer det fant, hvor mange som har et nummer, og hvilken utvidelse hver ville få.
Extensions and ring groups
- With Make and update extensions on, each person with a number gets an extension: the number's last Digits kept (4 of
+1 212 555 0123is 0123; 0 keeps every digit, which must then be 2 to 8). New extensions get a SIP password and voicemail with a random PIN; the person's name and email come from the directory. - The directory owns an extension it made: its number, name and email follow the directory at each sync. Everything else (devices, forwarding, voicemail settings) is yours.
- An extension you made by hand is never taken over, unless it has that person's name or email. Two people with the same number, a number someone else's extension already has, or a number of the wrong length is listed under To look at, and nothing is changed for them.
- With Turn off the extensions of people who left on, an extension the directory made is switched off when the person leaves, is disabled, or loses their number, and comes back on when they return.
- Ring groups filled from directory groups: each line puts the extensions of a group's members into a ring group (on Active Directory nested groups count). A group with nobody who has an extension leaves the ring group as it was.
- The directory is read every Read it every minutes (60 by default), and at once with Sync now. Each sync that changes something is one revision (kapittel 61) named "Company directory sync", so it can be undone; the last sync's report shows below the button.
Pålogging
Med Personer logger inn her med deres katalognavn og passord på, tar påloggingsiden katalognavn og passord i tillegg til BitVoices egne konti:
- Medlemmer av Administratorgrupper logger inn som administratorer, av Visergrupper som visere (uten visergrupper, hvem som helst andre i katalogen). Grupper er navngitt av deres navn (cn) eller DN; på Active Directory teller nestede grupper. Noen i ingen slike grupper, blir nektet.
- Kontoen her blir laget ved første pålogging, og dens rolle følger gruppene ved hver pålogging. Den tar aldri over en BitVoice-konto med samme navn.
- Et tomt passord blir alltid nektet (LDAP ville ellers ta det som en anonym pålogging), en deaktivert konto kan ikke logge inn, og navn er escapet før de når katalogen.
- To-trinns pålogging kan legges til disse kontoene som til noen andre.
Sikkerhet
/securityEt telefonisystem på internett angripes innen timer: skannere prøver passord på hver SIP-port, og et overtatt system kjører opp samtaler til premium-numre. BitVoice er bygget for å motstå det som standard, i lag.
Mot passordgjetting
- Adresser som fortsatt mislykkes i å logge inn, blir midlertidig blokkert (Innstillinger, Beskyttelse): som standard blir adresser som har 10 feil påloggingsforsøk i løpet av en minutt, blokkert i en time. Blokkerte adresser listes på Sikkerhet (kapittel 60) og kan være avblokkert.
- Trusted networks er aldri blokkert: ditt kontornettverk.
- SIP-passord genereres, minst 12 tegn, ett per utvidelse. En telefon som logger inn som en utvidelse, kan aldri registrere en annen.
- En scanner som er blokkert, får ikke noen respons, så den lærer ingenting.
Mot svindel
- Utvidelser kan ringe eksterne numre bare når de er tillatt.
- Premium-rate-numre blir avvist med mindre en rute navngir dem.
- Svindel-vakt (under) dømmer hver samtale utenfor landet før den blir plassert.
- Kostnader (kapittel 54) varsler om budsjetter og om løpske utgifter: mange samtaler til ett land i en time.
- Hver utvidelse kan ha maks fire samtaler på samme tid (Innstillinger, Beskyttelse).
Svindelvakt
Slå det på i Innstillinger, Svindelvakt. Hver samtale utenfor landet (etter +, 00 eller 011, og steder som deler +1 med Nord-Amerika, men er andre land, som Jamaica, et klassisk svindel-mål) blir da dømt før den plasseres:
| Situasjon | Hva den gjør |
|---|---|
| En samtale utenlands til et land denne utvidelsen ringte i de siste 90 dagene | lar den gå gjennom |
| En første samtale til det landet i 90 dager | lar den gå gjennom og rapporterer det |
| En første samtale der utenfor Arbeidstid, eller plassert fra utenfor (en innringing, en videreføring) | ber om PIN som er bedt om (med ingen valgt, avviser den) |
| Flere enn Samtaler utenlands i 10 minutter fra en utvidelse | avviser den |
| En første samtale utenlands mens noen gjetter passord (tre feil på rad fra en adresse, eller en blokkering, i de siste 60 minuttene) | avviser den |
| En nødnummer | lar den alltid gå gjennom |
Land som alltid er tillatt (ringekoder, som 44) og Unntak (en utvidelse unntatt til en dag, for en reise) fjerner "første samtale" og "utenfor timer"; de unntar aldri mange samtaler i en kort tid eller et angrep, fordi en stjålet passord ser ut til å være godkjent også. Hvis samtale-historikken ikke kan leses, vet ikke vakt om en samtale er en første, og noe som ikke måles er aldri tatt for trygt: den ber om PIN-en. Hver dom blir listet på Sikkerhet (kapittel 60) med dets grunner, og er på samtale-posten i Samtalelogg (kapittel 47).
Hvordan BitVoice bestemmer
BitVoices dommere (svindel-vakten, trunk-helse-dommeren, samtale-kvalitets-diagnosen og 911-oppringer-lokasjons-sjekken) hver følger en regelbok: fakta som måles, konklusjoner de støtter, unntak som overruler en konklusjon, og valg. Hvordan BitVoice bestemmer, på Sikkerhet (kapittel 60), viser hver regelbok. Reglene dommerne holder:
- Hver svar kommer med dets grunner: hva holdt, hva ble argumentert mot det og hva overrulerte det.
- Noe ingen målte er ukjent, aldri "nei". Når et ukjent kunne endre svaret, tar dommeren dets forsiktige valg og sier hva det ikke kunne måle.
- "Kan ikke bestemme" er et svar: når reglene lar en situasjon uavgjort, tar dommeren dets forsiktige valg og sier så.
- Hver regelbok blir sjekket i hver kombinasjon av dets fakta før den brukes (når BitVoice starter, og ved dets tester): aldri to valg på samme tid, og hver regel er tilgjengelig. Skjermen viser hvor mange situasjoner hver ble sjekket i.
Kryptering
- TLS krypterer signalisering (port 5061), så passord og numre ikke er lesbare på nettverket.
- SRTP krypterer lyden av samtaler; nettleser-telefonen og appene bruker alltid den.
- Web-grensesnittet har HTTPS på port 8443 med sitt eget sertifikat, eller ett du installerer.
Hvem kan gjøre hva
- Administratorene kan endre alt; seere ser alt, men endrer ingenting; ansatte bruker portalen bare for egne samtaler.
- Slå på to-trinns pålogging for hver administrator (Administratorene (kapittel 57)): en kode fra en autentiseringsapp.
- Enkelt pålogging (kapittel 58) logger mennesker inn via din identitetsleverandør.
- Revisjonsloggen registrerer hver administrativ handling og hvem som gjorde det, og kan ikke redigeres.
Endringer, sikkerhetskopier og import
/changesHver lagret endring er en revisjon: nummerert, med hvem som gjorde det, når, og en enkel linje med sammenfatting. Ingen del av konfigurasjonen går noen gang tapt.
Sammenlign og gjenopprett
- Hva endret viser forskjellen mellom en revisjon og den forrige, felt for felt.
- Gjenopprett viser hva gjenoppretting ville endre og spør først. Gjenoppretting er selv en ny revisjon, så den kan også angres.
Eksport og import
- Eksport laster ned hele konfigurasjonen som en fil (hemmeligheter utelatt med mindre du ber om dem).
- Import viser forhåndsvisning av en fil sine endringer før de blir anvendt.
- Import (kapittel 68) leser også FreePBX og Asterisk-konfigurasjoner, 3CX-brukerlister og CSV-eksport fra Cisco Unified CM, Avaya og Mitel.
- Arkiv (kapittel 72) kopierer sikkerhetskopier, opptak og voicemail til Amazon S3 eller Azure.
Endringer gjort samtidig
To administratorer som redigerer samme ting samtidig kan ikke overskrive hverandre: den andre lagringen avvises med en melding om å laste inn på nytt, og ingenting går tapt.
Oppdateringer
/updatesOppdatering av BitVoice er ett klikk, og trygt: den sjekker den nye versjonen, installerer den ved siden av den gamle, og går tilbake på egen hånd hvis den nye ikke forblir oppe.
Installer en oppdatering
- Last ned den nye utgaven og pak den ut. Ved siden av programmet er dens signatur fra BioDream:
bitvoice.sig, ellerbitvoice.exe.sigpå Windows. - På Oppdateringer (kapittel 62), last opp programmet og
.sig-filen. - Trykk Installer. Som standard venter BitVoice til ingen samtaler er i gang; du kan også installere med en gang.
- BitVoice starter på ny på den nye versjonen. Med flere servere, overføres samtaler i gang til en annen server og fortsetter.
Gå tilbake
Den versjonen du forlot, blir beholdt: Gå tilbake returnerer til den på ett klikk. En ny versjon som ikke starter to ganger, eller ikke forblir oppe i ett minutt, erstattes av den forrige av seg selv.
Signaturer
Hver utgave fra v0.1.3 inneholder BioDreams utgivelsesnøkkel. Slike bygninger installerer bare programmer signert med den nøkkelen: et usignert fil, en signert av noen andre, eller en endret med en enkelt byte, avvises med signaturer stemmer ikke overens. Siden sier om denne bygningen sjekker (Kreves) eller ikke.
| Du kjører | Oppdateringer aksepterer |
|---|---|
| en utgave, v0.1.3 eller senere | bare programmer signert av BioDream |
| v0.1.2 eller tidligere, eller en bygning av din egen | alle programmer: uten nøkkel, kan en .sig-fil ikke sjekkes og ignoreres |
Flere servere som ett telefonisystem
/serversTo eller flere BitVoice-servere som deler en PostgreSQL-database fungerer som ett telefonisystem:
- En samtale når en telefon uansett hvilken server den er registrert hos: ringegrupper, køer, overføringer til en utvidelse og samtaler fra leverandørslinjer ringer telefoner på hver server.
- Innstillinger endret på en server gjelder på alle innen fem sekunder; brukere, kontakter, samtalehistorikk, transkripter av opptak og tekstmedlinger deles.
- Okkuperte lamper (BLF) viser telefoner på hver server som ringer og er opptatt; parkering-plasser deles, så en samtale parkert på en server kan hentes fra en telefon på en annen; høyttalere når telefoner på hver server; tekster når skrivebords telefoner uansett hvor de er registrert.
- En køagent på en samtale på en server teller som opptatt på de andre, og en leverandørslinjes kanalbegrensning teller samtaler på hver server.
- Aktive samtaler på hver server lister samtaler på de andre også (kun lese: legg på eller lytt med på serveren som har samtalen).
- Samtaleposten skrives bare en gang, av serveren som har ringende, og en samtale blir også opptatt der.
Konfigurasjon
- Flytt den første serverens data til PostgreSQL: Innstillinger, Database.
- Start hver annen server med samme database:
bitvoice -database postgres://…(eller BITVOICE_DATABASE-miljøvariabel). Den slutter seg til med en gang; Servere lister den. - På Servere, sjekk hvor hver server nås (dens adresse og SIP-port på nettverket serverne deler), og gi hver en navn. Servere som hver nås fra internettet på en adresse av sin egen (skytservere med offentlige IP-er, ingen delt adresse) får Den offentlige adresse også: leverandører og telefoner utenfor blir fortalt den, så når en server overtar en samtale, følger leverandørens lyd med. Tomt, bruker en server den offentlige adressen i Innstillinger.
- Fortell telefoner hvordan de finner serverne (nedover).
- Leverandørslinjer (nedover).
Hvordan telefoner finner serverne. Telefoner BitVoice konfigurerer (Yealink, Polycom, Grandstream) får en annen kjørende server som reserve av seg selv. For de andre, Snom og telefoner konfigurert for hånd, bruk en av disse på Servere:
- En DNS-navn for hver server: et navn som pbx.example.com med SRV-poster (_sip._udp, _sip._tcp, _sips._tcp) som lister hver server. Telefoner BitVoice konfigurerer, får navnet, og Servere sjekker postene mot kjørende servere, lister hva som mangler og gir postene til å opprette, klare til å kopiere.
- En delt adresse: en ubrukt adresse på servernettet, som 192.168.1.50/24. En kjørende server holder den på et tidspunkt og forteller nettverket med en gang (gratuitous ARP); hvis den stopper, tar neste server adressen innen få sekunder, fortsetter samtaler og svarer telefoner på samme adresse, uten at de må registrere seg igjen. Den trenger Linux og NET_ADMIN- og NET_RAW-tilgang (i en container:
--cap-add NET_ADMIN --cap-add NET_RAW), og servere på ett nettverk. Restart hver server etter å ha konfigurert den.
Leverandørslinjer. I hver trunk, sier Delt mellom servere hvordan:
- Hver server bruker den: hver server registrerer seg og foretar samtaler. For leverandører som tillater flere registreringer på ett konto, eller ingen.
- En server om gangen: en server registrerer seg og håndterer linjen; de andre viser den som Reserve, holdt av den serveren og sender sine samtaler ut gjennom den. Hvis den stopper, registrerer neste server seg innen få sekunder. For leverandører som tillater én registrering per konto.
Når en server stopper
- Samtaler fortsetter. Hver server holder en notis om sine samtaler i databasen; når en stopper, tar en kjørende server over hver samtale innen få sekunder, flytter lyden til seg selv og forteller begge ender (en re-INVITE). Det er et gap på noen sekunder i lyden. En planlagt stopp (en oppgradering, en omstart) overfører samtaler med en gang, uten gap.
- En samtale hvis telefon er registrert hos serveren som overtar, fortsetter der uten å forstyrre den telefonen: bare den andre parten flyttes.
- Dens telefoner fortsetter gjennom reserve-serveren, DNS-navnet eller den delte adressen.
- En server som bare restartes (en oppgradering, en omstart) husker fortsatt hvor sine egne telefoner er registrert: den holder dem i sin data-mappe (
registrations.json), så samtaler når dem før de registrerer seg igjen. - Health og Servere viser den som stoppet; når den kommer tilbake, tar den ikke noe tilbake fra serveren som overtok.
Mellom servere. Serverne når hverandre på SIP-porten over TCP, eller TLS når de har et sertifikat (hver aksepterer bare sertifikatet den andre har publisert, og lyden mellom dem er da kryptert med SRTP), og sender lyd til hverandres medieporter (UDP, rekken i Innstillinger). Samtaler mellom servere er signert med en hemmelighet de deler i databasen, og bare akseptert fra en kjørende medlem på sin egen adresse. En brannmur mellom dem må slippe disse portene igjennom.
Prøv det først: laben. BitVoice kommer med en lab som kjører to servere, deres database og testtelefoner på én datamaskin med Docker, hver på en adresse på sin egen: deploy/lab/run.sh up bygger og starter den og setter den delte adressen; run.sh call ringer mellom telefoner på forskjellige servere; run.sh failover dreper serveren som bærer en samtale gjennom den delte adressen og sjekker om samtalen fortsetter (lyden kommer tilbake om ca. fem sekunder); run.sh impaired ringer fra en telefon på et dårlig link (forsinkelse, jitter og 5% tap) og sjekker samtalekvaliteten BitVoice rapporterer; run.sh down fjerner den. Servernes sider er på https://127.0.0.1:18501 og :18502 (bruker admin).
Hvor dataene lagres (SQLite eller PostgreSQL)
/settingsBitVoice lagrer innstillinger og deres lagrede versjoner, brukere, kontakter, samtalelogg, revisjonslogg, tekster, notater og transkripsjoner i en database. Innspillinger og voicemail blir som lydfiler i data-mappen.
Denne serverens egen fil (SQLite, standard): en enkelt fil, bitvoice.db i data-mappen, med ingenting å installere. Sikkerhetskopier data-mappen og du har alt.
PostgreSQL: for flere BitVoice-servere som deler én sett med data, eller for rapporter i verktøy som Power BI, Grafana eller Metabase. I Innstillinger, Database, Flytt dataene inn i PostgreSQL: lag en tom database og en bruker som eier den, skriv inn dens adresse (postgres://bruker:passord@host:5432/database), trykk Test, så Kopier dataene og start på nytt på PostgreSQL. Alt blir kopiert i ett slag (alt eller ingenting) og BitVoice starter på nytt på det; den gamle filen blir hvor den var. Å flytte tilbake til serverens egen fil fungerer på samme måte. Flyttinger blir avvist mens samtaler pågår.
Servere som deler en PostgreSQL-database ser hverandres innstillingsendringer innen fem sekunder. Hver server svarer fortsatt på sine egne telefoner og samtaler; for at en annen server skal overta en annen servers telefoner, må telefonene ha begge adressene (eller én adresse som flyttes).
Databasen kan også navngis når BitVoice starter, med -database postgres://… eller miljøvariabelen BITVOICE_DATABASE; den blir da endret der, ikke i Innstillinger.
Eldre installasjoner: på første start av denne versjonen, kopierer BitVoice sine gamle JSON-filer inn i databasen og flytter dem til pre-database i data-mappen.
Vert for andre organisasjoner
/tenantsEn BitVoice kan vertse flere organisasjoner. Hver organisasjon er et eget telefonisystem: eget utvidelser, numre, trunker, ruter, administratorer, voicemail, opptak og samtalehistorikk. Ingen organisasjon kan se en annens. De deler bare denne serverens SIP-port, IAX2-port og medieporter.
Når du skal bruke det
- En leverandør, eller et IT-selskap, som kjører telefonisystemer for mange små kunder på en server.
- En gruppe kontorer eller klinikker som ønsker separate systemer, administrert separat, på delt maskinvare.
- Flere svarpunkt som deler ett system, hver med sine egne svarere og poster.
Hovedsystemet er en organisasjon også: den denne serveren ble satt opp som. Dets administratorer administrerer de andre.
Legg til en organisasjon
- Åpne Organisasjoner (kapittel 65) og trykk Legg til organisasjon.
- Gi dens navn og et kort navn (små bokstaver, tall og bindestreker). Det korte navnet er en del av dens web-adresse,
/t/acme/, og av dens telefoners innlogginger,acme.100. Det kan ikke endres senere. - Gi eventuelt dens eget domene, som
pbx.acme.example, pekt på denne serveren. Telefoner registrerer seg til det domenet, og dens administratorer åpner det i en nettleser. - Sett dens første administrator: et brukernavn og et passord på minst 12 tegn, og dets land.
- Gi eventuelt begrensninger.
Organisasjonen starter med en gang med et tomt telefonisystem, klart for dens administrator å sette opp som beskrevet i Komme i gang (kapittel 1).
Hvordan samtaler finner riktig organisasjon
| En forespørsel | går til |
|---|---|
fra en telefon som registrerer seg til pbx.acme.example | organisasjonen med det domenet |
fra en telefon som logger inn som acme.100 | Acme, utvidelse 100 |
| fra en leverandør, for et nummer | organisasjonen hvis trunk det kommer fra og hvis innkommende rute har det nummeret |
| alt annet | hovedsystemet |
Så to organisasjoner kan begge ha utvidelse 100, og flere kan dele en leverandørkonto med forskjellige numre.
Hvor dens data er
På SQLite, har hver organisasjon sin egen mappe under tenants/ i data-mappen, med sin egen databasefil. På PostgreSQL, har hver sin egen skjema i samme database (tenant_acme). Sikkerhetskopier, arkiver og eksport er per organisasjon.
Begrensninger
| Begrensning | Hva skjer ved den |
|---|---|
| Utvidelser | å legge til en mer blir nektet med en melding |
| Samtaler samtidig | nye samtaler blir nektet (503) til en avsluttes |
| Lagring | nye opptak og voicemail blir ikke lagret |
| AI-forespørsler per dag | transkripsjoner, sammenfatninger og AI-resepsjonisten stopper til midnatt UTC |
0 er ingen begrensning. Nødsamtaler blir aldri nektet: en organisasjon på sin samtalebegrensning, eller suspendert, kan fortsatt ringe 911 og bli ringt tilbake.
Åpne en organisasjon
Åpne logger deg inn til dens web-grensesnitt som leverandøren, uten dens egen konto; det vises i dens audit-logg som leverandøren. Dens administratorer logger inn på dens egen adresse med sine egne konti. Hver organisasjon har sin egen innloggings-cookie, så å være logget inn på en gir aldri noen innlogging på en annen.
Organisasjoner ser aldri denne serverens egne skjermer: oppdateringer, database, andre servere, sertifikat, SIP-sporing (som viser hver organisasjons meldinger), samtale-generatoren eller denne listen.
Suspendering og fjerning
Suspenderer stopper innlogginger og hver samtale unntatt nødsamtaler; ingenting blir slettet. Fjern stopper organisasjonen og flytter dens mappe til side (tenants/.removed-<name>-<time>), så en feil kan bli gjort om for hånd.
Kodeker og lyd
En kodek er hvordan lyd omgjøres til data i en samtale. Telefoner, nettlesere og operatører støtter hver sine; BitVoice omgjør mellom hvilke som helst to kodeker når to parter forskjeller, så alle kan snakke med alle. Når begge bruker samme kodek går lyden ubesvart gjennom.
Kodekene
| Kodek | Lyd | Båndbredde | Brukt av |
|---|---|---|---|
| G.722 | HD (bredbånd) | 64 kbit/s | de fleste skrivebords telefoner: det beste valget mellom dem |
| G.711 µ-lov | telefon | 64 kbit/s | Nord-Amerika og Japan; hver operatør |
| G.711 A-lov | telefon | 64 kbit/s | resten av verden |
| Opus | HD, tåler tap | 24 kbit/s | nettlesere og mobilappene |
| G.729 | telefon, litt grovere | 8 kbit/s | tynne koblinger, noen operatører |
| G.726 (40 kbit/s) | telefon; bringer modemtoner best av G.726-hastighetene | 40 kbit/s | gateways, noen DECT-systemer |
| G.726 (32 kbit/s) | nær telefon | 32 kbit/s | DECT-baser, eldre gateways |
| G.726 (24 kbit/s) | mellom 32 og 16 | 24 kbit/s | noen DECT-systemer |
| G.726 (16 kbit/s) | grov | 16 kbit/s | meget tynne koblinger |
| AMR-WB (G.722.2) | HD | 6,6 til 23,85 kbit/s | mobilnettverks HD-lyd, VoLTE-interkoblinger |
| AMR | telefon, mobil | 4,75 til 12,2 kbit/s | mobilnettverk, noen operatører og gateways |
| iLBC | telefon, tåler tap | 13,3 eller 15,2 kbit/s | eldre softphones og apps |
| Speex | telefon | 15 kbit/s (2,15 til 24,6) | eldre softphones, koblinger til andre Asterisk-systemer |
| GSM | grovere | 13 kbit/s | eldre softphones og gateways |
| G.723.1 | grov; omgjort bare med ffmpeg | 5,3 eller 6,3 kbit/s | meget gamle videotelefoner og gateways |
| G.722.1 (Siren 7) | bredbånd, ubesvart | 24 eller 32 kbit/s | Polycom-telefoner, videotelefoner og konferansetelefoner |
| G.722.1C (Siren 14) | super-bredbånd, ubesvart | 24 til 48 kbit/s | konferansetelefoner, romsystemer |
| G.719 | fullt bånd, ubesvart | 32 til 128 kbit/s | telepresensromsystemer |
| Codec2 | meget lav båndbredde, ubesvart | 0,7 til 3,2 kbit/s | radiokoblinger, amatørradiogateways |
Innstillinger lister opp kodekene telefoner kan bruke, beste først; hver trunk kan ha sin egen liste. Analog adapterporter bruker alltid G.711, som faks, modemer og alarmpaneler trenger.
G.722.1, G.722.1C, G.719 og Codec2 bringes ubesvart mellom to parter som begge bruker dem, med deres båndbredde eller modus beholdt i tilbudet (BitVoice omgjør dem ikke, så en samtale mellom en av disse og en telefon uten det bruker en annen kodek begge har). Legg dem i en liste, over G.711, der romsystemer eller konferansetelefoner bør beholde sin lydrekkeffekt når de ringer hverandre. Listene navngir G.722.1 på 32 kHz G7221C, selv om SDP kaller begge G7221.
G.723.1 bringes ubesvart mellom to parter som begge bruker det. For å la en G.723.1-enhet snakke med noe annet, slå på Omgjør G.723.1 med ffmpeg i Innstillinger og installer ffmpeg (apt install ffmpeg, brew install ffmpeg): BitVoice kjører da ffmpeg som et eget program for hver retning som trenger omgjøring (hørt ved hver rate, sendt ved 6,3 kbit/s, hastigheten ffmpeg-kodekens encoder lager), omtrent 60 ms senere enn andre kodeker, og stopper det noen sekunder etter samtalen. BitVoice har ingen G.723.1-kodek på egen hånd: ITUs referansekode har ingen lisens som tillater å inkludere den, og ffmpeg installeres og kjøres på egen hånd.
Hva konvertering koster
Konvertering tar prosessortid, bare på oppkall der de to sidene er forskjellige. Per oppkall, omtrent 0,3 ms av en kjerne hver 20 ms for Opus og 0,12 ms for G.729 (noen 60 og 170 konverterte oppkall per kjerne); G.726 og GSM koster mindre enn G.729; G.711 og G.722 nesten ingenting. G.729 sendes uten Annex B (ingen stille-rammer).
Lydrensing
Lydrensing (Innstillinger) dumper ned jevne bakgrunnsstøy og jevner ut nivåer, for voicemail og, hvis du ønsker, under oppkall.
Microsoft Teams (Direct Routing)
/trunksBitVoice kan være session border controller (SBC) for en Microsoft Teams-leier, så Teams-brukere ringer BitVoice-utvidelser og dine telefonlinjer, og BitVoice ringer Teams-brukere.
Hva du trenger: et offentlig navn for denne serveren i et domene ditt Microsoft 365-leier har verifisert (sbc.eksempel.com), åpne port 5061 begge veier til Microsofts nettverk 52.112.0.0/14 og 52.120.0.0/14, og et sertifikat for det navnet fra en offentlig myndighet. Teams-brukere trenger en Phone System-lisens.
Steg
- Innstillinger, Sertifikat: installer sertifikatet og dens private nøkkel (PEM). Det brukes med en gang, for dette grensesnittet og for SIP over TLS, og BitVoice presenterer det til Microsoft.
- Trunker, Legg til, start fra Microsoft Teams: skriv inn serverens offentlige navn. Skuffen sier om sertifikatet dekker det.
- Kopier PowerShell som skuffen viser og kjør det som en Teams-administrator: det legger til SBC (New-CsOnlinePSTNGateway), en stemmerute og -politikk, og en dialplanregel så kort utvidelsesnumre når BitVoice som valgt; deretter gi hver Teams-bruker politikken og deres nummer.
- For å ringe Teams-brukere fra BitVoice, legg til en utgående rute for deres numre gjennom Teams-trunken. Teams finner sine brukere bare ved numre med + og landskoden: hvis mennesker ringer dem uten, legg til + og landskoden i rutens Foran (kallens hvorfor-spor sier så når ett går ut uten).
Når en Teams-bruker overfører et kall, ber Microsoft BitVoice om å plassere det (en REFER som navngir sin egen proxy, med nummeret eller Teams-brukerens ID): BitVoice ringer eksakt hva Microsoft navnga, med den Referred-By Microsoft ga, så en overføring til en annen Teams-bruker fungerer like bra som en til et telefonnummer. BitVoice sender aldri en Replaces-header til Teams, som Microsoft avviser.
BitVoice sender Microsoft OPTIONS hver minutt med SBC-navnet i Kontakt, som Microsoft krever, og prøver sip, sip2 og sip3.pstnhub.microsoft.com på rad. Media er alltid kryptert (SRTP). Helse advarer når sertifikatet ikke dekker navnet, er selv-signert eller utløper snart, og når Microsoft stopper å svare.
Dette følger Microsofts offentliggjorte SBC-krav og er testet mot en simulert Microsoft-proxy; BitVoice er ikke på Microsofts liste over sertifiserte SBC-er.
Importér
/importBringer over utvidelser, ringgrupper, køer og trunker fra FreePBX, Asterisk eller 3CX; og personer, jakt og ringgrupper, SIP-trunker, innkommende numre og valgmodn fra Cisco, Avaya og Mitel. Last opp de eksporterte filene, flere på en gang (en .zip eller .tar av dem fungerer også); BitVoice viser nøyaktig hva som vil endres før noe blir anvendt, og importen blir en revisjon du kan angre på Endringer (kapittel 61).
Flytting fra FreePBX
Den beste filen er en FreePBX- Sikkerhetskopiering: den inneholder alt, inkludert SIP-passord.
- I FreePBX: Admin → Sikkerhetskopiering & Gjenopprettelse → Legg til Sikkerhetskopiering. Velg minst Core, Ringgrupper, Køer og Voicemail (alle moduler er greit), lagre og Kjør.
- Last ned sikkerhetskopien fra dens rad (filen har navn som
20261001-100000-1790000000-17.0.19-1234567.tar.gz). - Installer BitVoice på den nye serveren og fullfør oppsettet med en utvidelse som FreePBX ikke bruker (sier 199) og ingen telefonlinje: importen bringer linjene.
- På Importér (kapittel 68), slipp .tar.gz-filen som den er. Les forhåndsvisningen: advarselen lister opp alt som ikke kan komme over.
- Velg Legg til. Det er en revisjon på Endringer (kapittel 61): angre det der hvis noe ser feil ut, og importér på nytt.
- Flytt telefonene: peke hver av dem mot BitVoice (eller konfigurer dem fra Telefoner (kapittel 4)), med samme utvidelsesnummer og SIP-passord de hadde.
- Test anrop inn og ut, og flytt deretter registreringen av operatøren (eller nummeroverføringen) som siste punkt.
Prøvd på et ekte system: en FreePBX 17.0.33 (den offisielle Debian 12-installasjonen) med fire utvidelser og voicemail, en PJSIP-trunk som registrerer, to utgående ruter (en med et valgforanledningsprefiks), en ringgruppe, en kø med straffer og tre DIDs, sikkerhetskopiert av Sikkerhetskopiering & Gjenopprettelse med alle moduler valgt. Sikkerhetskopien er 70 MB, nesten alt av det er lydfiler og anropshistorikk: BitVoice leser det som det kommer og beholder bare konfigurasjonen, så en sikkerhetskopiering på opptil 512 MB lastes opp. Alt ovenfor kom over: passordene, voicemail-PINene og e-post, trunkens registrering og kodeker, rutene med deres prefikser, ringgruppens voicemail når den ikke besvares, køens straffer og DIDs til gruppen, køen og utvidelsen.
Hva som kommer over:
- Utvidelser: nummer, navn, utgående anrop-ID, ringetid og SIP-passord (BitVoice lager et nytt når FreePBX sitt er kortere enn 12 tegn: skriv det inn på nytt i den telefonen). Voicemail med dens PIN og e-postadresse (og om meldinger sendes vedlagt).
- Trunker: PJSIP og chan_sip-operatørkontoer: server, port, brukernavn, passord, registrering, fra domene, kodeker, anrop-ID, kanalbegrensning. Avslåtte trunker blir av. DAHDI-trunker blir Telefoni-kort-trunker.
- Utgående ruter, i FreePBX sin rekkefølge: hver mønsters foranledningsprefiks blir siffer droppet, dens forhengs-siffer blir lagt til. En rute hvis mønster dropper eller legger til forskjellige siffer blir en BitVoice-rute for hver.
- Ringgrupper: medlemmer, ringetid, ring-alle eller en-etter-en (jakt, minnehunt, først tilgjengelig), og hvor ubesvarte anrop går.
- Køer: medlemmer med deres straffer, strategi (ring alle, minst nylig, færrest anrop, rundt om, lineær, tilfeldig), ringetid, opprydnings-tid og lengste ventetid.
- Innkommende ruter: hver DID til dens utvidelse, ringgruppe, kø, voicemail-boks eller avslag.
Hva som ikke kommer over, og som blir sagt i forhåndsvisningen: IVR-er, tid-betingelser, annonsering, følg-meg, egne trunker og kontekster, anrop-ID-matching på ruter, og eksterne numre i ringgrupper. Bygg disse på Menyer (kapittel 21), Tidsplaner (kapittel 26) og utvidelsens Følg meg. Eldre sikkerhetskopier (FreePBX 13 og før) og en ren mysqldump asterisk av FreePBX-databasen leses på samme måte.
Andre systemer
Hvor hver eksport er:
- FreePBX (utvidelser bare): Admin → Bulk Handler → Eksport → Utvidelser (CSV).
- Asterisk: pjsip.conf eller sip.conf.
- 3CX: Brukere → Eksport (CSV).
- Cisco Unified CM: Bulk Administration → Telefoner → Eksport Telefoner, alle detaljer; eller Brukere → Eksport Brukere. Telefonenes første linje blir utvidelsen, med linjens varslingnavn eller etikett som navn.
- Avaya IP Office: Manager → Fil → Import/eksport → Eksport, Brukere.
- Avaya Communication Manager:
list stationlagret som CSV; virtuelle stasjoner og VDN-er utelates. - Mitel MiVoice Business: System Data Management → Bruker- og enhetskonfigurasjon → Eksport.
Grupper og ruter. Last dem opp med personfilen, så hver gruppes medlemmer finnes ved nummer eller navn:
- Cisco Unified CM: Bulk Administration → Import/eksport → Eksport, med Line Group, Hunt List, Hunt Pilot, SIP Trunk og Route Pattern valgt; last opp .tar-filen som den er. Hver hunt pilot blir en ringgruppe med medlemmene fra sin hunt liste, Top Down og Circular som en etter en, Broadcast som alle på en gang, RNA-reverseringstiden som ringetid. Route-mønster blir utgående ruter:
9.[2-9]XXXXXXmed PreDot er mønster9[2-9]XXXXXXsom dropper 9;!blir et punktum til slutt. Mønster som bruker@(nasjonal plan) listes for å skrives for hånd. - Avaya IP Office: Eksport Hunt Group samt Brukere (begge er CSV uten header-rad). Gruppe-modus er alle på en gang; Hunt, Rotary og Longest Waiting ringer en etter en.
- Avaya Communication Manager:
list hunt-grouplagret som CSV, med medlemmene i en Medlem-kolonne eller en separat medlemsfil. - Mitel MiVoice Business: Ring-grupper og Ring-gruppe-tildeling (Cascade er en etter en, Ring All alle på en gang), og Hunt-grupper.
Trunker fra disse eksportene kommer inn slått av og uten passord, da eksportene ikke inneholder dem. Ruter går ut på den importerte trunk med samme navn; en rute hvis trunk ikke er her, utelates og meldes. Rotasjon og lengste ledig ringing er nærmere en kø enn en ringgruppe: forhåndsvisningen sier det, så du kan gjøre det til en.
Disse eksportene (alle unntatt en FreePBX- Sikkerhetskopiering) inneholder ingen SIP-passord, så hver utvidelse får et nytt; voicemail-PIN-er, navn og e-postadresser kommer over når eksporten har dem. Cisco-, Avaya H.323/DCP- og Mitel-telefoner kjører produsentens egen programvare og kan ikke konfigureres av BitVoice: importen sier hvor mange som ble listet. Cisco-telefoner kan bli gjenprogrammert med Ciscos multiplattform (SIP)-firmvare; Avaya J100 og Mitel 6800/6900-telefoner kan registrere seg hos BitVoice for hånd i SIP-modus.
Konfigurasjon som kode
Alt skjermene gjør, går gjennom BitVoices REST-API, så hva som helst kan skrives om, lagres i Git eller håndteres med Terraform. API-et beskrives for verktøy på /api/openapi.json (/api/openapi.json).
API-tekster
Lages på Administrere (kapittel 57): en per program, kun lese eller i stand til å endre alt. Send den som Authorization: Bearer bv_.... Den vises én gang; tilbakekall den når den ikke lenger er nødvendig. En teksts endringer vises i Endringer og revisjonsloggen under dens navn.
curl -H "Authorization: Bearer bv_..." https://pbx.example.com/api/extensions
Terraform eller OpenTofu
Repositorys deploy/terraform viser utvidelser, ringegrupper og ruter håndtert med den generiske REST-leverandøren: plan viser hva som ville endres, apply gjør endringen. Leverandøren sjekker BitVoices sertifikat; mens BitVoice fortsatt bruker sitt eget selvsignerte sertifikat, hent enten ett fra Let's Encrypt (Innstillinger, Sertifikater) eller sett bitvoice_insecure = true på et nett du stoler på (på Linux, SSL_CERT_FILE som peker på BitVoices sertifikat fungerer også). Ressursene sammenlignes med id-en BitVoice gir dem, så en andre plan viser ingen endringer før filen eller skjermene endrer noe.
Konfigurasjon fra Git
I Innstillinger (kapittel 14), Konfigurasjon fra Git, leser BitVoice konfigurasjonen fra en fil i et repository hver få minutter og enten viser hva som avviker eller gjør endringene. Start filen med Eksportér for Git, som lar være å inkludere passord; BitVoice beholder sine egne, så hemmeligheter havner aldri i repository.
Asterisk-kompatibilitet (AMI, ARI og AGI)
Verktøy skrevet for Asterisk kan kontrollere BitVoice: CRM, wallboards, klikk-til-ring-knapper, kontrollere for opptak av samtaler. Slå det på i Innstillinger (kapittel 14), Asterisk-kompatibilitet. Verktøy ser samtaler som kanaler med navn som PJSIP/100-..., som på Asterisk.
AMI
Administrasjonsgrensesnittet på TCP-port 5038 (AMI lytter på: denne datamaskinen bare som standard). Støttet:
| Type | Navn |
|---|---|
| Handlinger | Innlogging (plain eller MD5-utfordring), Ping, Hendelser, 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 inn i, eller ut av, alle deres køer), Agents |
| Annet | ParkedCalls; ConfbridgeListRooms, ConfbridgeList, ConfbridgeKick, ConfbridgeMute, ConfbridgeUnmute, ConfbridgeLock, ConfbridgeUnlock; MailboxCount, MailboxStatus; PauseMonitor, UnpauseMonitor; UserEvent; Reload (ingen å laste om: endringer blir effektive med en gang) |
| Hendelser | Newchannel, Newstate, Hangup, DialBegin, DialEnd, Hold, Unhold, PeerStatus, ContactStatus, MessageWaiting, ConfbridgeJoin, ConfbridgeLeave, ConfbridgeEnd, UserEvent |
Filter holder bare hendelsene som en regulær uttrykk matcher (Event: Newchannel), eller dropper dem med ! først, som på Asterisk. Det finnes ingen Asterisk-kommandolinje: Command svarer med en feil.
ARI
På /ari/, med grunnleggende autentisering eller ?api_key=user:secret:
| Forespørsel | Hva den gjør |
|---|---|
GET /ari/channels | samtaler i gang |
POST /ari/channels?endpoint=PJSIP/100&extension=5551234 | ringer 100, så ringer nummeret |
DELETE /ari/channels/{id} | legg på telefonen |
POST /ari/channels/{id}/redirect?endpoint=PJSIP/102 | sender samtalen til 102 |
/ari/endpoints, /ari/bridges, /ari/asterisk/info | telefoner, broer, versjon |
/ari/events | en WebSocket med hendelser |
POST /ari/channels/externalMedia?external_host=host:port&encapsulation=rtp&format=ulaw | en kanal som sender lyd til et program via RTP (ulaw eller alaw over UDP); dens 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 media-kanalen går med i en samtale: den hører begge parter og begge hører den; med role=listener hører ingen den (for live-transkripsjon) |
POST /ari/bridges/{call}/removeChannel?channel={id} | den forlater samtalen; de to partene snakker direkte igjen |
En ekstern media-kanal som ikke er lagt til en samtale innen en minutt blir stengt.
ARI-applikasjoner
En ARI-applikasjon (Asterisk sin Stasis()) kjører samtaler fra ditt eget program. Legg den til under ARI-applikasjoner i Innstillinger, Asterisk-kompatibilitet: et navn, et valgfritt nummer utvidelser ringer, og en fallback. Så send samtaler til den som til enhver destinasjon: en innkommende rute, en menyknapp, en timeplan.
Ditt program kobler seg til /ari/events?app=NAME (en WebSocket, med innlogging i ?api_key=user:secret). Hver samtale som når applikasjonen blir besvart og ankommer som StasisStart, med kanalen; programmet kjører den så:
| Forespørsel | Hva den gjør |
|---|---|
POST /ari/channels/{id}/play?media=sound:goodbye,digits:42 | spiller opp meldinger fra Sounds (sound:), digits:, number:, tone:beep eller en lagret opptak (recording:); PlaybackStarted og PlaybackFinished følger. DELETE /ari/playbacks/{id} stopper den. |
POST /ari/channels/{id}/record?name=msg1&maxDurationSeconds=60&maxSilenceSeconds=5&beep=true&terminateOn=%23 | opptar (wav) til lagrede opptak; RecordingStarted og RecordingFinished. POST /ari/recordings/live/{name}/stop avslutter den, DELETE kasserer den. |
GET /ari/recordings/stored, .../{name}, .../{name}/file, DELETE .../{name} | lagrede opptak |
POST /ari/channels/{id}/dtmf?dtmf=123 | sender tastetrykk til brukeren |
GET/POST /ari/channels/{id}/variable?variable=X&value=Y | kanalens variabler |
POST /ari/bridges?bridgeId=room1, .../addChannel?channel=a,b, .../removeChannel, .../play, DELETE | blandingsbroer: alle i en hører alle andre |
POST /ari/channels/{id}/continue?extension=101 | slipper samtalen: til den utvidelsen, ringegruppen eller køen, ellers fallbacken |
DELETE /ari/channels/{id} | legger på telefonen |
POST /ari/channels?endpoint=PJSIP/101&app=NAME | ringer 101; besvart, går den inn i applikasjonen |
GET /ari/applications | applikasjonene, om et program er koblet til, og deres kanaler |
POST /ari/channels/{id}/mute?direction=in, DELETE .../mute | demper hva brukeren sier (in), hva de hører (out) eller begge |
POST/DELETE /ari/channels/{id}/hold, .../moh, POST .../silence | holdemusikk til brukeren (ChannelHold, ChannelUnhold), eller stilhet |
GET/POST /ari/channels/{id}/variables | flere variabler på en gang (ChannelVarset) |
POST /ari/channels/{id}/move?app=other | overfører kanalen til en annen applikasjon (StasisEnd, så StasisStart der; ApplicationMoveFailed når ingen program kjører den) |
POST /ari/channels/{id}/snoop?spy=in&app=NAME | en snopp-kanal i en applikasjon som hører hva brukeren sier, for å opptare det (POST /ari/channels/{snoop}/record) |
POST /ari/channels/create?endpoint=PJSIP/101&app=NAME, så POST .../dial | en kanal som venter til den ringer; Dial-hendelser forteller hvordan ringing går, og den går inn i applikasjonen når den blir besvart |
GET /ari/channels/{id}/rtp_statistics | pakker og bytes sendt og mottatt, tap og jitter |
POST /ari/playbacks/{id}/control?operation=pause | pause, fortsett, restart, bakover og fremover (tre sekunder) |
POST /ari/bridges/{id}/moh, .../record, .../variable, .../play/{playbackId} | holdemusikk til en bro, opptak av dens blandingsmix, dens variabler |
POST /ari/recordings/stored/{name}/copy, POST/DELETE /ari/recordings/live/{name}/pause, .../mute | kopierer en opptak; pauser eller demper en live en |
POST /ari/applications/{app}/subscription?eventSource=deviceState:Custom:lamp, PUT .../eventFilter | abonnementer (kanal:, bro:, endpoint:PJSIP/100, deviceState:) og hendelsesfilter ({"disallowed": [{"type": "ChannelVarset"}]}) |
GET /ari/deviceStates, PUT /ari/deviceStates/Custom:lamp?deviceState=INUSE | telefoners tilstander (PJSIP/100: NOT_INUSE, INUSE, RINGING, UNAVAILABLE) og egendefinerte tilstander programmer holder (DeviceStateChanged); telefoners tilstand ankommer også som EndpointStateChange |
GET /ari/mailboxes, PUT /ari/mailboxes/{name}?newMessages=1&oldMessages=0 | utvidelsers voicemail-tellere (100@default), og postkasser et program holder selv |
GET /ari/sounds | meldingene fra Sounds, på språkene de er innspilt på, og lydene lastet opp for AGI-skript |
PUT /ari/endpoints/sendMessage?to=pjsip:100&body=Hi | en tekst på utvidelse 100s telefoner |
POST /ari/events/user/{name}?application=NAME | en brukerhendelse til en applikasjon (ChannelUserevent) |
GET /ari/asterisk/ping, GET/POST /ari/asterisk/variable, GET /ari/asterisk/modules | ping, globale variabler, og BitVoices deler navngitt som modulene de står for |
BitVoice svarer på hver enkelt operasjon i Asterisks publiserte ARI (testsvitene kalder hver enkelt og sjekker hva som kommer tilbake har feltene Asterisks beskrivelse krever). Noen har ingen relevans her og svarer 501 med årsaken: lastbare moduler (BitVoice er et program), Sorcerys dynamiske konfigurasjon (BitVoice er konfigurert i sin nettgrensesnitt), loggekanaler, broer videokilder (ARI-broer bærer lyd), sending av REFER til telefoner og krav om kringkastingsanrop. En snikelytter hører bare oppringeren (spy=in), og whisper tilbys ikke: bro en kanal med deres for å snakke med dem. Kanalehendelser for hver samtale (ChannelCreated, ChannelStateChange, ChannelDestroyed) går til hvert program, som med Asterisks subscribeAll=true. ARI-biblioteker som leser grensesnittet fra serveren (ari-client og andre) finner det på /ari/api-docs/resources.json. Hvilke programmer holder nå, under ARI-applikasjoner i Innstillinger, viser applikasjonene, tilpassede enhetsstater, postkasser, globale variabler og broer programmer har satt.
Tastetrykk ankommer som ChannelDtmfReceived; en oppringer som legger på som StasisEnd. Når ingen program er koblet, går samtalen til fallbacken; når programmet siste kobling lukkes, går samtalen der også etter fem sekunder (tid til å gjenopprette koblingen). For samtalelogikk uten et eget program, bruk Skript (kapittel 27) som kjører hele samtalen; for å overføre lyden til et program, Taleboter (kapittel 24).
AGI-skript
Et AGI-skript (Asterisks AGI() og EAGI()) kjører en samtale kommando for kommando, så IVR og integrasjoner skrevet for Asterisk (phpagi, pyst2, Asterisk-Java, enhver FastAGI-server) fungerer fortsatt. Legg det til under AGI-skript i Innstillinger, Asterisk-kompatibilitet:
| Felt | Hva det er |
|---|---|
| Skriptnavn | hvordan destinasjoner navngir det |
| Adresse | en FastAGI-server, agi://host:4573/script?x=1 (port 4573 når ingen er gitt), hagi://domain/script for servere i domenets _agi._tcp SRV-poster, prøvd i prioritetsrekkefølge, eller filnavnet på et program i AGI-programmer-mappen |
| Argumenter | overført som agi_arg_1, agi_arg_2 … |
| Nummer å ringe | valgfritt: utvidelser ringer det som et vanlig nummer |
| Fallback | hvor samtalen går når skriptet avsluttes uten å velge et nummer, eller ikke kan nås |
| Lengste kjøring | et skript som kjører lengre stoppes (standard en time) |
| EAGI | for et program: oppringerens lyd (8 kHz, signed 16-bit, little-endian) på filbeskrivningsnummer 3. Linux og macOS |
Test kobler til serveren (eller sjekker om programmet er der og kjørbar) uten å sende en samtale. Deretter send samtaler til det som et vanlig mål.
BitVoice svarer på samtalen, sender agi_-variablene (agi_network_script, agi_callerid, agi_dnid, agi_extension, agi_language …) og utfører kommandoene, og svarer som Asterisk 20 gjør (testsviten sammenligner hvert svar med en innspilling av Asterisks):
| Kommandoer | Notater |
|---|---|
| ANSWER, HANGUP, CHANNEL STATUS, NOOP, VERBOSE | HANGUP med kun en kanalnavn avslutter skriptets egen samtale |
| STREAM FILE, CONTROL STREAM FILE, GET OPTION, GET DATA, WAIT FOR DIGIT | escape-taster, sample-offset og endpos som på Asterisk; hurtigspoling, tilbakevinding og pause i CONTROL STREAM FILE |
| SAY DIGITS, SAY NUMBER, SAY ALPHA, SAY PHONETIC, SAY DATE, SAY TIME, SAY DATETIME | med en tale-tjeneste i Innstillinger, AI de uttales; uten, sies sifrene fra Lyder |
| RECORD FILE | s=N stilhet, en pip, escape-taster; filen havner i lydbiblioteket |
| SET VARIABLE, GET VARIABLE, GET FULL VARIABLE | CALLERID(num), CALLERID(name), EXTEN, UNIQUEID, CHANNEL … og ${NAME}-uttrykk |
| DATABASE GET, PUT, DEL, DELTREE | Asterisks database (AstDB), vedlikeholdt av BitVoice og vist under AGI-database |
| SET CALLERID, SET EXTENSION, SET CONTEXT, SET PRIORITY, SET AUTOHANGUP, SET MUSIC | SET EXTENSION er hvor samtalen går når skriptet avsluttes |
| SPEECH CREATE … SPEECH RECOGNIZE | bruker tale-til-tekst i Innstillinger, AI: resultatet er hva oppringeren sa, som text0, for skriptet å sammenligne; grammatikker aksepteres og ikke brukes |
| EXEC | Svar, Avslutt, Avspilling, Bakgrunn, Les, Sett, MSet, SayDigits, SayNumber, SayAlpha, Vent, Ring (ringer hver nummer i tur; DIALSTATUS), Gå til, VoiceMail, Kø, Musikk på hold, Innspilling, Ingen handling, Verbose, Logg. Andre svarer -2, som Asterisk gjør for en manglende applikasjon |
BitVoice har ingen valgplan: hvor et skript ville gå videre i Asterisks valgplan (SET EXTENSION, EXEC Goto), går samtalen til det nummeret her (en utvidelse, ringegruppe, kø, meny eller et eksternt nummer via utgående ruter) når skriptet avsluttes. Skriptene ringer aldri nødnumre. Når oppringeren legger på, får en FastAGI-skript HANGUP og et program SIGHUP; bare kommandoer som er tillatt på en død kanal kjører deretter (511 for de andre), og koblingen lukkes 30 sekunder senere hvis skriptet fortsetter. Hver kjøring vises under Siste kjøringer med sine VERBOSE-linjer, og går til hendelsesstrømmen som agi.ran.
Lyder for AGI-skript. Skriptene spiller lyder med navnene de bruker på Asterisk: last dem opp under Lyder for AGI-skript med en mappe (custom/welcome; es/custom/welcome for oppringere på spansk). WAV, MP3 og Asterisks .gsm, .ulaw, .alaw, .sln og .sln16 aksepteres; en sti som /var/lib/asterisk/sounds/en/custom/welcome.gsm finner custom/welcome. Asterisks digits/0–digits/9, beep, silence/N og noen andre (vm-goodbye, invalid, please-hold) spiller BitVoices egne promter og toner. Hva skriptene innspiller, beholdes i samme bibliotek, merket innspilt av et skript, for de dagene du velger (30 som standard). Biblioteket holder opptil 1 GB.
Programmer. Et program kjører på denne serveren med BitVoices rettigheter, så det lastes aldri opp via web: kopier det inn i AGI-programm-mappen som vises på skjermen (DATA/agi-bin) og gjør det kjørbar. Det får bare PATH og AST_AGI_DIR fra miljøet, kjører i den mappen og hva det skriver til standardfeil går til serverloggen. FastAGI sender kommandoer i ren TCP: hold serveren på denne datamaskinen eller et privat nettverk.
Innlogging
Hver innlogging har et Brukernavn og Hemmelighet. Innlogginger er kun lese med mindre de er merket Kan endre samtaler. Hold AMI på denne datamaskinen med mindre verktøyet kjører et annet sted: AMI er ren, ukryptert TCP.
AI-assistenter (MCP)
En AI-assistent som Claude, ChatGPT, Gemini eller Cursor kan bruke BitVoice gjennom Model Context Protocol (MCP), standardmåten assistenter når andre programmer. Spør den i vanlige ord: hvem ringte i morra og om noen ringte tilbake, hva var det ringende fra tannlegens kontor sa, hvorfor gikk 9-tiden ringingen til voicemail, er leverandør-linjen nede. Med din tillatelse, kan den også initiere et oppkall, sende en tekst eller avslutte et oppkall.
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.
Slå den på
I Innstillinger (kapittel 14), AI-assistanter (MCP):
- Tillat AI-assistanter å koble til: av som standard. Av,
/mcpsvarer bare at den er av. - Tillat assister å handle: av som standard. Av, assister kan bare lese, uansett deres token. På, en assistent hvis token kan endre ting får også verktøyene som handler.
Kortet viser adressen og innstillinger som er klare til å kopieres for de vanlige assistentene, og lister alle verktøy.
Hva en assistent kan gjøre
Lese (med noen token):
- calls_now: pågående oppkall.
- call_history: tidligere oppkall, søkt etter nummer eller navn, etter retning og fra en tid, med hvorfor hvert gikk der det gikk.
- utvidelser: navn, numre, avdelinger, e-post; aldri en telefons passord.
- phones_connected: hvilke telefoner er registrert, hvorfra.
- voicemail, search_transcripts: meldinger og hva som ble sagt på innspilte oppkall.
- queues, trunks, health: køer nå, leverandør-linjene, BitVoices egne sjekker.
- katalog, text_messages: bedrifts-telefonkatalogen og tekst-samtaler.
Handle (med La assistenter handle, og en token som kan endre ting):
- place_call: klikk for å ringe. Utvidelsens telefon ringer først; når noen der tar opp, ringer BitVoice nummeret for dem som om de hadde tastet det, så deres ruter, ringe-identitet og begrensninger gjelder.
- send_text: en tekst-melding fra en av organisasjonens tekst-numre.
- hang_up_call: avslutter et pågående oppkall.
Hvert verktøy er en av API-ene sine egne ruter, kjørt som assistenten: den ser og endrer nøyaktig hva dens token kan, samme sjekker gjelder, og dens endringer er i revisjonsloggen under dens navn. Et svar beholdes på omtrent 60 000 tegn; assistenten blir bedt om å begrense sin søk når en er kutta.
Kobling av en assistent
Assistenter som logger inn (Claude.ai og ChatGPT-tilpassede koblinger, og andre): legg til en kobling med BitVoices adresse. Assistenten åpner BitVoices innlogging i nettleseren din; logg inn som vanlig (passord, to-trinns, enkelt innlogging), og siden sier hvilken assistent som ber og hvor den returnerer til. En administrator kan la den fungere eller Kun la den lese; en seers assistent kan bare lese. Tillat ikke sender den vekk med ingenting. Tilgangen er deretter på Administratorene (kapittel 57), API-tekster, som AI-assistent, logget inn: den fungerer bare på /mcp og aldri for resten av API-en, varer en time av gangen og fornyer seg selv i opp til 30 dager uten å bli brukt. Tilbakekall avslutter den med en gang. Disse assistentene når BitVoice fra sine egne servere, så det trenger en adresse som er tilgjengelig fra internettet og et sertifikat de stoler på (Let's Encrypt, i Sertifikat (kapittel 14)).
Assistenter gitt en token (Claude Code, Cursor, VS Code og andre verktøy som tar en adresse og en header): lag en API-tekst på Administratorene (kapittel 57), kun lese med mindre den skal fungere, og gi den som Authorization: Bearer bv_...:
claude mcp add --transport http bitvoice https://pbx.example.com:8443/mcp --header "Authorization: Bearer bv_..."
Assistenter som starter et program (Claude Desktop, og andre som tar en kommando): BitVoice-programmet har en bro, bitvoice mcp, som passerer hver melding til serveren over HTTPS. Gi den serveradressen og tokenet:
{ "mcpServers": { "bitvoice": { "command": "bitvoice", "args": ["mcp", "-url", "https://pbx.example.com:8443"], "env": { "BITVOICE_TOKEN": "bv_..." } } } }
Med BitVoices eget sertifikat (ikke ett fra en myndighet), nekter broen det og skriver ut dets SHA-256: sjekk at det er din servers, og legg til "-pin", "THAT-SHA256" til argumentene. Bare dette sertifikatet aksepteres deretter.
Sikker å forlate på
- Bare token: en nettlesers innlogging til BitVoice når aldri
/mcp, og en side på en annen nettsted er nektet (Opphav), så en nett-side kan ikke bruke en assistent-kobling. - Assistenter kan være feil. Gi dem en kun-lese-tekst med mindre de må fungere; alt de gjør er i revisjonsloggen, og å plassere et oppkall ringer alltid en persons telefon først.
- Innlogging via OAuth 2.1 som MCP spesifiserer: assistenten registrerer seg selv (bare offentlige klienter, med PKCE), returnerer bare til de adressene den registrerte (https, eller http til sin egen datamaskin), og en kode er gyldig en gang, i ett minutt.
- En organisasjon som er vert på en annens BitVoice gir sine assistenter token; innlogging via OAuth der er ikke prøvd ennå.
Arkiv
/archiveArkivet holder kopier av opptak, voicemail og konfigurasjonen et annet sted: en Amazon S3-bucket (eller en annen S3-kompatibel lagring) eller en Azure Blob Storage-beholder. Hvis denne serverens disk går tapt, har arkivet dem fortsatt.
Konfigurasjon
- På Arkiv (kapittel 72), velg Hvor arkivere: Amazon S3 eller Azure.
- For S3: Bucket, Region, et valgfritt Mappe i bucket og Endpoint (for S3-kompatible lagringssteder), og et Tilgangsnøkkel-ID og Hemmelig tilgangsnøkkel. Kopier politikken gir den eneste tillatelse BitVoice trenger, for å koble til brukeren eller rollen.
- For Azure: en Container SAS-URL med skrive-tillatelse, og et valgfritt Mappe i containeren.
- Velg hva som skal kopieres utenom konfigurasjonen: Opptak, Voicemail, eller begge.
Hva skjer
Hver tiende minutt kopierer BitVoice nye opptak og meldinger som ikke er i arkivet ennå, og en gang om dagen en datert kopi av konfigurasjonen (config/2026-10-13.json). Siden viser den siste kjøringen, den siste suksessen og eventuelle feil.
Sletting av noe her (ved oppbevaring eller for hånd) sletter ikke arkivets kopi: sett bucketens eller containerens egne livssyklusregler for hvor lenge arkivet beholder ting.
Juridisk varetekt
/holdsEn juridisk varetekt holder samtalelogg, opptak og voicemail som en sak kan trenge, og forhindrer at noen sletter dem, til den blir løst. Bruk den når en advokat ber om at loggene skal bevares.
Legg til en vakt
På Lovlige vakter (kapittel 73), trykk Legg til:
| Felt | Hva det er |
|---|---|
| Navn | hva saken kalles |
| Årsak | hvorfor, for protokollen |
| Numre | utvidelser og eksterne numre det dekker (101, +15551234567), eller Alt |
| Fra, Til | datoer det dekker; tom for ingen begrensning |
Mens en vakt er på
- Bevaring lar det det dekker være uendret, uansett alder.
- Ingen kan slette en vaktet samtale, opptak eller voicemail, inkludert administratorer.
- Vaktede samtaler viser en lås i Samtalelogg (kapittel 47).
Løsning
Løs gjør det varetektet holdt tilgjengelig for varetektinnstillingene igjen: ting eldre enn varetektet blir slettet ved neste opprydning. Løste varetekter blir vist, med når og av hvem, og å legge til og løse varetekter er i revisjonsloggen.
Målinger: Prometheus, OpenTelemetry, Grafana, SNMP og oppkallshistorikk
/settingsPrometheus scraper /metrics på webadressen. Lag en API-nøkkel under Administratorer (en seernøkkel er nok) og gi den til Prometheus som dens bærernøkkel:
scrape_configs:
- job_name: bitvoice
scheme: https
authorization: { credentials: bv_... }
static_configs: [{ targets: ['pbx.example.com'] }]
Den leser oppkall i gang (etter tilstand), oppkall avsluttet (etter retning og resultat), samtaletid, telefoner registrert, hver trunks tilstand og rundtur, oppringere som venter og agenter i hver kø, lydpakker mottatt og tapt, en histogram over oppkallskvalitetspoeng (MOS), og tilbakekall booket. Tellerne starter igjen fra null når BitVoice restartes, som Prometheus forventer.
OpenTelemetry: i Innstillinger, Målinger, skriv inn en samlers OTLP/HTTP-adresse (og en header som Autorisasjon, med dets verdi) for å få de samme målingene dyttet hver minutt (eller så ofte du setter, fra 15 sekunder). Dytt nå sjekker de lagrede innstillingene.
Grafana- dashboard laster ned et ferdiglaget dashboard: importer det i Grafana og velg din Prometheus-datakilde.
SNMP
For overvåkingssystemer som snakker SNMP (Zabbix, PRTG, LibreNMS, Nagios, SolarWinds), slå på SNMP-agenten i Innstillinger. Den svarer på SNMPv2c GET, GETNEXT og GETBULK, kun lese, på UDP-port 161 (eller en annen du velger: port 161 trenger retten til å åpne lavports på Linux), og bare fra nettverkene du lister. Velg en samfunn som ikke er offentlig eller privat: det er en passord som krysser nettverket i klart.
Den serverer standard systemgruppen (sysDescr, sysUpTime, sysContact, sysName, sysLocation) og BitVoices egne verdier under basis-OID: oppkall i gang og ringende, telefoner registrert, trunks opp og konfigurert, oppringere som venter, oppkall avsluttet, samtalesekunder, tapt pakker, gjennomsnittlig oppkallskvalitet, en trunktabelle (navn, opp eller ned, latency) og en køtabelle (ventende, agenter, besvart, forkastet). Last ned BITVOICE-MIB ved siden av innstillingene for din overvåking å laste. BioDream LLC har ingen bedriftsnummer ennå, så standard basis-OID er i Net-SNMPs eksperimentelle rom; legg til en under ditt eget bedriftsnummer for å holde det stabilt.
Feller (SNMPv2) går til hver mottaker du lister når en trunk går ned eller kommer tilbake, et nødoppkall blir gjort, eller en server i en kluster slutter å svare. SNMPv3 støttes ikke ennå.
Oppkallshistorikk andre steder
Ved siden av Oppkallshistorikk, kan hver post gå, når oppkallet slutter, til:
- Syslog (RFC 5424, som JSON) over UDP, TCP eller TLS, for en loggtjener eller en SIEM.
- En CSV-fil per dag, med Asterisks Master.csv-kolonner, så rapport- og faktureringsverktøy laget for Asterisk kan lese den. Last ned filene ved foten av Oppkallshistorikk (kapittel 47). Cellene som et regneark ville kjøre som en formel, blir skrevet trygt.
- En PostgreSQL-tabelle i en annen database, laget første gang med Asterisks
cdr-kolonner (calldate, clid, src, dst, duration, billsec, disposition, uniqueid…) pluss BitVoices retning, trunk, kostnad og MOS. Hver oppkall blir skrevet én gang.
Send en testpost prøver syslog-tjeneren og databasen med innstillingene lagret.
Oppkallsgenerator
/loadtestOppkallsgeneratoren plasserer ekte oppkall med ekte lyd inn i BitVoice fra denne datamaskinen: for å se hvor mange oppkall en server håndterer og hvor godt, eller for å sjekke etter en endring at oppkall fortsatt går der de skal.
Kjør en test
| Innstilling | Hva det er |
|---|---|
| Nummer å ringe | et nummer innen BitVoice: en utvidelse, en gruppe, en kø, et meny |
| Samtaler kommer fra | nummeret som vises som ringende |
| Besvar som | en utvidelse som generator besvarer for seg selv; eller ingen, når nummeret besvarer seg selv (et meny, ekko-test) |
| Samtaler | hvor mange i alt |
| Samtidig | hvor mange som pågår samtidig, opp til 2 000. Hver videreformidlet samtale tar medieporter fra Media fra og Media til (Innstillinger): standard 10000-20000 rommer omtrent 1 800, så utvid det for mer |
| Ny per sekund | hvor raskt de starter |
| Hver varer (s) | hvor lenge hver samtale varer |
Les resultater
| Resultat | Hva det sier |
|---|---|
| Besvart, Feilet | og Hvorfor samtaler feilet, etter årsak |
| Besvartid, median og 95% | hvor lenge ringere ventet |
| Lyd tapt | andelen lydpakker som aldri ankom |
| Lydkvalitet | en estimat av lyden (MOS): 4 og over er bra, under 3,6 er dårlig |
| Jitter, 95% av samtaler | hvor ujevn lyden kom tilbake (RFC 3550 interankomst jitter, gjennomsnittlig over hver samtale); telefoner glatter ut opptil ca. 20 ms |
| Lengste gap, verste samtale | den lengste ventetiden mellom to lydpakker i noen samtale; de kommer hver 20 ms, så en blokkering av serveren vises her |
| Minnepauser, lengste pause | hvor ofte, og hvor lenge på det lengste, Go-kjøretiden pause alt for å rydde minne under kjøring |
| Samtaler i gang over tid | et diagram over belastningen |
SIP-sporing
/traceSIP-sporingen viser meldingene BitVoice sender og mottar, live: det første stedet å se når en telefon ikke kan registrere eller en samtale feiler, og hva en leverandørs support-avdeling vil be om.
Finner en melding
BitVoice holder de siste 2 000 meldingene i minne (ingen skrives til disk, og de er borte etter en omstart). Skriv inn en del av et nummer, en adresse eller en Call-ID i filteret. Trykk Oppdater for de nyeste.
Velg en melding for å se den i fullt og, ved siden av den, samtale-fløten: hver melding av samme samtale i rekkefølge, mellom telefonen, BitVoice og leverandøren, som i figuren.
Reading a trace
| You see | It usually means |
|---|---|
| REGISTER answered 401, then nothing | the phone does not have the password, or has the wrong one |
| REGISTER answered 403 | the address is banned, or the phone signs in as another extension |
| INVITE answered 404 | no route matches the number dialled (Call routing (kapittel 8)) |
| INVITE answered 403 by the provider | the provider refuses the caller ID or the number |
| 486 | the other side is busy |
| 488 | the two sides have no codec in common (Codecs (kapittel 66)) |
| 200 OK, then BYE after about 30 seconds | the ACK never arrived: a router in between rewrites or drops messages (switch off its "SIP ALG") |
| A call connects but nobody hears anything | the sound is blocked: check the public address in Settings, and the media ports in the firewall |
Offentlig sikkerhet: lab-sporet
911-svarprofilen, radiodispatchkonsollen og NG911 Core Services. De er et lab- og designpartner-spor: bygget og testet mot innspilte opptak, eksempeldata og stedfortredere, men ikke sertifisert for live 911 eller radiodispatch og ikke ennå prøvd med en live ESInet, P25-system eller CAD. De er utenfor menyen til de aktiveres i Innstillinger. Nødoppringer fra egne telefoner (Kom i gang) er ikke en del av dette sporet: de er en del av hver telefon-system.
911-samtaler (911-profilen)
/psapBitVoice svarer 911-samtaler som et PSAPs samtale-behandlingssystem: samtaler fra nødnettverket (ESInet, NENA i3) ankommer med ringers plassering og nettverkets data, og operatøren ser dem med en gang, og CAD blir underrettet når samtalen blir besvart.
Konfigurasjon.
- På Trunker (kapittel 7), legg til trunken fra din ESInet-leverandør (eller NG911-kjernens ESRP) og slå på Fra ESInet.
- I Rutevalg (kapittel 8), send dess samtaler til dine nødanropstakere: en kø, eller en ringgruppe.
- På 911-samtaler, angi din byrå-ID (et domene, som
psap.county.example.gov) og hva CAD tar: adressen og porten dens ALI-lytter er på, og dens EIDO-adresse.
Når en 911-samtale ringer, vises den på 911-samtaler med:
- adressen nettverket sendte (sivile lokasjoner), og posisjonen med hvor sikker den er (innen så mange meter), tegnet på kartet med sin usikkerhetssirkel (når et kart er satt, nedenfor), og en lenke til OpenStreetMap;
- leverandøren, typen tjeneste (trådløs, VoIP, bolig, bedrift), enheten og abonnenten, når samtalen brakte dem (Ekstra data, RFC 7852);
- alt som gikk galt under lesingen.
Lokasjon kommer i samtalen (ved verdi), eller som en referanse BitVoice henter med HELD. En samtale med en referanse har Rebid lokasjon: BitVoice spør igjen, for en ringer som flytter eller hvis første fiksering var grov.
Når en rebid endrer lokasjonen, sier lokasjonstsjekken hvilken som skal vises først, og hvorfor: den nye lokasjonen som regel; den første når den var en presis enhetsfiksering (GPS, innen 100 m) mindre enn to minutter gammel og den nye er grovere; og begge når to lokasjoner er uenige mer enn deres usikkerhet tillater, så nødanropstakeren spør ringeren. Den første lokasjonen forblir på samtalen uansett.
Når en nødanropstaker svarer, får CAD, hver på sin egen så en CAD som er nede aldri holder opp samtalen:
- ALI-utslippet: tekstblokken CAD-systemer leser (tilbakekallingsnummer, klasse av tjeneste, adresse, posisjon og usikkerhet, leverandør), sendt over TCP;
- EIDO, hendelsesdokumentet til NENA-STA-024, ved HTTPS-POST (med en bærertoken hvis den er satt). EIDO på en samtale viser den. Adressen må være
https, eller barehttpkun til en CAD på samme datamaskin (http://127.0.0.1:…): en EIDO bærer ringers lokasjon og token, så den aldri krysser et nettverk uten kryptering, et privat ett inkludert. Det samme gjelder for Send radiohendelser til CAD på. Lagring av en annen barehttp-adresse nektes; en som er lagret av en eldre versjon forblir, så BitVoice starter fortsatt og andre endringer lagres, men ingenting sendes til den og Helse (kapittel 13) viser den i rødt til den endres.
ALI-utslippet selv er bare TCP, siden legacy CAD-lyttere tar det, så det kan ikke kreves å være kryptert. Når det går til en annen datamaskin, advarer Helse: hold denne banen utenfor noen delt nettverk, med en direkte seriel kobling (serial:/dev/…) eller en VPN eller privat krets til CAD. Sett Byrå-ID også: EIDOs og i3-loggen navngir byrået etter det, og Helse (kapittel 13) advarer mens det er tomt.
En 911-samtale avvises aldri. En tale-samtale fra ESInet (eller en CAMA-trunk) hvis innkommende rute ville sende den vekk, fordi ruten legger på, ringer en gruppe uten noen i den eller ikke eksisterer, eller at ingen svarer, ringer hver nødanropstaker i stedet: hver aktivert utvidelse, og enhver telefon som kobler seg mens den ringer, til noen svarer eller ringeren legger på. En tekst-samtale venter på denne skjermen på samme måte. Samtalens Hvordan den ble rutevalgt sier hva som skjedde, og Helse (kapittel 13) advarer om en slik rute så den kan rettes. Bare test-samtaler (urn:service:test.sos) og samtaler som ikke er 911-samtaler beholder sin rutes avvisning.
Ikke heller droppet av en overføring. Når en nødanropstaker overfører en 911-samtale og overføringen ikke kan koble til, fordi utvidelsen ikke har noen telefon koblet eller ingen svarer den, går samtalen tilbake til den nødanropstakeren mens de fortsatt er på. Hvis de allerede har lagt på (de fleste skrivebords-telefoner gjør det like etter en blind overføring), ringer hver nødanropstaker i stedet, til en svarer. En 911-samtale blir aldri overført til utvidelsens voicemail eller annen ikke-svar-destinasjon, og dens rute-spor sier hva som skjedde. På enhver samtale, frigjør en telefon som legger på like etter å ha bedt om en overføring bare seg selv: overføringen fortsetter.
En ringer som forsvant. Når en side av en samtale stopper å sende lyd i ett minutt (en telefon som mistet kraft eller signal sender ingen avslutning) mens den andre siden fortsatt sender, avsluttes samtalen med årsaken *ringers lyd stoppet* (eller hvis det var), i samtale-logg og i call.ended-hendelsen CAD hører (cause, endedBy). En side på hold, faksing, eller som sa den sender ingenting (en høytaler) avsluttes aldri på denne måten. Stille sender likevel pakker, så en ringer som ikke kan snakke holder samtalen 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 (kapittel 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.
Oppringerens video og bilder. På et 911-opptak, Send oppringeren en video-lenke lager en lenke bare dette opptaket åpner: tekstet til oppringeren fra nummeret under Tekst lenken fra, eller lest opp. Når det ikke kan tekstes (ingen tekst-nummer er satt, eller oppringeren sendte ingen nummer), sier skjermen og API-en problem hvorfor. Oppringeren åpner det i sin telefonnettleser (ingen app): Del live-video sender bak-kameraet live (WebRTC, WHIP: RFC 9725), og Send bilder eller videoer sender det de allerede har tatt, dashcam- og action-kamera-filer inkludert. På opptaket:
- live-video viser LIVE; Se oppringerens video spiller det uskarpt, og Avslør (kan være plagsomt) viser det; Uskarpt igjen skjuler det;
- hver fil viser størrelsen, når den ble tatt (etter kameraets eget ur), hvor (fra dets GPS, når det har noen), og dets SHA-256, tatt mens det ankom, så en kopi kan senere vises å være samme fil; Avslør åpner det; Hold som bevis holder opptakets filer forbi oppbevaringsperioden;
- visningslenken under det (WHEP) lar CAD, en enhets skjerm eller en annen posisjon se samme live-video, uten å logge inn: behandl det som en nøkkel.
Video tar aldri fra samtaler: hver live video har sine egne porter, denne serveren tar maksimalt Live videoer på gang av dem (4 med mindre det er satt), hver bedt om å forbli under Video bitrate, og video som stopper i ti sekunder avsluttes. Oppringernes telefoner må nå denne serveren på Linkadresse (https) og dens medieporter (UDP). Filer beholdes Behold filer og eksponeringslogg dager (tom: til sletting), holdte samtaler unntatt.
Opptak av live video. Med Opptak av oppringernes live video på, er oppringerens live video beholdt med bildene og klippene som en fil per videosekvens: samme bilder telefonen sendte, ikke konvertert, i en IVF-fil (H.264 eller VP8 med hvert bilde sitt eget tidspunkt), hashet mens den skrives. Et bilde skadet av en tapt pakke utelates heller enn beholdes ødelagt, og telefonen bedes om et fullt bilde for å fortsette fra. Avslør spiller den (fra en kopi i WebM eller MP4 som ffmpeg lager, samme bilder i en annen container; uten ffmpeg bare den originale lastes ned); Last ned originalen gir fila hashen er av. Ffmpeg, VLC og forensiske videoverktøy åpner den originale.
Til CAD. EIDO (NENA-STA-021) sendt til CAD navngir hver bilde, klipp og opptak, og live video mens den varer, som ekstra data ved referanse: urlPurpose er caller-photo, caller-video, caller-video-recording eller caller-video-live, og additionalDataByReferenceUrl er fila på /m/{viewToken}/{n} eller live video på /whep/{viewToken}. BitVoice sender CAD EIDO igjen når en fil ankommer eller live video starter eller stopper. Linkene bruker Linkadresse (eller denne serverens offentlige adresse); med ingen av dem, navngir EIDO ingen media. Hvert henting gjennom dem er i eksponeringsloggen. Hendelsesstrømmen sier det samme (GET /api/events: call.media, call.video). BitVoices EIDOs er sjekket mot NENAs publiserte EIDO-skjema.
Linker som ikke eksisterer gjettes ikke raskere enn innlogginger: en adresse som fortsetter å prøve blir avvist en stund. Filer fra oppringere serveres i en sandbox, aldri som en side på denne serveren.
Eksponering. Hver avsløring av live video og hver åpning av et bilde eller klipp teller under Eksponering på 911-samtaler: hvem, hvor ofte, over hvor mange samtaler. Det er for overordnede og senterets velværsprogram.
Video en telefon sender i 911-samtalen selv (SIP-video over ESInet) kan sees på samme måte: Se tar den som kilde når ingen link-video er live.
Samtaler med bare et nummer. En 911-samtale som bringer et tilbakekallingsnummer og ingen plassering (fra en CAMA-trunk eller en ESInet-samtale hvis plassering ikke kom) kan søkes opp: gi Plasseringsoppføring (ALI) adressen til din ALI-database eller plasseringservers HELD-grensesnitt (RFC 5985, spurt av telefonnummer som RFC 6155 har det). BitVoice spør når samtalen ankommer, uten å holde den opp, og plasseringen vises på samtalen når svaret kommer; samtalen sier når oppføringen feilet og hvorfor.
Den legacy ALI-lenken. Uten en HELD-server, kan BitVoice spørre en ALI-kontroller eller ALI-databasens datakobling på den gamle måten: den sender en forespørsel og leser tilbake posten som tekst over nettverket (ALI-lenkeadresse host:port) eller fra en serieport (serial:/dev/ttyUSB0?baud=9600&parity=none, med bits og stop også; en USB-seriell adapter fungerer; på Linux og macOS, ikke Windows: der bruker du en serie-til-nettverksomvandler og dens adresse). Forespørsel er hva som skal sendes: {ani10} de ti sifrene i tilbakekallingsnummeret, {ani7} de siste syv, {pos2} posisjonen, STX og ETX ({ani10} når det er blankt). Svaret leses inntil dets ETX. ALI-utformninger varierer mellom leverandører og stater, så du plasserer hver felt: dens linje, dens kolonne og dens lengde (0: til slutten av linjen), fra en utskrift av en ALI-skjerm; Gate (hele linjen) deler en gate-linje inn i dens deler, eller plasser delene ett og ett. Lim inn et eksempel på posten og Les eksemplet for å se linjene med en kolonneruler og hva hvert felt leses; Spør spør lenken selv om et nummer. Postens adresse og posisjon blir oppkallets plassering, dens navn blir ringers navn, og dens klasse av tjeneste vises på oppkallet. Protokoller som ikke er en forespørsel og en tekstsvar (PAM, E2 og andre leverandørers egne) støttes ikke: de trenger en gateway.
ALI-utslipp over en serieport. ALI-utslipp til tar også en serieport (serial:/dev/ttyS0?baud=9600), for en CAD som leser utslippet fra en seriekabel.
Kartet. Under Kart i 911-innstillingene, gi BitVoice kartflisene: en .mbtiles-fil med rasterfliser (PNG, JPEG eller WebP) på denne serveren, for et kart som fungerer uten internett (ditt GIS-team, TileMill, gdal2tiles eller en flistilbygger lager en av ditt område), eller en flisserver med {z}, {x} og {y} i dens adresse (ditt fylkes, eller en kommersiell en: merk dets vilkår; de offentlige OpenStreetMap-serverne er ikke for dette). Uansett måten, henter call-takerens nettlesere flisene fra BitVoice bare: den leser filen eller henter fra flisserveren og holder de siste flisene i minnet. Samme kart viser radioposisjoner på radiokonsollen. Vektorfliser støttes ikke.
i3-loggen holder NENA i3-hendelsene for hvert oppkall (oppkall start, svar, plassering, EIDO sendt), en fil per dag. Svartider viser hvor mange oppkall som ble besvart innen ditt mål (NENA: 90% innen 15 sekunder, 95% innen 20), de forlatte, og hver call-takers gjennomsnitt. En rad per dag (CSV) laster ned tellinger statlige 911-kontorer vanligvis ber om (oppkall, besvart, forlatt, innen målet og innen 20 sekunder, gjennomsnitt og lengste ventetid) for de valgte dagene; En rad per oppkall (CSV) lister hvert 911-oppkall med når det ble besvart, av hvem, og om det var tekst. Hver stat har sin egen skjema: legg din ut under Rapportutformninger. Et tekstoppkall tatt på denne skjermen eller gjennom en CAD teller under personen som tok det; ett som ingen tok før ringeren forlot, teller som forlatt.
Rapportutformninger. Ny rapportutforming legger ut en rapport som din stat eller fylkes skjema har det: hva hver rad er (en dag, en uke, en måned, en time av dagen, en call-taker, eller en rad i alt), en totalrad, og kolonnene, i rekkefølge, hver med sin egen overskrift hvis skjemaet ordlegger det annerledes: oppkall, besvart, forlatt (en telling eller en andel), besvart innen så mange sekunder (en telling eller en andel; sekundene er dine, så 10 og 20 for ett skjema og 15 og 40 for et annet), besvart etter mer enn så mange sekunder, gjennomsnitt og lengste ventetid, tiden innenfor hvilken 90% ble besvart, gjennomsnittlig oppkallslengde, og tekstoppkall (TTY, sanntidstekst, tekst til 911). En ventetid teller fra oppkallets ankomst til en call-takers svar. Velg en utforming og datoer og Kjør den for å lese den her, Regneark (CSV) for å laste den ned, eller Side til utskrift for en vanlig side til å printe eller lagre som PDF. Utformninger lagres med innstillingene, så de følger med en sikkerhetskopi og inn i Git.
TTY-oppkall. Døve og hørselshemmede ringere kan ringe 911 med en TTY (en teksttelefon, Baudot på 45,45 bit/s). BitVoice lytter etter en på hvert 911-oppkalls tale, fra det første øyeblikket: hva ringeren skriver, vises på oppkallet mens de skriver det, under Tekst, med en pause eller en ny linje som starter en ny linje. Et stille oppkall kan være en TTY som venter på deg: når du svarer, sender Svar med TTY tekst selv før noen har kommet. Skriv svaret og trykk Send: det går til ringeren som TTY-toner (call-takerens tale er dempet mens den spilles, da TTY-er tar tur), i store bokstaver, og TTY-etikette gjelder: avslutt hver tur med GA ("gå videre"), og SK når du signerer av. Karakterer en TTY ikke kan vise, utelates. Tale, musikk og touch-toner tas aldri for TTY-tekst: en karakter teller bare når hver bit av den er en ren TTY-tone. Samtalen lagres med oppkallet i oppkallshistorikken og i i3-loggen (en MessageLogEvent per tur). Avmerk Lytt etter TTY-er på 911-oppkall i 911-innstillingene for å stoppe lyttingen.
Overføringer. Et 911-opprinnelig oppkall sendt videre til en annen PSAP beholder sin plassering: PIDF-LO følger med oppkallet.
Sanntidstekst (RTT). En telefon som sender tekst ved siden av sin stemme (RFC 4103, som VoLTE-telefoner og NG911-opprinnelige oppkall gjør) får sin tekst besvart av BitVoice selv, siden skrivebordstelefoner ikke viser noen: hver karakter vises på oppkallet mens avsenderen skriver, og ditt svar går tilbake som tekst. Tapsede pakker gjøres godt av RTT-redundansen; tekst som går tapt utover dette vises som .
Tekst til 911. Et tekstkontrollsentrum (TCC) sender tekster til PSAP som en sesjon uten stemme (MSRP, RFC 4975, over ESInet-trunken). BitVoice besvarer det og venter på 911-opprinnelige oppkall merket Tekst til 911, med tekstene som har kommet; ingen telefon ringer. Ta denne teksten gjør deg til call-taker (svarstiden teller da, og CAD får ALI-utslippet og EIDO da); svare i boksen under samtalen, og Avslutt samtale når du er ferdig. TCC som lukker sesjonen avslutter den også. En SIP-MELDING sendt innenfor en 911-opprinnelig oppkalls dialog tas som avsenderens tekst på samme måte, og svar går tilbake via SIP-MELDING. Tekster tas bare fra trunker merket Fra ESInet.
Et TCC som tilbyr sesjonen over TLS (TCP/TLS/MSRP, msrps: stier, RFC 4975 seksjon 14) får den over TLS, med denne serverens sertifikat (Innstillinger › Sertifikater; uten ett slikt tilbud avvies). TCC-sertifikatet må være det som tilbudet navngir (a=fingerprint, SHA-256); når det ikke navngir noen, må det spores tilbake til PSAP Credentialing Agency-roten som er satt under Core-tjenester, hvis noen er satt. BitVoices svar navngir sitt eget sertifikat på samme måte.
Hele samtalen, uansett hvordan den kom, beholdes med oppkallet i oppkallshistorikken og i i3-loggen.
Hva som ikke er her ennå: å overføre en tekstsesjon videre gjennom NG911-kjernen (ESRP-ruter stemme; en tekstsesjon besvares der den ankommer); EIDO-konveyansstandardens egne abonnementer (NENA-STA-024 WebSocket): BitVoice poster EIDOs til én adresse.
Radiodispecherskonsoll
/radioDispechere snakker på radiokanaler fra samme hodetelefon som deres telefonoppringer. BitVoice når radioene via radi-over-IP (RoIP)-gateways; radio nettverket selv blir hos den som kjører det.
Oppsett. Under Konsolloppsett, velg en konsollnummer (800, si), og legg til hver kanal: navn, porten på denne serveren gatewayen sender kanalens lyd til, og gatewayens adresse og port for lyden som går ut. På gatewayen: RTP, G.711 µ-lov, til denne serverens adresse og den porten; aktiver radioen på stemme (VOX). Hver kanal bruker sin port og den neste, utenfor rekken telefonoppringer bruker.
Bli med. En dispecher ringer konsollnummeret fra deres skrivebords telefon, eller trykker Bli med med nettleser-telefonen. De hører deretter all kanalens trafikk blandet sammen; Høre / Avlytt på en kanal tar den ut av hodetelefonen. Lysen på en kanal lyser mens den mottar.
Snakke. Hold en kanals Hold for å snakke-knapp (eller fokusere den og holde mellomromstasten): stemmen din går til den kanalen bare, og kanalen viser TX med din utvidelse. En dispecher snakker på en kanal om gangen; knappen er grå for de andre mens noen snakker. Ingen lyd blir sendt til en kanal mens ingen snakker, så en stemme-aktivert radio blir aldri holdt på luften.
Koble. Trykk Koble på en kanal, så Koble her på en annen: de to hører hverandre (en brannkanal og en gjensidig-hjelp-kanal, si) til du trykker Avkoble.
P25-talker. En kanal kan også være en P25-talker, koblet direkte over ISSI (TIA-102.BACA, grensesnittet mellom P25-underystemer; med Send CSSI-konsoll PTT-ord på, legger BitVoice til konsoll-underystemets ord til hver forespørsel). Velg En P25-talker (ISSI), gi talker-ID, SIP-adresse og -ID til RFSS som er hjemmet til talkeren, og en port for dens stemme. Under Denne konsollen på P25-systemet, skriv inn WACN og system-ID, RFSS-ID din P25-administrator ga denne konsollen, enhets-ID dispechere sender som, og SIP-porten ISSI bruker her; P25-systemet må kjenne denne serveren som en RFSS på den adressen. Flisen viser P25 mens gruppeoppringen er opp (P25 ned og grunn når den ikke er det), og enhets-ID til radioen som snakker, i rødt med NØD når det er en nødoppringing. Hold for å snakke ber hjem-RFSS om kanalen (Ber om kanalen…); stemmen din går en gang den gir den, og hvis den avviser (noen med høyere prioritet har den) sier flisen det.
Krypterte talegrupper. Under Krypteringsnøkler, legg til hver trafikk-nøkkel din radiobutikk gir deg: et navn, algoritmen (AES-256, DES-OFB eller trippel DES), nøkkel-ID og nøkkelen selv i hex (TIA-102.AAAD). En nøkkel vises aldri igjen en gang den er lagret, ikke engang for administratorer, og å la feltet være tomt beholder det. Konsollen hører en kryptert overføring når den har nøkkelen med samme algoritme og nøkkel-ID: flisen viser en lås og algoritmen ved siden av den talende enheten. Uten nøkkelen er overføringen muted, aldri spilt som støy, og flisen sier ingen nøkkel: muted. For å overføre kryptert på en talegruppe, velg en nøkkel under Overfør for den kanalen; flisen viser da TX AES-256 (eller algoritmen du valgte). En fullstendig konfigurasjons-eksport (Innstillinger, en administrator's backup) inneholder nøklene, så behold disse filene like trygge som nøklene.
Private samtaler. Med konsollen på et P25-system, Ring en radio i din posisjonsfelt ringer en radio ved dets enhets-ID (slå på Nød for å ringe det som en nød). Samtalen blir en flis på egen hånd, Privat samtale: enhet 197, med Hold for å tale som en hvilken som helst kanal og Legg på. Radioer kan også ringe konsollen, på enhets-ID dispatchere overfører som: samtalen vises som en flis merket ringt inn (i rødt med NØD når radioen ringte som en nød), hver dispatcher hører det, og det forsvinner når en av partene legger på. Under Private samtaler i konsollens P25-innstillinger, gi SIP-adressen og -ID til RFSS som er hjemmet til radioene (tomt bruker den første talegruppens hjem), og, hvis private samtaler skal være kryptert, nøkkelen som skal sendes med.
Advarselstoner. Send en advarselstone… på en kanal sender en av følgende: Advarsel 1, en jevn 1000 Hz-tone i 3 sekunder; Advarsel 2, en kvervel mellom 1000 og 1500 Hz; Advarsel 3, 1000 Hz-pulser; eller en kort Bip. Tonen holder kanalen mens den spilles (flisen viser tone og din utvidelse), hver dispatcher som overvåker kanalen hører den gå ut, og på en P25-talegruppe går den en gang hjem-RFSS-en gir kanalen.
Nødtilfeller. Når en radio sender som et nødtilfelle (dens nødknapp), blir flisen dens rød med NØDTILFELLE og enhets-ID, serverloggen noterer det, og CAD underrettes med en gang (under). Nødtilfelle forblir hevet på hver konsoll etter at radioen slutter å snakke, til en dispasjør trykker Bekreft: flisen sier da hvem som bekreftet det og når, og CAD mottar en radio.emergency.ack-hendelse. Bekreftelse navngir enheten vist: hvis en annen enhets nødtilfelle erstatter den et øyeblikk før, nekter BitVoice og flisen viser den nye, så et annet nødtilfelle aldri blir stilt til å tie av feil. CAD kan bekrefte gjennom API på samme måte: POST /api/radio/channels/{id}/ack med {"unit": "bee07.1d5.00044d"} (eller radio-ID, "1101") returnerer 409 når kanalens nødtilfelle nå er en annen enhets; uten en body bekrefter den hva kanalen inneholder.
Simulselect. For å si en ting på flere kanaler samtidig, merk velg på hver kanal, og hold Tale på N kanaler i feltet over flisene. Det er enten alt eller ingenting: hvis en annen dispatcher taler på en av dem, blir ingen aktiver, og du blir informert om hvilken.
Radioposisjoner. Radiosender rapporterer hvor de er over radiosystemets dataside, ikke talesiden konsollen slutter seg til: P25-loceringstjeneste, Motorolas LRRP eller en leverandørs egen, samlet inn av radioselgers data- eller AVL-gateway. La gatewayen (eller et lite script ved siden av) sende hver rapport til BitVoice med en API-nøkkel: 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 på opptil 500 (hastighet i km/t, retning i grader, nøyaktighet i meter; alle tre og tid er valgfrie). Radioposisjoner på konsollen viser deretter hver radios siste posisjon, med navn, og CAD mottar hver enkelt som en radio.location-hendelse. BitVoice dekoderer ikke LRRP eller P25-loceringstjenesten selv.
Radionavn. Under Radionavn, navngi radioer etter deres P25-enhets-ID (1205 er "Brannbil 5", for eksempel): flisen viser navnet ved siden av enheten mens den taler, og radio-loggen og CADs hendelser inneholder det.
Radiologg og opptak. Slå på Opptak hver overføring under Opptak og CAD: hver overføring på hver kanal, hørt eller sendt, blir lagret som et opptak med en linje i Radiologgen: når, kanalen, hvem (radioens enhet eller dispatchers utvidelse), hvor lenge, og om det var en nød, en advarselstone, kryptert eller en privat samtale. Et hørt opptak starter med den første tale og slutter 1,5 sekunder etter den siste ord. Finn en enhet, dispatcher eller kanal med søkefeltet, og trykk Avspill for å lytte. Opptak blir lagret like lenge som samtaleopptak (Innstillinger, Opptak).
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 ennå: P25-fase 2 (TDMA)-tale i sin egen halvrate-vokoder. En fase 2-system fungerer med konsollen når dens ISSI-samtalegrupper bærer fullrate (fase 1)-tale eller dens transkoder konverterer dem, noe som er vanlig: spør din P25-administrator. En samtalegruppe hvis tale ankommer i blokker som denne konsollen ikke dekoder (halvrate-tale sendt uten transkoding, mest sannsynlig) viser Stille her på dens flise mens en radio snakker, så ingen tar stillhet for en stille kanal. Dekoding trenger to ting BitVoice ikke har: halvrate-vokoderen (AMBE+2, patentert til 2028: en lisens fra eieren, eller en lisensiert hardware-vokoder-chip), og ISSIs halvrate-tale-blokkformat (TIA-102.BACA-B, solgt av TIA, ikke offentlig).
NG911 Core Services (ECRF, ESRP, LVF, BCF, LIS, logging)
/coreFor en stat eller regional 911-myndighet som kjører sin egen NG911-kjerne: BitVoice besvarer LoST som ECRF, og ruter hver 911-opprinnelig oppkall som ESRP til PSAP som betjener avsenderen.
Tjenesteområder. Eksporter grensene dine fra GIS som GeoJSON-polygoner (PSAP-grensene for urn:service:sos; politi-, brann- eller ambulanseområder for urn:service:sos.police og de andre) og last dem opp på Kjerne-tjenester. En polygon sine name, uri og number-egenskaper leses; gi en standard PSAP-URI for de uten en. Rediger et område for å legge til byene eller fylkene det betjener, for oppringere hvis plassering bare er en sivil adresse. Prøv et sted viser hvilket område som svarer på en posisjon eller en by, som en LoST-spørring ville.
ECRF. Slå på Besvar LoST-spørringer og liste adressene som kan spørre (din ESInet): andre elementer sender findService til /lost (RFC 5222) og får PSAPs URI. En bestemt tjeneste (sos.police) besvares fra sine egne områder først, deretter fra sos. Et sted som ingen av dine områder dekker kan gå til Skogveilederen (RFC 5582: den nasjonale katalogen over ECRF-er): en rekursiv spørring utføres der på spørerens vegne og svaret returneres (begge servere listet i svarets sti), og en spørring som allerede har passert gjennom denne ECRF avvies som en loop.
ESRP. Liste PSAP-ene: hver enkelt PSAPs URI (som områdene navngir), trunken som når den og dens overflods-PSAP, og velg standard-PSAP. Deretter send ESInets innkommende 911-opprinnelige oppkall til ESRP i Oppkallsruting (kapittel 8). Hvert oppkall går til PSAP for dens plassering (fra denne serverens områder, eller en utenfor ECRF via LoST), med dens plassering og tjenesten den ba om fraktet med; når den PSAP ikke tar det, til dens overflod; uten plassering, eller fra et sted ingen område dekker, til standard. Hver avgjørelse er i i3-loggen på 911-opprinnelige oppkall (kapittel 77).
Policyregler. Når ECRF har valgt en PSAP, sjekkes reglene under Policyregler i rekkefølge og den første hvis betingelser alle holder avgjør: send oppkallet til en annen PSAP, eller avvis det som opptatt. En regel kan se på tjenesten (brannopprinnelige oppkall bare, for eksempel), PSAP som ECRF valgte, en timeplan (mens nattskiftets senter er stengt), oppkall uten plassering, oppkall som BCF har merket som mistenkelige, og trunken oppkallet kom inn på. Hver avgjørelse er i i3-loggen som en RouteLogEvent som navngir regelen.
Grensekontroll (BCF). Med Sjekk oppkall fra ESInet på, sjekkes hvert oppkall fra en ESInet-trunk først: adresser under Alltid avvis blir sendt tilbake, og det samme gjelder en adresse som starter flere oppkall per minutt, eller holder flere oppkall samtidig, enn du tillater (en telefoni-negativt tjenesteangrep sender flommer av oppkall fra noen kilder). Avviste oppkall får 503 med Retry-After. Slå på la oppkallet gå gjennom merket som mistenkelig for å sende slike oppkall videre og la en politikeregel bestemme (til et senter som skjermmer dem, eller avvist); en ekte oppringer i en flom blir da ikke tapt. Grensekontroll: siste lister hva som ble avvist eller merket. Sjekk STIR/SHAKEN-signaturer sjekker den signerte oppringer-ID-en (Identity-headeren) til hvert oppkall som bærer en, mot STI-rotene satt under Oppringerfiltrering i Innstillinger: et oppkall hvis signatur feiler, går gjennom merket som mistenkelig, for en politikeregel å sende noe annet, og blir listet i BCF-loggen; et 911-oppkall blir aldri avvist for det, og usignerte oppkall (de fleste i dag) blir latt alene. Hvert oppkall forlater BitVoice som en ny forespørsel på egen hånd (BitVoice er en tilbake-til-bake-agent), som bærer bare headerne og kroppene BitVoice forstår og sender videre: plasseringen, den ekstra dataen og sesjonen. Inspektér media sjekker hver RTP-pakke av et ESInet-oppkall før den brukes eller sendes videre: pakker fra en adresse annen enn den oppkallets SDP ga, med en payload-type som tilbudsavtalen ikke navnga, med headerlengder (CSRCs, utvidelse, padding) som ikke passer pakken, større enn Største pakke (1 500 byte når blank), eller forbi Pakker per sekund (150 når blank; G.711 på 20 ms sender 50) blir droppet og talt. Den første av hver type, så den 10., 100. og så videre, går i Grensekontroll: siste (som *media droppet*) og oppkallets notater. Oppkallet blir aldri avsluttet for mediene: oppringeren beholder de gode pakkene. Oppkall fra CAMA-trunker kommer fra det lokale kortprogrammet og blir ikke inspisert.
Adressevalidering (LVF). Last opp dine 911 GIS-adresse-data som GeoJSON, i NENA GIS-data-modellen (NENA-STA-006): vei-midtpunkter med FromAddr_L, ToAddr_L, Parity_L, IncMuni_L og resten, og sted-/struktur-adresse-punkter med Add_Number, St_Name, Inc_Muni. En LoST-spørring med validateLocation="true" får da adressens gyldige, ugyldige og usjekket deler i svaret (RFC 5222), så bærere og plasserings-servere kan korrigere en adresse før et 911-oppkall noen gang bruker den. Sjekk en adresse gjør det samme her: et nøyaktig adresse-punkt er det beste sammenfallet, så en gate-segment hvis rekke på høyre side av veien holder nummeret (odd og like sider respektert); stavinger som Street og St, North og N behandles likt.
i3-loggingstjenesten. Slå på Kjør en i3-loggingstjeneste: de andre elementene i kjerne-delen din (ESRPer, BCFer, PSAPer) sender sine logghendelser (NENA-STA-010), hver signert som en JWS med elementets sertifikat i x5c-headeren, ved POST til /i3log/LogEvents fra de tillatte adressene. Hver kommer som en JWS i den flattede JSON-formen (signert, eller usignert med algoritme none, som en loggingstjeneste kan ta: merket som ikke sporet til PCA), blir sjekket og lagret, og svaret er logghendelsens ID. Les tilbake med GET /i3log/LogEvents/{logEventId}; list med GET /i3log/LogEvents (startTime, endTime, logEventType, limit, start); finn ID-ene til et oppkall eller en hendelse med /i3log/LogEventIds, /CallIds, /IncidentIds og /AgencyIds; og les en tekst-konversasjon til et oppkall med /i3log/Conversations?callId=. GET /i3log/Versions sier hva denne tjenesten snakker. Logghendelser mottatt lister en dags hendelser med hvem signerte hver. Hvert svar blir sjekket mot NENAs offentlige OpenAPI-definisjon av tjenesten; tjenesten har ennå ikke blitt prøvd med en annen leverandørs elementer.
PSAP-bevisselsesbyrå. Lim inn PCA-rot-sertifikatene under PSAP-bevisselsesbyrå-roter: et signert logghendels blir da bare tatt når dens signatør-sertifikat kjeder til en av dem (og ikke er utløpt), og blir vist med PCA. Uten dem, blir bare signatur alene sjekket, og hendelsen blir vist som ikke sporet til PCA.
Lokasjonsopplysninger (LIS). Slå på Svar på lokasjonsforespørsler (LIS) og last opp en regneark (CSV) med lokasjonsopplysninger: en overskriftsrad, og på hver rad ett av en nummer (ALI-data, eksportert), et nettverk (et adresseområde som f.eks. 10.20.3.0/24, eller en enkelt adresse: et bygg, en etasje, en VLAN, et Wi-Fi-nettverk) eller en mac-adresse (en enhet: en skrivebordsphone, en veggkontakts switchport), deretter adressen som hno, rd, sts, unit, floor (eller flr), a3 (by), a1 (stat), pc og land, med lat, lon og radius der dette er kjent (andre navn, som f.eks. phone, street, zip, subnet og ip, blir også forstått). PSAP-er, legacy-nettverksporter og telefoner ber så om /held (HELD, RFC 5985) fra de tillatte adressene og får en PIDF-LO. En forespørsel navngir sin enhet med telefonnummer, IP-adresse eller MAC-adresse (RFC 6155); en forespørsel som ikke navngir noen, blir besvart for adressen den kom fra, som en LIS på et kontor- eller campusnettverk. En adresse blir lokalisert av det smaleste nettverket som omfatter den, så en etasjes /24 vinner over campus /16. En enhet uten oppføring får HELD's locationUnknown; en identitet av en annen type (en NAI, en port) får notLocatable. En BitVoice PSAP peker sin Lokasjonsoppsøking (ALI) hit. Søk opp et nummer, adresse eller MAC-adresse sjekker en oppføring og sier hvilket nettverk den kom fra. Et nummer, nettverk eller MAC-adresse som er oppført igjen, erstatter den gamle oppføringen; Erstatt alle oppføringer starter på nytt. Bare de tillatte adressene blir besvart: en LIS som svarer for enhver adresse den blir bedt om, må ikke være åpen 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.
Testoppringer til en PSAP. En BitVoice PSAP besvarer en testoppringing fra ESInet (urn:service:test.sos, NENA-STA-010.3 seksjon 9, RFC 6881) på egen hånd: svaret sier PSAP-navnet, tjenesten og plasseringen som oppringingen kom fra, de tre første lydpakkene sendes tilbake, og den henger opp. En ny test fra samme sted innen to minutter blir avvist (486), likeså en femte på én gang. En ESRP sender en testoppringing videre som en ekte, fortsatt merket som en test. Slå av Besvar testoppringer på siden for 911-oppringer for å avvise dem (404).
JWS-algoritmer: NENA-STA-010.3 ber om EdDSA med Ed448. Go's standardbibliotek, som BitVoice bruker for hver kryptografisk steg, har Ed25519 men ikke Ed448, så EdDSA-signaturer blir sjekket med Ed25519-nøkler, og ECDSA- og RSA-signaturer blir også tatt; et Ed448-sertifikat blir avvist.
Meente du. En adresse som ikke er gyldig får opp til fem forslag fra samme data, best først, hver som sier hvorfor: en gate en eller to bokstaver unna (en byttet bokstaverpar teller som en), samme gate i neste by, eller nærmeste nummer gaten har, på samme side når det kan (partall blir partall). Bruk fyller et forslag inn. En posisjon med adressen. Gi en bredde- og lengdegrad (og posisjonens radius, når kjent) med adressen: posisjonen blir sjekket mot adressens egen adressepunkt, med tillatelse for dens radius og 100 m mer (størrelsen på en tomt, og GIS-feil). Svaret gir avstanden og om de to er enige, og når de ikke er det, adressen nærmest posisjonen. En adresse som bare er kjent fra vegmidtpunkter har ingen punkt å sjekke mot, og svaret sier det. LoST's validateLocation har ingen plass for noen av delene, så operatører som spør via LoST får bare valideringen.