Podręcznik BitVoice
Spis treści
- Część 1. Rozpoczęcie pracy
- 1. Rozpoczęcie pracy
- 2. Dojrzałość każdej części
- 3. Numery wewnętrzne
- 4. Łączenie telefonów
- 5. Telefony Skinny i bramy MGCP
- 6. Karty telefoniczne
- 7. Trunki
- 8. Trasowanie połączeń
- 9. Zestawy PIN
- 10. Wyszukiwanie ID dzwoniącego
- 11. Połączenia alarmowe
- 12. Miejsca i biurowy 911
- 13. Stan
- 14. Ustawienia
- 15. Ekran w Twoim języku
- Część 2. Gdzie trafiają połączenia
- 16. Przepływ połączeń
- 17. Grupy dzwonienia
- 18. Kolejki
- 19. Wydzwonienie wychodzące
- 20. Dźwięki: nagrania, języki i muzyka w trakcie oczekiwania
- 21. Menu (automatyczny sekretarz)
- 22. Katalog wybierania według nazwy
- 23. Wydzwonienie (DISA)
- 24. Boty głosowe (AudioSocket)
- 25. Przełączniki dziennie/nocą
- 26. Harmonogramy
- 27. Skrypty (JavaScript i Lua)
- 28. Recepcjonista AI, triage poczty głosowej i pytania
- 29. Poczta głosowa
- 30. Callbacki
- 31. Linki połączeń i połączenia ze strony internetowej
- Część 3. Codzienne połączenia
- 32. Kody funkcji, przekazywanie i szybkie numery
- 33. Portal pracowniczy
- 34. Pokoje konferencyjne
- 35. Pagowanie i głośniki nadawcze
- 36. Hot desking
- 37. Hotel i połączenia budzące
- 38. Kontakty na każdym telefonie
- 39. Kalendarze i tryb nie przeszkadzać
- 40. Aplikacje mobilne
- 41. Połączenia wideo
- 42. Faks: wysyłanie i odbieranie, maszyny faksowe i telefony analogowe
- 43. Skrzynka odbiorcza: czat internetowy, WhatsApp i Messenger
- 44. Biznesowy tekst (SMS)
- 45. Przekazywanie informacji
- Część 4. Klienci i wgląd
- 46. Aktywne połączenia
- 47. Historia połączeń
- 48. Osobista historia dzwoniącego
- 49. CRM: karty rozmówców i rejestrowanie połączeń
- 50. Wgląd w połączenie dla nadzorujących
- 51. Nagrywanie połączeń i płatności kartą
- 52. Zgoda na nagrywanie
- 53. Jakość połączenia
- 54. Koszty i budżety
- 55. Reputacja ID wywołującego i połączenia z marką
- 56. Ochrona przed spamem i STIR/SHAKEN
- Część 5. Uruchamianie BitVoice
- 57. Administratorzy
- 58. Logowanie jednokrotne
- 59. Katalog firmowy (Active Directory i LDAP)
- 60. Bezpieczeństwo
- 61. Zmiany, kopie zapasowe i import
- 62. Aktualizacje
- 63. Kilka serwerów jako jeden system telefoniczny
- 64. Gdzie przechowywane są dane (SQLite lub PostgreSQL)
- 65. Hostowanie innych organizacji
- 66. Kodeki i dźwięk
- 67. Microsoft Teams (Direct Routing)
- 68. Importuj
- 69. Konfiguracja jako kod
- 70. Zgodność z Asterisk (AMI, ARI i AGI)
- 71. Asystenci AI (MCP)
- 72. Archwium
- 73. Prawne zatrzymania
- 74. Metriki: Prometheus, OpenTelemetry, Grafana, SNMP i rekordy połączeń
- 75. Generator połączeń
- 76. Ślad SIP
- Część 6. Bezpieczeństwo publiczne: ścieżka laboratoryjna
Rozpoczęcie pracy
Od nowej instalacji do działającego systemu telefonicznego: numery wewnętrzne, telefony, firma telefoniczna, gdzie trafiają połączenia, połączenia awaryjne z Twoich biur, oraz jak sprawdzić, czy wszystko jest gotowe.
Rozpoczęcie pracy
/BitVoice to kompletny system telefoniczny w jednym programie: centrala, do której telefony się logują, menu i kolejki, przez które przechodzą dzwoniący, poczta głosowa, nagrywanie, sale konferencyjne, faksy i połączenia z firmami telekomunikacyjnymi. Wszystko jest ustawione w przeglądarce, na ekranach opisanych w tej instrukcji. Nie ma pliku konfiguracyjnego do edycji i niczego więcej do zainstalowania.
Co potrzebne
- Komputer do uruchomienia: mały serwer biurowy, maszyna wirtualna, instancja chmura lub dla pierwszego spojrzenia własny laptop. Linux, macOS i Windows wszystko działa. Raspberry Pi 4 uruchamia mały biurko.
- Telefony: telefony biurkowe od Yealink, Poly, Grandstream lub Snom są ustawione automatycznie; każdy inny telefon SIP lub softphone działa ze swoimi własnymi ustawieniami; i każda przeglądarka jest również telefonem.
- Trunk (konto z firmą telekomunikacyjną) do wykonywania połączeń na zewnętrzne numery i odbierania połączeń. Można zacząć bez niego: rozszerzenia dzwonią do siebie i test echo.
Pierwsze uruchomienie
Uruchom BitVoice i otwórz adres, który wydrukuje (na pulpicie otworzy się przeglądarka). Interfejs sieciowy jest tylko HTTPS, również na tym komputerze. Dopóki nie zainstalujesz własnego certyfikatu (Ustawienia, Certyfikat), BitVoice używa tego, który sam wygenerował, więc przeglądarka ostrzega raz: wybierz kontynuowanie na stronie. Kreator ustawień pyta o cztery rzeczy: nazwę organizacji i kraj, hasło pierwszego administratora, pierwsze rozszerzenia i Twoją firmę telekomunikacyjną, jeśli ją masz. Kraj ustawia numery awaryjne, dźwięki, które dzwoniący słyszą, i sposób zapisu numerów telefonów.
Pierwsza godzina
- Rozszerzenia: jedno na osobę lub biurko. Każde ma numer i hasło SIP. Otwórz Rozszerzenia (rozdział 3)
- Telefony: podłącz telefon biurkowy, softphone lub telefon przeglądarki do każdego rozszerzenia. Otwórz Telefony (rozdział 4)
- Trunk: Twoje konto z firmą telekomunikacyjną, aby móc wykonywać połączenia na zewnętrzne numery i odbierać połączenia. Otwórz Trunki (rozdział 7)
- Routing połączeń: gdzie idą połączenia z zewnątrz (osoba, grupa dzwonienia, menu), i który trunk zewnętrzne połączenia używają. Otwórz Routing połączeń (rozdział 8)
- Stan mówi Ci, co jeszcze brakuje, połączenia awaryjne najpierw. Otwórz Stan (rozdział 13)
Następnie wykonaj testowe połączenie: z dowolnego telefonu wybierz *43, test echo. Słyszysz siebie, co dowodzi, że dźwięk działa w obie strony.
Instalowanie w jednej komendzie
Na serwerze Linux (Ubuntu, Debian, RHEL, Fedora, Alpine z systemd) lub Macu:
curl -fsSL https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.sh | sh
W systemie Windows, w PowerShell:
irm https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.ps1 | iex
Pobiera najnowsze wydanie dla komputera, sprawdza je pod kątem sum SHA-256 wydania i podpisu BioDream (z OpenSSL 3, lub w przeciwnym razie z ssh-keygen OpenSSH, który mają Windows 10 i 11, macOS oraz Ubuntu 20.04; ssh-keygen sprawdza wydania od wersji v0.1.14), i instaluje go jako usługę, która uruchamia się sama:
- Linux:
/usr/local/bin/bitvoice, użytkownik systemubitvoice, dane w/var/lib/bitvoice, usługa systemdbitvoicez interfejsem sieciowym na porcie 443. Gdy ufw lub firewalld jest włączone, otwiera porty 443, SIP (5060, 5061) i porty audio połączeń (10000 do 20000 UDP). Wypisuje adres do otwarcia i kod ustawień, o który pyta kreator z innego komputera. - macOS: BitVoice w folderze Aplikacje (
~/Applications/BitVoice.app), uruchamiany przy logowaniu, interfejs sieciowy na porcie 8443, dane w~/Library/Application Support/BitVoice(dostępne tylko dla Ciebie) i logi w~/Library/Logs/BitVoice(bitvoice.log, przechowywane poniżej 10 MB). Otwórz BitVoice z Launchpad lub Spotlight, aby uzyskać dostęp do interfejsu sieciowego; gdy został zatrzymany, to go ponownie uruchamia. Uruchamiany jest podcaffeinate, aby Mac nie szedł spać podczas działania BitVoice: śpiący Mac nie odbiera połączeń, a nawet krótkie przerwy konserwacyjne zatrzymują wszystko na wiele sekund. Ekran może nadal wyłączyć się. Uruchomiony ręcznie, użyjcaffeinate -i -s ./bitvoicedla tego samego. Dla Maca, który odbiera połączenia, gdy nikt nie jest zalogowany, zainstaluj zsudo(curl -fsSL https://raw.githubusercontent.com/BioDream-LLC/bitvoice/main/deploy/install.sh | sudo sh): wtedy BitVoice jest w/Applications, uruchamia się z Macem, działa jako ukryty użytkownik (_bitvoice), obsługuje interfejs sieciowy na porcie 443, przechowuje dane w/Library/Application Support/BitVoicei logi w/Library/Logs/BitVoice, a zapora sieciowa Maca, gdy jest włączona, pozwala mu akceptować połączenia. Jeden z dwóch na Mac: instalator odmawia drugiego, gdy jeden jest już tam. Gdy zapora sieciowa Maca jest włączona, zainstalowany BitVoice dla Ciebie pyta raz, czy może akceptować połączenia przychodzące: pozwól mu, aby telefony mogły się łączyć. Jeśli coś już używa portu, instalator podaje jego nazwę i zatrzymuje się (wybierz inny zBITVOICE_HTTPS=:8444).sh install.sh --uninstall(zsudodla Maca) usuwa go i zachowuje dane;--purgeusuwa dane i logi również. Wypróbowane na macOS 26 (Apple silicon), zainstalowane dla jednej osoby: zainstalowane, podpis sprawdzony z własnym ssh-keygen Maca, drugi start na tych samych danych odmówiony, wróciło po zabiciu programu, uruchomione ponownie z aplikacji, uaktualnione na miejscu, spreparowany program odmówiony, port w użyciu odmówiony, odinstalowane z zachowaniem danych, zainstalowane ponownie na nich i wyczyszczone z niczym nie pozostawionym. Instalacja dla całego Maca (sudo) jest wypróbowana na każdej zmianie na maszynach macOS GitHub (Apple silicon): działa jako_bitvoicena porcie 443, instalacja użytkownika obok niego odmówiona, wróciło po zabiciu programu, uaktualnione, wyczyszczone z niczym nie pozostawionym (ukryty użytkownik również). Intel Maci nie są jeszcze wypróbowane. - Windows: jako administrator,
C:\Program Files\BitVoice, uruchamiany z Windows, dane wC:\ProgramData\BitVoice, i reguła zapory dla sieci prywatnych i domenowych; w przeciwnym razie dla Ciebie samego, uruchamiany przy logowaniu. Działa w Windows PowerShell 5.1 (co ma Windows Server) i w PowerShell 7, i w 5.1 uruchamiany z wnętrza 7. BitVoice zapisuje swój log dobitvoice.logw folderze danych (przechowywany poniżej 10 MB, starsza część wbitvoice.log.1), i instalator wypisuje kod ustawień, o który pyta kreator z innego komputera. Windows nazywa nową sieć Wi-Fi lub sieć Publiczną, dopóki nie zostanie mu powiedziane inaczej, i reguła zapory pozwala niczego nie wchodzić: dla sieci domowej lub biurowej instalator mówi, jak to zmienić na Prywatną (Ustawienia, Sieć i internet, Właściwości sieci); dla serwera chmury wypisuje regułę do dodania (otwórz porty w zaporze dostawcy również). Zainstalowane jako administrator, folder danych jest dostępny tylko dla administratorów (zawiera bazę danych i klucze), i BitVoice w menu Start otwiera interfejs sieciowy; zainstalowane dla Ciebie, menu Start uruchamia BitVoice, lub otwiera go, gdy jest już uruchomiony. W każdy sposób jest w Ustawienia, Aplikacje, Zainstalowane aplikacje, które usuwa go i pyta, czy usunąć jego dane również. Wypróbowane na Windows 11 (jako administrator i nie) i na Windows Server 2022 na Amazon EC2: zainstalowane, dostępne z zewnątrz, uruchamiane ponownie po restartcie. - Wypróbowane na: Ubuntu 24.04 i 20.04, Debian 12 i Fedora 42 (każdy z systemd): zainstalowane, podpis sprawdzony, drugi start na tych samych danych odmówiony, wróciło po zabiciu programu, uaktualnione na miejscu, spreparowany program odmówiony, odinstalowane z zachowaniem danych, zainstalowane ponownie na nich i wyczyszczone z niczym nie pozostawionym.
- Linux na serwerze chmury: adres, który wypisuje, jest własnym, prywatnym adresem maszyny; instalator mówi o tym. Otwórz serwer przez jego publiczny adres lub nazwę, z 443, SIP i portami audio otwartymi w zaporze dostawcy.
Uruchom tę samą komendę ponownie, aby uaktualnić (lub użyj Aktualizacje (rozdział 62)). sh -s -- --version v0.1.5 (po rurze) wybiera wydanie; --uninstall usuwa program i usługę i zachowuje dane, --purge usuwa dane również. W systemie Windows zapisz skrypt i uruchom .\install.ps1 -Version v0.1.5, -Uninstall lub -Purge, lub usuń go w Zainstalowanych aplikacjach. Dla serwera, który jest trzymany poza internetem, skopiuj archiwum wydania i SHA256SUMS do folderu i ustaw BITVOICE_FROM na niego.
Gdzie działa
BitVoice działa na systemach Linux, macOS i Windows.
| System | Jak go uruchomić | Gdzie są jego dane |
|---|---|---|
| Linux | ./bitvoice (lub usługa systemd w wersji) | ~/.config/BitVoice |
| macOS | ./bitvoice | ~/Library/Application Support/BitVoice |
| Windows | kliknij dwukrotnie bitvoice.exe | %APPDATA%\BitVoice |
W systemie Windows, pozostaw okno otwarte podczas korzystania z BitVoice (zamknięcie go zatrzymuje BitVoice), a gdy system Windows pyta o pozwolenie na korzystanie z sieci, zezwól na sieci prywatne, aby telefony mogły się łączyć. -data umieszcza dane w dowolnym innym miejscu; -https i -sip wybierają adresy i porty; -log FILE zapisuje również wszystko, co jest drukowane, do pliku, na komputerze, na którym nikt nie obserwuje jego okna.
Porty, których używa
| Port | Do czego służy |
|---|---|
| 5060 UDP i TCP | SIP: telefony i trunki |
| 5061 TCP | SIP przez TLS (szyfrowane sygnały) |
| 4569 UDP | trunki IAX2, tylko po ustawieniu |
| 1720 TCP | trunki H.323, tylko po ustawieniu |
| 2000 TCP | telefony Skinny (SCCP), tylko po włączeniu |
| 2727 UDP | bramy MGCP, tylko po włączeniu |
| 10000–20000 UDP | dźwięk połączeń (RTP), ustawiane w Ustawieniach |
| 8443 TCP | ten interfejs webowy, tylko HTTPS (zwykły HTTP do niego jest przekazywany do HTTPS) |
Jeśli inny system telefoniczny już używa portu 5060, BitVoice przyjmuje następny wolny port, a Health informuje o tym.
Wszystko w interfejsie webowym
Każde ustawienie ma ekran, a każdy ekran ma rozdział tutaj. Nic nie wymaga pliku konfiguracyjnego, linii komend lub innego narzędzia. Do automatyzacji te same ekrany są interfejsem API REST, a konfiguracja może być przechowywana w pliku Git (Konfiguracja jako kod (rozdział 69)), ale nigdy nie jest wymagana.
Do czego służy BitVoice
BitVoice jest przede wszystkim systemem telefonicznym dla biur i centrów kontaktowych, oraz usługą hostowaną dla dostawców: wszystko w pierwszych pięciu częściach tego podręcznika. Profil punktu odpowiedzi 911, konsola radiowa i usługi NG911 Core są oddzielnym ścieżką laboratoryjną i partnerską (Bezpieczeństwo publiczne (rozdział 77)): są wyłączone z menu, dopóki nie zostaną włączone w Ustawieniach, i nie są certyfikowane do użycia na żywo. Połączenia awaryjne z własnych telefonów nie są częścią tej ścieżki; działają na każdym systemie telefonicznym od pierwszego uruchomienia.
Znajdowanie drogi
- Naciśnij ⌘K (Ctrl+K) w dowolnym miejscu, aby przeskoczyć do ekranu, lub wpisz nazwę lub numer rozszerzenia, aby je otworzyć.
- Na telefonie menu znajduje się za przyciskiem ☰ u góry po lewej stronie (oraz wyszukiwanie obok niego, u góry po prawej); wybranie strony zamyka ją ponownie.
- Każdy ekran ma link Pomoc u góry po prawej stronie, który otwiera odpowiedni rozdział tego podręcznika.
- Zmiany przechowuje każdą wersję konfiguracji: możesz zobaczyć, co się zmieniło i cofnąć to.
- Trzy motywy (Midnight, Dark i Light) znajdują się u dołu menu.
Dojrzałość każdej części
Jak daleko każda część została udowodniona, otwarcie. Przetestowane w terenie: uruchomione przeciwko rzeczywistym systemom przez rzeczywistą sieć (Amazon EC2, internet, usługi dostawców). Sprawdzono względem odniesienia: przetestowane względem niezależnej implementacji lub danych standardu. Przetestowane oprogramowaniem: własne testy BitVoice i testy przeglądarki, ale jeszcze nie z rzeczywistym sprzętem lub kontami. Laboratorium: części związane z bezpieczeństwem publicznym, niecertyfikowane.
| Obszar | Dojrzałość | Co na nim polega |
|---|---|---|
| Trunki SIP: rejestracja, połączenia przychodzące i wychodzące, identyfikacja dzwoniącego, zajętość, klawisze (RFC 4733) | Przetestowane w terenie | operator komercyjny, SIP.US (konto demo, z EC2): rejestracja i połączenia wychodzące do publicznej sieci telefonicznej przez UDP i przez TLS z certyfikatem operatora; MOS 4,39, bez strat. Połączenia przychodzące z publicznej sieci telefonicznej: T38Fax (połączenia faksowe na jego numer, rejestracja przez UDP). Asterisk jako operator przez internet na EC2; MOS 4,4. Kamailio 5.7 (rejestracja z podpisem digest przez TLS, połączenia w obie strony, klawisze) i FreeSWITCH 1.11 (TLS i SRTP, połączenia w obie strony, G.722 do G.711) jako drugi koniec; MOS 4,39 |
| Telefony biurkowe przez SIP | Przetestowane w terenie | Asterisk jako telefon biurkowy przez internet. Rzeczywiste słuchawki Yealink, Poly lub Grandstream nie były jeszcze wypróbowane |
| Telefon przeglądarki (WebRTC) | Przetestowane w terenie | z zewnątrz do EC2; testy przeglądarki Chromium z dźwiękiem w obie strony |
| Dwa serwery, jeden PostgreSQL, tryb failover | Przetestowane w terenie | kill -9 i planowane zatrzymanie na EC2: połączenie jest kontynuowane, linia dostawcy się przenosi |
| Instalacja jednym poleceniem | Przetestowane w terenie | Ubuntu 24.04 (x86, Arm), Debian 12, Amazon Linux 2023, Windows Server 2022, Windows 11 (jako administrator i nie, w PowerShell 5.1 i 7), Ubuntu 20.04 i Fedora 42 w kontenerach, macOS 26 na Apple Silicon (dla jednej osoby i z sudo dla całego Maca w CI); powrót po ponownym uruchomieniu |
| Pojemność | Przetestowane w terenie | 2 000 połączeń jednocześnie, bez strat, MOS 4,41, na 16-vCPU c7i.4xlarge (około 10 vCPUs zajętych); 200 jednocześnie na c7g.large, c7i.large, t4g.small, M4 i Lightsail nano. Przy 2 000: jitter 4,0 ms dla 95% połączeń, najdłuższa przerwa między pakietami 74 ms, najdłuższa pauza zbierania śmieci 4,2 ms |
| Migracja FreePBX (Import) | Przetestowane w terenie | rzeczywista kopia zapasowa FreePBX 17.0.33 (70 MB) zaimportowana w całości; inne z formatów FreePBX |
| Transkrypcje AI, podsumowania, recepcjonista | Przetestowane w terenie | rzeczywisty model przez OpenRouter |
| Fakty i podsumowania bez modelu językowego | Przetestowane oprogramowaniem | wymyślone połączenia 911 tylko: 23 z 43 faktów (53%) w zestawie zamkniętym, 3 fakty, których nikt nie oczekiwał; 41/41 szkoleniowe, hold-out 27/40 zimne. Nigdy nie mierzone na rzeczywistych połączeniach. |
| Rozmowa na ten serwer (whisper) | Przetestowane w terenie na macOS i Linux | whisper-server 1.9.5 uruchomiony przez BitVoice: na Macu i na Ubuntu na EC2 (x86-64), gdzie napisał transkrypcje połączeń na żywo i poczty głosowej w teście pola telefonu; pobieranie dla każdej platformy zbudowane i wypróbowane w CI |
| Archiwizacja do S3, sekrety z AWS Secrets Manager | Przetestowane w terenie | rzeczywisty AWS, nasz własny SigV4 |
| Monitorowanie SNMP i pułapki | Przetestowane w terenie | net-snmp's snmpwalk i snmptrapd |
| Let's Encrypt | Przetestowane w terenie | wystawia i odnawia certyfikat publicznej demo |
| Obrazy maszyn (AWS) i konfiguracja jako kod | Przetestowane w terenie | obraz EC2 zbudowany przez deploy/cloud/build-images.sh z Ubuntu 24.04: każdy serwer z niego zaczyna się od nowa; deploy/terraform z OpenTofu 1.13 (utwórz, zmień, nie dryfuj, zniszcz). Obrazy Azure nie były jeszcze wypróbowane |
| Trunki IAX2 | Sprawdzone z odniesieniem | Asterisk 23 |
| Pełne ICE za NAT (klient STUN i TURN) | Sprawdzone z odniesieniem | agent ICE Chromium (kandydaci hosta i przekazujący), softfony JsSIP z ofertą BitVoice, coturn 4.18 i własny serwer TURN BitVoice jako przekazujący, nazwy hostów mDNS Chromium rozwiązane. Nie próbowano jeszcze z serwera za rzeczywistym routerem NAT |
| Ponowne uruchomienie ICE (zmiana sieci telefonu w trakcie połączenia) | Sprawdzone z odniesieniem | Chromium ponownie uruchamiające ICE w połączeniu telefonu przeglądarki (BitVoice jako ICE-lite i jako pełny agent) i SIP.js 0.21 ponownie uruchamiające przez re-INVITE przez SIP przez WebSocket: nowe poświadczenia w obie strony, nowa para kandydatów, dźwięk co pół sekundy przez ponowne uruchomienie. Nie próbowano jeszcze na telefonie, który naprawdę przechodzi z Wi-Fi do sieci komórkowej |
| Historia SIP i Diversion (przekierowane połączenia) | Sprawdzone z odniesieniem | Asterisk 20's PJSIP w obie strony: przekierowane połączenia Asterisk odczytywane przez BitVoice, a przekierowania BitVoice odczytywane przez REDIRECTING() Asterisk z samej Historii-Info i z Diversion; wpisy RFC 7044 zachowane i rozszerzone o przekierowanie. Nie próbowano jeszcze z operatorem lub Teams wysyłającymi je |
| Katalog firmowy (LDAP, Active Directory) | Sprawdzone z odniesieniem | OpenLDAP 2.4 (StartTLS i LDAPS, 1 203 osób odczytanych przez paging ponad jego limit 1 000, grupy, logowanie) i Samba 4's Active Directory (LDAPS, paging ponad 1 000, konta wyłączone pominięte, grupy zagnieżdżone dla grup dzwonienia i ról). Nie próbowano jeszcze przeciwko kontrolerowi domeny Windows Server firmy Microsoft |
| ARI (Asterisk REST Interface) | Sprawdzone z odniesieniem | każda operacja ARI Asterisk wywołana i jej odpowiedź sprawdzona z wymaganymi polami modelu; ari-client 2.2.0, biblioteka JavaScript Asterisk, odczyt /ari/api-docs i uruchomienie aplikacji |
| Wszystkie pokoje wideo (SFU, simulcast) i udostępnianie ekranu | Sprawdzone z odniesieniem | Trzy przeglądarki Chromium w jednym pokoju, każda wysyłająca trzy rozmiary (VP8 simulcast) i odbierająca dwa pozostałe; rozmiary przełączane w kluczowych klatkach, gdy pływaki rosną i maleją. Kamery i udostępniony ekran (własne przechwytywanie ekranu Chromium) w pokoju H.264. Nie próbowano jeszcze z Firefoxem lub Safari, przez internet lub z więcej niż trzema kamerami; H.264 simulcast wybiera warstwy według kolejności przeglądarki tylko. |
| AGI i FastAGI (Asterisk Gateway Interface) | Sprawdzone z odniesieniem | każda odpowiedź polecenia porównana z Asterisk 20.6 przez FastAGI; serwer FastAGI napisany z pyst2 uruchamiający połączenie; audio EAGI do programu. Nie próbowano jeszcze z produkcyjnym IVR |
| Asystenci AI przez MCP | Sprawdzone z odniesieniem | oficjalny SDK MCP TypeScript (1.32.2) jako klient: narzędzia wymienione i wywołane z tokenem API przez Streamable HTTP (protokół 2025-11-25), a także punkt końcowy OAuth logowania się od końca do końca (odkrycie, rejestracja, PKCE, token, odświeżenie); strona wyrażania zgody w Chromium; mostek stdio przeciwko testowemu serwerowi. Nie próbowano jeszcze z Claude, ChatGPT lub innym asystentem, który potrzebuje serwera dostępnego z internetu z zaufanym certyfikatem. |
| Microsoft 365 i Google Workspace (kontakty i kalendarze) | Przetestowane oprogramowaniem | przeciwko stand-inom Microsoft Graph (użytkownicy, kontakty organizacji, kalendarz getSchedule, token client-credentials) i Google's People API, Calendar freeBusy i JWT-bearer token, napisane z ich opublikowanych odniesień; stand-iny sprawdzają, co BitVoice wysyła (sygnatura JWT i oświadczenia, paging, treści żądań). Nie próbowano jeszcze z rzeczywistym najemcą Microsoft 365 ani domeną Google Workspace. |
| Ekran w 14 językach | Przetestowane oprogramowaniem | każdy kawałek tekstu, który ekran wyświetla (około 5 000, z kodu: tekst JSX, ciągi i wiadomości serwera) przetłumaczony maszynowo przez Llama 3.3 70B na 13 języków, 99% zachowanych przez kontrole (te same placeholder, adresy i kody niezmienione); niemiecki narysowany przez testy przeglądarki (logowanie, menu, wyszukiwanie, formularz, powrót do angielskiego). Nie sprawdzono przez osobę w żadnym języku. |
| Trunki H.323 | Sprawdzone z odniesieniem | H323Plus 1.28 (jego simph323 odtwarzający i nagrywający pliki WAV) na EC2: połączenia w obie strony z Fast Connect i G.711, każdy koniec słyszący ton drugiego, MOS 4,39; ustawienie połączenia również z chan_ooh323 Asterisk (którego własny dźwięk jest uszkodzony w Asterisk 22) |
| SIP przez WebSocket | Sprawdzone z odniesieniem | JsSIP i SIP.js |
| Kodeki: GSM, G.726, iLBC, MP3 hold music | Sprawdzone z odniesieniem | ffmpeg, program referencyjny RFC 3951 i minimp3, próbka za próbką |
| Kodeki: G.711, G.722, G.729, Opus, Speex | Sprawdzone z odniesieniem | G.711 i G.722 bajt za bajtem i próbka za próbką z spandsp; dekoder G.729 próbka za próbką na wszystkich siedmiu wektorach testowych ITU (bcg729 nie jest), jego enkoder współpracujący z bcg729 przy tym samym jakości (G.729 nie wymaga, aby enkodery pasowały); pakiety Opus odkodowane przez libopus 1.6.1 i pakiety libopus odkodowane tak, jak to robi libopus; pakiety Speex i dźwięk identyczne z libspeex 1.2.1; połączenia Opus z aplikacją Android |
| Kodeki: AMR-NB, AMR-WB | Sprawdzone z odniesieniem, z znaną luką | AMR-WB odtwarza jak opencore-amr próbka za próbką, a na sekwencjach testowych TS 26.174 3GPP pasuje dokładnie do dekodera 3GPP na 167 z 198 i nigdy nie jest mierzalnie poniżej niego; enkoder AMR-NB klatka za klatką z opencore-amr, ale jego dekoder jest bliski, nie dokładny (około 31 dB od opencore). Oba pochodzą z przypiętych bibliotek goamr |
| Kodeki przenoszone nietknięte: G.722.1 (Siren 7), G.722.1C (Siren 14), G.719, Codec2 | Przetestowane oprogramowaniem | własne testy: oferowane z ich szybkością transmisji lub trybem, odpowiedzi, pakiety w obie strony bajt za bajtem; nie przekonwertowane (nie ma bezpłatnego kodu referencyjnego, który BitVoice może dostarczyć dla G.722.1 i G.719). Nie próbowano jeszcze z rzeczywistym Polycomem lub systemem pokoju. |
| ISDN PRI i BRI, T1/E1 | Sprawdzone z odniesieniem | libpri (Asterisk's), obie strony; i na EC2 przez prawdziwy sterownik jądra DAHDI 3.4 (dwa spany połączone w jądrze, chan_dahdi Asterisk 20 jako telefon komutowany): połączenia w obie strony z numerami i nazwami, wszystkie 23 kanały jednocześnie, MOS 4,39. Nie ma jeszcze fizycznej karty ani linii |
| MFC-R2, E&M | Sprawdzone z odniesieniem | OpenR2; tony MF przez własne testy. Nie próbowano jeszcze z rzeczywistą kartą ani linią |
| SS7 (ISUP, MTP, zestawy łączności z kilkoma łączami z przełączaniem) | Sprawdzone z odniesieniem | libss7 (biblioteka chan_dahdi Asterisk), ITU i ANSI. Nie próbowano jeszcze z rzeczywistym połączeniem operatora |
| Faks (T.30, T.38) | Przetestowane w terenie | operator faksu, T38Fax (bezpłatna wersja próbna, z EC2): BitVoice wysyłający faks przez publiczną sieć telefoniczną na swój numer i odbierający go, oba przez T.38 (2 strony, 14 400 bit/s, strony dotarły nietknięte; rejestracja z nazwą użytkownika i hasłem); i przechodzący faks między faksowaniem na bramie (Asterisk z spandsp, zastępującym jeden) i T38Fax, na zewnątrz i z powrotem, 2 strony przy 14 400 bit/s w obie strony: raz wszystko na G.711 (bramka odmawiająca T.38) i raz przełączona na T.38 na obu stronach. spandsp (przez Asterisk 20) na EC2: odbieranie i wysyłanie przez T.38 z korekcją błędów, a także przechodzący faksy między dwiema innymi maszynami przez T.38 i G.711. Nie próbowano jeszcze z bramką faksową sprzętową, a T38Fax nigdy nie prosił o T.38 sam, więc przełącznik odmówił przez bramkę |
| Konfigurowanie: Yealink, Poly, Grandstream, Snom, Fanvil, Cisco, Mitel, Sangoma, Algo, CyberData | Przetestowane oprogramowaniem | formaty udokumentowane przez dostawców; nie na rzeczywistych słuchawkach |
| Telefony Skinny (SCCP), bramki MGCP | Sprawdzone z odniesieniem | Skinny: telefony z biblioteki open-source mwicat/sccp, każda wiadomość odczytana przez dissektor Wireshark, rozmiary takie same jak chan_skinny Asterisk; MGCP: bramka MGCP Yate (ponowne uruchomienie, odpowiedzi warunkowe, potwierdzenia; nie ma portów analogowych, więc nie ma połączenia). Nie próbowano jeszcze z telefonem lub bramką Cisco |
| Microsoft Teams Direct Routing | Przetestowane oprogramowaniem | przeciwko symulowanemu serwerowi Microsoft zgodnie z opublikowanymi zasadami SIP Direct Routing (OPTIONS, Contact, user=phone, certyfikat klienta, transfery, o które Teams prosi przez REFER z x-m i x-t); nie próbowano jeszcze z najemcą Teams: Microsoft nie oferuje go bezpłatnie (licencje Teams Phone) |
| Hotel (FIAS) | Sprawdzone z odniesieniem | każdy rekord wysyłany przez BitVoice sprawdzony z opublikowaną specyfikacją FIAS 2.20.23 Oracle (rozpoczęcie łącza, rekordy łącza, posty, odpowiedzi na pobudki); własne testy. Nie próbowano jeszcze przeciwko samemu Opera |
| Tekstowanie, WhatsApp, Messenger, czat internetowy | Sprawdzone z odniesieniem (Twilio, Telnyx, Bandwidth, Vonage, TextMagic, WhatsApp) | teksty przez Twilio, Telnyx, Bandwidth, Vonage i TextMagic, a także teksty WhatsApp, szablony i listy szablonów, przeciwko mockom zbudowanym z opublikowanych specyfikacji OpenAPI dostawców (Stoplight Prism, odmawiając wszystkiego, czego specyfikacja nie pozwala; specyfikacja TextMagic jest taka, z której generowany jest jej klient). Vonage pokazał, że klucz należy umieścić w HTTP Basic, a nie w formularzu. SignalWire mówi API Twilio; Plivo, Flowroute, VoIP.ms i Messenger publikują nie specyfikację i są sprawdzane przeciwko stand-inom napisanym z ich dokumentacji. Nie próbowano jeszcze z żywym kontem |
| Karty dzwoniącego CRM, Azure Blob, Azure Key Vault | Sprawdzone z odniesieniem | EspoCRM (rzeczywisty CRM open-source, w Docker) do kart dzwoniącego; emulator Azurite Microsoft dla uploadów Blob (SAS kontenera, odmowy); Lowkey Vault dla Key Vault z tożsamością zarządzaną. Nie próbowano jeszcze przeciwko samemu Azure ani CRM hostowanemu |
| Ochrona przed spamem: test robota, nieznani dzwoniący, baza spamu, *32, sugestie | Przetestowane oprogramowaniem | własne testy BitVoice: operator dzwoniący przez SIP i naciskający klawisze (RFC 4733) w teście robota, przechodzący i nieprzechodzący go; znani, zawsze dozwolone i awaryjne dzwoniący dzwoniący jednocześnie; baza spamu przeciwko stand-inowi, który odpowiada tak, jak Twilio dokumentuje swoje Lookup z dodatkiem Nomorobo (nie próbowano jeszcze z kontem Twilio); *32 z telefonu biurkowego; sugestie z rekordów połączeń; ustawienia przez testy przeglądarki. Nie próbowano jeszcze przeciwko prawdziwym połączeniom roboczym lub płatnej bazie danych |
| Aplikacje iPhone i Android | Przetestowane w terenie (Android) | Android: Google Pixel 8 (Android 16, Wi-Fi) z podpisaniem kompilacji wydania przeciwko BitVoice na EC2 z certyfikatem Let's Encrypt: sparowany przez link, dzwonił z powiadomieniem o połączeniu Android, odpowiedział z niego, audio w obie strony, połączenie utrzymane z wyłączonym ekranem i w tle (jego powiadomienie o połączeniu w toku, Hang up); bez push nie dzwoni w tle. Google Pixel 11 (Android 17) w AWS Device Farm: sparowany, dzwonił, odpowiedział, wywołał; Opus, MOS 4,1. iPhone: aplikacja (SwiftUI, CallKit, PushKit VoIP) kompiluje się z bieżącym SDK (Xcode 27) i serwer podpisał push VoIP Apple (APNs, ES256); te same naprawy urządzenia, co Android, oraz wpis w App Store (ios/AppStore) są w nim. Obie aplikacje są pełnym rozszerzeniem: transfer (niejawny, przez REFER), pauza i drugie połączenie, klawiatura i wyciszenie, z Recents, wizualną pocztą głosową (z transkrypcjami), lampą zajętości zespołu, Kontaktami, czatem personelu (koledzy z obecnością, wiadomościami bezpośrednimi i pokojami, z powiadomieniem w tle i push, gdy aplikacja jest zamknięta), wyborem pokoju wideo (listy pokoi SFU z kim jest w każdym, dołącza jako rozszerzenie, wyświetlane jako połączenie wideo na ekranie połączenia) i transkrypcją AI na żywo (AI.LiveCallTranscripts); transfer, pauza, transkrypcja na żywo, czat, który osiąga kolegę, lista pokoi, pokój dołączony przez telefon i push czatu kształtują się w teście silnikowym, API lub przeglądarkowym. Na Pixelu 8 (2026-10-30, kompilacja debugowania, EC2 z Let's Encrypt): dzwonił i odpowiedział z powiadomienia, wstrzymane i wznowione (stan połączenia Android jest śledzony), wywołał na systemie połączeń Android, Opus w obie strony z MOS 4,38 i bez strat; dołączył do pokoju wideo z jego kamerą (poproszony o pierwsze użycie) i zobaczył kamerę biurka, oba na żywo; wiadomość czatu w tle powiadomiła i otworzyła Chat. Pauza i transfer osiągają rodzime ekran połączenia (CallKit, Telecom). Nie uruchomiono jeszcze na iPhone'ie ani nie złożono: push, ekran systemowego połączenia i podpisywanie wymagają własnego konta deweloperskiego Apple |
| Profil 911, konsola radiowa, usługi rdzenia NG911, wideo dzwoniącego | Laboratorium | schematy NENA i dane przykładowe, Wireshark, spandsp, OpenSSL, ExifTool, ffmpeg, przechwytywanie P25 NIST (jego ramki głosowe IMBE rozpakowane tak, jak je rozpakowuje mbelib: ten sam pitch, harmoniczne, voicing i amplitudy); nigdy nie na żywej ESInet, systemie P25 ani PSAP CAD, i nie certyfikowane |
| Półprzewodnik fazy 2 (AMBE+2) | Nie oferowane | patentowane do 2028 |
| Podpisy Ed448 (NENA) | Nie oferowane | nie w standardowej bibliotece Go, a BitVoice nie pisze własnej kryptografii; używany jest Ed25519 |
| Przenoszenie sygnału SS7 (STP), SCCP i TCAP | Sprawdzone z odniesieniem | OsmoSTP 2.3.0 przez M3UA/TCP z użytkownikiem SCCP echo za nim: UDT i XUDT w obie strony, UDTS zwrócone, tłumaczenie tytułu globalnego przez STP, przełącznik na zestawie łączności sięgający echa przez IP; TCAP w obie strony przeciwko libosmo-asn1-tcap. Tylko ITU; nie ma SCTP, połączonego SCCP ani zarządzania SCCP; nie próbowano jeszcze z rzeczywistym operatorem |
| Wariant MFC-R2 Chin (Chiny Nr 1) | Przetestowane oprogramowaniem | każdy sygnał połączenia sprawdzony z opublikowanymi tabelami i sekwencjami połączeń Cisco (KA, KD, Grupa B według KD wysłanego, C i D bity 11). Wariant Chin OpenR2 nie zgadza się sam ze sobą, więc nie ma programu do testowania; nie próbowano jeszcze z rzeczywistą linią |
| ALI przez PAM lub E2 | Nie oferowane | PAM jest własnym protokołem Intrado z nieopublikowaną specyfikacją; E2 (J-STD-036, NENA 05-001) działa między centrum lokalizacji komórkowej a bazą danych ALI, a nie do PSAP. BitVoice mówi linki ALI żądania i tekstu oraz HELD zamiast tego |
Numery wewnętrzne
/extensionsNumer wewnętrzny to numer przypisany do osoby lub stanowiska. Telefony logują się przy użyciu numeru wewnętrznego i jego hasła SIP; połączenia na ten numer sygnalizują wszystkie telefony zalogowane jako ten numer, jednocześnie.
Dodawanie numeru wewnętrznego
- Otwórz Numery wewnętrzne (rozdział 3) i naciśnij Dodaj numer wewnętrzny. Następny wolny numer i silne hasło SIP są wypełnione.
- Wprowadź nazwę osoby (wyświetlaną na innych telefonach podczas połączeń) i adres e-mail (do poczty głosowej).
- Wypełnij lokalizację 911: miejsce, piętro i pokój. Zostanie ono wysłane z połączeniami awaryjnymi.
- Wybierz, co się stanie, gdy nikt nie odpowie: poczta głosowa domyślnie lub inny numer wewnętrzny, grupa lub menu.
- Zapisz. Numer wewnętrzny może się zalogować od razu.
Pola
| Pole | Co robi |
|---|---|
| Numer | 2 do 8 cyfr; nie może być taki sam jak inny numer wewnętrzny, grupa, kolejka, pokój lub kod funkcji |
| Hasło SIP | to, z czym telefon się loguje; co najmniej 12 znaków; Wygeneruj tworzy nowe |
| Sygnalizuj przez | sekund przed tym, co się stanie, gdy nikt nie odpowie (25 sekund domyślnie) |
| Identyfikator połączeń przychodzących | numer wyświetlany na połączeniach wychodzących; pusty używa tego z trasy |
| Może wykonywać połączenia na numery zewnętrzne | wyłączone utrzymuje telefon w połączeniach wewnętrznych i numerach awaryjnych |
| Nagrywaj połączenia | gdy Ustawienia nagrywają tylko wybrane numery wewnętrzne |
| Gorące biurko | współdzielony telefon, który staje się tym, kto się loguje |
| Szyfruj połączenia do tego telefonu | szyfrowanie multimediów (SRTP); używaj go z TLS, aby klucze pozostały prywatne |
| Dział | grupuje koszty połączeń tego numeru wewnętrznego |
Follow-me, odbiór i interkom
Każda osoba ma własne ustawienia połączeń w swojej własnej skrzynce na numerze wewnętrznym:
- Follow-me sygnalizuje więcej numerów, gdy telefony tutaj nie są odpowiedzi: komórkowy, inne stanowisko. Sygnalizują one jeden po drugim lub wszystkie razem, przez swój własny czas sygnalizacji. Z Zewnętrzne numery naciśnij 1, aby odebrać połączenie włączone, osoba, która odpowiada na komórce, naciska 1 najpierw, aby uniknąć odebrania połączenia przez własną pocztę głosową komórki. Zobacz Kody funkcji (rozdział 32).
- Grupa odbioru: każdy w tej samej grupie może odebrać sygnalizujące połączenia tego numeru wewnętrznego, wybierając
*8. - Zezwól na interkom:
*80i ten numer odpowiada na głośniku samoczynnie. Wyłącz to ustawienie dla osób, które nigdy nie chcą tego. - Własne szybkie numery: krótkie kody tylko dla tej osoby, wybierane po
*0.
Przekierowanie w tym momencie
Poniżej ustawień, Przekierowanie w tym momencie pokazuje i zmienia to, co osoba ustawia z telefonu lub portalu personelu: nie przeszkadzać i przekierowanie każdego połączenia, połączeń podczas zajętości i połączeń nieodebranych. Są to stan live, a nie konfiguracja: zmiana ich nie tworzy rewizji.
Co jest podłączone
- Telefon: telefon biurkowy, softphone lub aplikacja.
- Stacja drzwi: interkom przy drzwiach. Osoba, która odpowiada, naciska kod, lub Otwórz drzwi na Połączeniach na żywo. Z adresem kontrolera drzwi, BitVoice wywołuje ten adres (2N, Axis, Akuvox, płyty przekaźnikowe); bez niego, kod jest wysyłany do stacji, która otwiera drzwi sama.
- Głośnik na suficie: połączenia do niego są odebrane od razu i słyszane przez głośnik.
- Port adaptera analogowego: stary telefon, faks lub panel alarmowy na adapterze. Połączenia używają tylko G.711, które są potrzebne do faksów.
Urządzenia podłączone
Numer wewnętrzny, który jest otwarty, pokazuje każde urządzenie zalogowane jako ono: marka i model telefonu, sposób połączenia (UDP, TCP, TLS lub przeglądarka) i od kiedy. Adres i port do podania telefonowi są również wyświetlane.
Łączenie telefonów
/phonesDowolny telefon lub aplikacja SIP działa: skieruj ją na adres serwera i port 5060, z numerem rozszerzenia jako użytkownika i hasłem SIP. Telefony biurkowe od czterech głównych producentów są automatycznie konfigurowane, więc nikt nie wpisuje hasła do klawiatury telefonu.
Automatyczna konfiguracja (provisioning)
- Na Telefony (rozdział 4) naciśnij Dodaj telefon i wprowadź adres MAC telefonu (na naklejce pod spodem) i numer wewnętrzny, do którego należy.
- Wybierz markę: Yealink, Poly, Grandstream (w tym adaptery analogowe HT), Snom, Fanvil, Cisco, Mitel, Sangoma, Algo lub CyberData.
- Poinformuj telefon, gdzie znajduje się BitVoice: w swoim serwerze DHCP ustaw opcję 66 na adres konfiguracji wyświetlany na ekranie, aby każdy telefon w sieci mógł go znaleźć samodzielnie; lub wprowadź ten sam adres na stronie internetowej telefonu, w sekcji auto-konfiguracji.
- Zrestartuj telefon. Pobiera on swój plik przez HTTPS, loguje się i klawisze linii wyświetlają, kto jest na telefonie.
HTTPS lub zwykły HTTP. Telefony pobierają swój plik przez HTTPS, gdy mogą. Niektóre starsze telefony nie mogą używać HTTPS w ogóle, a wiele z nich nie ufa certyfikatowi wygenerowanemu przez BitVoice; dla nich ekran wyświetla również adres http:// na tym samym porcie. Zwykły HTTP jest tylko dla tych plików: każda inna strona nadal przechodzi do HTTPS. Przez zwykły HTTP hasło SIP telefonu przechodzi przez sieć niezaszyfrowane, więc ograniczaj to do zaufanej sieci biurowej lub zainstaluj certyfikat z autoryzowanego urzędu i włącz Tylko HTTPS dla telefonów.
Plik zawiera rozszerzenie, hasło, strefę czasową, kodeki, klawisze lamp sygnalizacyjnych i adres tego serwera. Dostarczanie jest chronione nazwą użytkownika i hasłem, które telefony otrzymują raz.
| Marka | Modele przetestowane | Co otrzymuje |
|---|---|---|
| Yealink | T3x, T4x, T5x | konto, klawisze BLF, czas, kodeki |
| Poly | VVX, Edge E | to samo, w formacie Poly |
| Grandstream | GRP, GXP, HT802/814 | konto na porcie adapterów |
| Snom | D7xx | konto, klawisze, czas |
Te marki są również dostarczane, z plikami napisanymi w formacie udokumentowanym przez każdego producenta, ale nie zostały jeszcze przetestowane na ich urządzeniach (ekran Telefonów oznacza je jako nieprzetestowane):
| Producent | Modele | Plik, o który pyta urządzenie |
|---|---|---|
| Fanvil | Seria X i V | jego adres MAC .cfg |
| Cisco | 6800, 7800, 8800 multiplatform (3PCC), adaptery SPA | jego adres MAC .xml (firmware dla przedsiębiorstw wymaga najpierw firmware multiplatform) |
| Mitel (Aastra) | 6800, 6900 SIP | jego adres MAC .cfg, wielkimi literami |
| Sangoma | Seria S | plik w formacie Fanvil |
| Algo | głośniki nagłaśniające, sygnalizatory, adaptery | algop i jego adres MAC .conf |
| CyberData | głośniki, wideodomofony, adaptery nagłaśniające | jego adres MAC .xml |
Każde z nich otrzymuje konto, serwer (i serwer zapasowy, przy kilku serwerach), transport i szyfrowanie, oraz numer poczty głosowej, jeśli jest przypisany. Ustaw rozszerzenia głośników Algo i CyberData na Głośnik nagłaśniający, aby połączenia do nich były odbierane natychmiast.
Telefony bez konfiguracji
Softfony i inne marki wymagają trzech rzeczy: serwer (adres tego komputera, port 5060 lub 5061 z TLS), użytkownik (numer wewnętrzny) i hasło (hasło SIP). Lista Health wyświetla telefony, które próbowały złe hasło; po kilku próbach adres jest zablokowany na jakiś czas (patrz Bezpieczeństwo (rozdział 60)).
Telefon przeglądarki
Ikona telefonu u dołu każdego ekranu czyni tę przeglądarkę telefonem dla rozszerzenia, z Twoim mikrofonem i głośnikami. Używa WebRTC: dźwięk jest szyfrowany od końca do końca, i działa przez większość zapór sieciowych bez żadnych ustawień.
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 (rozdział 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.
WebSocket nie wymaga logowania własnego: softfon loguje się za pomocą SIP, a nieudane logowania i zbyt wiele żądań są liczone dla jego własnego adresu, jak dla każdego telefonu. Strona softfonu obsługiwana z innego serwisu musi ufać certyfikatowi tego serwera (użyj Let's Encrypt), a bieżący Chrome pyta użytkownika, zanim strona internetowa może dotrzeć do serwera w sieci lokalnej.
Przetestowane z dwiema niezależnymi bibliotekami, JsSIP 3.13 i SIP.js 0.21: dwa softfony każdej rejestrują, wywołują się nawzajem i słyszą się nawzajem przez BitVoice. Inne softfony (klient internetowy Linphone, Zoiper) mówią ten sam protokół, ale nie zostały wypróbowane.
TURN, dla sieci, które blokują UDP
Niektóre sieci (hotele, gościnne Wi-Fi, ścisłe firewalle firmowe) nie pozwalają na żadne UDP lub ukrywają komputery za NAT-ami, przez które WebRTC nie może się dostać. Dla nich włącz serwer TURN w Ustawieniach (rozdział 14): BitVoice uruchamia wtedy swój własny serwer TURN (RFC 8656) na porcie 3478 (UDP i TCP) i, z certyfikatem tego serwera, na porcie 5349 przez TLS. Telefony przeglądarkowe, telefon personelu i linki połączeń otrzymują krótkotrwałe poświadczenia dla niego i używają go, gdy nie mogą się połączyć bezpośrednio z portami multimedialnymi; dźwięk jest nadal szyfrowany od końca do końca, a BitVoice przekazuje go tylko do własnych adresów, więc nikt nie może go użyć, aby dotrzeć do czegoś innego.
Otwórz port TURN, port TLS i porty przekazywania (49152 do 49407, chyba że je zmienisz) w zaporze sieciowej. TURN przez TLS wymaga certyfikatu, który przeglądarki uznają za nazwę, którą używają, takiego jak ten z Let's Encrypt (rozdział 14): do czasu, aż taki certyfikat zostanie uzyskany, BitVoice nie oferuje go przeglądarkom (próbują, nie udaje się i czekają), i oferuje go, jak tylko certyfikat przyjdzie; ustaw jego port na 443 na serwerze z wolnym adresem, aby dostać się przez firewalle, które pozwalają tylko na HTTPS.
Zmiana sieci podczas połączenia
Telefon, który przechodzi do innej sieci podczas połączenia (z sieci Wi-Fi biura na sieć komórkową lub laptopa z jednej sieci Wi-Fi na inną), otrzymuje nowy adres, a stary ścieżka przestaje przenosić dźwięk. Telefony przeglądarkowe i aplikacje BitVoice samoczynnie wykrywają tę zmianę: gdy przeglądarka sygnalizuje zmianę sieci lub ścieżka połączenia przestaje odpowiadać przez 2 sekundy, telefon ponownie uruchamia ICE (RFC 8445 9). Oferta nowych poświadczeń ICE dla bieżącego połączenia, BitVoice odpowiada nowymi poświadczeniami i sprawdza nową ścieżkę, a połączenie przechodzi na nią bez potrzeby ponownego wybierania. Szyfrowanie kontynuuje się z tymi samymi kluczami. Podczas tej operacji połączenie wyświetla się jako Ponowne łączenie…; na ścieżce, która nadal działa, nie ma przerwy, ponieważ stara ścieżka utrzymuje połączenie aż do momentu, gdy dźwięk pojawi się na nowej ścieżce. Telefony SIP z obsługą WebSocket (JsSIP, SIP.js) wykonują tę samą operację za pomocą re-INVITE z nowymi poświadczeniami ICE. Nie ma potrzeby włączania niczego, ponieważ BitVoice działa jako ICE-lite lub za NAT.
BitVoice za NAT
Serwer TURN powyżej pomaga przeglądarkom w sieciach ze ścisłymi zasadami dotarcia do BitVoice, który ma publiczny adres. Gdy BitVoice nie ma publicznego adresu (w biurze za routerem bez przekierowania portów lub w chmurze bez publicznego adresu na maszynie), włącz Ten serwer jest za NAT w BitVoice za NAT w Ustawieniach (rozdział 14). BitVoice bierze wtedy pełny udział w ICE (RFC 8445) zamiast odpowiadać na jeden adres (ICE-lite):
- Oferta przeglądarkom własnych adresów, publicznego adresu, jak go widzą serwery STUN, oraz pośredników na serwerach TURN, do których się loguje (UDP; nazwa użytkownika i hasło każde), i sprawdza każdą parę adresów z przeglądarką, tak jak robi to przeglądarka.
- Przekieruj każde połączenie przez TURN wysyła całe medium przeglądarki przez serwery TURN, dla sieci, które tego wymagają.
- Znajdź moje adresy pyta serwery, jakby to było połączenie, i wyświetla, co BitVoice zaoferuje: własne adresy, publiczny adres widziany przez STUN (serwer STUN, który nie odpowiada, jest oznaczony jako taki), oraz pośredniki.
- Działa dla telefonu przeglądarki, linków połączeń, testu echa i miękkich telefonów SIP-over-WebSocket, w obu rolach: BitVoice odpowiada na ofertę przeglądarki i oferuje miękkiemu telefonowi, który dzwoni. Przeglądarki, które ukrywają swoje adresy za nazwami mDNS (
name.local), są rozwiązywane w sieci lokalnej, a adres przeglądarki, jak go widział serwer www, jest przepuszczany przez pośredniki od samego początku. - Wyłączone domyślnie; dodaje chwilę do każdego połączenia, podczas gdy serwery odpowiadają (maksymalnie półtorej sekundy). Wideo rozmówcy używa ICE-lite w każdym przypadku.
Telefon dla personelu
Otwórz #/phone na dowolnym komputerze lub przeglądarce mobilnej: ludzie logują się za pomocą swojego numeru wewnętrznego i hasła SIP, bez konta administratora. To pełny telefon: wybieranie, odbieranie, pauzowanie i transfer oraz klawiatura. Do przekierowania i poczty głosowej używają portalu personelu w #/me (zobacz Portal personelu (rozdział 33)).
Aplikacje mobilne
Aplikacje BitVoice dla iPhone i Android są parowane ze stroną rozszerzenia za pomocą kodu QR. Połączenia budzą aplikację za pomocą usług push Apple i Google, więc dzwoni nawet, gdy jest zamknięta (po skonfigurowaniu powiadomień push; patrz poniżej).
Telefony Skinny i bramy MGCP
/desk-phonesTelefony i bramy, które nie obsługują SIP, mogą być nadal używane. Telefony Skinny i bramy MGCP (pod Połączeniami) obsługują dwa starsze protokoły:
- Skinny (SCCP): telefony biurkowe Cisco z oprogramowaniem SCCP (79xx, 69xx, 89xx). Dodaj każdy telefon po jego adresie MAC i wybierz jego numer wewnętrzny; włącz Akceptuj telefony Skinny i wskaż telefon na BitVoice (port TCP 2000) w pliku ustawień TFTP lub menu.
- MGCP (RFC 3435): bramy, których porty BitVoice obsługuje pojedynczo, takie jak adaptery telefonów analogowych i karty linii. Dodaj bramę po nazwie domeny, którą używa w nazwach punktów końcowych (aaln/1@name), jej adresie i numerze wewnętrznym każdej linii; ustaw agenta wywołań bramy na BitVoice (port UDP 2727).
Każdy telefon Skinny lub linia MGCP to jeden dodatkowy urządzenie swojego numeru wewnętrznego: sygnalizuje z innymi telefonami tego numeru wewnętrznego, wykonywa połączenia wychodzące jako ten numer wewnętrzny i jest wyświetlany w urządzeniach tego numeru wewnętrznego. Strona pokazuje stan każdego z nich.
Co działa
- Skinny: rejestracja, linia i jej numer na wyświetlaczu, sygnał wybierania, wybieranie (numer jest wprowadzany po pauzie lub #, lub od razu z klawiatury telefonu, gdy jest podniesiony po wybieraniu), sygnał powrotu, dzwonienie z identyfikatorem wywołującego, odpowiedź i zakończenie połączenia za pomocą słuchawki, głośnika lub klawiszy programu (Nowe Połączenie, Ponowne Wybieranie, Odpowiedź, Zakończ Połączenie), sygnały zajętości i ponownego wybierania.
- MGCP: sygnał wybierania, cyfry zbierane przez bramkę z mapą cyfr, dzwonienie z identyfikatorem wywołującego (dzwoni bez niego, gdy bramka odmawia identyfikatora wywołującego), sygnał powrotu, sygnały zajętości i ponownego wybierania, oraz połączenie audio (CRCX, DLCX). Bramka, która restartuje (RSIP), ma ponownie skonfigurowane porty.
- Dźwięk jest G.711 µ-law w obu przypadkach; BitVoice konwertuje go na format używany przez drugą stronę.
Poczekalnia, transfer i konferencja są wykonywane z innych telefonów rozszerzenia na razie, a druga linia telefonu Skinny nie jest używana.
Bezpieczeństwo
Żaden z protokołów nie ma haseł. Telefony Skinny są akceptowane tylko z sieci lokalnej i tylko wtedy, gdy są wymienione; polecenia MGCP są wykonywane tylko z adresu bramki (lub, bez niego, z sieci lokalnej). Zachowaj oba porty poza internetem.
Brama, która nadal pracuje nad poleceniem, może najpierw odpowiedzieć "100 Trying": BitVoice następnie dłużej czeka, zanim ponownie wyśle polecenie i potwierdzi ostateczną odpowiedź (000), zgodnie z RFC 3435. Port, którego brama nie będzie obserwować, wyświetla własną odmowę bramy na stronie, taką jak brama odmówiła obserwowania portu: 507 Nieobsługiwana funkcjonalność z bramy multimedialnej bez portów analogowych.
Jak są testowane
- Skinny: dwa telefony zbudowane z oddzielnego wdrożenia Skinny (biblioteka open-source mwicat/sccp) rejestrują się, wybierają numer, odbierają i kończą połączenie; niewykazany telefon jest odrzucany. Dissektor Skinny Wiresharka odczytuje każdą wiadomość wysłaną przez BitVoice bez błędu, a wiadomości mają pełne rozmiary, które chan_skinny Asteriska wysyła do telefonów Cisco.
- MGCP: przeciwko bramie MGCP Yate (restart, odpowiedzi tymczasowe, potwierdzenia, odmowy) i własnej bramie testowej BitVoice dla całych połączeń. Bramy Yate nie mają portów analogowych, więc nie było połączenia przez nią.
Karty telefoniczne
/cardsKarta telefoniczna w komputerze BitVoice (Digium, Sangoma, OpenVox i inne karty z sterownikami DAHDI dla Linuksa) może obsługiwać telefony analogowe i linie telefoniczne. Oddzielny program, bitvoice-dahdi, steruje kartą i łączy jej porty z BitVoice przez własne połączenie sieciowe komputera, więc sam BitVoice nigdy nie dotyka sterownika jądra i problem z kartą nie może zatrzymać systemu telefonicznego.
Konfiguracja
- Zainstaluj sterowniki DAHDI i skonfiguruj porty w /etc/dahdi/system.conf (
fxoks=1-4dla portów z telefonami,fxsks=5-8dla portów z liniami, oraz tony kraju wloadzoneidefaultzone), a następnie uruchomdahdi_cfg. - W Kartach telefonicznych (pod Połączeniami) włącz Użyj kart telefonicznych. Zostanie wygenerowany token; skopiuj go do pliku, który może odczytać tylko root, takiego jak /etc/bitvoice/cards.token.
- Dodaj każdy port według jego numeru kanału DAHDI: telefon (FXS, telefon, faks lub telefon drzwiowy podłączony) z jego rozszerzeniem, lub linia (FXO, linia telefoniczna) z numerem linii. Wybierz A-law dla Europy i większości świata, µ-law dla Ameryki Północnej i Japonii.
- Dla linii, dodaj trunk z protokołem Linie kart telefonicznych w Trunkach i skieruj numery do niego, tak jak do jakiegokolwiek trunku; trasy przychodzące odpowiadają każdemu numerowi linii.
- Uruchom
bitvoice-dahdi -server https://127.0.0.1:8443 -token-file /etc/bitvoice/cards.tokenjako użytkownik usługi, który może otworzyć /dev/dahdi. Jest on w pobraniu Linuksa obok bitvoice. Strona pokazuje, czy jest uruchomiony i stan każdego portu; zmiany są przekazywane do niego w ciągu dziesięciu sekund. Kanał, który jest nadal trzymany przez inny program (lub jeden, który dahdi_cfg jeszcze nie skonfigurował), jest ponawiany co dwie sekundy, więc kolejność, w jakiej rzeczy są uruchamiane, nie ma znaczenia.
Co działa
- Telefony: sygnał dial-tonu, wybieranie (cyfry są słyszane przez wewnętrzny detektor tonów BitVoice; numer jest wybierany po pauzie lub #), sygnał powrotu, zajętość i sygnał zatoru od karty tonalnej, dzwonienie przy przychodzących połączeniach, oraz klawisze wciśnięte podczas połączenia (wysyłane również jako zdarzenia RFC 4733).
- Linie: dzwoniąca linia wywołuje swój numer i jest odebrana, gdy połączenie jest odebrane; połączenia wychodzące zajmują wolną linię, czekają na sygnał dial-tonu centrali i wybierają numer jako tony. Odłączenie się drugiej strony jest zauważane, gdy linia zgłasza to (prąd pętli lub polaryzacja, w zależności od linii). Linie analogowe nie sygnalizują, kiedy druga strona odbiera, więc połączenie wychodzące jest uważane za odebrane, gdy numer jest wybierany.
- Dźwięk jest kodowany w G.711 do i z karty; BitVoice konwertuje go na format używany przez drugą stronę.
Linie cyfrowe: T1 i E1 PRI
Linia T1 (23 połączenia na raz) lub E1 (30) jako linia podstawowej stawki ISDN jest podłączona do cyfrowej karty (Digium/Sangoma TE-series, OpenVox D-series i tym podobne). BitVoice obsługuje sam PRI (Q.921 na kanale D, oraz kontrola połączeń Q.931), więc każde połączenie przychodzi z wybranym numerem i identyfikatorem wywołującego, wychodzi z identyfikatorem wywołującego rozszerzenia, oraz centrala mówi, kiedy druga strona odbiera, dzwoni lub jest zajęta.
- W /etc/dahdi/system.conf, ustaw span dla PRI, jak zwykle (
span=1,1,0,esf,b8zs,bchan=1-23,hardhdlc=24dla T1;span=1,1,0,ccs,hdb3,crc4,bchan=1-15,17-31,hardhdlc=16dla E1), i uruchomdahdi_cfg. - Pod Linie cyfrowe w Kartach telefonicznych (rozdział 6), dodaj span: T1 lub E1, jego pierwszy numer kanału DAHDI, czy BitVoice jest centralą na linii telefonicznej (zwykle) czy siecią (inna centrala łączy się z BitVoice, jak z centralą), oraz typ przełącznika, jaki podała centrala.
- Dodaj trunk karty na Trunkach, jeśli jeszcze go nie ma, oraz trasy przychodzące dla numerów (DIDs), które centrala wysyła.
Połączenia wychodzące zajmują PRI jako pierwsze, a linie analogowe później; zajęty numer, błędny numer lub brak wolnego kanału powoduje, że połączenie jest zwracane jako zajęte, nie znalezione lub niedostępne, tak jak mówi sieć. Strona pokazuje, czy kanał D każdego spanu jest w górę i ile kanałów jest w połączeniach. Kanały T1 ustawione z sygnalizacją robbed-bit (fxsks, fxoks) działają jak porty analogowe powyżej.
Nazwy, przekierowania i transferowanie. Nazwa wywołującego przychodzi wraz z połączeniem (z elementu Display lub w przypadku National ISDN-2 z nazwy, którą sieć wysyła jako udogodnienie) i jest wyświetlana na telefonach; połączenia wychodzące wysyłają nazwę rozszerzenia w ten sam sposób. Numer, z którego połączenie zostało przekierowane, przychodzi jako jego numer przekierowania (BitVoice przekazuje go jako SIP's Diversion, z powodem: zajęty, brak odpowiedzi, bezwarunkowy), a gdy przekierowanie rozszerzenia wysyła połączenie z powrotem na PRI, numer rozszerzenia jest wysyłany wraz z nim jako numer przekierowania, aby drugi koniec i firma telefoniczna wiedziały, do kogo należy połączenie. Gdy połączenie zewnętrzne zostanie odebrane, BitVoice informuje sieć o numerze, który odebrał połączenie (połączony numer).
Włącz Przekierowania przez firmę telefoniczną na spanie (strona użytkownika, National ISDN-2, 5ESS, DMS-100 lub EuroISDN) i gdy ktoś przekieruje połączenie na tym kanale do innego numeru na tym samym kanale, BitVoice prosi sieć o połączenie dwóch połączeń: Two B-Channel Transfer na liniach National ISDN-2 i 5ESS, Release Link Trunk transfer na Nortel DMS-100, jawne przekierowanie połączenia (połączenie w trybie hold, a następnie połączenie) na EuroISDN. DMS-100 daje identyfikator przekierowania tylko połączeniom umieszczonym przez BitVoice, więc tam jedno z dwóch połączeń musi być połączeniem wychodzącym (zwykły przypadek: połączenie przekierowane lub przeniesione do zewnętrznego numeru). Obie kanady są zwalniane natychmiast po tym, jak sieć je połączy. Linia potrzebuje tej usługi (poproś firmę telefoniczną o "two B-channel transfer" lub "ECT"); jeśli sieć odmówi, przekierowanie nadal działa, przez BitVoice, używając obu kanałów jak wcześniej. Na spanie, na którym BitVoice jest stroną sieci, inny PBX może poprosić BitVoice o połączenie dwóch swoich połączeń; BitVoice odmawia (nie jest przełącznikiem), a PBX utrzymuje połączenia sam.
Wypróbowanie bez karty
Własne dynamiczne spany DAHDI mogą zastąpić kartę: dwa spany połączone wewnątrz jądra, BitVoice na jednym i inny PBX (Asterisk's chan_dahdi, na przykład) jako firma telefoniczna na drugim. Wczytaj dahdi, dahdi_dynamic i dahdi_dynamic_loc, a w /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
Pozostaw ostatni numer (częstotliwość) na 0 na obu: wewnętrzny timer DAHDI napędza je wtedy. Spany, które są źródłem czasu dla siebie nawzajem, tykają tylko wtedy, gdy inny wysyła, a kanał D pojawia się i znika. Dodaj span 1 tutaj jako T1 (pierwszy kanał 1), a ustaw inny PBX jako stronę sieci na kanałach 25 do 48.
Podstawowa stawka ISDN (BRI)
BRI przenosi dwa połączenia na raz (B1 i B2) i jest powszechny w Europie dla małych biur; łączy również telefony biurkowe ISDN. Karty BRI (Digium B410P, karty oparte na HFC od OpenVox, Junghanns i innych) działają przez DAHDI, tak jak karty PRI: w /etc/dahdi/system.conf span jest span=1,1,0,ccs,ami z bchan=1-2 i hardhdlc=3. Dodaj go pod Linie cyfrowe z BRI jako typ linii; jego kanały to B1, B2, a następnie kanał D.
- BitVoice jest centralą (strona użytkownika), punkt-punkt: linia centrali od firmy telefonicznej (niemiecki *Anlagenanschluss*): połączenia przychodzące przenoszą numer wybrany, połączenia wychodzące numer rozszerzenia.
- Strona użytkownika, wielopunkt: linia współdzielona z innymi urządzeniami (*Mehrgeräteanschluss*): BitVoice prosi sieć o swój własny TEI (identyfikator terminala) i odpowiada na połączenia na linii obok innych urządzeń na niej; firma telefoniczna wysyła numer wybrany (MSN), który trasy przychodzące dopasowują.
- BitVoice jest siecią, wielopunkt: telefony ISDN są podłączone do karty S-bus jak do linii firmy telefonicznej. Każdy prosi BitVoice o TEI; połączenie do busu dzwoni na każdy telefon na nim, pierwszy, który odpowie, weźmie je, a inne przestaną dzwonić. Numery wybrane cyfra po cyfrze (tak jak telefony ISDN wybierają) są zbierane, aż telefon powie, że jest kompletny, # jest naciśnięty, lub nie przychodzi żadna cyfra przez cztery sekundy. Trasy numerów na i z busu z trunkiem karty jak dla każdej linii.
Nazwy, przekierowania, transferowanie na EuroISDN (jawne przekierowanie połączenia) i porady dotyczące opłat działają na BRI tak jak na PRI.
Trunki E&M na T1
T1, którego kanały są ustawione jako E&M (sygnalizacja robbed-bit: e&m=1-24 w /etc/dahdi/system.conf) daje 24 trunki, z których każdy jest sygnalizowany oddzielnie: linie łączące z inną centralą, banki kanałów i trunks Feature Group D operatorów dalekobieżnych. Pod Linie cyfrowe, dodaj T1 i ustaw Sygnalizację na E&M, a następnie:
- Sygnał startowy: Wink start (zwykle: drugi koniec mruga, gdy jest gotowy do numeru, a BitVoice mruga z powrotem przy połączeniu przychodzącym), Natywny start (numer następuje bezpośrednio po zajęciu), Opóźniony wybór (drugi koniec wybiera numer podczas przygotowania, a następnie wybiera numer), lub Feature Group D (wink start z numerami MF: KP 00 ANI ST, a następnie KP numer ST; ANI staje się identyfikatorem wywołującego).
- Numery wysyłane jako: DTMF lub MF (MF R1, KP numer ST) jak większość trunks operatorów.
- Numer, gdy nie jest wysyłany: co połączenie przychodzące osiąga, jeśli drugi koniec zajmuje trunks bez wybierania numeru (linia bezpośrednia do recepcji, na przykład).
Wychodzące połączenie zajmuje wolny trunk, zajmuje go, czeka na sygnał startowy (brak mrugnięcia w ciągu pięciu sekund oznacza "brak mrugnięcia" i połączenie kończy się niepowodzeniem), wysyła numer i jest odebrane, gdy drugi koniec odłącza się (nadzór odpowiedzi). Połączenie przychodzące jest odebrane przez odłączenie się, gdy extension odpowiada.
Trunki CAMA (911, ścieżka laboratoryjna). PSAP nadal zasilany przez router 911 wybrany przez trunki CAMA ustawia Sygnał startowy na CAMA (trunk 911). Router zajmuje, BitVoice mruga, a router wysyła numer dzwoniącego (ANI) w postaci MF: ulepszony CAMA jako KP, dwa cyfry informacyjne i wszystkie dziesięć cyfr, ST; tradycyjny CAMA jako KP, jeden cyfra planu numeracji i siedem cyfr, ST. Dla tradycyjnego CAMA, wyświetl pod Kody obszaru dla NPD 0 do 3 kod obszaru, który każda cyfra planu numeracji reprezentuje (arkusz ustawień routera ma je); cyfra powyżej 3 oznacza, że router nie mógł zidentyfikować linii. Każde połączenie jest kierowane do trasy przychodzącej dla 911 jako połączenie 911, z ANI jako jego numer callback, a BitVoice wyszukuje jego lokalizację według tego numeru (patrz połączenia 911 (rozdział 77), Wyszukiwanie lokalizacji (ALI)). Cyfry informacyjne są wyświetlane na połączeniu jako CAMA (II 00).
MFC-R2 na E1
W Ameryce Łacińskiej, częściach Azji i Afryki linie E1 są często MFC-R2, a nie ISDN: 30 obwodów, z których każdy ma sygnały linii na bitach A i B timeslotu 16 (ITU-T Q.421) i numer, kategorię wywołującego i numer wywołującego wymieniane w tonach multifrequency (Q.441), do przodu i do tyłu. Skonfiguruj span jako CAS w /etc/dahdi/system.conf (span=1,1,0,cas,hdb3, cas=1-15:1101, cas=17-31:1101, dchan usunięty), a następnie pod Linie cyfrowe dodaj E1, ustaw Sygnalizację na MFC-R2 i wybierz Wariant kraju: ITU-T, Argentyna, Brazylia, Chiny, Kolumbia, Czechy, Ekwador, Meksyk, Filipiny lub Wenezuela. Każdy kraj przypisuje niektóre sygnały inaczej (co oznacza zajętość, jak kończy się numer, dodatkowa grupa C w Meksyku); wariant zawiera te informacje. Chiny nr 1 żądają klasy wywołującego (KA) i numeru po wybranym numerze, wysyłają typ połączenia (KD: 3, połączenie lokalne) na końcu, odczytują zajętość i niezajętość według wysłanego KD i ustawiają bity C i D na 1: tam, wpisz cas=1-15:1111 i cas=17-31:1111.
Każdy obwód przenosi połączenia w obie strony. Połączenie przychodzące dociera do tras wychodzących z wybranym numerem i numerem wywołującego (numerem ukrytym jako anonimowy); zajęta centrala lub niewłaściwy numer są sygnalizowane z powrotem jako zajęty lub nieprzydzielony, zgodnie z wariantem. Połączenie wychodzące wysyła numer i numer ID wywołującego centrali lub sygnał "numer ukryty", gdy wywołujący ukrywa go.
Sygnalizacja MFC-R2 jest testowana w stosunku do OpenR2 (biblioteki R2 używanej przez chan_dahdi Asterisk), we wszystkich oferowanych wariantach i w obie strony, w tym odmówione połączenie jako zajęte; E&M w stosunku do własnych kanałów symulowanych przez BitVoice.
SS7
Operator może przekazywać T1 lub E1 sygnalizowane przez SS7 zamiast ISDN: obwody głosowe przenoszą połączenia, z których każde jest nazwane kodem identyfikacji obwodu (CIC), a jeden timeslot przenosi łącze sygnalizacyjne do punktu transferu sygnałów operatora lub przełącznicy, za pomocą którego ISUP ustawia połączenia. BitVoice jest wtedy punktem sygnalizacyjnym, z kodem punktu przypisanym przez operatora. W /etc/dahdi/system.conf ustaw span jako kanały czyste z timeslotem sygnalizacyjnym jako mtp2 lub hardhdlc (timeslot 16 na E1, 24 na T1). Pod Linie cyfrowe dodaj span, ustaw Sygnalizację na SS7 (ISUP) i podaj:
- Wariant SS7: ANSI (Ameryka Północna; kody punktów w sieci-klaster-członek, jak 245-16-1) lub ITU-T (większość świata; kody punktów strefa-obszar-punkt, jak 1-10-2, lub zwykła liczba).
- Nasz kod punktu i Kod punktu sąsiedniego, Sieć (krajowa, zwykle, lub międzynarodowa), kod Łącza sygnalizacyjnego (SLC, 0 chyba że podano inaczej) i Pierwszy CIC: kod pierwszego kanału głosowego spanu, a pozostałe następują w kolejności. Wszystkie te informacje pochodzą od operatora.
Zestawy łączy składające się z kilku łączy. Spany z tym samym wariantem, kodami punktów i siecią tworzą jeden zestaw łączy (do 16 łączy): każde łącze sygnalizacyjne spanu jest jednym z jego łączy i potrzebuje własnego Kodu łącza, a wszystkie obwody spanu należą do niego (ich CIC nie mogą się nakładać). Ruch jest dzielony między łączami w trybie usługi za pomocą wiadomości SLS, więc wiadomości jednego połączenia pozostają na jednym łączu. Gdy łącze ulega awarii (test łącza nie jest odpowiedzi, lub wiadomości nie są potwierdzane), jego ruch jest przenoszony na inne (Q.704: COO i COA, wiadomości, które drugi koniec nie otrzymał, wysyłane ponownie na innym łączu; lub, bez odpowiedzi w czasie, czasowo), połączenia na każdym spanie trwają, a Karty telefoniczne pokazują, ile łączy jest w trybie usługi i jak stoi to łącze. Gdy łącze wraca i jest testowane, jego ruch jest przenoszony z powrotem (CBD i CBA). Tylko wtedy, gdy wszystkie łącza są wyłączone, zestaw łączy jest wyłączony. Przetestowane z biblioteką libss7 z dwoma łączami, z których jedno zostało przerwane w trakcie połączenia: libss7 akceptuje tylko wiadomości zarządzania siecią na łączu, którego SLS je nazwał, więc wiadomość przełączająca o przerwanym łączu (wysłana na innym, zgodnie z Q.704) jest odrzucana, a oba końce przełączają się czasowo, co działa; między dwoma końcami BitVoice przełącza się za pomocą COO i COA.
Po połączeniu się łącza, BitVoice go wyrównuje (poziom MTP 2, z okresem awaryjnym jako zestaw połączeń jednego łącza), testuje je za pomocą testu łącza (SLTM/SLTA), wymienia dane o wznowieniu ruchu, zezwala na wznowienie i resetuje każdy obwód (GRS). Połączenia przychodzące docierają do tras wychodzących z numerem wybranym, numerem nadawanym (z ukrytymi jako anonimowe), numerem, z którego połączenie zostało przekierowane, oraz na ANSI, nazwą nadawanego; połączenia wychodzące przenoszą identyfikator nadawanego i nazwę. BitVoice przestrzega zablokowania lub resetowania obwodów przez operatora. W przypadku podwójnego zajęcia, koniec z wyższym kodem punktu zachowuje parzyste obwody, zgodnie z zaleceniami Q.764, a BitVoice przyjmuje obwody, które zachowuje jako pierwsze.
SS7 jest testowany w stosunku do libss7 (biblioteki SS7 używanej przez Asterisk chan_dahdi), ITU i ANSI: wyrównanie, test łącza, wznowienie ruchu, reset obwodu, połączenia w obie strony z numerami i nazwami, zwolnienie, zajętość i blokowanie; oraz BitVoice w stosunku do samego siebie z utraconymi ramkami na łączu (wysłanymi ponownie przez korekcję błędów MTP2) i podwójnym zajęciem. Przenoszenie sygnałów (jako STP dla innych) i SCCP/TCAP (wyszukiwanie numerów przeniesionych, tłumaczenie bezpłatne) nie są oferowane: PBX jest punktem końcowym, a te są właściwościami operatora.
Punkt transferu sygnału (STP). bitvoice-dahdi może być również STP dla swoich zestawów połączeń ITU SS7: włącz Punkt transferu sygnału (SS7) poniżej linii cyfrowych. Jego Kod punktu STP jest własnym kodem spanów. Z Przekazuj wiadomości dla innych kodów punktów, wiadomość z jednego zestawu połączeń dla sąsiedniego punktu innego zestawu połączeń jest wysyłana do tego zestawu połączeń, a wiadomość dla dowolnego innego kodu punktu jest wysyłana do IP STP (M3UA): IP STP lub bramy sygnałowej w host:port, dostępnego przez M3UA (RFC 4666) przez TCP, którego wiadomości dla zestawów połączeń są zwracane w ten sam sposób (BitVoice rejestruje swój kod punktu i te za nim, chyba że podano Kontekst routingu). Tłumaczenie tytułu globalnego wysyła wiadomości SCCP adresowane do STP według tytułu globalnego do kodu punktu i podsystemu najdłuższego pasującego prefiksu, jak SCCP relay. Wiadomość, która nie może być dostarczona, jest zwracana do nadawcy jako UDTS lub XUDTS, gdy o to poproszono: brak tłumaczenia, brak trasy (awaria MTP), brak podsystemu tutaj lub wyczerpanie licznika skoków. Stan STP wyświetla połączenie M3UA i liczbę przekazanych, przetłumaczonych i zwróconych wiadomości. Jego SCCP (UDT, XUDT, UDTS, XUDTS) i TCAP (Rozpocznij, Kontynuuj, Zakończ, Przerwij, dialogi i składniki) są sprawdzane w stosunku do Osmocom: OsmoSTP przez M3UA, libosmo-sigtran's SCCP echo user za nim, oraz libosmo-asn1-tcap's własny TCAP kod w obie strony. SCTP nie jest oferowany (Go nie ma): M3UA działa przez TCP, który OsmoSTP i wiele IP STP akceptuje. Połączone SCCP, zestawy połączeń ANSI i zarządzanie SCCP (SST, SSA) nie są oferowane.
Porada dotycząca opłat. Na linii EuroISDN, włącz Poradę dotyczącą opłat i BitVoice poprosi firmę telefoniczną, przy każdym połączeniu wychodzącym, o podanie kosztu: podczas połączenia (AOC-D) i na jego końcu (AOC-E), w pieniądzu lub w jednostkach rozliczeniowych. Ostatnia kwota jest umieszczana w rekordzie połączenia (naliczono 1,50 EUR w Historii i obok połączenia w Kosztach); gdy jest to twoja waluta (ustawiona w Kosztach), jest to koszt połączenia, zamiast kwoty z taryf łącza. Firma telefoniczna musi oferować tę usługę na linii. Łącza SIP mogą wysyłać tę samą poradę, jako XML AOC 3GPP w INFO lub BYE, a BitVoice zachowuje ją w ten sam sposób.
Kod PRI jest testowany w stosunku do libpri (biblioteki ISDN używanej przez Asterisk), zarówno jako strona użytkownika, jak i jako strona sieciowa, dla połączeń National ISDN-2 i EuroISDN, nazw, przekierowań i połączonych numerów, jawnej transmisji połączeń i żądań transferu kanału B, oraz porady dotyczącej opłat w obie strony; oraz na BRI, punkt-punkt i wielopunkt, jako terminal i jako sieć (przypisanie TEI, połączenia nadawane do autobusu, numery wybierane cyfra po cyfrze).
Nie jeszcze: wyświetlanie identyfikatora nadawanego na telefonach analogowych lub odczytywanie z linii analogowych, miganie hooka i anulowanie echa poza tym, co robi sama karta.
Trunki
/trunksTrunk to Twoje konto z firmą telefoniczną. Przenosi połączenia do i z zewnętrznych numerów. Większość z nich to trunki SIP; serwer Asterisk lub FreePBX, lub dostawca IAX2, może być osiągalny za pomocą IAX2 zamiast.
Dodawanie trunku SIP
- Na Trunkach (rozdział 7) naciśnij Dodaj trunk.
- Wprowadź serwer dostawcy podany przez Twoją firmę telefoniczną (
sip.provider.com), oraz port, jeśli nie jest to 5060. - Wprowadź nazwę użytkownika i hasło, oraz włącz Rejestrację, jeśli dostawca mówi, aby to zrobić (większość robi).
- Zapisz. W ciągu kilku sekund trunk pokazuje zarejestrowany; jeśli nie, powód jest wyświetlany obok niego.
Sędzia zdrowia trunku
Z dwoma lub więcej trunkami na trasie wychodzącej, BitVoice co 15 sekund ocenia, czy każdy z nich jest używany na swoim miejscu, czy próbowany po innych trunkach. Trunk przesuwa się za innymi, gdy jego dostawca przestaje odpowiadać na kontrole keep-alive, lub gdy jego ostatnie połączenia wychodzące nie powiodły się jeden po drugim po stronie dostawcy (Nieudane połączenia z rzędu w W ciągu (minut), Ustawienia, Sędzia zdrowia trunku), a inny trunk działa. Nie jest przenoszony przy jednej nieudanej kontroli keep-alive, podczas gdy połączenia przez niego nadal przechodzą; i gdy wszystkie trunky nie powiodą się jednocześnie, bardziej prawdopodobną przyczyną jest własne połączenie internetowe systemu, więc nic nie jest przenoszone. Zmiana wymaga dwóch ocen z rzędu (30 sekund), więc trunk nigdy nie migocze. Trunk nigdy nie jest całkowicie wyłączany: jest nadal próbowany, gdy inne trunky nie powiodą się, więc nagłe połączenie zawsze ma wszystkie możliwości. Strona trunku wyświetla ocenę i jej powody; połączenie, które wyszło inną drogą, mówi o tym w swoim rekordzie.
- Dodaj trasę przychodzącą dla swojego numeru i trasę wychodzącą, która używa tego trunku (Trasy połączeń (rozdział 8)).
| Pole | Co robi |
|---|---|
| Transport | UDP (zwykle), TCP lub TLS do szyfrowania sygnałów |
| Rejestracja | logowanie co kilka minut, aby dostawca wiedział, gdzie wysłać połączenia |
| Nazwa użytkownika uwierzytelniania | tylko wtedy, gdy dostawca podaje oddzielną |
| Domena nadawcy | domena w adresie nadawcy, gdy dostawca o to prosi |
| ID nadawcy | numer wyświetlany na wychodzących połączeniach; własne ID nadawcy rozszerzenia ma pierwszeństwo |
| Akceptuj również połączenia z | innych adresów lub sieci dostawcy, które wysyłają połączenia. Połączenia z tego komputera od telefonów zarejestrowanych tutaj oraz wbudowanego generatora połączeń nigdy nie są traktowane jako połączenia z trunku, nawet jeśli zezwala na 127.0.0.1 |
| Połączenia jednocześnie | limit Twojego planu; połączenia poza limitem są kierowane do następnego trunku w trasie |
| Szyfruj media | SRTP, dla dostawców, którzy go obsługują. Dostawca, który odpowiada bez niego, nadal otrzymuje połączenie, niezaszyfrowane, a historia połączeń oznacza je jako Niezaszyfrowane |
| Wymagaj szyfrowania | (z Szyfruj media) odmów połączenia, które dostawca nie chce szyfrować: wychodzące połączenie, które dostawca odpowiada bez SRTP, jest odrzucone, a połączenie przychodzące, które dostawca wysyła bez SRTP, jest odrzucone; historia połączeń podaje powód |
| Kodeki | pozostaw to na *takie same jak Ustawienia*, lub wybierz to, co ten dostawca obsługuje, najlepsze jako pierwsze |
| Stawki | koszt połączeń według prefiksu numeru, dla Kosztów (rozdział 54) |
Dostawcy chmury
Rozpocznij od wypełnia Microsoft Teams Direct Routing, Amazon Chime SDK Voice Connector lub Azure Communication Services, z notatką na temat ustawień po ich stronie. Teams są opisane w swoim własnym rozdziale (Microsoft Teams (rozdział 67)).
Trunki IAX2 do Asterisk i FreePBX
Wybierz IAX2 jako protokół, aby dołączyć do innego serwera Asterisk lub FreePBX, lub dostawcy IAX2. IAX2 przenosi sygnały i dźwięk na jednym porcie UDP, 4569, co ułatwia przechodzenie przez zapory sieciowe.
- Adres serwera: inny serwer. Pozostaw puste, gdy inny serwer rejestruje się w BitVoice zamiast (biuro oddziału za zmieniającym się adresem); wtedy nazwa użytkownika i hasło są tymi, z którymi się rejestruje.
- Nazwa użytkownika i hasło: takie same po obu stronach. BitVoice odpowiada i wysyła wyzwania MD5, i obsługuje tokeny połączeń.
- Rejestracja: zaloguj się do innego serwera, aby mógł wysyłać połączenia tutaj.
Po stronie Asterisk, taki peer jest wszystkim, czego potrzeba:
[bitvoice] type=friend host=dynamic secret=the shared password context=from-bitvoice
Port IAX2 4569 otwiera się tylko wtedy, gdy dodany jest pierwszy trunk IAX2, więc Asterisk uruchomiony na tym samym komputerze utrzymuje go do tego czasu.
Trunki H.323
Wybierz H.323 jako protokół dla starszych bramek, central telefonicznych i systemów wideokonferencyjnych, które mówią H.323, ale nie SIP. Podaj adres bramki (port 1720); połączenia są akceptowane tylko z niej. Połączenia są ustawiane z Szybkim Połączeniem i G.711 (µ-law lub A-law; lista kodeków trunka może ją zawęzić do jednej), a dźwięk idzie prosto między bramką a portami mediów BitVoice. BitVoice konwertuje na to, co używa inna strona.
H.323 tutaj jest celowo mały: brak gatekeepera (RAS), brak H.245 (więc bramka, która nie użyje Szybkiego Połączenia, nie otrzyma połączenia i zostanie poinformowana), brak wideo, brak zabezpieczeń H.235. ID nadawcy pochodzi z numeru wywoławczego Q.931 lub aliasu cyfrowanego nadawcy, a nazwa pochodzi z wyświetlacza lub jego identyfikatora H.323. Kodowanie H.225.0 i H.245 BitVoice zostało sprawdzone przeciwko niezależnemu kodowaniu ASN.1, ale jeszcze nie przeciwko sprzętowi bramki.
Przekierowane połączenia
Gdy połączenie dociera do Ciebie już przekierowane (ktoś przekierował swoją numer na Twój, lub użytkownik Teams), dostawca informuje o tym za pomocą History-Info (RFC 7044) lub Diversion (RFC 5806). BitVoice odczytuje oba: Historia połączenia (rozdział 47) pokazuje przekierowane przez numer, który je przekierował, wraz z numerem, który był najpierw wybrany i powodem w swojej podpowiedzi, ślad połączenia mówi o tym słowami, a rekord połączenia przechowuje je (forwardedFrom, original, forwardReason). Gdy dostawca prosi o utrzymanie historii w prywatności, numery nie są przechowywane.
Gdy rozszerzenie przekierowuje połączenie na zewnątrz przez trunk (przekieruj wszystko, gdy zajęty, gdy nikt nie odpowiada), dostawca jest informowany, które rozszerzenie przekierowało je i dlaczego, aby mógł wyświetlić Twój numer i rozliczyć odpowiednie konto: domyślnie z obu nagłówków, a z historią, z którą połączenie przyszło, zachowaną i dodaną. Dostawca, który jest zdezorientowany jednym z nich, może być ustawiony na inny w Zaawansowane, Przekierowane połączenia mówią, do kogo należą. Na karcie telefonicznej T1/E1 jeden z nagłówków staje się numerem redirectingowym sieci.
Co oznacza status
| Status | Znaczenie |
|---|---|
| zarejestrowany | zalogowany; połączenia mogą przychodzić |
| gotowy | nie rejestruje, lub IAX2 oczekuje na połączenia |
| niedostępny | nazwa serwera nie jest w DNS, lub nic nie odpowiada |
| niepowodzenie | dostawca odmówił zalogowania; powód jest wyświetlany |
| w trybie czuwania | serwery dzielą ten trunk na raz, a inny trzyma go |
Trasowanie połączeń
/routesTrasowanie połączeń decyduje o dwóch rzeczach: gdzie idą połączenia z zewnątrz, według numeru, który został wybrany, i którym trunkiem używają połączenia do numerów zewnętrznych.
Trasy przychodzące
Każda trasa przychodząca dopasowuje numer, który został wybrany (lub dowolny numer), i wysyła połączenie do miejsca przeznaczenia: rozszerzenia, grupy dzwonienia, kolejki, menu, harmonogramu, skryptu, pokoju konferencyjnego, recepcjonisty AI lub poczty głosowej. Numery są dopasowane w dowolnej formie: +1 212 555 0100, 2125550100 i 12125550100 są takie same.
- Trasa dla jednego numeru wygrywa z trasą dla dowolnego numeru.
- Trasa może być ograniczona do jednego trunku, dla numerów, które dwa dostawcy wysyłają.
- Z trybem awaryjnym włączonym (Ustawienia), każde przychodzące połączenie idzie do jednego miejsca zamiast, niezależnie od tras: ewakuacja, zamknięcie, incydent.
Trasy wychodzące
Trasy wychodzące dopasowują to, co ludzie wybierają, według wzorca, i wysyłają je do trunków w kolejności: jeśli pierwszy jest nieaktywny lub pełny, próbuje następnego.
| Wzorzec | Dopasowuje |
|---|---|
X | dowolna cyfra |
Z | 1 do 9 |
N | 2 do 9 |
[1-5] | jeden z zestawu |
. na końcu | jeden lub więcej dalszych cyfr |
NXXNXXXXXX | dziesięcio-cyfrowy numer północnoamerykański |
1NXXNXXXXXX | ten sam z 1 na przedzie |
011. | międzynarodowe połączenie z USA |
- Usuń usuwa cyfry z przodu (9 wybrany dla linii zewnętrznej); Następnie dodaj na przedzie dodaje je (kod kraju).
- Kolejność ma znaczenie: pierwsza trasa, której wzorzec dopasowuje, jest używana. Przeciągnij trasy, aby je zmienić.
- Numery premium (900 i tym podobne) są odrzucane, chyba że trasa je nazwie.
Numery awaryjne
Numery awaryjne zawsze działają. Trasa, która nazywa numer dokładnie, jest używana najpierw; bez niej, każdy pracujący trunk jest próbowany z kolei. Połączenie do nich nigdy nie jest odrzucane z powodu limitów rozszerzenia, limitów organizacji hostowanej lub braku trasy. Zdrowie ostrzega, gdy żaden trunk nie może ich przenosić.
Zestawy PIN
/pin-setsZestaw kodów PIN (rozdział 9) to lista kodów PIN, o które prosi trasę wychodzącą przed wykonaniem połączenia: w celu ograniczenia międzynarodowych lub międzystrefowych połączeń do osób z kodem PIN lub do rozliczania połączeń z klientami i projektami według ich kodu.
- Dodaj zestaw PIN i wymień jego kody PIN (po 4 do 10 cyfr każdy).
- Włącz Zapisz PIN w rekordzie połączenia, aby zapisać użyty kod PIN w każdym rekordzie połączenia jako kod konta (kolumna accountcode w danych wyjściowych CSV, syslog i PostgreSQL, oraz
accountw API). - Na Trasowanie połączeń (rozdział 8), otwórz trasę wychodzącą i wybierz zestaw pod Poproś o PIN.
Dzwoniący, którzy wybierają numer, który ta trasa obsługuje, słyszą "Proszę wprowadzić kod PIN, a następnie nacisnąć klawisz hash", wprowadzają go, a połączenie wychodzi. Trzy błędne kody PIN kończą połączenie, a próba jest rejestrowana jako zdarzenie bezpieczeństwa. Numery alarmowe nigdy nie pytają o kod PIN, niezależnie od trasy, którą podejmują, a przekierowane połączenia i numery follow-me również nie są pytane: tylko osoby dzwoniące z telefonu.
Wyszukiwanie ID dzwoniącego
/lookupsWiele firm telefonicznych wysyła numer dzwoniącego, ale nie nazwę. BitVoice najpierw szuka w kontaktach firmy (rozdział 38); po tym, trasa przychodząca może poprosić o wyszukiwanie ID dzwoniącego (rozdział 10):
- Adres URL: Twój CRM lub dowolna usługa, która odpowiada nazwą. Wstaw
{number}tam, gdzie powinien być numer (https://crm.example.com/api/callers?phone={number}). Prosta odpowiedź tekstowa daje nazwę w pierwszej linii; dla JSON, podaj pole nazwy jako kropkowaną ścieżkę (data.contact.name; numer wchodzi na listę, jak wresults.0.name). Podstawowa autoryzacja jest opcjonalna. - OpenCNAM: baza danych nazw dzwoniących w Ameryce Północnej, z Twoim identyfikatorem konta i tokenem autoryzacji.
Wybierz wyszukiwanie na trasie przychodzącej na Trasowanie połączeń (rozdział 8) (Wyszukiwanie ID dzwoniącego). Telefony wyświetlają nazwę podczas dzwonienia, a ona jest zapisywana w rekordzie połączenia.
Wyszukiwanie nigdy nie opóźnia połączenia: BitVoice czeka najwyżej czas oczekiwania (1,5 sekundy, chyba że zmienisz to, maksymalnie 5) i następnie dzwoni bez nazwy. Odpowiedzi są przechowywane przez dzień (lub tak długo, jak ustawisz, lub nigdy z -1), więc regularny dzwoniący nie jest wyszukiwany przy każdym połączeniu; numery, których usługa nie zna, są pytane ponownie po godzinie. Sprawdź na stronie wyszukiwania prosi o numer od razu, z ustawieniami zapisanymi.
Połączenia alarmowe
Numery alarmowe zawsze są kierowane, z każdego numeru wewnętrznego, nawet tych, które nie mogą wykonywać połączeń na zewnątrz. Ten rozdział dotyczy połączeń alarmowych wykonanych z telefonów obsługiwanych przez BitVoice: biura dzwoniące pod numer 911. Odpowiadanie na połączenia 911 jest profilem 911 (rozdział 77).
Co BitVoice robi przy każdym połączeniu alarmowym
- Kieruje je, zawsze: trasę, która najpierw nazywa numer; bez niej, każdy działający trunk po kolei. Ograniczenia nigdy nie zatrzymują go: numer wewnętrzny, który nie może wykonywać połączeń na zewnątrz, organizacja hostowana, która osiągnęła limit połączeń lub jest zawieszona, trunk, który osiągnął limit kanałów.
- Wysyła, gdzie jest dzwoniący: z Wyślij adres dzwoniącego włączonym (Ustawienia), połączenie zawiera adres cywilny, piętro i pokój do dostawcy jako PIDF-LO.
- Informuje ludzi na miejscu (Prawo Kari w USA): numery wewnętrzne pod Powiadom otrzymują wiadomość na swoich telefonach, każdy otwarty ekran BitVoice wyświetla alert, a adresy pod Również e-mail otrzymują e-mail z nazwą dzwoniącego, numerem wewnętrznym, miejscem, piętrem i pokojem, aby ktoś mógł spotkać się z odpowiedzialnymi przy drzwiach.
- Pozwala na powrotny połączenie: przez godzinę po połączeniu alarmowym, połączenia przychodzące nigdy nie są odrzucane, aby punkt odpowiedzi mógł zawsze odebrać połączenie.
Konfiguracja
- Sprawdź numery alarmowe w Ustawieniach (rozdział 14) (ustawione według kraju: 911 i 933 w USA).
- Dodaj każdy budynek pod Miejsca (rozdział 12), z jego adresem ulicznym i sieciami, których używają jego telefony.
- Nadaj każdemu numerowi wewnętrznemu jego miejsce, piętro i pokój.
- Upewnij się, że trasa wychodząca i trunk obsługują połączenia alarmowe; Stan (rozdział 13) ostrzega, gdy żaden z nich nie jest w stanie to zrobić.
- Wypełnij Powiadom i Również e-mail.
- Wybierz
933(w USA), aby usłyszeć adres, który Twój dostawca ma.
Pracownicy zdalni
Telefon, który rejestruje się spoza sieci swojego miejsca, jest pracownikiem zdalnym: jego strona prosi o podanie miejsca, a to miejsce jest używane zamiast. Alerty mówią, kiedy nie było potwierdzone.
Tryb awaryjny
Inna rzecz: jeden przełącznik, który kieruje każde przychodzące połączenie do jednego miejsca (ewakuacja, zamknięcie, zdarzenie). Ustaw, gdzie mają być kierowane połączenia, opcjonalny kod, taki jak *55 i rozszerzenia dozwolone do wybrania go w Ustawienia (rozdział 14); włącz go na Pulpicie (rozdział 1), lub wybierając kod (rosnące tony dla włączenia, niski ton dla wyłączenia). Czerwona belka jest wyświetlana na każdym ekranie, gdy jest włączona.
Miejsca i biurowy 911
/sitesMiejsce to budynek: jego adres ulicy i sieci, których używają jego telefony. Miejsca są tym, jak połączenie awaryjne mówi, gdzie jest dzwoniący, aż do piętra i pokoju. W Stanach Zjednoczonych Kari's Law i RAY BAUM'S Act wymagają dokładnie tego od systemów telefonicznych dla firm.
Dodawanie miejsca
Na Miejscach (rozdział 12), naciśnij Dodaj:
| Pole | Co to jest |
|---|---|
| Nazwa | to, jak ludzie je nazywają: Centrala |
| Ulica, Miasto, Województwo lub prowincja, Kod pocztowy, Kraj | adres miejsca, do którego są wysyłani odpowiedziacy |
| Sieci | zakresy adresowe używane przez jego telefony, takie jak 10.1.0.0/16; jeden na linii |
Następnie dla każdego numeru wewnętrznego podaj jego lokalizację, piętro i pokój. Health (rozdział 13) wyświetla numery wewnętrzne bez podanej lokalizacji.
Jak znaleźć miejsce telefonu
- Telefon rejestrujący się z jednej z sieci witryny znajduje się w tej witrynie, z numerem rozszerzenia piętra i pokoju.
- Gorący biurko przenosi własną witrynę, piętro i pokój biurka, a nie osobę zalogowaną (Hot desking (rozdział 36)).
- Telefon rejestrujący się spoza sieci każdej witryny jest pracownikiem zdalnym. Podczas pierwszej rejestracji z możliwością awaryjnego połączenia z nowego miejsca, użytkownik jest proszony o potwierdzenie swojego adresu na stronie telefonu; połączenia awaryjne są następnie przekazywane z tym adresem.
- Jeśli pracownik zdalny nigdy nie potwierdził, połączenie wciąż jest nawiązane, z zwykłą witryną rozszerzenia, a alerty mówią, że adres nie został potwierdzony.
Lokalne alerty
Z ustawieniem E-mail, gdy ktoś wybiera 911 w ustawieniach, osoby tam wymienione otrzymują nazwę osoby dzwoniącej, numer wewnętrzny, lokalizację, piętro i pokój, tak szybko, jak tylko rozpocznie się połączenie na numer alarmowy, aby ktoś mógł spotkać się z osobami udzielającymi pomocy przy drzwiach. Ekstensje Powiadom otrzymują wiadomość na swoich telefonach, a każdy otwarty ekran BitVoice wyświetla alert. Zobacz Połączenia alarmowe (rozdział 11).
Stan
/healthStan mówi, czy system jest gotowy do połączeń i jeśli nie, co zrobić. Każda linia mówi, co jest nie tak w zwykłych słowach i łączy się z ekranem, na którym można to naprawić. Sprawdź to po każdej zmianie o dowolnym rozmiarze.
Co sprawdza
| Sprawdź | Dlaczego to ma znaczenie |
|---|---|
| Połączenia awaryjne mogą wyjść | trasa i działająca trasa przenoszą numery awaryjne |
| Rozszerzenia bez lokalizacji awaryjnej | ich połączenia 911 nie przeniosłyby piętra ani pokoju |
| Usługa telefoniczna | SIP nasłuchuje i na którym porcie |
| Telefony niepołączone | rozszerzenia, do których nikt nie zalogował się |
| Trasy | zarejestrowane lub powód, dla którego nie są |
| Menu bez nagranego komunikatu | dzwoniący usłyszeliby ciszę |
| Strefa czasowa | harmonogramy są jej podporządkowane |
| Nagrania i ich przechowywanie | miejsce na dysku i jak długo nagrania są przechowywane |
| Certyfikaty | kiedy certyfikat TLS wygasa |
| Skarbnice kluczy | sekrety, których skarbnica nie może odczytać |
| Inne serwery | kiedy kilka serwerów dzieli bazę danych, czy każdy z nich działa |
Problemy są pokolorowane: czerwony zatrzymuje połączenia (brak trasy awaryjnej), amber powinien być sprawdzony (telefon niepołączony), a szary jest dla informacji.
Ustawienia
/settingsUstawienia zawierają wszystko o systemie jako całości. Każda sekcja zapisuje się osobno, a każde zapisywanie jest rewizją na Zmiany (rozdział 61).
| Sekcja | Co się tam znajduje |
|---|---|
| System | nazwa, kraj, strefa czasowa, język, publiczny adres telefonów i dostawców |
| Numery | test echa, numery poczty głosowej i parkowania, oraz numery awaryjne |
| Kodeki | kodeki, które telefony mogą używać, najlepsze jako pierwsze (Kodeki (rozdział 66)) |
| Nagrywanie połączeń | wyłączone, każde połączenie, lub wybrane rozszerzenia; reguły zgody; jak długo nagrania są przechowywane |
| Dźwięk | czyszczenie dla poczty głosowej i podczas połączeń |
| Ochrona | zakazy po nieudanych logowaniach, zaufane sieci, połączenia na rozszerzenie, numery premium |
| Awaryjne | wysłanie adresu dzwoniącego, kto jest powiadamiany, kto jest wysyłany e-mailem, tryb awaryjny |
| Sztuczna inteligencja | usługa sztucznej inteligencji, modele i które funkcje sztucznej inteligencji są włączone (Sztuczna inteligencja (rozdział 28)) |
| Logowanie jednokrotne | dostawca tożsamości (Logowanie jednokrotne (rozdział 58)) |
| Kompatybilność z Asterisk | AMI i ARI dla programów napisanych dla Asterisk (Kompatybilność z Asterisk (rozdział 70)) |
| Asystenci sztucznej inteligencji (MCP) | czy asystenci sztucznej inteligencji, tacy jak Claude lub ChatGPT, mogą się łączyć, i czy mogą działać (Asystenci sztucznej inteligencji (rozdział 71)) |
| Microsoft 365 i Google Workspace | ludzie i współdzielone kontakty do Kontaktów, oraz kalendarze dla osób, które są nieobecne (Kontakty (rozdział 38), Kalendarze (rozdział 39)) |
| Aplikacje mobilne | usługa push, która budzi aplikacje |
| serwer pocztowy, przez który przechodzą poczta głosowa, faksy i alerty | |
| Skarbnice kluczy | tajemnice przechowywane w AWS Secrets Manager lub Azure Key Vault |
| Konfiguracja z Git | utrzymanie konfiguracji w zgodzie z plikiem w repozytorium |
| Baza danych | SQLite lub PostgreSQL (Baza danych (rozdział 64)) |
| Certyfikat | certyfikat dla tego interfejsu i SIP przez TLS: z Let's Encrypt, zainstalowany ręcznie, lub własny certyfikat BitVoice |
Hasła i klucze nie są już wyświetlane po zapisaniu; pozostaw je puste, aby je zachować. Widzowie widzą Ustawienia z usuniętymi wszystkimi tajemnicami.
Certyfikat i Let's Encrypt
BitVoice zaczyna się od certyfikatu, który sam wygenerował, o którym przeglądarki i telefony ostrzegają. Dla serwera z publiczną nazwą, włącz Let's Encrypt pod Certyfikat: wprowadź nazwy (pbx.example.com), opcjonalnie adres e-mail, i zastosuj. BitVoice pobiera bezpłatny certyfikat z Let's Encrypt, używa go natychmiast dla interfejsu sieciowego, SIP przez TLS i Teams, oraz odnawia go około 30 dni przed jego zakończeniem (certyfikaty Let's Encrypt trwają 90 dni lub mniej). Wiersz stanu mówi, kiedy został wydany, kiedy odnawia się i, jeśli nie powiódł się, dlaczego; ponawia próbę po godzinie, potem rzadziej, w ramach limitów Let's Encrypt. Sprawdź teraz próbuje od razu.
Let's Encrypt musi mieć dostęp do serwera pod każdą nazwą z internetu, aby udowodnić, że jest ona Twoja:
- http-01 (domyślny wybór, chyba że interfejs sieciowy jest na porcie 443): żądanie do portu 80. BitVoice odpowiada na porcie 80 samodzielnie (w systemie Linux wymaga uprawnienia do otwierania portów niskich, takich jak
setcap cap_net_bind_service=+ep bitvoice), lub przekierowuje port 80 na routerze do portu interfejsu sieciowego, który również odpowiada. Wszystko inne, co przychodzi na port 80, jest przekazywane do HTTPS, tylko dla nazw certyfikatu. Gdy BitVoice nie może otworzyć portu 80, pole Let's Encrypt wyświetla powód w kolorze bursztynowym i co pozwala na to (dokładna liniasetcapdla tego programu, lubAmbientCapabilities=CAP_NET_BIND_SERVICEsystemd; lub inny program już zajmuje port). Przetestuj nazwy następnie prosi o plik testowy dla każdej nazwy przez internet, tak jak Let's Encrypt, i mówi dla każdej, czy osiągnęło BitVoice, osiągnęło coś innego, czy nie jest w DNS. Niektóre routery nie zwracają własnego adresu publicznego do środka (brak hairpin NAT): tam test nie powiedzie się z wnętrza, chociaż Let's Encrypt, z zewnątrz, powiedzie się. - tls-alpn-01: połączenie TLS z portem 443, odpowiedź na porcie interfejsu sieciowego: dla serwera, którego interfejs sieciowy jest na 443.
Inne władze ACME, które nie wymagają powiązania konta (własny step-ca firmy, usługa testowa Let's Encrypt), są wybierane pod Władzą. Nazwy wildcard wymagają dowodów DNS, których BitVoice nie wykonuje: zainstaluj te certyfikaty ręcznie. Każdy serwer klastra otrzymuje swój własny certyfikat.
Ekran w Twoim języku
Ekran BitVoice jest dostępny w języku angielskim i w trzynastu innych językach: niemieckim, francuskim, hiszpańskim, włoskim, portugalskim, niderlandzkim, polskim, szwedzkim, duńskim, norweskim bokmål, fińskim, japońskim i chińskim uproszczonym.
Wybór jednego
Każda przeglądarka ma swój język: wybierz go w menu (lista języków obok motywów), na stronie logowania lub na pierwszej stronie kreatora instalacji. Do momentu wyboru BitVoice używa języka przeglądarki, jeśli jest to jeden z nich, w przeciwnym razie angielski. Wybór jest przechowywany tylko w tej przeglądarce: dwie osoby przy jednym serwerze mogą pracować każda w swoim języku.
Wszystko na ekranach jest przetłumaczone: menu, nagłówki, przyciski, podpowiedzi, wiadomości z serwera i nazwy ogłaszane przez czytniki ekranu. Wyszukiwanie (⌘K) znajduje stronę według jej nazwy w Twoim języku lub w języku angielskim. Pozostawione bez zmian: to, co ludzie wpisują (nazwy, numery, notatki), adresy, kody, skrypty w edytorach i nazwy produktów i protokołów. Daty i numery są zgodne z ustawieniami przeglądarki.
Jak to jest tłumaczone i jak dobrze
Tłumaczenia są wykonywane przez maszynę (duży model językowy), dla każdego kawałka tekstu, który wyświetlają ekran, około 5 000 z nich; żaden z nich nie został sprawdzony przez osobę. Niektóre zdania, które ekran buduje z części (liczba i słowo), mogą brzmieć niezręcznie, a termin może być tłumaczony na dwa sposoby w dwóch miejscach. Cokolwiek nie ma tłumaczenia, takie jak ekran nowszy niż tłumaczenia, pozostaje w języku angielskim.
Pomoc zachowuje tę instrukcję w języku angielskim, tak jak została napisana, z linkiem na górze każdego rozdziału do tego samego rozdziału przetłumaczonego całościowo (również przez maszynę) na bitvoice.org.
Strona telefonu jest oddzielna: to, co słyszą dzwoniący (polecenia, menu poczty głosowej), jest w domyślnym języku poleceń (Dźwięki (rozdział 20)), chyba że rozszerzenie lub kolejka mają swój własny język.
Gdzie trafiają połączenia
Podstawowe elementy, przez które przechodzą dzwoniący: grupy i kolejki, menu i harmonogramy, skrypty i sztuczny recepcjonista, poczta głosowa, oraz diagram, który to wszystko pokazuje.
Przepływ połączeń
/flowSprawdź każdą sytuację
Sprawdź każdą sytuację, u góry Przepływ połączeń (rozdział 16), próbuje całego planu połączeń w każdej sytuacji, w której może się znajdować, a nie w próbce:
- każda kombinacja otwartych i zamkniętych godzin, które Twoje harmonogramy rzeczywiście osiągają w ciągu najbliższego roku (w tym każde święto), znalezione w 15-minutowych krokach;
- każda kombinacja przełączników dzień/noc (lub, jeśli jest ich więcej niż sześć, każdy przełączany oddzielnie);
- każda przychodząca trasa oraz każdy klawisz, który może nacisnąć dzwoniący w każdym menu, każde "jeśli nikt nie odpowie" oraz każde limity czasowe kolejki na trasie;
- każde rozszerzenie wybierające każdy numer alarmowy.
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.
Ten sam test jest uruchamiany na zmianach przed ich wprowadzeniem: propozycja z Zapytaj w prostych słowach i Przywróć tę rewizję starej wersji również wyświetlają, co ta zmiana złamie, co dzisiaj działa.
Wypróbuj połączenie
Wprowadź, kto dzwoni (rozszerzenie lub numer zewnętrzny), co wprowadza i kiedy, a następnie naciśnij Wypróbuj. BitVoice śledzi połączenie dokładnie tak, jakby to było prawdziwe, bez dzwonienia: trasę przychodzącą, harmonogramy w tym czasie, skrypty routingu (wykonują się w swojej piaskownicy), menu, grupy i kolejki, oraz co się dzieje, jeśli nikt nie odpowie. Ścieżka, którą przejmuje to połączenie, jest oznaczona; inne drogi (klawisze menu, inna strona harmonogramu) mogą być otwarte. Zielony kolor oznacza, że działa, amber oznacza, że należy to sprawdzić (niepodłączony telefon, skrypt, który wycofuje się), czerwony kolor oznacza, że połączenie kończy się tam. Zaznacz Załóż, że każdy telefon jest podłączony, aby zobaczyć plan tak, jak został zaprojektowany, a nie tak, jak jest teraz; Przylega na wybiera trunk dla tras, które przyjmują tylko jeden.
Diagram
Diagram pokazuje, gdzie połączenia z zewnątrz idą, pudełko po pudełku: każda trasa przychodząca, a następnie menu, grupy, kolejki, harmonogramy, skrypty i ludzie, do których prowadzi.
Kliknij pudełko (lub przejdź do niego za pomocą klawisza Tab i naciśnij Enter), aby zmienić, dokąd połączenia idą z niego: destynację trasy, rozszerzenie lub grupę Jeśli nikt nie odpowie, otwarte i zamknięte destynacje harmonogramu, klawisze menu (dodaj lub usuń klawisze tam), skrypt lub osobę recepcjonistki. Zapisywanie sprawdza zmianę, tak jak każdą inną, i tworzy rewizję. Otwórz pełny edytor przechodzi do strony elementu. Dodaj trasę przychodzącą dodaje trasę bez opuszczania diagramu.
Grupy dzwonienia
/ring-groupsGrupa dzwonienia to jeden numer, który dzwoni do kilku rozszerzeń: zespół sprzedaży, biurko i jego zapas, każdy w warsztacie.
Strategie dzwonienia
- Wszystko na raz: każdy członek dzwoni razem, a pierwszy, który odpowie, bierze połączenie. Inni przestają dzwonić.
- Jeden po drugim: każdy członek dzwoni przez czas dzwonienia grupy, w kolejności wymienionej. Przenieś członków strzałkami lub Alt+↑ i Alt+↓.
Członkowie, którzy są nieobecni (w spotkaniu w kalendarzu lub z trybem nie przeszkadzać), są pomijani; grupa dzwoni do innych. Członkowie z aplikacją mobilną są budzeni przez powiadomienie i dzwonieniem również.
Jeśli nikt nie odpowie
Gdy nikt nie odpowie w czasie dzwonienia, połączenie idzie do Jeśli nikt nie odpowie: poczty głosowej członka, kolejki, menu, innego zespołu. Bez ustawienia, dzwoni, aż dzwoniący się poddaje.
Grupy, kolejki czy odbiór?
| Użycie | Kiedy |
|---|---|
| Grupa dzwonienia | kilku ludzi, z których każdy może wziąć połączenie, i połączenie powinno dzwonić teraz |
| Kolejka | dzwoniący mogą musieć czekać na kogoś wolnego, i powinni słyszeć swoje miejsce |
| Grupa odbioru | każda osoba ma swoje połączenia, ale koledzy mogą odpowiedzieć za nich |
Kolejki
/queuesKolejka trzyma dzwoniących w kolejności, z muzyką, i dzwoni do następnego wolnego agenta. Jest sercem centrum kontaktowego i przydatna w każdym biurze, gdzie połączenia przychodzą szybciej, niż ludzie mogą je odebrać.
Jak są oferowane połączenia
| Strategia | Kto jest wybierany |
|---|---|
| Najdłużej bezczynny | wolny agent, który najdłużej czekał od swojego ostatniego połączenia |
| Kolanko | każdy wolny agent z kolei, kontynuując od ostatniego |
| Dzwonienie wszystkim | każdy wolny agent jednocześnie |
| Najmniej połączeń | agent, który odebrał najmniej połączeń dzisiaj |
| W kolejności (liniowej) | zawsze z samej góry listy: pierwszy wolny agent |
| Losowo | dowolny wolny agent, przez przypadek |
| Losowo ważone | przez przypadek, agenci z niższą karą są wybierani znacznie częściej |
- Kolejność: lista agentów jest w kolejności; możesz je przesuwać w górę i w dół. Kolejność i Kolanko podążają za nią.
- Kary rangują agentów (0 do 100, 0 gdy pusty): połączenia są oferowane wolnym agentom z najniższą karą, a agent z wyższą karą jest wybierany tylko wtedy, gdy nikt z niższą karą nie jest wolny. Używaj ich dla pierwszej linii i linii przepełnienia w jednej kolejce.
- Waga ranguje kolejki, które dzielą agentów: podczas gdy kolejka o wyższej wadze ma kogoś oczekującego, jej agenci przyjmują jej połączenia jako pierwsze.
- Czas oczekiwania daje agentowi czas po połączeniu przed następnym.
- Najdłuższe oczekiwanie: osoby oczekujące dłużej są kierowane do miejsca docelowego czasu oczekiwania kolejki. 0 oczekuje na zawsze.
- Muzyka w trakcie oczekiwania: osoby oczekujące słyszą muzykę kolejki (dowolną klasę z Dźwięki (rozdział 20)), systemową lub ton kolejki.
- Poinformuj oczekujących o ich miejscu w kolejce i oczekiwanym czasie oczekiwania (średnim czasie oczekiwania odebranych połączeń dzisiaj, w minutach), co jakiś czas, w języku kolejki. Słowa pochodzą z nagrań kolejki w Dźwięki (rozdział 20); do czasu ich nagrania, nic nie jest mówione.
Ekran Kolejki jest żywą tablicą: kto czeka, jak długo i stan każdego agenta.
Agenci
Agenci wybierają *45, aby zalogować się lub wylogować z każdej kolejki, i *46, aby wstrzymać (przerwę) i wznowić; wstrzymani i wylogowani agenci nie są oferowani połączenia. Tablica ma te same przyciski i pokazuje, dlaczego agent wstrzymał.
| Stan | Znaczenie |
|---|---|
| dostępny | wolny; zostanie oferowany następnemu połączeniu |
| dzwoniący | jest oferowany połączenie |
| zajęty | w trakcie połączenia |
| czas oczekiwania | właśnie skończył; czas oczekiwania jest uruchomiony |
| wstrzymany | na przerwie, z podanym powodem |
| nieobecny | na spotkaniu lub urlopie, z jego kalendarza |
| wylogowany | nie przyjmuje połączeń kolejki w ogóle |
Nadzorcy
Na Połączenia na żywo (rozdział 46), Nadzoruj dzwoni do telefonu nadzorcy; kiedy odpowie, może słuchać (słyszany przez nikogo), szepnąć (słyszany tylko przez agenta) lub wtrącić się (słyszany przez obu), i może przełączać się między nimi w trakcie połączenia.
Kolejki przyklejone i VIP
Włącz Przyklejone w kolejce i powracający połączenie (jedno odebrane w ciągu ostatnich 30 dni, lub tyle, ile ustawisz) jest oferowane najpierw agentowi, który odebrał je ostatnim razem, jeśli ten agent jest wolny; jeśli nie odpowie, kolejka kontynuuje normalnie. VIP połączenia, u dołu Kolejek, idą na przód każdej kolejki, którą wybierają, po każdym VIP już oczekującym, i są oznaczone jako VIP na tablicy.
Wydzwonienie wychodzące
/dialerWydzwonienie wychodzące (rozdział 19) wyzwala listy kontaktów dla agentów kolejki (rozdział 18): odnowienia, przypomnienia o spotkaniach, windykacje, ankiety. Każda kampania ma swoją kolejkę, listę i sposób wyzwania:
| Tryb | Jak wyzwala |
|---|---|
| Podgląd | agent prosi o następny kontakt, widzi jego szczegóły, a następnie wyzwala go (ich telefon dzwoni najpierw) lub pomija |
| Postępowy | jedno połączenie dla każdego wolnego agenta |
| Moc | ustalona liczba połączeń dla każdego wolnego agenta (1 do 3) |
| Przewidywany | BitVoice dostosowuje połączenia na agenta, nachylając się, gdy niewiele połączeń jest porzucanych i cofając się, gdy wskaźnik porzucania zbliża się do limitu |
- Dodaj kampanię: jej kolejkę, identyfikator wywołującego (numer, który kontakty widzą), godziny, w których połączenia mogą być wykonywane w strefie czasowej, jak długo dzwoni telefon kontaktu, ile prób i jak często.
- Otwórz Kontakty i Dodaj listę: plik CSV z nagłówkiem i kolumną o nazwie
number(lubphone);namei inne kolumny są wyświetlane agentowi w podglądzie. Duplikaty i uszkodzone numery są pomijane. - Nagrywaj wiadomość (w kampanii): kto dzwoni i dlaczego, oraz "naciśnij 9, jeśli nie chcesz tych połączeń". Odtwarza się ją osobie, która odbiera, gdy nie ma wolnego agenta, i, jeśli wybierzesz, po powitaniu przez automatyczny sekretarz.
- Uruchom ją. Wykonuje połączenia tylko w ramach swoich godzin i przestaje dzwonić, gdy jest wstrzymana lub nic nie jest należne.
Ludzie i maszyny. BitVoice nasłuchuje pierwszych sekund po odpowiedzi: długi, nieprzerwany pozdrowienie to automatyczna sekretarka; krótkie "hello?" i pauza to osoba. Maszynę można odłożyć (i spróbować ponownie), zostawić wiadomość lub przekazać do agenta jak każdemu innemu. W razie wątpliwości, przyjmuje odpowiedź za osobę.
Porzucone połączenia. Osoba, która odpowiedziała, gdy nie ma wolnego agenta w ciągu dwóch sekund, słyszy wiadomość i jest liczona jako porzucona. Z mocą i predykcyjnym wybieraniem, jeśli udział porzuconych połączeń w ciągu ostatnich stu odpowiedzi przekracza limit kampanii (3%, chyba że go zmienisz, zasada USA), kampania wybiera jeden wybór na wolnego agenta, aż wróci poniżej. Kampania wyświetla swoje tempo porzucania, połączenia i wolnych agentów na żywo.
Nie wybieraj. Żadna kampania nie wybiera numeru na liście nie wybieraj, niezależnie od listy, z której pochodzi; każdy, kto naciśnie 9 podczas wiadomości, jest dodawany natychmiast. Dodaj numery ręcznie lub za pomocą interfejsu API (POST /api/dnc). Dla krajowego rejestru (w USA, National Do Not Call Registry FTC: pobierz kod obszaru, który wybierasz, jako plik płaski), wybierz plik pod Krajowy rejestr i Importuj: każda linia z numerem jest liczona (212,5550100 jak FTC je zapisuje, lub jeden numer w linii), nagłówki i uszkodzone linie są pomijane i liczona. Z Zastąp ostatni import włączonym, poprzedni pobrany numer jest usuwany najpierw, więc numer, który opuścił rejestr, może być ponownie wybierany; numery dodane ręcznie lub przez naciśnięcie 9 zawsze pozostają. Rejestr musi być odświeżany co najmniej raz na 31 dni (zasady USA); strona liczy listę i ile z niej pochodzi z rejestru. Interfejs API to POST /api/dnc/import?replace=1 z plikiem jako treścią.
Dźwięki: nagrania, języki i muzyka w trakcie oczekiwania
/soundsDźwięki (rozdział 20) zawiera wszystko, co BitVoice mówi lub odtwarza osobom dzwoniącym, poza powitaniem i nagraniami menu, które są nagrywane tam, gdzie są używane.
Nagrania, w każdym języku
Nagranie to jedna rzecz, którą BitVoice mówi: "Proszę wprowadź swój PIN", "Twoja pozycja w kolejce to", cyfry, które są odczytywane. Katalog nazwisk, DISA, budzenie i ogłoszenia kolejek mówią nimi. BitVoice ma słowa każdego nagrania w języku angielskim, hiszpańskim, francuskim, niemieckim, włoskim, portugalskim, holenderskim i polskim; numery są odczytywane cyfra po cyfrze, co brzmi tak samo w każdym języku.
- Osoby dzwoniące słyszą ustawia język dla wszystkich. Kolejka, numer DISA, katalog lub numer wewnętrzny może wybrać inny.
- Każde nagranie może być nagrane w przeglądarce, przesłane (dowolny plik audio; jest przekonwertowany na audio telefoniczne) lub wykonane przez usługę mowy: z modelem mowy ustawionym w Ustawieniach, AI, jeden przycisk tworzy każde nagranie języka z jego słów. Nagrania, które już istnieją, są zachowane, chyba że poprosisz o ich zastąpienie.
- Dodaj język dla dowolnego innego języka (kod, taki jak sv, ja lub pt-BR); jego nagrania są nagrywane lub przesyłane, ze słowami angielskimi wyświetlanymi jako przewodnik.
- Brakujące nagranie w języku jest odtwarzane w języku domyślnym, a następnie w języku angielskim; bez nagrania w ogóle, osoby dzwoniące słyszą krótki ton, aby każda funkcja działała przed nagraniem jednego nagrania.
Muzyka w trakcie oczekiwania
Muzyka w trakcie oczekiwania jest grupowana w klasy (Spokojna, Jazz, Oferty sprzedaży…), każda lista utworów odtwarzanych jeden po drugim, od początku lub losowo. Prześlij utwory o długości do piętnastu minut w dowolnym formacie, który może odczytać przeglądarka; pliki MP3 i WAV mogą być również wysłane bezpośrednio do API (PUT /api/music/{class}/{name}), a BitVoice dekoduje MP3 samodzielnie (MPEG-1, 2 i 2.5 Warstwa III, z dekodorem, który daje te same próbki co minimp3).
Radio internetowa. Klasa może odtwarzać strumień zamiast swoich utworów: wprowadź adres strumienia MP3 (Icecast, Shoutcast, większość stacji radiowych internetowych) w Radio internetowym. BitVoice łączy się, gdy pierwszy rozmówca jest umieszczony w trybie oczekiwania z tą klasą, odtwarza jeden strumień dla wszystkich oczekujących i rozłącza się pół minuty po opuszczeniu przez ostatniego. Gdy strumień nie może być osiągnięty, odtwarzane są utwory klasy (lub ton oczekiwania, bez utworów), a klasa wyświetla powód.
| Kto to słyszy | Jaką muzykę |
|---|---|
| ktoś umieszczony w trybie oczekiwania | muzyka wybraną na numerze wewnętrznym osoby trzymającej, w przeciwnym razie domyślną |
| rozmówca zaparkowany | muzyka osoby, która go zaparkowała, w przeciwnym razie domyślną |
| rozmówca oczekujący w kolejce | muzyka kolejki, w przeciwnym razie domyślną |
| rozmówca oczekujący na lidera konferencji | domyślną |
Domyślna dla wszystkich może być tonem oczekiwania, więc nic się nie zmienia, dopóki nie wybierzesz muzyki. Wybranie tonu oczekiwania w kolejce lub na numerze wewnętrznym zachowuje ton tam.
Katalog wybierania według nazwy
/directoriesKatalog wybierania według nazwy (rozdział 22) pozwala rozmówcom na połączenie z kimś bez znajomości ich numeru: wpisują pierwsze litery nazwy na klawiaturze (2 dla ABC, 3 dla DEF, aż do 9 dla WXYZ) i są łączeni.
- Dodaj katalog, nazwij go i podaj numer (411, na przykład) lub pozostaw pusty i użyj go jako opcji menu.
- Wybierz, co rozmówcy wpisują: nazwisko (zwykle), imię, lub oba.
- Wybierz, kto jest wymieniony, lub nikt, aby wymienić wszystkich z telefonem.
Rozmówcy słyszą "Proszę wpisać pierwsze trzy litery nazwy osoby". Jeden pasujący wynik jest łączony od razu. Kilka pasujących wyników jest odczytywanych, po osiem na raz: nazwa każdej osoby, a następnie "aby połączyć się z tą osobą, naciśnij 1", 2 itd., z 9 dla więcej nazw. Brak pasującego wyniku: "Nie ma pasującego", a oni próbują ponownie (trzy próby).
Wymawiane nazwy: nagrywaj nazwę każdej osoby na ich numerze wewnętrznym (Wymawiana nazwa: nagrywaj w przeglądarce lub przesyłaj plik), a katalog ją wymawia; do czasu, gdy odczytuje numer wewnętrzny. Własne słowa katalogu pochodzą z nagrań katalogu w Dźwiękach (rozdział 20), w jego języku.
Wydzwonienie (DISA)
/dial-inWydzwonienie wewnątrz (rozdział 23) (DISA, "bezpośredni dostęp do systemu wewnętrznego") pozwala komuś na połączenie z zewnątrz, udowodnienie, kim są, i ponowne połączenie się przez biuro: połączenie wychodzące ma identyfikator biura, jego trasy i stawki, jakby byli przy swoim biurku.
- Dodaj wydzwonienie, i ustaw PIN (4 do 10 cyfr), numery dozwolone do korzystania z niego (Tylko z tych numerów), lub oba. Jeden z nich jest wymagany.
- Wybierz numer wewnętrzny, z którego połączenia są wykonywane: jego pozwolenie na połączenia zewnętrzne, identyfikator i trasy wychodzące mają zastosowanie. Musi on być dozwolony do połączeń zewnętrznych.
- Przypisz mu numer do wybrania wewnątrz i prześlij numer telefonu do niego na Trasach połączeń (rozdział 8) (wybierz wydzwonienie jako miejsce przeznaczenia).
Rozmówcy słyszą "Proszę wpisać swój PIN, a następnie naciśnij kratkę", a następnie "Proszę wpisać numer do połączenia, a następnie naciśnij kratkę", i są łączeni. Słowa pochodzą z nagrań wydzwonienia w Dźwiękach (rozdział 20).
Boty głosowe (AudioSocket)
/voice-botsBota głosowego voice bot (rozdział 24) jest programem własnym (agentem AI, IVR rozpoznającym mowę, nagrywarką), który przyjmuje połączenia za pomocą AudioSocket, prostego protokołu używanego przez Asterisk: BitVoice odpowiada na połączenie, otwiera połączenie TCP z botem i wysyła identyfikator UUID połączenia, a następnie dźwięk wybierającego jako 20 ms ramki 8 kHz 16-bitowego liniowego dźwięku i każde naciśnięte klawisze; dowolny dźwięk, jaki bot wysyła z powrotem, jest odtwarzany wybierającemu. Boty i łączniki usług mowy napisane dla AudioSocket Asterisk działają z BitVoice bez zmian.
- Dodaj bota głosowego: jego nazwę, adres bota (
10.0.0.9:9092) i, opcjonalnie, numer do wybierania go. - Wybierz, gdzie wybierający trafia jeśli bot nie może przyjąć połączenia lub je przerwie (osoba, kolejka, poczta głosowa): wymagane, aby żaden wybierający nie został kiedykolwiek upuszczony, ponieważ bot jest wyłączony.
- Wysyłaj połączenia do niego z Call routing (rozdział 8), opcji menu, harmonogramu lub przełącznika.
Gdy bot wysyła zakończenie AudioSocket, połączenie kończy się; gdy wybierający kończy połączenie, bot otrzymuje jeden. Bot, do którego nie można dotrzeć w ciągu trzech sekund lub którego połączenie zostaje przerwane bez zakończenia, przekazuje wybierającego do awaryjnego, a awaria jest rejestrowana.
Aby wprowadzić program do połączenia już w trakcie (nasłuchujący transkrybent, asystent, który szepce do nikogo), użyj zewnętrznych multimediów ARI: zobacz Asterisk compatibility (rozdział 70).
Przełączniki dziennie/nocą
/togglesPrzełącznik day/night toggle (rozdział 25) jest przełącznikiem dla przepływu połączeń (FreePBX nazywa to kontrolą przepływu połączeń). Połączenia wysłane do niego trafiają do jego normalnego miejsca przeznaczenia lub do innego, gdy ktoś przełączył go: biuro zamyka się wcześnie z powodu burzy, ktoś wybiera *281 w drodze na zewnątrz, a połączenia trafiają do poczty głosowej, aż do przełączenia z powrotem rano. Pozostaje tak, jak zostało pozostawione, przez ponowne uruchomienia.
- Dodaj przełącznik, nadaj mu kod (1 do 3 cyfr: wybierany po
*28) i wybierz, gdzie połączenia trafiają normalnie i gdy są przełączone. Każda strona może być harmonogramem, więc przełącznik może znajdować się przed godzinami otwarcia i zastępować je. - Wybierz, kto może przełączyć go z telefonu (nikt nie wybrany pozwala na każde rozszerzenie).
- Wysyłaj połączenia do niego z Call routing (rozdział 8), opcji menu lub harmonogramu, jak każde inne miejsce przeznaczenia.
Przełącz go, wybierając *28 i jego kod (ton rosnący: przełączony; ton malejący: z powrotem do normalnego), z przełącznikiem obok na stronie Przełączniki, lub za pomocą interfejsu API (POST /api/toggles/{id}/state). Klucz lampy zajętej obserwujący *281 jest włączony, gdy ten przełącznik jest przełączony, więc osoba, która zamyka, może go zobaczyć ze swojego biurka. Kod przełącznika sam jest na Kody funkcji (rozdział 32).
Harmonogramy
/schedulesHarmonogram wysyła połączenia w jednym kierunku, gdy jesteś otwarty, i w innym, gdy jesteś zamknięty. Wskaż trasę przychodzącą na harmonogram, a harmonogram na menu (otwarte) i pocztę głosową (zamkniętą).
Godziny otwarcia
Każda linia godzin to zestaw dni i czas od i do. Dozwolone są wiele linii: od poniedziałku do piątku 9:00 do 17:00, i sobota 10:00 do 13:00. Godziny mogą przekraczać północ (22:00 do 06:00) dla nocnych zmian.
Święta
Święta liczą się jako zamknięte cały dzień, niezależnie od godzin. Dodaj każdą datę z nazwą; nazwa jest wyświetlana na Przepływ połączeń (rozdział 16), gdy próbujesz połączenia w tym dniu.
Strefa czasowa
Strefa czasowa to ta z Ustawień. Gdy zegary się zmieniają, harmonogramy podążają za czasem lokalnym.
Skrypty (JavaScript i Lua)
/scriptsSkrypt decyduje, gdzie połączenie idzie, gdy menu, harmonogramy i grupy nie są wystarczające: dzwoniący z jednej okolicy do jednego biura, numery VIP prosto do osoby, decyzja z Twoich własnych danych. Lub, ustawiony na Uruchamia całe połączenie, odpowiada na połączenie i prowadzi je, jak plan połączeń Asterisk lub skrypt AGI: nagrania i mowa, klawisze, nagrania, dzwonienie do ludzi, przekazywanie (poniżej). Skrypty są pisane w JavaScript lub Lua na Skrypty (rozdział 27).
Bezpieczne przez projekt
- Skrypt routingu działa przez co najwyżej 200 ms. Jeśli nie powiedzie się lub zajmie zbyt dużo czasu, połączenie idzie do zapasowego skryptu, więc błąd nigdy nie traci połączenia. (Skrypty połączeń mają własne limity, poniżej.)
- Działa w piaskownicy: nie może dotknąć sieci ani dysku. Skrypt routingu tylko wybiera; skrypt połączenia może wykonać tylko kroki wymienione poniżej, do własnego połączenia.
- Połączenia awaryjne nigdy nie uruchamiają skryptów.
Co widzi skrypt
call ma:
| Pole | Co to jest |
|---|---|
from, fromName | numer i nazwa osoby dzwoniącej |
to | numer wybierany |
direction | inbound lub internal |
trunk | łącze, na którym przyjdzie połączenie |
weekday, hour, minute | aktualny czas (0 to niedziela) |
date | YYYY-MM-DD |
Co zwraca
Destynacja, {type, target}: type to extension, ringgroup, queue, menu, schedule, voicemail lub hangup, a target to jego numer. Brak zwróconej wartości używa domyślnego przejęcia. log("text") zapisuje do listy uruchomienia skryptu.
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
Używanie skryptu
Wskazać trasę przychodzącą, klawisz menu lub harmonogram na skrypt, jak na każde miejsce docelowe. Test uruchamia go z połączeniem, które opisujesz, bez umieszczania połączenia; lista uruchomień pokazuje każde prawdziwe uruchomienie ze swoją decyzją, czasem trwania i ewentualnym błędem. Przepływ połączenia (rozdział 16) również uruchamia skrypty podczas próby połączenia.
Skrypty, które uruchamiają całe połączenie
Wybierz Uruchamia całe połączenie. Skrypt następnie odbiera połączenie i przechodzi od góry do dołu, każdy krok czekając, aż zostanie wykonany:
| Krok | Co robi |
|---|---|
play(name) | odtwarza komunikat z Dźwięki (rozdział 20) w języku rozmówcy (goodbye, digit-5...), digits:1234, lub dźwięk: beep, confirm, error, off, hold. Komunikat, który jeszcze nie został nagrany, to sygnał dźwiękowy. |
say(text) | wypowiada słowa za pomocą usługi mowy w Ustawieniach, AI (sygnał dźwiękowy bez niej) |
collect({max, timeout, interDigit, end, say, prompt}) | gromadzi klawisze: maksymalnie max (32), czekając timeout sekund na pierwszy (5) i interDigit na każdy następny (3), aż do end (#). say lub prompt pyta najpierw. Zwraca klawisze, "" gdy nie ma żadnych. |
record({box, seconds, beep}) | nagrywa wiadomość do skrzynki pocztowej rozszerzenia, aż do # lub czasu; zwraca sekundy |
wait(seconds) | czeka, zwracając wciśnięty klawisz |
dial(destination, ringSeconds) | dzwoni z sygnałem dzwonienia słyszanym przez rozmówcę. Odpowiedziane: rozmawiają i skrypt jest zakończony (true). Nieodpowiedziane: false, a skrypt kontynuuje. |
transfer(destination) | przekazuje połączenie; skrypt jest zakończony |
hangup() | kończy połączenie |
log(text) | zapisuje do listy uruchomień |
Miejsce docelowe to numer (rozszerzenie, grupa dzwonienia lub kolejka tutaj, w przeciwnym razie zewnętrzny numer przez trasę wychodzącą; nigdy numer alarmowy) lub {type, target} jak wyżej. Wciśnięty klawisz podczas dźwięku zatrzymuje go; play i say zwracają go i następny collect zaczyna się od niego. Zwrócenie miejsca docelowego wysyła połączenie tam.
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 ma takie same kroki (collect{max = 1}). Nadaj skryptowi Numer, aby go wywołać z rozszerzenia.
Jego limity utrzymują połączenie w bezpieczeństwie: własny kod skryptu może być uruchomiony maksymalnie przez kwadrans sekundy między dwoma krokami; połączenie może mieć maksymalnie 1 000 kroków; a cały skrypt zatrzymuje się po swoim Najdłuższym uruchomieniu (10 minut, chyba że powiesz inaczej, 60 maksymalnie). Gdy awaryjnie zatrzymuje się, jest zatrzymywany lub kończy się bez zakończenia połączenia lub przekazania go dalej, połączenie idzie do swojego Domyślnego miejsca; dzwoniący, który kończy połączenie, zatrzymuje je natychmiast. Spróbuj uruchamia skrypt z klawiszami, które mówisz, że dzwoniący naciska, i wyświetla każdy krok, bez umieszczenia połączenia.
Recepcjonista AI, triage poczty głosowej i pytania
/receptionistsFunkcje AI wykorzystują usługę AI ustawioną w Ustawieniach (rozdział 14): usługę zgodną z OpenAI (OpenRouter domyślnie) lub taką, którą uruchamiasz samodzielnie. To, czego potrzebują, jest wysyłane tam, więc wybierz usługę, której ufasz z połączeniami; dla centrum 911, jego własne chmura rządowa jest uważana za lokalną.
Recepcjonista AI
Wybierz recepcjonistę jako miejsce, do którego trafiają połączenia: trasę, opcję menu lub Jeśli nikt nie odpowie rozszerzenia. Mówi, że jest zautomatyzowany, odpowiada tylko z Zatwierdzonej informacji, przyjmuje wiadomość, rezerwuje callback (zobacz Callbacks (rozdział 30)), lub przekazuje do Osoby jest. Naciśnięcie 0 lub poproszenie o osobę zawsze sięga do kogoś, i tak samo jest w przypadku problemu z usługą AI lub modelem mowy: nadawcy nigdy nie są zablokowani z nią.
Modele
Model wykonuje pracę z tekstem: streszczenia, odpowiedzi recepcjonisty i pytania w zwykłych słowach. Konwersja mowy na tekst wymaga modelu, który przyjmuje audio; ustaw go jako Model mowy na tekst (np. google/gemini-2.5-flash na OpenRouter), aby użyć modelu tylko do tekstu dla reszty, takiego jak meta-llama/llama-3.3-70b-instruct.
Rozpoznawanie mowy w budynku
Mowę można spisać bez żadnego modelu językowego: rozpoznawacz mowy (whisper) słucha audio i zapisuje to, co zostało powiedziane, nic więcej. Kto zapisuje mowę, w ustawieniach AI, ma trzy opcje:
- Model powyżej: audio jest wysyłane do usługi AI, której model musi przyjmować audio.
- Ten serwer: BitVoice uruchamia whisper samodzielnie. Wybierz Model whisper i zapisz: BitVoice pobiera go raz z projektu whisper.cpp (
baseto 60 MB;small,mediumilarge-v3-turbosą bardziej precyzyjne i wolniejsze; wszystkie rozumieją około 100 języków), sprawdza go pod kątem opublikowanego SHA-256 i uruchamia whisper.cpp'swhisper-serverna 127.0.0.1 obok niego, restartując go, jeśli się zatrzyma. Audio nadawców nigdy nie opuszcza komputera i nic nie jest płatne za połączenie.whisper-server(licencja MIT) jest dostarczany wraz z pobraniami BitVoice obok programu, a instalatory umieszczają go obok BitVoice; BitVoice również znajduje jeden zainstalowany samodzielnie (brew install whisper.cpp). Ustawienia pokazują, gdzie się znajduje (pobieranie modelu, uruchamianie, działanie lub dlaczego nie jest), i tak samo jest w przypadku Health (rozdział 13). Podczas gdy nie działa, transkrypcje nie powiodą się i powiedzą, dlaczego: nigdy nie są wysyłane gdzie indziej zamiast tego. - Usługa rozpoznawania mowy: whisper.cpp's
whisper-serverna innym komputerze w budynku (http://192.168.1.20:8178/inference), dla jednej maszyny z GPU obsługującej kilka serwerów BitVoice, lub dowolnej usługi zgodnej z OpenAI…/audio/transcriptions(z Jej modelem, takim jak whisper-1, i Jej kluczem). Zwykłyhttpjest akceptowany tylko na tym komputerze lub adresie sieci prywatnej; wszystko inne musi byćhttps. Aby uruchomić jeden: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.
Fakty podane podczas rozmowy (bez modelu językowego)
Każdy transkrypt jest również czytany przez reguły, bez modelu językowego, dla faktów, które notuje operator: co się stało, gdzie, ile osób jest rannych (lub że nikt nie jest), stan (oddech, przytomność, krwawienie ...), zagrożenia (pożar, dym, gaz, broń, chemikalia, paliwo), pojazdy, jaki jest stosunek osoby dzwoniącej do osoby potrzebującej pomocy, oraz numer telefonu do kontaktu. Każdy fakt jest wyświetlany z zdaniem, z którego pochodzi, i stroną, która to powiedziała, w Faktach podanych podczas rozmowy transkryptu. Bez modelu, streszczenie jest tworzone tylko na podstawie tych faktów, i o tym informuje.
- Nic nie jest dodawane, czego nikt nie powiedział. "Nikt nie jest rannych" jest faktem samym w sobie; osoba dzwoniąca przekazująca słowa kogoś innego ("ona mówi, że on nie oddycha") jest oznaczona jako zgłoszone; "24 Pine Lane. Nie, przepraszam, 42" zachowuje 42; goły "nie" odpowiada na pytanie zadane bezpośrednio przed nim.
- Jest to wierny, a nie kompletny: słowa, których nie zna, są pomijane. Na trzech zestawach wymyślonych połączeń 911 (bez słów prawdziwych osób dzwoniących) znajduje:
| Zestaw | Fakty znalezione | Fakty znalezione, których nikt nie oczekiwał |
|---|---|---|
| Szkoleniowy (reguły zostały napisane na jego podstawie) | 41 z 41 | 0 |
| Hold-out, oceniany na zimno, przed napisaniem jakiejkolwiek reguły z niego | 27 z 40 (67%) | 2 |
| Hold-out, po drugiej rundzie reguł napisanych z jego błędów | 40 z 40 | 0 |
| Zapieczętowany, oceniany na zimno (żadna reguła nie jest nigdy napisana z niego) | 23 z 43 (53%) | 3 |
Wynik zapieczętowany jest tym, którego można oczekiwać w przypadku połączeń, których nie widział, a trzy zestawy zostały napisane przez tych samych ludzi, co reguły, więc prawdziwe połączenia będą prawdopodobnie gorzej radzić sobie. Przeczytaj fakty obok transkryptu, nigdy zamiast niego.
Większe modele wymagają więcej procesora: serwer, który zapisuje wiele połączeń na raz, powinien zacząć od base, lub użyć jednej maszyny z GPU jako usługi rozpoznawania mowy dla budynku. Na komputerach Apple whisper używa GPU.
Triage poczty głosowej
Z włączoną opcją Transkrybuj i podsumuj pocztę głosową, każda wiadomość jest również oznaczona jako pilna, normalna lub niska priorytet, z jej rodzajem (sprzedaż, wsparcie, rozliczenia...). Pilne wiadomości wywołują alert na ekranie każdego administratora.
Zapytaj w prostych słowach
Na Zmiany (rozdział 61), opisz zmianę ("wyślij połączenia sprzedażowe na pocztę głosową po 17:00"). AI proponuje ją, BitVoice sprawdza ją jak każdą inną zmianę i pokazuje dokładnie, co się zmieni. Nic nie zmienia się, dopóki nie naciśniesz Zastosuj, i staje się rewizją, którą możesz przywrócić. Hasła są nigdy nie są wysyłane do AI.
Poczta głosowa
/voicemailKażde rozszerzenie może mieć skrzynkę pocztową. Dzwoniący, którzy nie są odpowiedziani, słyszą jej powitanie i zostawiają wiadomość; osoba słyszy ją na swoim telefonie, czyta ją na ekranie lub otrzymuje ją mailem.
Włączanie
W rozszerzeniu włącz Pocztę głosową. Jeśli nikt nie odpowiedział jest następnie ustawiony na skrzynkę pocztową. Nadaj jej PIN (4 do 10 cyfr): otwiera skrzynkę pocztową z innego telefonu i loguje osobę w portalu pracowników i na stanowiskach pracy.
| Ustawienie | Co robi |
|---|---|
| Najdłuższa wiadomość | 10 do 900 sekund (180 domyślnie) |
| Email nowych wiadomości | na adres e-mail rozszerzenia, z załączoną wiadomością |
| Powitanie | nagrane w przeglądarce, przesłane lub nagrane z telefonu; bez niego dzwoniący słyszą sygnał dźwiękowy |
Słuchanie
- Z telefonu samego rozszerzenia, wybierz
*97: wiadomości są odtwarzane od najnowszych; klawisze odtwarzają, kasują lub zachowują każdą z nich. - Z dowolnego innego telefonu, wybierz
*97, wprowadź numer skrzynki pocztowej i jej PIN. - Na Pocztę głosową (rozdział 29) (administratorzy) lub w portalu pracowników (osoba): odtwórz, oznacz jako usłyszane, usuń.
- Światło wiadomości na telefonie jest włączone, dopóki są nowe wiadomości.
Z AI
Z Transkrypcją i podsumowaniem poczty głosowej włączonym (Ustawienia, AI), każda wiadomość jest wypisana, podsumowana w linii i oznaczona jako pilna, normalna lub niska z jej rodzajem (sprzedaż, wsparcie, rozliczenia). Pilne wiadomości podnoszą alert na ekranie każdego administratora. Zobacz AI (rozdział 28).
Czyszczenie dźwięku
Czyszczenie dźwięku (Ustawienia) usuwa stały szum tła i wyrównuje poziomy, gdy wiadomości są zapisywane, więc wiadomość z samochodu lub z zatłoczonej ulicy jest łatwiejsza do usłyszenia.
Callbacki
/callbacksLudzie, którzy poprosili o oddzwonienie. AI recepcjonista rezerwuje jeden, gdy dzwoniący poprosi: zbiera ich imię, numer do wywołania (oferując numer, z którego dzwoni), dogodny czas i o co chodzi, odczytuje im to, i rezerwuje tylko wtedy, gdy dzwoniący zgadza się. Nigdy nie obiecuje dokładnego czasu. Administratorzy mogą również dodawać callbacki ręcznie.
Nowy callback wyświetla alert na każdym otwartym ekranie i jest wysyłany do właściciela skrzynki odbiorczej Odbierz wiadomości dla recepcjonisty, gdy ta rozszerzenie ma adres e-mail i e-mail jest skonfigurowany w Ustawieniach.
Aby oddzwonić, wybierz swoje rozszerzenie i naciśnij Oddzwonić: twoje telefon dzwoni najpierw, a gdy odbierzesz, BitVoice wywołuje numer dla ciebie, z twoimi normalnymi trasami i identyfikatorem dzwoniącego. Następnie dodaj notatkę, jeśli chcesz, i naciśnij Gotowe (lub Anuluj). Zakończone callbacki są przechowywane poniżej otwartych i mogą być ponownie otwarte.
Linki połączeń i połączenia ze strony internetowej
/call-linksLink połączenia to adres internetowy, który dzwoni do Twojego biznesu z dowolnej przeglądarki: nie ma numeru telefonu, nie ma aplikacji. Umieść go w podpisie e-mail, wydrukuj jego kod QR na ulotce lub w oknie sklepu, lub wklej przycisk strony internetowej do swojej strony.
W Połączenia (rozdział 31) dodaj link, wybierz gdzie mają trafiać połączenia (rozszerzenie, grupa, kolejka, menu, recepcjonista AI, harmonogram lub poczta głosowa) i zapisz: strona wyświetla jego adres i kod QR. Osoba dzwoniąca widzi tytuł i słowa, które ustawiasz, podaje swoje imię, jeśli o to poprosisz, zezwala na mikrofon i naciska Wywołaj teraz; klawiatura działa dla menu. Osoba, która odbiera, widzi Web: i imię osoby dzwoniącej.
Wyłącz Otwórz , aby zamknąć linię (strona mówi o tym). Połączenia na raz ogranicza liczbę osób, które mogą dzwonić przez jeden link (5, chyba że ustawiono inaczej). Adres zawiera długi losowy fragment, więc nie może być zgadnięty; powtarzające się błędne adresy są blokowane jak nieudane logowania. Mikrofony dzwoniących potrzebują, aby strona była obsługiwana przez HTTPS, więc rozdaj adres HTTPS.
Codzienne połączenia
Co ludzie robią na swoich telefonach każdego dnia, oraz co ustawiają dla siebie: przekierowania, follow-me, odbiór, sale konferencyjne, paging, hot deski, faksy i wiadomości tekstowe.
Kody funkcji, przekazywanie i szybkie numery
/codesKody funkcji to to, co ludzie wybierają na swoich telefonach, aby zmienić swoje własne ustawienia i uzyskać dostęp do funkcji. Działają one na każdym telefonie, telefonie biurkowym lub softfonie, bez konieczności konfigurowania czegokolwiek na samym telefonie. Rosnący ton oznacza wykonanie; malejący ton oznacza odmowę.
Kody w skrócie
| Kod | Co robi |
|---|---|
*72 | przekieruj każde połączenie (następnie numer i #, lub numer bezpośrednio po: *722125550199) |
*73 | zatrzymaj przekierowanie każdego połączenia |
*90 / *91 | przekieruj podczas połączenia / zatrzymaj |
*52 / *53 | przekieruj, gdy nie odpowiedziano / zatrzymaj |
*78 / *79 | nie przeszkadzaj włączony / wyłączony |
*76 | przełącz nie przeszkadzaj (rosnący ton: teraz włączony) |
*21 | przełącz follow-me włączony i wyłączony |
*8 | odpowiedz na połączenie dzwoniące w Twojej grupie odbioru |
** i rozszerzenie | odpowiedz na połączenie dzwoniące na tym rozszerzeniu |
*80 i rozszerzenie | interkom: ten telefon odpowiada na swoim głośniku |
*0 i kod | szybki wybór |
*62 | wezwanie do pracy: usłysz je, zarezerwuj je (cztery cyfry, takie jak 0630) lub anuluj je (gwiazdka) |
*68 i cyfra | status pokoju, do obsługi hotelowej |
*28 i kod przełącznika | przełącz przełącznik dzień/noc (rozdział 25) lub wróć |
*32 | zablokuj ostatniego dzwoniącego: ostatni zewnętrzny numer, który dzwonił na ten telefon, trafia na listę blokowania (Ochrona przed spamem (rozdział 56)) |
*43 | test echa |
*97 | Twoja skrzynka pocztowa |
70 | zaparkuj połączenie (przenieś je tutaj); 71 do 79 odbiera je |
*45 / *46 | agenci kolejki: zaloguj się lub wyloguj / wstrzymaj lub wznowij |
*33 / *34 | zaloguj się / wyloguj na gorącym biurku |
*7 / *8 podczas połączenia | wstrzymaj i wznowij nagrywanie (płatności kartą) |
Przekazywanie
*72przekazuje każde połączenie. Wybierz je, usłysz ton, a następnie wybierz numer i #. Lub wybierz numer bezpośrednio po kodzie.*90przekazuje połączenia, które przychodzą, gdy jesteś na połączeniu.*52przekazuje połączenia, które nie są odebrane w ramach Twojego czasu dzwonienia.*73,*91i*53anulują je.
Przekazywanie do innego rozszerzenia używa własnych ustawień tego rozszerzenia (jego skrzynki pocztowej, jego follow-me), do czterech skoków, aby dwie osoby przekazujące do siebie nie utworzyły pętli. Przekazywanie do zewnętrznego numeru przechodzi przez trasę wychodzącą, jakby osoba wybrała go, i wymaga, aby rozszerzenie było dozwolone do połączeń zewnętrznych.
Przekazywanie jest stanem na żywo, a nie konfiguracją: ustawienie go nie tworzy żadnej rewizji, a jest zachowywane podczas ponownych uruchomień. Rozszerzenia (rozdział 3) i portal personelu pokazują i zmieniają je również.
Nie przeszkadzać
*78 włączone, *79 wyłączone, *76 przełącza. Z nie przeszkadzaj włączone, połączenia są kierowane do skrzynki pocztowej lub do miejsca docelowego nieodebranej odpowiedzi. Nie przeszkadzaj ustawione ręcznie wygrywa z kalendarzem (Kalendarze (rozdział 39)). Nadal dzwonią połączenia awaryjne.
Follow-me
*21 przełącza tryb follow-me włączony i wyłączony, dla rozszerzeń, które mają ustawione numery follow-me (na rozszerzeniu lub w portalu pracowników). Piersiście dzwoni telefon komutowany, a następnie numery follow-me, jeden po drugim lub wszystkie naraz. Na numerze zewnętrznym z naciśnij 1 osoba słyszy sygnał i naciska 1, aby odebrać połączenie; voicemail lub cisza nigdy nie robi, a po 15 sekundach połączenie przechodzi dalej.
Odbieranie połączenia kogoś innego
*8odbiera najstarsze połączenie dzwoniące komukolwiek w Twojej grupie odbioru (ustawionej na każdym rozszerzeniu; nazwy są porównywane bez uwzględnienia wielkości liter).**i rozszerzenie odbiera połączenie dzwoniące na to rozszerzenie:**101.
Interkom
*80 i rozszerzenie wywołuje je z auto-odpowiedzią: jego telefon odpowiada na głośniku, a obie strony rozmawiają. Yealink, Grandstream i Snom czytają nagłówek Call-Info BitVoice, Poly czyta Alert-Info; niektóre telefony wymagają zezwolenia na interkom w swoich własnych ustawieniach. Rozszerzenie może odmówić interkomu; wtedy połączenie dzwoni normalnie. Bramy wejściowe nigdy nie przyjmują interkomu.
Szybkie numery
*0 i kod wybiera zapisany numer: *05. Szybkie numery firmy są na tej stronie; każda osoba może mieć swoje własne na swoim rozszerzeniu lub w portalu pracowników, a ich numery mają pierwszeństwo przed firmowymi o tym samym kodzie. Kody są od 1 do 3 cyfr.
Zmiana kodów
Każdy kod może być zmieniony na Kody funkcji (rozdział 32), lub wyłączony słowem off. Dwie funkcje nie mogą dzielić tego samego kodu, a żaden kod nie może być numerem rozszerzenia lub grupy: BitVoice wskazuje, który z nich koliduje. Numery echa, voicemail i parkowania są w Ustawieniach (rozdział 14).
Portal pracowniczy
Portal pracowniczy pozwala każdemu zająć się własnymi połączeniami bez administratora: nie przeszkadzać, przekierowywać, śledzić, numery szybkiego wybierania, pocztę głosową i jej powitanie, ich PIN, oraz listę własnych połączeń. Jest on dostępny pod adresem #/me na adresie serwera i jest połączony z stroną logowania.
Logowanie
Ludzie logują się za pomocą swojego numeru rozszerzenia i PIN-u poczty głosowej: tego samego PIN-u, który otwiera ich pocztę głosową z telefonu i loguje się na stanowiskach pracy. Rozszerzenie bez PIN-u nie może się zalogować; administrator ustawia jeden na rozszerzeniu.
Powtarzające się nieudane próby logowania z jednego adresu zamykają go na 10 minut. Sesja portalu sięga tylko do ustawień osoby: nigdy do innego rozszerzenia, konfiguracji lub nagrania kogoś innego.
Co ludzie mogą robić
| Zakładka | Co jest tam |
|---|---|
| Gdzie idą połączenia | nie przeszkadzać; przekierowywanie każdego połączenia, gdy zajęty i gdy nie odpowiedziano; numery śledzące; własne numery szybkiego wybierania |
| Poczta głosowa | wiadomości do odtworzenia i usunięcia, z transkrypcjami i podsumowaniami, gdy włączone jest AI; nagrywać lub przesyłać powitanie |
| Twoje połączenia | własne połączenia osoby, najnowsze jako pierwsze, bez nagrań |
| PIN | zmienić PIN, podając bieżący |
Przekierowywanie i nie przeszkadzać ustawione tutaj są takie same, jak te ustawione z telefonu za pomocą kodów funkcji (Kody funkcji (rozdział 32)): którejkolwiek z nich było ustawione jako ostatnie, obowiązuje. Numery śledzące i numery szybkiego wybierania są częścią konfiguracji rozszerzenia, więc ich zmiana tworzy rewizję na Zmiany (rozdział 61), zarejestrowaną jako własna osoba.
Czat i obecność
Zakładka Czat na portalu wyświetla listę współpracowników wraz z ich aktualnym stanem: dostępny, w trakcie połączenia, czeka na połączenie, nie dostępny (nie przeszkadzać, spotkanie lub urlop z kalendarza, z podaniem powodu) lub offline (brak połączenia z telefonem), oraz status wprowadzony przez użytkownika ("Przerwa na lunch, powrót o 14"). Wybierz osobę, aby wysłać jej wiadomość; wiadomości są dostarczane natychmiast, a liczba obok nazwy wskazuje nieprzeczytane wiadomości. Pokoje zespołowe (Ustawienia, Czat pracowników) to rozmowy grupowe lub dla wszystkich, gdy pokój nie zawiera listy członków.
Wiadomości są widoczne tylko dla osób biorących udział w rozmowie: administratorzy zarządzają pokojami, ale nie mają dostępu do ich zawartości. Ustawienia, Czat pracowników umożliwiają wyłączenie czatu oraz ustalenie czasu przechowywania wiadomości (0 oznacza przechowywanie najnowszych 1000 wiadomości w każdej rozmowie).
Pokoje konferencyjne
/conferencesPokój konferencyjny to numer, który ludzie wybierają, aby rozmawiać ze sobą. Pracownicy łączą się z nim z własnych stanowisk; osoby spoza firmy łączą się za pomocą tras przychodzących lub opcji menu, które wskazują na pokój.
Konfigurowanie pokoju
- Otwórz Pokoje konferencyjne (rozdział 34) i kliknij Dodaj pokój konferencyjny.
- Nadaj mu numer (dowolny wolny numer, domyślnie 500) i nazwę.
- Opcjonalnie ustaw PIN. Dzwoniący słyszą sygnał, wprowadzają PIN i naciskają #. Trzy nieprawidłowe PIN-y i połączenie kończy się.
- Opcjonalnie ustaw PIN lidera, inny niż PIN. Osoba, która go wprowadzi, dołącza jako lider.
- Aby umożliwić osobom spoza firmy dołączenie, wskąż trasę przychodzącą (lub klucz menu) na pokój.
Opcje
| Opcja | Co robi |
|---|---|
| Czekaj na lidera | wszyscy inni słyszą sygnał oczekiwania, aż lider dołączy; gdy ostatni lider opuści pokój, pokój zostaje zamknięty i wszyscy są rozłączeni. Wymaga PIN-u lidera. |
| Członkowie dołączają z wyciszeniem | na briefingi i wykłady: liderzy mówią, członkowie słuchają. Członek naciska 1, aby poprosić o możliwość mówienia, a lider odcisza go. |
| Nagrywaj pokój | cały pokój jest nagrywany jako jeden nagranie w Historii połączeń (rozdział 47), chyba że nagrywanie jest wyłączone dla całego systemu |
| Sygnały, gdy ludzie dołączają i opuszczają | włączone domyślnie |
| Najwięcej osób na raz | 50 domyślnie, do 200 |
Klucze podczas połączenia
1wycisza i odcisza użytkownika (w pokoju, w którym członkowie są wyciszeni, prosi o możliwość mówienia).2, dla lidera, zamyka pokój, aby nikt nowy nie mógł dołączyć, i odblokowuje go.
Podczas używania pokoju
Strona wyświetla każdy używany pokój: kto jest w środku, kto mówi (zielone światło), kto jest wyciszony, kto poprosił o możliwość mówienia, i kto wciąż czeka na lidera. Administrator może wyciszyć lub odciszyć każdego, usunąć kogoś, i zablokować lub odblokować pokój.
Wszyscy w pokoju słyszą wszystkich innych, którzy nie są wyciszeni, mieszanych przez BitVoice; każdy telefon może używać własnego kodeka. Nagranie połączenia jest przechowywane dla każdej osoby, oraz jedno dla samego pokoju z jego długością i nagraniem.
Dźwięk HD
Włącz Dźwięk HD w pokoju (nowe pokoje mają go włączone) i jest on mieszany z częstotliwością 16 kHz zamiast 8: osoby z telefonami szerokopasmowymi (G.722, Opus, telefon przeglądarki) słyszą się nawzajem w jakości HD, z wyrazistością nowoczesnego połączenia, podczas gdy osoby z zwykłymi telefonami (G.711, komórki przez dostawcę) słyszą ten sam pokój, jak zwykle. Widok na żywo oznacza pokój i każdego członka, który jest w HD. Dźwięk HD wymaga G.722 wśród kodeków używanych przez telefony (jest pierwszy na liście systemu, Ustawienia, Kodeki). Nagrania pokoju pozostają w jakości telefonicznej.
Pokoje wideo
Ustaw Wideo w pokoju i telefony wideo (oraz softfony) dołączające do niego wysyłają obraz z kamery i widzą jeden obraz, przełączany, gdy ludzie mówią, jak w Asterisk's ConfBridge:
- Śledź mówcę: wszyscy widzą tego, kto mówił przez sekundę, raz kiedy osoba na ekranie była cicha przez sekundę; osoba na ekranie widzi poprzednią.
- Pokaż lidera: wszyscy widzą lidera (który dołącza z PIN-em lidera); lider widzi tego, kto ostatnio mówił.
- Siatka: wszyscy widzą wszystkich na raz, obok siebie (jeden obraz wypełnia ekran, dwa obok siebie, potem 2 na 2 i 3 na 3, do dziewięciu), każda osoba na swoim miejscu w kolejności, w jakiej dołączyli, łącznie z sobą.
BitVoice przełącza obrazy bez dekodowania ich, więc kosztuje to prawie nic, i prosi każdy nowy telefon o pełny kadr (RTCP PLI i FIR, oraz SIP INFO picture-fast-update, na które większość telefonów biurkowych odpowiada) tak, aby przełączenie było widoczne natychmiast. Każdy członek wideo używa kodeka wideo pokoju (H.264, chyba że wybierzesz VP8); telefon bez niego dołącza z dźwiękiem tylko. Każdy widz otrzymuje jeden stabilny strumień (jeden źródło, jego własny typ ładunku), niezależnie od tego, kto jest na ekranie. Widok na żywo oznacza, kto ma wideo i kto jest na ekranie.
Siatkę tworzy się inaczej: BitVoice wysyła każde zdjęcie do ffmpeg na serwerze, który je odszyfrowuje, umieszcza w zdjęciu o rozdzielczości 1280 na 720 punktów, przy 15 klatkach na sekundę, a następnie koduje je jeden raz dla wszystkich. Zainstaluj ffmpeg (Ustawienia, Konwersja wideo, wskazuje, czy został znaleziony); bez niego sala siatkowa podąża za mówcą, a ekran sali sygnalizuje to. Każde zdjęcie kosztuje czas procesora: na małym serwerze ograniczaj siatki do kilku sal na raz. Wyświetlane są tylko członkowie, którzy wysyłają sygnał wideo: ktoś, kto dołącza bez wideo lub kogo kamera przestaje działać, opuszcza siatkę (nigdy nie zastyga na nieruchomej kamerze), a siatka jest odtwarzana w ciągu kilku sekund, gdy się to zmienia, z krótką przerwą w obrazie. Dziesiąty i kolejny członek są słyszani, ale nie widziani. Widok na żywo oznacza rozmiar siatki i kto jest w siatce.
Wideo wszystkich (przeglądarki)
Wybierz Wideo wszystkich i sala otrzymuje własną stronę (Sale konferencyjne, Otwórz salę wideo, lub #/video-room/NUMBER). Każda osoba tam naciska Dołącz z moją kamerą: przeglądarka wysyła swoją kamerę raz, w trzech rozmiarach (simulcast), i otrzymuje każdą inną kamerę w swoim własnym zdjęciu. BitVoice przekazuje obrazy tak, jak zostały odebrane, nigdy nie odszyfrowując ich (wybiórcza jednostka przekazywania, SFU), więc zużywa niewiele czasu procesora; upload każdej przeglądarki i download każdego widza to to, co ogranicza salę, więc może pomieścić do 16 kamer.
- Duże zdjęcie otrzymuje pełny rozmiar tej kamery, małe otrzymują mały rozmiar; Zrób duże zamienia je, a przełączenie następuje przy następnym pełnym zdjęciu nowego rozmiaru, o które BitVoice prosi od razu (RTCP PLI).
- Przeglądarka, która ma niewielki upload, przestaje wysyłać swój największy rozmiar; widzowie otrzymują wtedy największy rozmiar, który nadal jest wysyłany.
- Dźwięk to konferencja sali, jak zawsze: dołączanie wywołuje salę na telefonie przeglądarki, a każdy, kto wywołuje salę z telefonu, słyszy i jest słyszany. Telefony wideo wywołujące widzą, kto mówi.
- Sala z PIN-em pyta o niego na stronie. Strona wymaga logowania do BitVoice.
Udostępnianie ekranu: naciśnij Udostępnij mój ekran i wybierz ekran, okno lub kartę przeglądarki w wyborze przeglądarki. Każdy w pokoju widzi go jako duże zdjęcie, pod Twoim imieniem, z zachowanym tekstem (szybkość zdjęcia maleje zamiast tego, gdy sieć jest krótka). Nie musisz dołączać kamery wcześniej. Przestań udostępniać, lub pasek Przestań udostępniać przeglądarki, kończy to.
- Pokój wyświetla jeden udostępniony ekran na raz: podczas gdy ktoś udostępnia, przycisk innych czeka i mówi, kto udostępnia. Udostępniony ekran nie jest wliczany do 16 kamer.
- Kogoś innego można uczynić dużym zdjęciem za pomocą Zrób duże, jak w przypadku kamer; ekran pozostaje w pokoju.
- Tylko zdjęcie ekranu, nigdy jego dźwięk: dźwięk pokoju pozostaje konferencją.
- Telefony, które nie mogą udostępnić ekranu (większość przeglądarek telefonów), wyświetlają przycisk wyłączony. Telefony biurkowe i inne telefony wideo, które wybierają numer pokoju, nie widzą udostępnionych ekranów; widzą, kto mówi.
Pagowanie i głośniki nadawcze
/pagingPagowanie mówi przez wiele telefonów na raz: wybierz numer pagowania, a każdy telefon w grupie odpowie na głośniku samodzielnie. Używaj go do ogłoszeń do magazynu, szkoły, parkietu sklepu.
Konfiguracja grupy paginacyjnej
- Na Paginacja (rozdział 35) naciśnij Dodaj grupę paginacyjną i nadaj jej numer (domyślnie 800) i nazwę.
- Wybierz telefony. Głośniki sufitowe skonfigurowane jako numery wewnętrzne (typ Głośnik sufitowy) również mogą być członkami.
- Opcjonalnie, adres i port multicast.
Multicast
Multicast wysyła również stronę do adresu i portu multicast (239.0.1.10:5000), jako G.711 µ-law, który głośniki sufitowe i wiele telefonów biurkowych mogą odsłuchać bez połączenia. Grupa może mieć tylko adres multicast. Działa na jednej sieci: routery nie przechodzą multicast, chyba że są odpowiednio skonfigurowane.
Paginacja i interkom
| Paginacja | Interkom | |
|---|---|---|
| Kto słyszy | wszyscy w grupie | jeden numer wewnętrzny |
| Odpowiedź | nie, jeden kierunek | tak, w obie strony |
| Jak | wybierz numer grupy | *80 i numer wewnętrzny |
Telefony, które nie odpowiedzą na paginację samodzielnie w ciągu kilku sekund, są pomijane, więc jeden telefon bez auto-odpowiedzi nigdy nie zatrzymuje paginacji. Niektóre telefony wymagają auto-odpowiedzi (interkom) włączonej w swoich własnych ustawieniach.
Hot desking
/phonesGorący biurko to współdzielone urządzenie telefoniczne, które staje się kimś, kto się do niego zaloguje: dla biur, w których ludzie nie mają stałych biurek. Utwórz je, włączając Gorące biurko w rozszerzeniu, w którym telefon jest skonfigurowany (własne rozszerzenie biurka, takie jak 900 Biurko 3).
Logowanie i wylogowywanie
- Na telefonie, wybierz
*33i poczekaj na sygnał. - Wprowadź swoje rozszerzenie i #, a następnie poczekaj na sygnał.
- Wprowadź swój kod PIN do skrzynki głosowej i #. Rosnący sygnał oznacza, że jesteś zalogowany; malejący sygnał oznacza, że zostało to odrzucone.
Od tego momentu połączenia do Twojego rozszerzenia dzwonią na tym biurku, a także na Twoich innych telefonach, a połączenia, które wykonujesz z niego, wyświetlają Twój numer i nazwę i są liczony jako Twoje w Kosztach. Zalogowanie się na innym biurku przenosi Cię tam. *34 wylogowuje. Pięć nieudanych prób blokuje biurko na dziesięć minut.
Zarządzanie gorącymi biurkami
Na Telefonach (rozdział 4), Gorące biurka pokazują, kto jest zalogowany gdzie; administratorzy mogą zalogować kogoś (bez jego kodu PIN) lub wylogować. Kody, a także godzina każdego dnia, kiedy wszyscy są wylogowani, znajdują się w Ustawieniach. Logowania są przechowywane po ponownym uruchomieniu.
Hotel i połączenia budzące
/hotelPołączenia budzące
Każdy może zarezerwować połączenie budzące: goście, nocne zmiany, osoby na dyżurze. Z własnego telefonu wybierają *62: BitVoice mówi ustawiony (jeśli jest), a następnie wprowadzają czas jako cztery cyfry (0630), lub naciskają gwiazdkę, aby anulować. Na Hotel (rozdział 37) administrator rezerwuje połączenie budzące dla dowolnego rozszerzenia, raz lub każdego dnia.
W czasie, telefon dzwoni z nazwą systemu; odpowiedziany, słyszy "Dzień dobry. To jest twój budzik." (nagranie budzika w Dźwięki (rozdział 20), w języku gościa lub rozszerzenia). Nieodpowiedziany, jest wypróbowany ponownie (3 próby, 5 minut od siebie, oba ustawiane w Ustawieniach na stronie), a po ostatniej może być wywołany numer recepcji. Z kilkoma serwerami, tylko jeden wykonuje połączenia budzika.
Pokoje gościnne
Włącz Pokoje gościnne na numerze telefonu każdego pokoju. W Hotelu każdy pokój wyświetla gościa, budzik i status pokoju, z przyciskami Zamelduj i Wymelduj.
- Pokoje wolne: pokoje bez nikogo zarejestrowanego dzwonią tylko na numery i numery awaryjne. Połączenia awaryjne zawsze działają.
- Wyczyść przy wymeldowaniu: kasuje pocztę głosową pokoju i anuluje jego budzik, przekierowanie i nie przeszkadzać, gotowy dla następnego gościa.
- Język gościa (z zameldowania) jest językiem, w którym polecenia pokoju są wymawiane.
- Status pokoju: sprzątanie wybiera
*68i cyfrę z telefonu pokoju (*683); system hotelowy decyduje, co oznacza każda cyfra.
System hotelowy (PMS)
- FIAS: BitVoice łączy się z interfejsem FIAS systemu hotelowego (Oracle Opera i wiele systemów, które obsługują FIAS) pod jego adresem i portem. Otrzymuje informacje o zameldowaniach, przeniesieniach pokoi, wymeldowaniach i rezerwacjach budzenia, oraz wysyła wyniki budzenia, status pokoju i opłaty za połączenia. Podczas gdy połączenie jest niedostępne, to, co miałoby być wysłane, czeka i jest wysyłane, gdy połączenie jest przywrócone; strona informuje, czy jest połączone. Rekordy są zgodne z specyfikacją FIAS 2.20.23 Oracle: BitVoice opisuje się jako system telefoniczny (IF PB), opłaty za połączenia są bezpośrednimi opłatami (PT C) z kwotą w najmniejszej jednostce waluty i wybranymi cyframi bez + lub spacji, a wynik budzenia powtarza zaplanowaną godzinę do sekundy, aby system hotelowy mógł go dopasować do swojego żądania.
- REST API: system hotelowy wywołuje
POST /api/hotel/rooms/<room>/checkin(nazwa, konto, język),/checkout, orazPUT /api/wakeups/<room>, z kluczem API z Ustawienia, Automatyzacja. Opłaty są wysyłane jako JSON do podanego adresu. - Opłaty za połączenia: odebrane połączenia zewnętrzne z zajętych pokoi są rozliczane na rachunek gościa, według stawek łączy (z Koszty (rozdział 54)) plus narzut.
Kontakty na każdym telefonie
/contactsKontakty to katalog firmowy: dostawcy, klienci i inne biura, z którymi ludzie się kontaktują. Każdy telefon wyświetla go obok rozszerzeń, a gdy któryś z tych numerów dzwoni, telefony i karta wywołującego wyświetlają nazwę kontaktu (gdy dostawca nie wysłał żadnej). Numer pasuje niezależnie od tego, jak jest napisany: +1 212 555 0100 i 2125550100 to ten sam numer.
Dodawanie kontaktów
Dodaj kontakt dla jednego na raz, z takimi numerami (praca, komórka, dom, inny), jakie posiada. Import pobiera arkusz kalkulacyjny zapisany jako CSV, którego pierwszy wiersz nazwuje kolumny: nazwa, firma, praca (lub telefon), komórka, dom, inny, e-mail, notatki. BitVoice sprawdza cały plik najpierw i mówi, które wiersze są błędne; kontakt z tą samą nazwą, co jeden z nich, jest aktualizowany, a nie dodawany ponownie, a Zastąp każdy kontakt rozpoczyna listę od nowa. Eksport pobiera listę jako CSV.
Na telefonach biurkowych
Telefony skonfigurowane przez Telefony (rozdział 4) (konfiguracja) otrzymują katalog bez dodatkowej konfiguracji:
- Yealink: zdalny książka adresowa o nazwie Firma, odświeżana co godzinę.
- Grandstream: pobieranie książki adresowej, co godzinę.
- Polycom: plik katalogu, odczytywany podczas uruchamiania telefonu.
- Snom: lista jest zapisywana w ustawieniach telefonu, więc aktualizuje się, gdy telefon następnym razem sprawdzi ustawienia.
W telefonie przeglądarce
Kontakty pod klawiaturą znajdują nazwę lub numer i przygotowują ją do połączenia.
Z Microsoft 365 lub Google Workspace
BitVoice może utrzymywać Kontakt w zgodzie z katalogiem Twojej organizacji: każdy, kto ma numer telefonu, i jego współdzielone kontakty (kontakty organizacji Exchange lub współdzielone kontakty domeny Google). W Ustawieniach (rozdział 14), Microsoft 365 i Google Workspace, wybierz usługę, podaj, czego potrzebuje, i naciśnij Sprawdź teraz: loguje się, liczy ludzi i mówi, które rozszerzenia odpowiadają osobie po adresie e-mail. Zapisz, a Kontakty wypełnią się w ciągu pół minuty; potem co pół godziny lub od razu z Synchronizuj kontakty teraz.
Microsoft 365 (rejestracja aplikacji; musisz mieć możliwość udzielenia zgody administratora):
- W centrum administracyjnym Entra, Rejestracje aplikacji, Nowa rejestracja: nazwij ją BitVoice, jeden najemca, bez adresu przekierowania.
- Uprawnienia API, Dodaj uprawnienie, Microsoft Graph, Uprawnienia aplikacji:
User.Read.All,OrgContact.Read.AlliCalendars.ReadBasic. Następnie Udziel zgody administratora. - Certyfikaty i sekrety, Nowy sekret klienta: skopiuj jego wartość (wyświetlaną raz).
- W BitVoice: ID katalogu (najemcy), ID aplikacji (klienta) i sekret. Sekret wygasa (Microsoft oferuje do dwóch lat): kiedy to nastąpi, karta mówi, że sekret został odrzucony; utwórz nowy i wklej go.
Google Workspace (konto usługi; musisz być superadministratorem):
- W Google Cloud, w jednym z Twoich projektów: włącz People API i Google Calendar API, utwórz konto usługi, i dodaj do niego klucz (JSON).
- W konsoli administracyjnej Google, Zabezpieczenia, Kontrola dostępu i danych, Kontrola API, Delegacja na poziomie domeny, Dodaj nowy: ID klienta konta usługi, z zakresami
https://www.googleapis.com/auth/directory.readonly,https://www.googleapis.com/auth/calendar.freebusy. - W BitVoice: plik klucza i adres e-mail administratora dla konta usługi do działania.
Co jest pobierane:
- Osoba pracująca z numerami służbowymi i komórkowymi, nazwą, adresem e-mail, stanowiskiem i działem jako notatki kontaktu; nazwa organizacji jako firma. Osoby bez numeru są pomijane (kontakt wymaga numeru); konta, które są wyłączone, są pomijane.
- Kontakty z usługi są oznaczone jej nazwą i są modyfikowane tam: modyfikowanie lub usuwanie jednego z nich tutaj jest zabronione, ponieważ następna synchronizacja by ją cofnęła. Kontakty utworzone tutaj lub zaimportowane z arkusza kalkulacyjnego są pozostawione bez zmian.
- BitVoice tylko czyta. Jego dostęp to powyższe uprawnienia tylko do odczytu, a sekret lub klucz jest przechowywany z innymi sekretami: widzowie nigdy go nie widzą, a eksporty do Git go pomijają.
Kalendarze i tryb nie przeszkadzać
/extensionsRozszerzenie może podążać za kalendarzem osoby: podczas spotkań i czasu wolnego połączenia są kierowane do poczty głosowej lub przekierowane (do innego rozszerzenia lub telefonu komórkowego), zamiast dzwonić do telefonu, który nikt nie odejmie. Grupy dzwoniące dzwonią do innych w międzyczasie, a w kolejkach agent wyświetla się jako Nieobecny.
W rozszerzeniu, Kalendarz i tryb nie przeszkadzać, wklej prywatny adres kalendarza:
- Outlook: Ustawienia, Kalendarz, Udostępnione kalendarze, Publikuj kalendarz; wybierz kalendarz i "Można wyświetlać wszystkie szczegóły", a następnie skopiuj link ICS.
- Google Calendar: Ustawienia, kalendarz po lewej stronie, a następnie Tajny adres w formacie iCal.
Sprawdź odczytuje go natychmiast i wyświetla następne zajęte czasy. BitVoice odczytuje każdy kalendarz co pięć minut. Czas wolny (cało-dniowe wydarzenia i "poza biurem" w Outlook) zawsze jest brany pod uwagę; spotkania są brane pod uwagę, gdy Spotkania są traktowane jako zajęte jest włączone; wydarzenia oznaczone jako wolne nigdy nie są brane pod uwagę, podobnie jak anulowane. Powtarzające się spotkania, ze pominiętymi i przeniesionymi wystąpieniami, są rozumiane. Jeśli kalendarz nie może być odczytany, Zdrowie informuje o tym.
Tryb nie przeszkadzać teraz zatrzymuje dzwonienie rozszerzenia, aż do wyłączenia, niezależnie od tego, co mówi kalendarz. Lista rozszerzeń wyświetla, kto jest nieobecny i do kiedy.
Prywatny adres działa jak hasło: każdy, kto go posiada, może odczytać ten kalendarz, więc jest przechowywany z innymi tajnościami.
Każdy kalendarz na raz: Microsoft 365 i Google Workspace
Zamiast prywatnego adresu na rozszerzenie, BitVoice może odczytać kalendarz każdej osoby z Microsoft 365 lub Google Workspace: ustaw to raz w Ustawieniach (rozdział 14), Microsoft 365 i Google Workspace (zobacz Kontakty (rozdział 38) dla kroków), z Kalendarze mówią, kto jest nieobecny włączone. Każde rozszerzenie jest dopasowane do osoby przez swojego adres e-mail; jeden z prywatnym adresem używa go zamiast. Ustawienia rozszerzenia tutaj (Spotkania liczą się jako zajęte, Podczas zajętości, połączenia) mają zastosowanie tak, jak w przypadku prywatnego adresu.
- Microsoft 365 mówi o spotkaniach od urlopu: spotkanie oznaczone jako nieobecne liczy się jako urlop; spotkania warunkowe oraz czas oznaczony jako wolny lub pracujący gdzie indziej nigdy nie zatrzymują dzwonienia telefonu. Prywatne spotkanie jest wyświetlane jako "W spotkaniu", bez jego tytułu.
- Google Workspace podaje zajęte czasy bez podawania powodu, więc zawsze liczą się jako spotkania.
- Kalendarze są odczytywane co pięć minut, oraz od razu, gdy ustawienia się zmienią. Rozszerzenie, którego adres e-mail usługa nie zna, mówi o tym w swojej sekcji kalendarza.
Aplikacje mobilne
Aplikacje BitVoice dla iPhone i Android czynią telefon komórkowy jednym z telefonów numeru wewnętrznego. Dzwoni jak telefon biurkowy, na własnym ekranie połączeń telefonu, nawet gdy aplikacja jest zamknięta.
Konfigurowanie push
Zamknięta aplikacja jest budzona dla połączeń za pomocą wiadomości push. W Ustawieniach (rozdział 14), Aplikacje mobilne, wybierz jedną:
| Push | Co potrzebujesz |
|---|---|
| Przekaz push | Przekaz BioDream (z hostowaniem lub wsparciem) lub własny bvpush: jego Adres przekazu, ID klucza i Sekret |
| Własne aplikacje | własne kompilacje: dla Apple, ID zespołu, ID pakietu, ID klucza i Klucz (.p8); dla Google, Konto usługi Firebase (JSON) |
Ustaw Adres, który używają aplikacje na adres https tego serwera, tak jak jest on dostępny z dowolnego miejsca, a nie tylko z biura.
Paryowanie telefonu
- Otwórz numer wewnętrzny i naciśnij Dodaj telefon.
- Zeskanuj kod QR w aplikacji. Kod działa jeden raz, przez dziesięć minut.
Gdy przychodzi połączenie
BitVoice budzi aplikację; łączy się, dzwoni na własnym ekranie połączeń telefonu i jest odbierane jak każdy inny telefon numeru wewnętrznego: grupy dzwonienia i kolejki dzwonienia dzwonią na niego z innymi telefonami numeru wewnętrznego. Strona numeru wewnętrznego wyświetla sparowane telefony, czy każdy Może być obudzony dla połączeń, kiedy był ostatnio widziany i kiedy był ostatnio obudzony, oraz jakikolwiek problem z push. Rozłącz powoduje natychmiastowe przestanie dzwonienia telefonu, w przypadku zagubionego telefonu.
Podczas połączenia
Aplikacja jest pełnym rozszerzeniem, a nie tylko dzwoniącym:
- Przełącz rozmówcę do innego rozszerzenia lub zewnętrznego numeru (własne Przełącz na ekranie połączenia lub przycisk aplikacji). Do numeru parkowania, parkuje połączenie.
- Pozostaw i ponownie podnieś, z ekranu połączenia lub aplikacji; rozmówcy w trybie oczekiwania słyszą muzykę oczekiwania, jeśli jest ustawiona.
- Drugie połączenie: wybierz podczas gdy pierwsze połączenie jest w trybie oczekiwania, i przełączaj się między nimi.
- Klawiatura tonów (DTMF) podczas połączenia, oraz Wycisz.
Pozostałe karty
- Ostatnie: połączenia do i z tego rozszerzenia, najnowsze jako pierwsze, dotknij, aby ponownie wybrać (nieodebrane połączenia są wyróżnione).
- Poczta głosowa: każda wiadomość z jej transkrypcją (rozdział 29), gdzie AI zapisuje ją, odtwórz ją, wybierz ponownie lub usuń.
- Zespół: kto jest dostępny, w połączeniu, dzwoni lub zajęty (lampka zajętości), aby wybrać ich lub przełączyć bieżące połączenie do nich.
- Kontakty: firma katalog, aby znaleźć nazwę i wybrać ją.
- Czat: czat personelu (Czat i obecność), koledzy z ich obecnością i wiadomościami bezpośrednimi, oraz pokoje zespołowe, wewnątrz telefonu. Nowa wiadomość, gdy aplikacja jest w tle, jest wyświetlana jako powiadomienie, a dotknięcie jej otwiera Czat; gdy aplikacja jest zamknięta, przychodzi przez te same powiadomienia push, co połączenia.
- Dołącz do pokoju wideo: wybierz jeden z pokoi wideo (rozdział 34) (wyświetla je, z liczbą osób w każdym). Otwiera się nad telefonem, który nadal działa pod spodem, i dołączasz jako twoje rozszerzenie: bez logowania administratora. Po raz pierwszy, telefon pyta o dostęp do kamery. Opuść, lub Wstecz na Androidzie, powraca do telefonu; dźwięk pokoju pozostaje połączeniem na nim, aż do momentu, gdy go rozłączysz. Telefon wyświetla pokój jako połączenie wideo na własnym ekranie połączenia, podczas gdy jesteś w nim.
- Połączenia, które wykonujesz, są również na własnym systemie połączeń telefonu (CallKit na iPhone, Android's Telecom), więc Bluetooth, samochód lub zegarek je wyświetlają, a połączenie komórkowe, które przychodzi w międzyczasie, wie o nich.
Transkrypcja na żywo podczas połączenia
Z Zapisz rozmowę na żywo włączone (Ustawienia (rozdział 14), AI), każda strona połączenia jest zapisywana jako mówi i wyświetlana na telefonie podczas trwania połączenia. Dźwięk jest wysyłany do usługi rozpoznawania mowy (na twoim własnym komputerze, gdzie jest to ustawione) lub do usługi AI podczas trwania połączenia. Jest to ta sama transkrypcja, co transkrypcje 911 na żywo (rozdział 13), dla zwykłych połączeń.
Połączenia wideo
/settingsGdy oba telefony w połączeniu wysyłają wideo (telefony biurkowe z wideo, aplikacje na telefon, domofony z wideo), obraz jest przekazywany między nimi przez BitVoice. Nic nie trzeba ustawić: jest włączone, chyba że Ustawienia → Połączenia wideo są wyłączone.
- BitVoice przekazuje wideo tak, jak jest, na porcie własnym dla każdego telefonu, więc telefony nigdy nie dowiadują się o adresach sieciowych nawzajem. Z wspólnym kodekiem (prawie każdy telefon wideo ma H.264) nigdy nie dekoduje wideo; bez niego może przekonwertować (poniżej). Gdy numery te samego kodeka są różne, BitVoice ponownie numeruje go w trakcie.
- Obraz jest szyfrowany (SRTP) do każdego telefonu, który szyfruje swój dźwięk.
- Żądanie telefonu o nowy obraz (po straconych pakietach) dociera do drugiego telefonu, więc obraz odzyskuje się w chwili.
- Kamera włączona podczas połączenia (przycisk wideo w aplikacji na telefon) działa również: najpierw pyta drugi telefon, a obraz zaczyna się, gdy on potwierdzi.
- Telefon bez wideo lub połączenie z zewnętrznym numerem otrzymuje tylko dźwięk. W trakcie postoju lub parkowania obraz jest wstrzymany i wraca, gdy połączenie jest wznowione. Po transferze kontynuuje się tylko wtedy, gdy nowa strona wysyła również wideo.
- Wideo zużywa znacznie więcej sieci niż dźwięk (około 0,5 do 2 Mbit/s na połączenie w każdą stronę): należy to uwzględnić w przypadku wolnych łączy i w zakresie portów multimedialnych.
Konwertowanie wideo
Telefony i aplikacje, które mają wspólny kodek wideo (większość używa H.264), otrzymują nawzajem wideo tak, jak jest. Gdy dwie strony nie mają wspólnego kodeka (telefon biurkowy z tylko H.264 i przeglądarka z tylko VP8), włącz Konwertuj wideo między H.264 i VP8 w Ustawieniach: BitVoice wtedy oferuje oba kodeki, odpowiada każdej stronie w jej własnym kodeku i konwertuje w każdą stronę za pomocą ffmpeg, które musi być zainstalowane na serwerze (apt install ffmpeg, brew install ffmpeg; lub podaj ścieżkę). Konwersja kosztuje około jednego rdzenia procesora na połączenie i dodaje niewielką zwłokę, więc jest wyłączona domyślnie i używana tylko wtedy, gdy jest potrzebna. Ustawienia mówią, czy ffmpeg zostało znalezione.
Faks: wysyłanie i odbieranie, maszyny faksowe i telefony analogowe
/faxesMaszyny faksowe, telefony analogowe, domofony i stare linie łączą się za pomocą bramki SIP (lub karty telefonicznej w komputerze BitVoice: zobacz Karty telefoniczne (rozdział 6)): ATA (Grandstream HT series, dla jednego lub dwóch telefonów analogowych lub maszyny faksowej), lub większej bramki (Patton SmartNode, AudioCodes MediaPack i Mediant) dla wielu portów analogowych, linii ISDN (BRI/PRI) lub starych linii analogowych (FXO). Każdy port rejestruje się w BitVoice jako rozszerzenie, jak telefon.
Odbieranie faksów bez maszyny faksowej. W Faksach dodaj numer faksu (300, na przykład), z adresami e-mail, na które każdy faks jest wysyłany. Następnie w Trasach połączeń (rozdział 8) wysyłaj połączenia numeru telefonu do niego. BitVoice odpowiada jako maszyna faksowa, przełącza połączenie na T.38 i odbiera faks; każdy faks staje się plikiem PDF, przechowywanym w Faksach (Wyświetl, PDF) i wysyłanym e-mailem. Faks, który się rozłącza w połowie, zachowuje strony, które dotarły, i informuje o tym. Każdy faks na liście wyświetla tożsamość wysyłającej lub odbierającej maszyny, gdy różni się od numeru, oraz prędkość, z jaką strony zostały wysłane (14 400 bitów na sekundę jest największa; maszyna, której faksy często się rozłączają na niskiej prędkości, zwykle ma słabą linię). To wymaga dostawcy, który obsługuje T.38 (większość z nich); faks wysłany jako dźwięk nie może być odebrany w ten sposób. Wypróbowane z T38Fax, dostawcą faksów: zarejestruj trunk z nazwą użytkownika i hasłem na sip.t38fax.com, port 5080 (UDP); zezwól na UDP z jego sieci (8.34.182.0/24 i 8.20.91.0/24) przez każdą zaporę sieciową przed BitVoice.
Wysyłanie faksu. W Faksach, Wyślij faks: wybierz numer faksu, z którego ma być wysłany, wpisz numer, do którego ma być wysłany, dodaj notatkę, jeśli chcesz (staje się pierwszą stroną) i dołącz dokumenty. Pliki tekstowe i obrazy (PNG, JPEG, GIF) działają wszędzie. PDF wymaga popplera na serwerze (apt install poppler-utils, apk add poppler-utils, brew install poppler); Word, Excel, OpenDocument i RTF wymagają również LibreOffice. Strona informuje, które z nich serwer może obsłużyć. Każda strona otrzymuje nagłówek, tak jak drukują go faksy: godzinę, nazwę numeru faksu, jego identyfikator i numer strony. Połączenie wychodzi z identyfikatora cyfrowego (+1 212 555 0300 dzwoni z +12125550300), lub z samego numeru faksu, gdy identyfikator nie jest numerem. Strony są w formacie US letter w Ameryce Północnej i A4 gdzie indziej, z kraju ustawionego w Ustawieniach.
BitVoice wywołuje numer przez Twoje trasowanie wychodzące, jak rozszerzenie, i wysyła z najwyższą prędkością, jaką linia może przenieść (14 400 bit/s, wolniej, jeśli linia jest słaba). Faksy z jednego numeru faksu są wysyłane jeden po drugim. Zajęty numer lub taki, który nie odpowiada, jest próbowany ponownie pięć minut później, łącznie trzy razy. Wysłane faksy są wyświetlane z odebranymi: Wysłane, Czekające na wysłanie, Nieudane (z Spróbuj ponownie), lub Częściowo wysłane, gdy linia przerwała się po kilku stronach.
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-mail jest łatwy do sfałszowania, więc BitVoice faksuje wiadomość tylko wtedy, gdy Twój serwer pocztowy stwierdził, że pochodzi ona rzeczywiście z domeny nadawcy (DKIM, SPF lub DMARC, w linii Authentication-Results, którą dodaje). Inne wiadomości są odrzucane bez odpowiedzi. Przełącz Akceptuj pocztę, za którą domena nadawcy nie odpowiada tylko dla skrzynki pocztowej, do której nie może dotrzeć żadna zewnętrzna poczta.
Urządzenia faksowe na bramkach. BitVoice obsługuje faksy za pomocą T.38, standardu faksów w internecie: gdy bramka usłyszy ton faksu, przełącza połączenie na T.38, BitVoice prosi drugą stronę (dostawcę lub inną bramkę) o przełączenie również i przenosi faks pomiędzy nimi. Jeśli druga strona nie obsługuje T.38, połączenie pozostaje na G.711, a faks jest przesyłany jako dźwięk, co działa na dobrej sieci. Aktywne połączenia wyświetlają faks (T.38) podczas trwania faksu.
Aby zapewnić niezawodne faksy:
- Użyj T.38 na bramce i wybierz dostawcę, który obsługuje go.
- Zmień port rozszerzenia na Port adaptera analogowego (Rozszerzenia, Rodzaj): BitVoice oferuje wtedy tylko G.711, który jest wymagany dla faksów przesyłanych jako dźwięk.
- Na porcie faksu bramki: Tryb faksu T.38, tylko PCMU lub PCMA, wyłączony anulowanie echa linii, wyłączone oczekiwanie na połączenie i stały, wysoki bufor jittera.
Skrzynka odbiorcza: czat internetowy, WhatsApp i Messenger
/inboxSkrzynka odbiorcza Inbox (rozdział 43) zawiera każdą napisaną konwersację na jednej liście: chatboks na stronie internetowej, WhatsApp, Facebook Messenger i wiadomości tekstowe (rozdział 44). Każdy, kto jest zalogowany do interfejsu sieciowego, może odpowiedzieć; pierwszy, który odpowie, przejmie konwersację (każdy może ją przekazać za pomocą Odpowiedzi od), a Zamknij odłoży ją, aż osoba napisze ponownie. Niekonsekwentne konwersacje są liczone, a lista jest automatycznie odświeżana.
Okienko czatu na Twojej stronie internetowej
W Kanałach włącz Czat internetowy, wybierz jego tytuł, kolor i pierwszą linię, a następnie umieść linię, którą wyświetla na stronach Twojej strony:
<script src="https://pbx.example.com:8443/webchat.js" async></script>
Rysuje przycisk czatu w rogu każdej strony; odwiedzający mogą pisać (z własnym imieniem, jeśli chcą) i widzieć Twoje odpowiedzi, gdy tylko są wysyłane. Rozmowa pozostaje w ich przeglądarce, więc kontynuuje się, gdy przechodzą między stronami. Wylistuj swoje strony w Tylko na tych stronach, aby pudełko działało tylko tam. Odwiedzający muszą dotrzeć do adresu tego serwera z Internetu, z certyfikatem, który przeglądarki uznają za zaufany (Let's Encrypt (rozdział 14)). Dziesięć nowych czatów z jednego adresu w ciągu dziesięciu minut to maksimum, które BitVoice akceptuje.
Numery WhatsApp Business w Meta Cloud API. Na stronie deweloperskiej Meta utwórz aplikację z WhatsApp, dodaj swój numer, a następnie utwórz użytkownika systemu z tokenem dostępu na stałe. W Kanałach włącz WhatsApp i podaj identyfikator numeru telefonu i identyfikator konta firmowego (oba z konfiguracji API), token dostępu i klucz aplikacji, a następnie zapisz. W konfiguracji WhatsApp aplikacji ustaw webhook: adres zwrotny i token weryfikacyjny, który BitVoice wyświetla, subskrybowany do *wiadomości*.
WhatsApp pozwala odpowiedzieć swobodnie przez 24 godziny po ostatniej wiadomości klienta; po tym czasie akceptuje tylko szablony wiadomości zatwierdzone w WhatsApp Manager. Pole odpowiedzi zmienia się wtedy w wybór szablonu: wybierz szablon (wyświetla szablony Twojego konta, wraz z ich językiem i rodzajem), wypełnij jego wartości ({{1}}, {{2}} ...), sprawdź podgląd, który to, co klient przeczyta, i Wyślij szablon. Szablony, których skrzynka odbiorcza nie może wypełnić, są wyświetlane na szaro z powodem: jeden ze zdjęciem, filmem lub nagłówkiem dokumentu, zmienną w nagłówku lub łączem przycisku; oraz te, które jeszcze nie zostały zatwierdzone. Utwórz szablony w WhatsApp Manager; Meta przegląda każdy z nich, zwykle w ciągu kilku minut.
Facebook Messenger
Dla strony na Facebooku: w aplikacji Meta dodaj Messenger, połącz stronę i utwórz token dostępu do strony. W Kanałach podaj identyfikator strony, token dostępu do strony i klucz aplikacji; następnie ustaw webhook (adres i token weryfikacyjny, który BitVoice wyświetla), subskrybowany do *wiadomości* i *messaging_postbacks*. Odpowiedzi są dozwolone przez 24 godziny po ostatniej wiadomości osoby. Od tego czasu do 7 dni Messenger akceptuje odpowiedzi napisane przez osobę (wysłane z tagiem *human agent* Meta: aplikacja potrzebuje uprawnienia Human Agent Meta, o które wnioskuje się w App Review); automatyczne powitanie nigdy nie jest wtedy wysyłane. Po upływie 7 dni skrzynka odbiorcza nie przyjmuje odpowiedzi, dopóki osoba nie napisze ponownie.
Każdy webhook jest sprawdzany za pomocą klucza aplikacji (sygnatury Meta) przed tym, jak BitVoice mu uwierzy, a wiadomość, którą Meta wysyła dwukrotnie, jest przechowywana jeden raz. Zdjęcia, notatki głosowe i inne załączniki są wyświetlane jako to, czym są ("[obraz]"); otwórz je w aplikacjach Meta.
Automatyczne powitanie, gdy jest ustawione, odpowiada na pierwszą wiadomość każdej nowej rozmowy natychmiast.
Biznesowy tekst (SMS)
/textsWysyłaj i odbieraj wiadomości tekstowe ze swoich numerów firmowych na Wiadomości tekstowe. Wiadomości tekstowe są przekazywane przez dostawcę wiadomości tekstowych. Wbudowany: TextMagic, Twilio, SignalWire, Telnyx, Bandwidth, Vonage, Plivo, Flowroute i VoIP.ms, plus Własny webhook dla każdej innej usługi lub bramy własnej. Dowolna liczba kont dostawcy może być używana jednocześnie: każdy numer wskazuje, który z nich go przenosi.
Konfiguracja
- W portalu dostawcy znajdź szczegóły API konta. Formularz pyta o dokładnie to, co ten dostawca nazywa nimi (Twilio: Account SID i token uwierzytelniania; Telnyx: klucz API; Bandwidth: użytkownik API, hasło, ID konta i ID aplikacji wiadomości; SignalWire: również adres Twojej przestrzeni) i mówi, gdzie je znaleźć.
- Na Wiadomościach tekstowych, Konfiguracja wiadomości tekstowych, dodaj dostawcę z nimi i zapisz. BitVoice pokazuje adres dla otrzymanych wiadomości tekstowych: ustaw go w dostawcy jako miejsce, w którym są wysyłane otrzymane wiadomości (jego adres zwrotny, webhook lub adres URL wiadomości). Dla VoIP.ms dodaj
?from={FROM}&to={TO}&message={MESSAGE}&id={ID}na koniec. Potwierdzenia dostarczenia wysyłane do tego samego adresu są ignorowane. BitVoice musi być dostępny z Internetu w tym miejscu. - Dodaj każdy numer, z którego wysyłasz wiadomości tekstowe (z jego kodem kraju), dostawcę, który go obsługuje, i rozszerzenia, które mają być informowane o przychodzących wiadomościach tekstowych za pomocą poczty e-mail.
US 10DLC
Amerykańscy przewoźnicy blokują wiadomości tekstowe z zwykłych numerów firmowych, które nie są zarejestrowane. Zarejestruj swoją markę, a następnie kampanię u swojego dostawcy usług SMS; lista kontrolna w Texts śledzi, jak się mają, i ostrzega, gdy Twoja próbna wiadomość nie zawiera słów odrzucenia, których oczekują przewoźnicy.
Rozmowy
Każda rozmowa pokazuje, kto to jest (z Kontaktów), nieprzeczytane wiadomości tekstowe i wątek. Wprowadź wysyła; licznik pokazuje, ile wiadomości potrzeba do wysłania długiej wiadomości. Gdy ktoś odpowie STOP, nie można już wysyłać niczego do niego z tego numeru, dopóki nie odpowie START. Otrzymane wiadomości tekstowe pojawiają się również jako powiadomienie w BitVoice.
Przekazywanie informacji
/settingsŻeby dzwoniący nie musiał się powtarzać: z Przekaż informację komuś, do kogo jest przekierowany włączone (Ustawienia, AI), gdy połączenie jest przekierowane, BitVoice pisze dwuzdaniowy podsumowanie dotychczasowej rozmowy (kto dzwoni, czego chce, co już zostało obiecane) dla osoby, do której jest przekierowane. Pojawia się na jej przeglądarce z dzwoniącym połączeniem, na Połączenia na żywo (rozdział 46) i jako wiadomość tekstowa na ekranie jej telefonu biurowego (dla telefonów, które wyświetlają wiadomości SIP).
Działa to samo, gdy asystent AI przekazuje dzwoniącego do osoby: informacje pochodzą z tego, co powiedział dzwoniący asystentowi.
Wymaga to usługi AI i modelu rozpoznawania mowy (Ustawienia, AI), a dźwięk połączenia dotąd (do pięciu minut) jest wysyłany do tej usługi, aby został spisany. Podsumowanie zajmuje kilka sekund, więc może pojawić się zaraz po rozpoczęciu dzwonienia.
Klienci i wgląd
Wiedza o tym, kto dzwonił i jak się to odbyło: aktywne połączenia i historia, czasowy wykres klienta, systemy CRM, nagrania i zgody, jakość, koszty i reputacja identyfikatora dzwoniącego.
Aktywne połączenia
/callsAktywne połączenia wyświetla każde połączenie w toku, aktualizowane w czasie rzeczywistym: kto wywołał kogo, jak długo trwa, jego kodeki i jakość.
Co mogą zrobić administratorzy
| Akcja | Co robi |
|---|---|
| Rozłącz | kończy połączenie dla obu stron |
| Otwórz drzwi | dla połączenia z bramki wejściowej |
| Pauzuj nagrywanie | dla numeru karty: pauzowana część jest cicha w nagraniu i oznaczona w historii (Nagrywanie połączeń (rozdział 51)) |
| Słuchaj | słyszeć połączenie bezgłośnie |
| Szepcz | mów do agenta tylko; dzwoniący nie słyszy |
| Dołącz | dołącz do połączenia; wszyscy słyszą ciebie |
Aby słuchać, szepnąć lub dołączyć, naciśnij Nadzoruj, wybierz telefon do użycia pod Z telefonu i naciśnij Zadzwoń do mnie: twój telefon dzwoni, a gdy odpowiedzisz, dołączasz do połączenia. Możesz przełączać się między słuchaniem, szepnięciem i dołączaniem, podczas gdy jesteś w nim.
Co jeszcze jest wyświetlane
- Karta dzwoniącego podczas dzwonienia połączenia zewnętrznego (z Twojego CRM, lub z przeszłych połączeń; zobacz CRM (rozdział 49)).
- Streszczenie napisane dla osoby, do której połączenie zostało przekierowane (Streszczenia przekierowań (rozdział 45)).
- Werdykt identyfikacji dzwoniącego: Weryfikowany, Częściowo weryfikowany lub Nieweryfikowany (Ochrona przed spamem (rozdział 56)).
- Z kilkoma serwerami, połączenia na innych serwerach, tylko do odczytu: rozłącz lub słuchaj na serwerze, który ma połączenie.
Po zakończeniu połączenia przechodzi do historii połączeń (rozdział 47)
Historia połączeń
/historyKażde zakończone połączenie: kto dzwonił do kogo, kiedy, przez jaki czas i w jaki sposób się zakończyło. Sortuj kolumny, odtwórz nagrania (przerwa na numery kart jest oznaczona) i pobierz listę jako CSV. Czas przechowywania nagrań jest ustawiony w Ustawieniach, *Nagrywanie połączeń*; zamrożenie prawne (rozdział 73) przedłuża ich przechowywanie.
Jak było trasowane
Pod wynikiem każdego połączenia, Jak było trasowane wyświetla w zwykłych słowach i w kolejności, co decydowało o tym, gdzie poszło połączenie: przychodząca trasa, która je przyjęła, czy harmonogram był otwarty lub zamknięty i jaki był czas, strona przełącznika, co wybrał skrypt trasowania (lub że jego zapas przyjął połączenie), klawisze wciśnięte w menu, kto był niedostępny, kto nie miał podłączonego telefonu, kto nie odpowiedział, trasę wychodzącą i trasy użyte (i trasy, które sędzia kondycji przeniósł za inne), osąd sądu oszustw związanych z opłatami, i, w przypadku nagranego połączenia, którego strony podlegają różnym zasadom zgody, jaka zasada została zastosowana.
Jakość, dźwięk i szyfrowanie
Kolumna Jakość wyświetla wynik (MOS, na 5) każdego odebranego połączenia oraz dwie oznaczenia, gdy mają zastosowanie:
- Brak dźwięku z jednej strony: połączenie zostało nawiązane, ale nie dotarł żaden sygnał dźwiękowy z tego telefonu lub dostawcy (połączenia krótsze niż 5 sekund, faksy, połączenia w trybie pauzy i paging są pomijane). Zobacz Jakość połączenia (rozdział 53), aby sprawdzić, co należy sprawdzić.
- Nieszyfrowane: BitVoice zażądał szyfrowania (SRTP), a ta strona odpowiedziała bez niego. Szyfrowane oznacza, że dźwięk był szyfrowany za każdym razem, gdy jakaś strona wysyłała sygnał. Aby odmówić nieszyfrowanych połączeń od dostawcy, włącz Wymagaj szyfrowania na jego linii.
Transkrypcje i wyszukiwanie
Z włączonym AI i przełącznikiem Transkrybuj nagrane połączenia (Ustawienia, AI), każde nagrane połączenie jest zapisywane, z krótkim podsumowaniem i jego elementami do wykonania: co ktoś zgodził się zrobić lub o co został poproszony. Każda strona połączenia jest zapisywana oddzielnie z nagrania, więc transkrypcja pokazuje, kto co powiedział i kiedy. Przycisk transkrypcji obok nagrania otwiera je; administratorzy mogą również transkrybować pojedyncze połączenie lub transkrybować je ponownie.
Wyszukaj to, co zostało powiedziane znajduje połączenia według słów z ich transkrypcji, podsumowań i elementów do wykonania. Tylko nagrane połączenia są transkrybowane. Transkrypcja jest kasowana wraz z nagraniem, a odczyt lub wyszukiwanie transkrypcji jest odnotowane w dzienniku inspekcji, podobnie jak odtwarzanie nagrania.
Osobista historia dzwoniącego
/timelineOsobista historia dzwoniącego wyświetla wszystko z jednym numerem telefonu w ciągu ostatniego roku, najnowsze najpierw, aby osoba, która odbiera, wiedziała całą historię.
To, co się wyświetla
| Element | Z |
|---|---|
| Połączenia | kto je odebrał, jak długo trwały, oraz z transkrypcją, podsumowaniem, nagraniem i transkrypcją |
| Wiadomości głosowe | ich podsumowania |
| Wiadomości tekstowe | w obie strony |
| Przełączanie połączeń | o które zostały poproszone i czy zostały wykonane |
| Notatki | notatki zespołu |
Numer jest dopasowany niezależnie od tego, jak jest napisany: +1 212 555 0100 i 2125550100 są takie same.
Otwieranie
Z karty dzwoniącego (Wykres czasowy), z Kontaktów, z nadchodzącego połączenia w Historii połączeń, z rozmowy tekstowej lub wpisz numer u góry Wykresu czasowego (rozdział 48).
Notatki
Administratorzy mogą dodać notatkę dla zespołu: jest wyświetlana na wykresie czasowym dla wszystkich, z informacją o tym, kto ją napisał i kiedy, oraz może być usunięta.
CRM: karty rozmówców i rejestrowanie połączeń
/settingsPołącz system klienta w Ustawieniach (rozdział 14), CRM. Działa z każdym systemem, który ma adres internetowy, bez konieczności pisania kodu dla każdego produktu.
Karty rozmówców
Podczas gdy połączenie z zewnątrz dzwoni, Aktualne połączenia wyświetla kartę: kim jest (z Twojego CRM lub nazwy rozszerzenia), jak często dzwonił w ciągu 90 dni, jakiś powiadomienie (rozdział 30), na które czeka, i podsumowanie jego ostatniej transkrybowanej rozmowy. Przeglądarkowy telefon wyświetla krótszą kartę osobie odpowiadającej: kim jest, poprzednie połączenia i oczekujące powiadomienia, ale nie podsumowania innych rozmów.
Dla nazwy, ustaw Adres wyszukiwania: BitVoice pyta o niego (GET) z numerem rozmówcy zamiast {number}, wysyłając Nagłówek wyszukiwania z jego wartością (odniesienie do skarbcu działa), i oczekuje JSON z nazwą, firmą, adresem URL i notatkami; 404 oznacza nieznany. Odpowiedzi są przechowywane przez pięć minut. Otwórz w CRM link umieszcza link do rozmówcy na karcie. Użyj Wyszukaj , aby spróbować numeru przed zapisaniem.
Własna odpowiedź CRM
Większość CRM odpowiada na wyszukiwanie w swojej własnej formie, zwykle jako lista dopasowań, a nie {"name": ...} BitVoice. Otwórz Pola odpowiedzi i określ, gdzie znajduje się każda część, jako ścieżka kropkowa: nazwa wchodzi w obiekt, a liczba w listę, więc list.0.name to nazwa pierwszego dopasowania. Link do kontaktu może być ścieżką do linku udostępnionego przez CRM lub adresem internetowym ze ścieżkami w nawiasach klamrowych, takim jak https://crm.example.com/#Contact/view/{list.0.id}. Puste pole odczytuje własną nazwę BitVoice. Wyszukiwanie, które nie znajduje nikogo, jest takie same jak 404: karta mówi, że rozmówca nie jest znany. Przed zapisaniem spróbuj numeru z Sprawdź.
Na przykład, EspoCRM (przetestowany z prawdziwym EspoCRM): utwórz użytkownika API (Administracja, Użytkownicy API, uwierzytelnianie za pomocą klucza API) z rolą, która może odczytywać kontakty i konta, a następnie ustaw:
- Adres wyszukiwania:
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} - Nagłówek wyszukiwania
X-Api-Key, jego wartość to klucz użytkownika API - Pola odpowiedzi: nazwa
list.0.name, firmalist.0.accountName, notatkilist.0.description, linkhttps://crm.example.com/#Contact/view/{list.0.id}
EspoCRM przechowuje numery w formie międzynarodowej (+15405550117), tak jak BitVoice je przekazuje. Inne CRM działają w ten sam sposób ze swoim własnym adresem wyszukiwania i nazwami pól; sprawdź kształt ich odpowiedzi w dokumentacji API lub za pomocą Sprawdź, którego komunikat nazywa to, co znaleziono.
Rejestracja połączeń
Ustaw Adres rejestru połączeń i Klucz podpisywania, a każde połączenie jest wysyłane tam po jego zakończeniu (zdarzenie call.ended), ponownie z jego podsumowaniem, zadaniami i transkrypcją po transkrypcji (call.summarized), oraz każde nowe powiadomienie o połączeniu (callback.new). Każde wysłanie zawiera X-BitVoice-Event, X-BitVoice-Timestamp i X-BitVoice-Signature: sha256= po którym następuje HMAC-SHA256, z sekretem, z timestampem, kropką i treścią. Nieudana dostawa jest próbowana cztery razy w ciągu około minuty; jeśli nadal nie powiedzie się, Health sygnalizuje to. Wyślij testowe zdarzenie sprawdza adres i sekret.
Wgląd w połączenie dla nadzorujących
/qualityDla centrów kontaktowych: dowody dotyczące przebiegu połączeń, które nadzorujący może odsłuchać, nigdy nie jest to automatyczny wynik.
W Transkrypcji połączenia Jak się to odbyło jest wyświetlone, zmierzone na podstawie samych dźwięków nagrania: jak długo każda strona mówiła, najdłuższy okres, w którym każda strona zaczęła mówić jednocześnie, jak długo obie strony mówiły jednocześnie, oraz cisza (długa cisza jest często trzymana lub martwa cisza).
Z Zapisz, jak poszło włączonym (Ustawienia, AI), AI również czyta transkrypcję i mówi, jak wydawał się dzwoniący na początku i na końcu, oraz wyświetla do sześciu momentów: Poszło dobrze, Spójrz (mówienie przez dzwoniącego, długa pauza, niejasna odpowiedź) i Obiecano (coś, co ktoś powiedział, że zrobi), każdy z czasem i słowami, abyś mógł przejść prosto do niego. Administrator może poprosić o to w dowolnym transkrybowanym połączeniu z Spójrz na to połączenie.
W Jakość połączenia (rozdział 50), Rozmowy, według osoby, która je odebrała sumuje transkrybowane połączenia z okresu na osobę: ich udział w rozmowie, najdłuższy ciąg, jak często przerywali osobie dzwoniącej, czas ciszy, połączenia, które zakończyły się niezadowoleniem osoby dzwoniącej, oraz chwile oznaczone jako istotne. Użyj jej do wyboru połączeń do odsłuchania, a nie do rankingu osób.
Notatki szkoleniowe to Twoje słowa o połączeniu, w momencie, gdy są one o nich: pod Jak się to odbyło, wpisz Moment (1:05, lub pozostaw puste dla początku) i Notatkę szkoleniową, a następnie naciśnij Dodaj notatkę. Notatki są wyświetlane w kolejności połączenia z tym, kto je napisał i kiedy; administratorzy piszą i usuwają je, widzowie czytają je z transkrypcją, a dodanie lub usunięcie notatki jest odnotowane w rejestrze inspekcji. Idą one z nagraniem, więc jego przechowywanie i prawne zatrzymania je również obejmują. Notatki szkoleniowe na Jakość połączenia liczą je na osobę.
Nagrywanie połączeń i płatności kartą
Nagrywanie jest ustawione w Ustawieniach (rozdział 14), Nagrywanie połączeń: wyłączone, każde połączenie lub tylko połączenia rozszerzeń oznaczonych Nagrywaj połączenia. Nagrania są odtwarzane z Historii połączeń (rozdział 47), a z włączoną AI są wypisywane i podsumowywane.
Informowanie osób
Niektóre miejsca wymagają, aby wszystkie osoby w rozmowie zostały poinformowane o jej nagrywaniu: Ogłoszenie, Sygnał dźwiękowy i reguły dotyczące regionu znajdują się w Zgoda na nagrywanie (rozdział 52).
Płatności kartą (PCI DSS)
Numer karty nie może być zapisywany w nagraniach. Przed odczytaniem numeru karty przez rozmówcę, osoba na rozszerzeniu naciska *7; *8 wznawia nagrywanie. Pauza nagrywania w Aktualne połączenia (rozdział 46) działa w ten sam sposób. Zatrzymana część jest cicha w nagraniu i widoczna w historii połączeń, aby auditor mógł zobaczyć, gdzie i jak długo.
Sali konferencyjne
Pokój z włączoną opcją Nagrywanie pokoju jest przechowywany jako jedno nagranie całego pokoju (Sali konferencyjne (rozdział 34)).
Jak długo przechowujemy rzeczy
Ustawienia określają, ile dni przechowujemy nagrania, historię połączeń i pocztę głosową; starsze są usuwane w ciągu godziny. Wszystko podlegające prawnej retencji (rozdział 73) jest przechowywane niezależnie od wieku. Archiwum (rozdział 72) może przechowywać kopie w innym miejscu.
Administratorzy i widzowie mogą odtwarzać nagrania i czytać transkrypcje; tylko administratorzy mogą transkrybować połączenie lub transkrybować je ponownie. Odtwarzanie nagrania lub czytanie jego transkrypcji jest odnotowane w dzienniku inspekcji.
Zgoda na nagrywanie
/settingsW niektórych miejscach połączenie może być nagrywane, gdy jedna osoba na nim wie; w innych miejscach każdy musi być poinformowany lub musi wyrazić zgodę. W Ustawieniach, Nagrywanie połączeń, wybierz, jak osoby na nagranym połączeniu są informowane:
- Brak powiadomienia.
- Ogłoszenie: w momencie, gdy połączenie jest odbierane, obie strony słyszą powiadomienie (nagrane w tym samym miejscu, na przykład „To połączenie jest nagrywane w celach szkoleniowych i jakościowych”), a nagrywanie rozpoczyna się dopiero po odegraniu. Do momentu, aż zostanie nagrane, są odtwarzane trzy sygnały dźwiękowe, a Stan zdrowia mówi o tym.
- Sygnał: krótki dźwięk dla obu stron co 15 sekund, podczas gdy połączenie jest nagrywane.
Reguły wybierają według numeru zewnętrznego (dzwoniącego w przypadku połączeń przychodzących, numeru wybieranego w przypadku połączeń wychodzących), najdłuższy dopasowany jako pierwszy: na przykład numery zaczynające się od 1415 (Kalifornia) Ogłoszenie, 49 (Niemcy) Nigdy nie nagrywaj, a reszta jak powyżej. Reguła Brak powiadomienia nagrywa bez powiadomienia; Nigdy nie nagrywaj całkowicie wyklucza te połączenia z nagrywania. Połączenia między numerami wewnętrznymi podążają za ustawieniem głównym.
Twoja własna numeracja również się liczy: reguły są dopasowywane do numeru zewnętrznego i Twojego (numeru wywoływanego przy połączeniach przychodzących, Twojego ID wywołującego przy połączeniach wychodzących), a najbardziej ochronny z nich wygrywa (nigdy nie nagrywaj przed ogłoszeniem przed sygnałem przed brakiem zawiadomienia). Zatem biuro w miejscu, które wymaga zgody wszystkich stron, ogłasza, kogo wywołuje, gdziekolwiek się znajduje. Gdy strony podlegają różnym regułom, historia połączenia w Historii połączeń (rozdział 47) mówi, jaka reguła została zastosowana i dlaczego.
Nagrywanie można również wstrzymać podczas połączenia za pomocą kodu pauzy (płatności kartą). Żadne z tego nie jest poradą prawną: sprawdź prawa, gdzie Ty i Twoi rozmówcy się znajdujecie.
Jakość połączenia
/qualityJak połączenia brzmiały w ciągu ostatniego dnia, tygodnia, miesiąca lub 90 dni, od dźwięku, jaki BitVoice otrzymał na każdej stronie każdego połączenia. Telefony są grupowane według ich lokalizacji (rozdział 12) (lub "brak lokalizacji"), a połączenia z zewnątrz według linii dostawcy, na której przychodzą.
Każde miejsce wyświetla swoje połączenia, średnią ocenę (MOS, na 5: powyżej 4 jest dobre, poniżej 3,6 brzmi słabo), udział pakietów dźwięku, które nigdy nie dotarły, oraz jitter (nierównomierny opóźnienie). Poniżej, BitVoice wyjaśnia, co jest nie tak w prostych słowach, na przykład „Utrata pakietów w sieci biura głównego: 3,2% dźwięku nigdy nie dotarło, głównie między 14:00 a 16:00”, wraz z tym, co należy sprawdzić. Wykres słupkowy pokazuje utracony dźwięk według godziny dnia.
Diagnoza porównuje dwie połowy tych samych połączeń: dźwięk z telefonów na miejscu i dźwięk z dostawcy, przez którego przeszły te same połączenia. Gdy druga połowa przychodzi czysta, straty są po stronie tego miejsca i tak się stwierdza; gdy obie połowy tracą dźwięk, miejsce nie ponosi wyłącznej winy i wskazuje na to, co te połączenia mają wspólnego, własne połączenie internetowe systemu. Jeśli wszystkie miejsca tracą dźwięk jednocześnie, przyczyna jest podobna, to, co mają wspólnego. Jak to zostało ustalone wymienia powody krok po kroku (książka reguł jakości połączeń, patrz Bezpieczeństwo (rozdział 60), "Jak BitVoice decyduje"). Miejsca z mniej niż trzema połączeniami nie są oceniane. Jakość połączenia na połączenie jest również w Historia połączeń (rozdział 47) (kolumna Jakość) i, podczas gdy połączenia są aktywne, na Połączenia na żywo (rozdział 46).
Połączenie, które nawiązało połączenie, ale nie otrzymało żadnego dźwięku z jednej strony, jest liczone oddzielnie, w kategorii bez dźwięku, i umieszczane jest na pierwszym miejscu: nie jest to słaby dźwięk, ale dźwięk, który nigdy nie dotarł, prawie zawsze jest to firewall lub router NAT, który przepuszcza SIP i blokuje media. Porada miejsca wskazuje, co należy sprawdzić (dla dostawcy, jego zakresy adresów mediów).
Koszty i budżety
/costsBitVoice wycenia każde połączenie na podstawie tego, co Twój dostawca za niego pobiera, i wyświetla wydatki miesiąca według departamentu, osoby i łącza, z najdroższymi połączeniami.
Ceny
Na Łączach (rozdział 7), otwórz łącze i jego Ceny połączeń. Każda cena obejmuje numery, które zaczynają się od pewnych cyfr, tak jak numer jest wysyłany do dostawcy (tylko cyfry, więc 44 dla Wielkiej Brytanii, 1900 dla amerykańskich numerów premium); najdłuższe dopasowanie wygrywa, a cena bez cyfr obejmuje każdy inny numer. Podaj cenę za minutę, jakąkolwiek opłatę za odebrane połączenie, krok rozliczeniowy (60 sekund dla pełnych minut, 6 lub 1 dla drobniejszych) i jakąkolwiek minimalną. Połączenia przychodzące, za minutę dotyczy numerów bezpłatnych, za które płacisz, aby je otrzymać. Ile to kosztuje sprawdza numer przed wybraniem go. Waluta jest ustawiona w Kosztach.
Koszt połączenia jest ustalony, gdy się kończy, z cenami z tego czasu; zmiana ceny nie zmienia poprzednich połączeń. Koszty mówią, ile odebranych połączeń wychodzących nie miało ceny.
Departamenty i budżety
Przypisz rozszerzeniom Departament (w rozszerzeniu). Na Kosztach dodaj budżet dla każdego połączenia lub dla jednego departamentu: pojawia się alert w BitVoice, a także jest wysyłany na adres budżetu i adres alertu, na 80% i ponownie na 100% miesiąca.
Alarm
Połączenia wychodzące kosztują więcej niż to w godzinie wywołuje alarm, gdy połączenia wychodzące przekroczą tę kwotę w dowolnej godzinie. Nagły szereg drogich połączeń to zwykle znak oszustwa związanego z opłatami (skradziony hasło telefonu): sprawdź Historię połączeń, a następnie wyłącz rozszerzenie lub łącze.
Reputacja ID wywołującego i połączenia z marką
/reputationFirmy telefoniczne prowadzą filtry spamu, które mogą oznaczyć numer firmy jako "Spam prawdopodobny", lub zablokować go, a wtedy prawie nikt nie odbiera. Reputacja ID wywołującego obserwuje każdy numer, z którego wywołujesz, z Twoich własnych połączeń, i mówi w prostych słowach, jak się ma:
- Odpowiedziane: udział połączeń odpowiedzianych i jaki był w poprzednim okresie. Spadek o połowę lub poniżej 20% jest zwykłym znakiem nowej etykiety.
- Nawrócone od razu: połączenia odpowiedziane, które zakończyły się w ciągu 10 sekund.
- Odrzucone jako spam: połączenia, które filtr operatora odrzucił (SIP 608) lub które osoba oznaczyła jako niepożądane (607). Jeden 608 oznacza, że numer jest oznaczony.
- Ciężkie użycie: ponad 150 połączeń dziennie z jednego numeru to to, co robią robocallers, i filtry zauważają.
Numery z mniej niż 20 połączeniami są wyświetlane jako zbyt mało, aby je ocenić.
Twoje numery wychodzące nadają każdemu numerowi nazwę (wysyłaną jako nazwa osoby dzwoniącej), powód połączenia oraz logo (obraz https://). Na trasie z włączoną opcją Wyślij nazwę osoby dzwoniącej logo i powód są wysyłane jako bogate dane połączenia (RFC 9796 Call-Info); operatorzy, którzy obsługują nazwę osoby dzwoniącej, wyświetlają je na telefonie osoby dzwoniącej. Większość telefonów wyświetla nazwę z bazy danych caller-name (CNAM), którą ustawia operator: poproś o to operatora. Obserwuj umieszcza ostrzeżenie w sekcji Zdrowie, gdy obserwowany numer zaczyna wyglądać na oznaczony.
Strona również informuje, co zrobić, gdy numer jest oznaczony.
Ochrona przed spamem i STIR/SHAKEN
/settingsW Stanach Zjednoczonych i Kanadzie dostawca, z którego pochodzi połączenie, potwierdza jego ID dzwoniącego (STIR/SHAKEN): A, gdy wie, że dzwoniący może używać tego numeru, B, gdy wie, kto dzwoni, ale nie zna numeru, C, gdy tylko przekazuje połączenie. Twój dostawca albo informuje BitVoice o swoim werdykcie (verstat) albo przekazuje podpisaną nagłówek Identity, który BitVoice sprawdza sam: podpis, że jest młodszy niż minute, i że wymienia numery tego połączenia. Werdykt jest wyświetlany jako Weryfikowane, Częściowo weryfikowane, Nieweryfikowane lub Niezweryfikowane na Połączeniach na żywo i w Historii połączeń.
W Ustawieniach, Ochrona przed spamem, wybierz, co się dzieje, gdy ID dzwoniącego nie przejdzie weryfikacji (dzwoni, dzwoni z etykietą lub odrzuć), gdy nie jest weryfikowane w ogóle, a gdy numer jest ukryty. Połączenie z etykietą dzwoni z Spam? (lub Twoją własną etykietą) przed nazwą dzwoniącego. Zablokowane numery są odrzucane; wpis kończący się * blokuje zakres (+1900* to każdy amerykański numer premium). Zawsze dozwolone numery nigdy nie są odrzucane ani oznaczone. W Historii połączeń przycisk blokady obok dzwoniącego dodaje go do listy; odrzucane połączenia są wyświetlane jako Zablokowane.
W ciągu godziny od połączenia alarmowego z dowolnego rozszerzenia, żadne połączenie nie jest odrzucane (zablokowane dzwonią z etykietą), na wypadek, gdy jest to połączenie powrotne od służby alarmowej. Połączenie 911 (z ESInet lub trunku CAMA) nigdy nie jest odrzucane ani opóźniane przez ekranowanie.
Callers BitVoice does not know
A caller is known when the number is always allowed, in the contacts (rozdział 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:
| Wybór | Co dzwoniący otrzymuje |
|---|---|
| Dzwoni normalnie | połączenie dzwoni jak każde inne (domyślnie) |
| Test robota najpierw | BitVoice odpowiada i mówi "Aby zostać połączonym, proszę nacisnąć" i cyfrę, która zmienia się przy każdym połączeniu. Prawidłowy klawisz łączy ich z miejscem, do którego było przeznaczone połączenie; wszystko inne lub nic (dwa razy), i idą do Dzwoniących, którzy nie zdali testu, lub słyszą pożegnanie. Roboklienci nie naciskają go |
| Wyślij w inne miejsce | nic nie dzwoni: idą prosto do wybranego miejsca, skrzynki pocztowej na przykład |
Test robota wymaga nagranych słów: w Dźwięki (rozdział 20), nagraj lub utwórz (za pomocą usługi mowy) komunikaty przesiewowe i cyfry od 1 do 9 w języku osób dzwoniących. Dopóki nie zostaną nagrane, połączenia będą dzwonić normalnie (osoba dzwoniąca nie może przejść testu, którego nie może usłyszeć), a Health o tym informuje. Osoba dzwoniąca, która przejdzie test, jest uznawana za znaną przez 90 dni. Test odpowiada na połączenie, więc dostawca osoby dzwoniącej zaczyna obciążać ją opłatami od tego momentu, tak jak w przypadku każdego odebranego połączenia. Historia połączeń wyświetla wynik każdego połączenia (zaliczone, niezaliczone, wysłane) i ślad powodu wyjaśnia, co się stało.
Baza spamu
BitVoice może zapytać usługę reputacji o każdego nieznanego dzwoniącego przed odebraniem połączenia. Użyj Nomorobo przez Twilio wypełnia Twilio Lookup z wynikiem spamu Nomorobo (zainstaluj dodatek Nomorobo w swoim koncie Twilio, a następnie wprowadź jego ID konta i token uwierzytelniania); każda inna usługa, która odpowiada w JSON, również działa: podaj jej adres z {e164} (+12125550142) lub {number} (tak jak dostawca go wysłał), gdzie jest jej werdykt (Pole werdyktu, ścieżka kropkowa), i kiedy oznacza spam (wynik na poziomie lub powyżej Spam na wyniku, prawda lub tekst w Lub spam, gdy tekst jest, np. BLOCK). Wybierz, co się dzieje z dzwoniącym, którego uważa za spam: dzwoni z etykietą, test robota lub odrzucony.
- Te usługi naliczają opłatę za każde zapytanie. Znani dzwoniący nigdy nie są sprawdzani, a każda odpowiedź jest przechowywana przez dzień (Przechowuj odpowiedzi).
- Wolna lub uszkodzona usługa nigdy nie zatrzymuje połączenia: po Maksymalnym czasie oczekiwania (1,5 sekundy, chyba że zmienisz to) połączenie dzwoni tak, jakby odpowiedź była "nie spam".
- Test pyta ją o numer teraz (i jest naliczana opłata jak za każde zapytanie).
Zablokuj ostatniego dzwoniącego
Natychmiast po niepożądanym połączeniu, wybierz *32* (Kody funkcji (rozdział 32)) z telefonu, który dzwonił: ostatni zewnętrzny numer, który dzwonił na tej linii w ciągu ostatniego dnia, trafia na listę blokowanych, a telefon odczytuje numer. Numer zawsze dozwolony nie jest blokowany, a telefon o tym informuje. Każde zdarzenie jest rejestrowane w dzienniku inspekcji, wraz z informacją, kto je zablokował.
Sugerowane z Twoich połączeń
BitVoice czyta ostatnie 30 dni połączeń z zewnątrz w poszukiwaniu numerów, które dzwonią raz za razem i są odrzucane od razu: trzy połączenia lub więcej, prawie wszystkie z nich trwają krócej niż 10 sekund, lub dwa testy robota nie powiodły się, i nigdy nie było prawdziwej rozmowy (ktoś mówił przez 30 sekund lub dłużej). Znani numery są pomijani. Każdy przychodzi z powodem; Zablokuj umieszcza go na liście blokowanych, a Nie spam oznacza, że nigdy nie będzie sugerowany. Nic nie jest blokowane, dopóki osoba nie powie tak.
Aby sprawdzić certyfikaty względem władz STI, wklej ich certyfikaty pod Władze certyfikacji STI; bez nich BitVoice sprawdza, czy połączenie zostało podpisane certyfikatem, który wymienia, ale nie kto wydał ten certyfikat.
Podpisywanie własnych połączeń
Większość dostawców podpisywała połączenia swoich klientów samodzielnie. Jeśli Twój dostawca pozwala na podpisywanie (lub jesteś dostawcą korzystającym z BitVoice), włącz Podpisz ID dzwoniącego na łączu (Łącza (rozdział 7)) i podaj swój certyfikat STI (z władzy certyfikacji STI, z tokenem kodu dostawcy) i jego klucz prywatny (P-256). Każde połączenie wychodzące przez to łącze będzie zawierało podpisaną nagłówek Identity (ES256, jak wymaga SHAKEN).
- Adres certyfikatu (x5u) to miejsce, z którego strona odbiorcza pobiera certyfikat. Pozostaw to puste, a BitVoice opublikuje go pod
/stir/<trunk>.pemna swoim publicznym adresie (Ustawienia), który musi być wtedy dostępny z internetu przez HTTPS. - Poświadczenie: automatyczne daje A, gdy numer wewnętrzny dzwoni z jednym ze swoich numerów (numerem przekierowanym lub ustawionym na łączu lub numerze wewnętrznym), B, gdy numer wewnętrzny dzwoni z dowolnym innym numerem, i C dla połączeń przekazywanych z zewnątrz (przekierowanych). Można to również ustalić na A, B lub C.
- Historia połączeń oznacza każde podpisane połączenie jako podpisane A, B lub C. Połączenie nigdy nie jest zatrzymane, ponieważ nie mogło być podpisane; powód jest w logu.
Uruchamianie BitVoice
Zachowanie bezpieczeństwa i ciągłości działania: administratorzy i logowanie, zabezpieczenia, zmiany i aktualizacje, wiele serwerów, organizacje hostowane, kodeki, zespoły, importowanie, automatyzacja i narzędzia do rozwiązywania problemów.
Administratorzy
/usersAdministratorzy to osoby, które logują się do tego interfejsu sieciowego. Pracownicy, którzy tylko opiekują się własnymi połączeniami, używają portalu pracowniczego zamiast i nie potrzebują konta tutaj (Portal pracowniczy (rozdział 33)).
Role
| Rola | Może |
|---|---|
| Administrator | zmieniać wszystko, odtwarzać nagrania, widzieć istnienie każdego pola tajnego (nigdy jego wartości) |
| Widz | widzieć wszystko, zmieniać nic; tajemnice są ukryte |
Zmiana roli lub hasła powoduje wylogowanie osoby ze wszystkich miejsc jednocześnie.
Logowanie dwuetapowe
Każda osoba włącza logowanie dwuetapowe dla siebie: Konfiguracja wyświetla klucz dla aplikacji uwierzytelniającej; wprowadzenie kodu, który wyświetla, włącza ją. Od tego momentu logowanie wymaga kodu oraz hasła. Wyłączenie go wymaga hasła.
Logowanie jednokrotne
Z logowaniem jednokrotnym (Ustawienia), osoby logują się za pomocą konta organizacji (Microsoft Entra, Google, Okta, dowolny dostawca OpenID Connect), a konto jest tworzone dla nich po raz pierwszy. Zobacz Logowanie jednokrotne (rozdział 58).
Tokeny API
Programy (Terraform, skrypty) używają tokenów API zamiast hasła: tworzone na tej stronie, wyświetlane raz i odwoływane w dowolnym momencie. Każdy token jest administratorem lub widzem. Token utworzony z Nazwa osoby, której działa (dla CAD) może wysyłać X-BitVoice-On-Behalf-Of z nazwą osoby, a nagrania wtedy nazywają tę osobę obok tokenu (połączenia 911 (rozdział 77)).
Logowanie jednokrotne
Logowanie jednokrotne pozwala ludziom logować się do BitVoice za pomocą swojego konta służbowego, przez dowolnego dostawcę OpenID Connect: Microsoft Entra ID, Google, Okta, Keycloak i innych. Opuszczanie organizacji następnie usuwa ich dostęp tutaj.
Konfiguracja
W Ustawieniach (rozdział 14), Logowanie jednokrotne:
- Zarejestruj aplikację u dostawcy, z adresem Przekierowania wyświetlanym tutaj.
- Wypełnij dla dostawcy ustawia Wystawcę dla wspólnych; skopiuj ID klienta i Klucz tajny od dostawcy.
- Nazwij Grupy administratorów i Grupy widzów dostawcy. Oświadczenie grup to miejsce, w którym dostawca umieszcza je (
groups, chyba że zostanie ustawione). - Opcjonalnie zmień Tekst przycisku na stronie logowania.
- Włącz Użyj logowania jednokrotnego.
Jak to działa
- Konto tutaj jest tworzone podczas pierwszego logowania; grupy ustawiają rolę przy każdym logowaniu, więc przeniesienie kogoś między grupami u dostawcy zmienia jego rolę tutaj.
- Osoba, która nie należy do żadnej z tych grup, jest odrzucana, a odrzucenie jest rejestrowane w dzienniku inspekcji.
- Z Również zezwalaj na hasła wyłączone, hasła działają tylko na tym komputerze, więc awaria dostawcy nigdy nie zablokuje Cię.
Katalog firmowy (Active Directory i LDAP)
BitVoice może odczytywać Twój katalog firmowy, Active Directory lub inny serwer LDAP (OpenLDAP, Samba, 389 Directory Server, FreeIPA): osoby z numerem telefonu stają się extensionami, grupy katalogu wypełniają grupy dzwonienia, a osoby logują się do interfejsu sieciowego przy użyciu hasła katalogu. BitVoice tylko czyta katalog; nigdy nie zapisuje do niego.
Łączenie
W Ustawieniach (rozdział 14), Katalog firmowy:
- Wybierz Active Directory lub Inny serwer LDAP: ustawia, które atrybuty są odczytywane (sAMAccountName lub uid dla nazwy logowania, displayName lub cn, mail, telephoneNumber). Zmień dowolne z nich w jego polu.
- Serwer:
ldaps://dc1.example.com(port 636) lubldap://...z StartTLS włączone. Zwykły LDAP jest odrzucany, chyba że serwer jest tym komputerem, ponieważ hasła przekroczyłyby sieć niezaszyfrowane. Gdy certyfikat serwera pochodzi z Twojej własnej władzy certyfikacji, wklej władzę w Władzę certyfikacji firmy. - Konto odczytu i Jego hasło: konto dozwolone do odczytywania osób i grup (
reader@example.comw Active Directory). Hasło może być odniesieniem do skarbca kluczy (Ustawienia, Skarbnice kluczy). - Baza DN: gdzie znajdują się osoby i grupy (
dc=example,dc=com). Które osoby zawęża je za pomocą filtru LDAP; w Active Directory konta wyłączone są zawsze pomijane. - Test loguje się za pomocą konta odczytu i odczytuje wszystkich, nie zmieniając nic: pokazuje, ile osób znalazł, ile ma numer, i jaki extension każdy otrzymałby.
Extensiony i grupy dzwonienia
- Z Utwórz i zaktualizuj extensiony włączone, każda osoba z numerem otrzymuje extension: ostatnie Zachowane cyfry (4 z
+1 212 555 0123to 0123; 0 zachowuje każdą cyfrę, która musi być wtedy 2 do 8). Nowe extensiony otrzymują hasło SIP i pocztę głosową z losowym PIN-em; imię i adres e-mail osoby pochodzą z katalogu. - Katalog jest właścicielem extensionu, który utworzył: jego numer, imię i adres e-mail są dostosowywane do katalogu przy każdej synchronizacji. Wszystko inne (urządzenia, przekierowania, ustawienia poczty głosowej) należy do Ciebie.
- Extension utworzony ręcznie nigdy nie jest przejmowany, chyba że ma imię lub adres e-mail tej osoby. Dwie osoby z tym samym numerem, numer, którego extension już używa, lub numer o niewłaściwej długości są wyświetlane w Do sprawdzenia, i nic nie jest zmieniane dla nich.
- Z Wyłącz extensiony osób, które odeszły włączone, extension utworzony przez katalog jest wyłączany, gdy osoba opuszcza, jest wyłączona lub traci swój numer, i wraca, gdy wraca.
- Grupy dzwonienia wypełnione z grup katalogu: każda linia umieszcza extensiony członków grupy w grupie dzwonienia (w Active Directory grupy zagnieżdżone są brane pod uwagę). Grupa z nikim, kto nie ma extensionu, pozostawia grupę dzwonienia tak, jaka była.
- Katalog jest odczytywany co Odczytaj co minuty (60 domyślnie) i od razu z Synchronizuj teraz. Każda synchronizacja, która zmienia coś, jest jedną rewizją (rozdział 61) o nazwie "Synchronizacja katalogu firmowego", więc można ją cofnąć; raport ostatniej synchronizacji jest wyświetlany poniżej przycisku.
Logowanie
Z Osoby logują się tutaj z nazwą katalogu i hasłem włączone, strona logowania akceptuje nazwy katalogu i hasła, a także konta BitVoice:
- Członkowie Grup administratorów logują się jako administratorzy, Grup widzów jako widzowie (bez grup widzów, każdy inny w katalogu). Grupy są nazwane przez ich nazwę (cn) lub DN; w Active Directory grupy zagnieżdżone są brane pod uwagę. Osoba w żadnej z tych grup jest odrzucana.
- Konto tutaj jest tworzone podczas pierwszego logowania, a jego rola jest dostosowywana do grup przy każdym logowaniu. Nigdy nie przejmuje konta BitVoice o tej samej nazwie.
- Puste hasło jest zawsze odrzucane (LDAP przyjmie je w przeciwnym razie jako anonimowe logowanie), konto wyłączone nie może się zalogować, a nazwy są uciekające przed dotarciem do katalogu.
- Dwuetapowe logowanie może być dodane do tych kont, jak do każdego innego.
Bezpieczeństwo
/securitySystem telefoniczny w Internecie jest atakowany w ciągu kilku godzin: skanery próbują hasła na każdym porcie SIP, a włamany system generuje połączenia do numerów premium. BitVoice jest zaprojektowany, aby oprzeć się temu domyślnie, warstwowo.
Przeciwko zgadywaniu haseł
- Adresy, które nieudaną próbę logowania są banowane na jakiś czas (Ustawienia, Ochrona): domyślnie dziesięć nieudanych prób w minutę blokuje adres na godzinę. Zablokowane adresy są wyświetlane na Bezpieczeństwo (rozdział 60) i mogą być odblokowane.
- Sieci zaufane nigdy nie są banowane: twoja sieć biurowa.
- Hasła SIP są generowane, co najmniej 12 znaków, jedno na rozszerzenie. Telefon logujący się jako jedno rozszerzenie nigdy nie może zarejestrować innego.
- Skaner, który jest zablokowany, nie otrzymuje żadnej odpowiedzi, więc niczego nie dowiaduje się.
Przeciwko oszustwom
- Rozszerzenia mogą wykonywać połączenia na zewnętrzne numery tylko wtedy, gdy są dozwolone.
- Numery premium są odrzucane, chyba że trasa je nazwie.
- Strażnik przed oszustwami (poniżej) ocenia każde połączenie za granicą przed jego wykonaniem.
- Koszty (rozdział 54) ostrzegają o budżetach i o wydatkach, które uciekają: wiele połączeń do jednego kraju w godzinę.
- Każde rozszerzenie może mieć najwyżej cztery połączenia na raz (Ustawienia, Ochrona).
Strażnik przed oszustwami
Włącz go w Ustawieniach, Strażnik przed oszustwami. Każde połączenie za granicą (przez +, 00 lub 011, a także miejsca, które dzielą +1 z Ameryką Północną, ale są innymi krajami, takimi jak Jamajka, klasycznym celem oszustw) jest wtedy oceniane przed jego wykonaniem:
| Sytuacja | Co robi |
|---|---|
| Połączenie za granicą do kraju, z którym to rozszerzenie łączyło się w ciągu ostatnich 90 dni | pozwala na to |
| Pierwsze połączenie do tego kraju w 90 dni | pozwala na to i zgłasza |
| Pierwsze połączenie tam poza godzinami pracy, lub zainicjowane z zewnątrz (połączenie przychodzące, przekierowanie) | prosi o wprowadzenie kodu (bez wybranego kodu, odmawia) |
| Więcej niż Połączenia za granicą w 10 minut z jednego rozszerzenia | odmawia |
| Pierwsze połączenie za granicą, gdy ktoś zgaduje hasła (trzy nieudane próby z rzędu z jednego adresu, lub zablokowanie, w ciągu ostatniej godziny) | odmawia |
| Numer alarmowy | zawsze pozwala na to |
Kraje zawsze dozwolone (kody wywoławcze, takie jak 44) i Wyjątki (rozszerzenie zwolnione do dnia, na podróż) usuwają "pierwsze połączenie" i "poza godzinami pracy"; nigdy nie usprawiedliwiają wielu połączeń w krótkim czasie lub ataku, ponieważ skradzione hasło wygląda na zatwierdzone. Jeśli historia połączeń nie może być odczytana, strażnik nie wie, czy połączenie jest pierwsze, i coś, co nie jest mierzone, nigdy nie jest uważane za bezpieczne: prosi o kod. Każda ocena jest wyświetlana na Bezpieczeństwo (rozdział 60) z powodami, i jest w rekordzie połączenia w Historia połączeń (rozdział 47).
Jak BitVoice decyduje
Sędziowie BitVoice (strażnik przed oszustwami, sędzia zdrowia łączy, diagnoza jakości połączenia i sprawdzanie lokalizacji połączenia 911) każdy postępuje zgodnie z księgą zasad: fakty, które są mierzone, wnioski, które je wspierają, wyjątki, które anulują wniosek, i wybory. Jak BitVoice decyduje, na Bezpieczeństwo (rozdział 60), pokazuje każdą księgę zasad. Zasady, które sędziowie przestrzegają:
- Każda odpowiedź przychodzi z powodami: co utrwaliło, co było argumentowane przeciwko niemu i co anulowało to.
- Coś, czego nikt nie mierzył, jest nieznane, nigdy "nie". Gdy coś nieznanego mogłoby zmienić odpowiedź, sędzia podejmuje ostrożny wybór i mówi, co nie mogło być zmierzone.
- "Nie można określić" jest odpowiedzią: gdy zasady pozostawiają sytuację niezdecydowaną, sędzia podejmuje ostrożny wybór i mówi o tym.
- Każda księga zasad jest sprawdzana we wszystkich kombinacjach swoich faktów przed użyciem (gdy BitVoice zaczyna się, i przez jego testy): nigdy dwa wybory na raz, i każda zasada jest osiągalna. Ekran pokazuje, ile sytuacji każda była sprawdzona.
Szyfrowanie
- TLS szyfruje sygnały (port 5061), więc hasła i numery nie są czytelne w sieci.
- SRTP szyfruje dźwięk połączeń; przeglądarka telefonu i aplikacje zawsze go używają.
- Interfejs sieciowy ma HTTPS na porcie 8443 z własnym certyfikatem lub tym, który instalujesz.
Kto może co robić
- Administratorzy mogą zmieniać wszystko; obserwatorzy widzą wszystko, ale nic nie zmieniają; personel używa portalu tylko dla swoich połączeń.
- Włącz dwuetapową weryfikację dla każdego administratora (Administratorzy (rozdział 57)): kod z aplikacji uwierzytelniającej.
- Logowanie jednokrotne (rozdział 58) loguje ludzi przez Twojego dostawcę tożsamości.
- Rejestr inspekcji rejestruje każde działanie administracyjne i kto to zrobił, i nie może być edytowany.
Zmiany, kopie zapasowe i import
/changesKażda zapisana zmiana jest rewizją: ponumerowana, z informacją o tym, kto ją wykonał, kiedy i krótkim podsumowaniem. Nic w konfiguracji nigdy nie ginie.
Porównywanie i przywracanie
- Co się zmieniło pokazuje różnicę między rewizją a poprzednią, pole po polu.
- Przywróć pokazuje, co przywrócenie zmieni i pyta najpierw. Przywrócenie jest również nową rewizją, więc można ją również cofnąć.
Eksport i import
- Eksport pobiera całą konfigurację jako jeden plik (bez tajemnic, chyba że poprosisz o nie).
- Import podgląda zmiany w pliku przed zastosowaniem ich.
- Import (rozdział 68) również czyta konfiguracje FreePBX i Asterisk, listy użytkowników 3CX oraz eksporty CSV z Cisco Unified CM, Avaya i Mitel.
- Archiwum (rozdział 72) kopiuje kopie zapasowe, nagrania i pocztę głosową do Amazon S3 lub Azure.
Zmiany wprowadzane w tym samym czasie
Dwóch administratorów edytujących to samo jednocześnie nie może nadpisać siebie nawzajem: drugie zapisywanie jest odrzucane z komunikatem do ponownego załadowania, i nic nie ginie.
Aktualizacje
/updatesAktualizowanie BitVoice jest proste i bezpieczne: sprawdza nową wersję, instaluje ją obok starej i wraca do poprzedniej wersji, jeśli nowa nie utrzymuje połączenia.
Instalowanie aktualizacji
- Pobierz nową wersję i rozpakuj ją. Obok programu znajduje się jego sygnatura od BioDream:
bitvoice.siglubbitvoice.exe.sigw systemie Windows. - Na Aktualizacje (rozdział 62) przesłanie programu i jego pliku
.sig. - Naciśnij Zainstaluj. Domyślnie BitVoice czeka, aż nie będą trwać połączenia; możesz również zainstalować od razu.
- BitVoice restartuje się w nowej wersji. W przypadku kilku serwerów połączenia w trakcie są przekazywane do innego serwera i kontynuowane.
Powrót
Poprzednia wersja jest zachowywana: Powróć powraca do niej w jednym kliknięciu. Nowa wersja, która nie uruchamia się dwa razy lub nie utrzymuje połączenia przez minutę, jest zastąpiona przez poprzednią wersję automatycznie.
Sygnatury
Każda wersja od v0.1.3 zawiera klucz wydawniczy BioDream. Taki build instaluje tylko programy podpisanymi tym kluczem: plik niepodpisany, podpisywany przez kogoś innego lub zmieniony o jeden bajt jest odrzucany z sygnatura nie pasuje. Strona mówi, czy ten build sprawdza (Wymagane) czy nie.
| Uruchamiasz | Akceptuje aktualizacje |
|---|---|
| wersję, v0.1.3 lub nowszą | tylko programy podpisane przez BioDream |
| v0.1.2 lub starszą, lub własną kompilację | dowolny program: bez klucza, plik .sig nie może być sprawdzony i jest ignorowany |
Kilka serwerów jako jeden system telefoniczny
/serversDwa lub więcej serwerów BitVoice, które udostępniają jedną bazę danych PostgreSQL, działają jako jeden system telefoniczny:
- Połączenie dociera do telefonu niezależnie od serwera, z którym jest zarejestrowany: grupy dzwonienia, kolejki, transfery do rozszerzenia i połączenia z linii dostawców dzwonią na telefony na każdym serwerze.
- Ustawienia zmienione na jednym serwerze mają zastosowanie na wszystkich w ciągu pięciu sekund; użytkownicy, kontakty, historia połączeń, transkrypcje nagrań i teksty są współdzielone.
- Lampy zajętości (BLF) pokazują telefony na każdym serwerze, które dzwonią i są zajęte; miejsca parkingowe są współdzielone, więc połączenie zaparkowane na jednym serwerze może być odebrane z telefonu na innym; oglądanie dociera do telefonów na każdym serwerze; teksty docierają do telefonów biurkowych, niezależnie od tego, gdzie są zarejestrowane.
- Agent kolejki na połączeniu na jednym serwerze jest liczony jako zajęty na innych, a limit kanału linii dostawcy liczony jest na każdym serwerze.
- Aktywne połączenia na każdym serwerze wyświetla połączenia na innych również (tylko do odczytu: odłącz lub nasłuchuj na serwerze, który ma połączenie).
- Rekord połączenia jest zapisywany jeden raz, przez serwer, który ma połączającego, i połączenie jest również nagrywane tam.
Konfiguracja
- Przenieś dane pierwszego serwera do PostgreSQL: Ustawienia, Baza danych.
- Uruchom każdy inny serwer z tą samą bazą danych:
bitvoice -database postgres://…(lub zmienną środowiskową BITVOICE_DATABASE). Dołącza od razu; Serwery wyświetla go. - Na Serwery, sprawdź, gdzie każdy serwer jest dostępny (jego adres i port SIP w sieci, którą serwery udostępniają), i nadaj każdemu nazwę. Serwery, które są dostępne z Internetu pod adresem publicznym (serwery chmurowe z publicznymi IP, bez współdzielonego adresu), otrzymują również Własny publiczny adres: dostawcy i telefony na zewnątrz są informowane o tym, więc gdy serwer przejmuje połączenie, dźwięk dostawcy go śledzi. Pozostawione puste, serwer używa publicznego adresu w Ustawieniach.
- Powiedz telefonom, jak znaleźć serwery (poniżej).
- Linie dostawców (poniżej).
Jak telefony znajdują serwery. Telefony ustawione przez BitVoice (Yealink, Polycom, Grandstream) są automatycznie przypisane do innego uruchomionego serwera jako ich serwer zapasowy. Dla innych, Snom i telefonów ustawionych ręcznie, użyj jednego z poniższych na Serwery:
- Nazwa DNS dla każdego serwera: nazwa, taka jak pbx.example.com z rekordami SRV (_sip._udp, _sip._tcp, _sips._tcp), które wyświetlają każdy serwer. Telefony ustawione przez BitVoice otrzymują tę nazwę, a Serwery sprawdzają rekordy w stosunku do uruchomionych serwerów, wyświetlają, co jest nieobecne, i dostarczają rekordy do utworzenia, gotowe do skopiowania.
- Współdzielony adres: nieużywany adres w sieci serwerów, taki jak 192.168.1.50/24. Jeden uruchomiony serwer utrzymuje go przez chwilę i informuje sieć od razu (gratuitous ARP); jeśli przestanie działać, następny serwer przejmuje adres w ciągu kilku sekund, kontynuuje połączenia i odpowiada na telefony pod tym samym adresem, bez potrzeby ponownej rejestracji. Wymaga Linuxa i uprawnień NET_ADMIN i NET_RAW (w kontenerze:
--cap-add NET_ADMIN --cap-add NET_RAW), oraz serwerów w jednej sieci. Zrestartuj każdy serwer po ustawieniu.
Linie dostawców. W każdej linii, Udostępnione między serwerami określa, jak:
- Każdy serwer używa go: każdy serwer rejestruje się i wykonuje swoje własne połączenia. Dla dostawców, którzy zezwalają na kilka rejestracji na jednym koncie, lub żadnej.
- Jeden serwer na raz: jeden serwer rejestruje się i obsługuje linię; inne serwery wyświetlają ją jako Rezerwa, utrzymywana przez ten serwer i wysyłają swoje połączenia przez niego. Jeśli serwer przestanie działać, następny serwer rejestruje się w ciągu kilku sekund. Dla dostawców, którzy zezwalają na jedną rejestrację na konto.
Gdy serwer przestaje działać
- Połączenia są kontynuowane. Każdy serwer zapisuje notatkę o swoich połączeniach w bazie danych; gdy jeden przestaje działać, uruchomiony serwer przejmuje każde połączenie w ciągu kilku sekund, przenosi dźwięk do siebie i informuje obie strony (re-INVITE). Występuje przerwa w dźwięku przez kilka sekund. Zaplanowane zatrzymanie (aktualizacja, restart) przekazuje połączenia od razu, bez przerwy.
- Połączenie, którego telefon jest zarejestrowany na serwerze, który przejmuje, jest kontynuowane tam bez zakłócania tego telefonu: tylko druga strona jest przenoszona.
- Jego telefony kontynuują działanie przez serwer zapasowy, nazwę DNS lub współdzielony adres.
- Serwer, który tylko restartuje (aktualizacja, ponowny rozruch), wciąż wie, gdzie jego telefony są zarejestrowane: przechowuje je w swoim folderze danych (
registrations.json), więc połączenia docierają do nich, zanim zarejestrują się ponownie. - Health i Serwery wyświetlają go jako zatrzymany; gdy wraca, nie przejmuje niczego z serwera, który przejął.
Pomiędzy serwerami. Serwery łączą się ze sobą przez port SIP za pomocą TCP lub TLS, jeśli posiadają certyfikat (każdy akceptuje tylko certyfikat opublikowany przez drugiego, a dźwięk między nimi jest wtedy szyfrowany za pomocą SRTP), oraz wysyłają dźwięk do portów multimedialnych drugiego serwera (UDP, zakres w Ustawieniach). Połączenia między serwerami są podpisywane tajnym kluczem, który dzielą w bazie danych, i są akceptowane tylko z uruchomionego członka pod jego własnym adresem. Zaporę sieciową między nimi należy otworzyć dla tych portów.
Przetestuj najpierw: laboratorium. BitVoice jest wyposażony w laboratorium, które uruchamia dwa serwery, ich bazę danych i testowe telefony na jednym komputerze z Docker, każdy pod własnym adresem: deploy/lab/run.sh up buduje i uruchamia je oraz ustawia wspólny adres; run.sh call wykonywać połączenia między telefonami na różnych serwerach; run.sh failover zabija serwer, który przenosi połączenie przez wspólny adres i sprawdza, czy połączenie jest kontynuowane (dźwięk powraca w ciągu około pięciu sekund); run.sh impaired wykonywać połączenia z telefonu na złym połączeniu (opóźnienie, jitter i 5% strat) i sprawdza jakość połączenia, którą raportuje BitVoice; run.sh down usuwa je. Strony serwerów są dostępne pod adresem https://127.0.0.1:18501 i :18502 (użytkownik admin).
Gdzie przechowywane są dane (SQLite lub PostgreSQL)
/settingsBitVoice przechowuje swoje ustawienia i ich zapisane wersje, użytkowników, kontakty, rekordy połączeń, logi inspekcji, teksty, notatki i transkrypcje w bazie danych. Nagrania i poczta głosowa pozostają jako pliki dźwiękowe w folderze danych.
Własny plik serwera (SQLite, domyślnie): jeden plik, bitvoice.db w folderze danych, bez niczego do zainstalowania. Wykonaj kopię zapasową folderu danych, a będziesz miał wszystko.
PostgreSQL: dla kilku serwerów BitVoice, które dzielą jeden zestaw danych, lub dla raportów w narzędziach takich jak Power BI, Grafana lub Metabase. W Ustawieniach, Baza danych, Przenieś dane do PostgreSQL: utwórz pusty zestaw danych i użytkownika, który go włada, wprowadź jego adres (postgres://użytkownik:hasło@host:5432/baza_danych), naciśnij Test, a następnie Kopiuj dane i zrestartuj na PostgreSQL. Wszystko jest kopiowane jednorazowo (wszystko lub nic) i BitVoice restartuje się na nim; stary plik pozostaje tam, gdzie był. Przenoszenie z powrotem do własnego pliku serwera działa w ten sam sposób. Przenoszenia są odrzucane podczas trwania połączeń.
Serwery, które dzielą bazę danych PostgreSQL, widzą zmiany ustawień nawzajem w ciągu pięciu sekund. Każdy nadal odpowiada na swoje telefony i połączenia; aby drugi serwer przejął telefony pierwszego serwera, telefony potrzebują obu adresów (lub jednego adresu, który się porusza).
Bazę danych można również nazwać podczas uruchamiania BitVoice, z -database postgres://… lub zmienną środowiskową BITVOICE_DATABASE; jest wtedy zmieniana tam, a nie w Ustawieniach.
Starsze instalacje: podczas pierwszego uruchomienia tej wersji, BitVoice kopiuję swoje stare pliki JSON do bazy danych i przenosi je do pre-database w folderze danych.
Hostowanie innych organizacji
/tenantsJeden BitVoice może hostować wiele organizacji. Każda z nich jest własnym systemem telefonicznym: własnymi rozszerzeniami, numerami, łączami, trasami, administratorami, voicemail, nagraniami i historią połączeń. Żadna organizacja nie może zobaczyć innej. Udostępniają tylko port SIP, port IAX2 i porty multimedialne tego serwera.
Kiedy go używać
- Dostawca lub firma IT, zarządzająca systemami telefonicznymi dla wielu małych klientów na jednym serwerze.
- Grupa biur lub klinik, które chcą oddzielne systemy, zarządzane oddzielnie, na współdzielonym sprzęcie.
- Kilka punktów odbioru połączeń, dzielących jeden system, z których każdy zachowuje swoich operatorów i rekordy.
Główny system jest również organizacją: tą, którą serwer został ustawiony jako. Jego administratorzy zarządzają innymi.
Dodawanie organizacji
- Otwórz Organizacje (rozdział 65) i naciśnij Dodaj organizację.
- Podaj jej nazwę i krótką nazwę (małe litery, cyfry i myślniki). Krótka nazwa jest częścią jej adresu internetowego,
/t/acme/, i częścią logowania telefonów,acme.100. Nie można jej później zmienić. - Opcjonalnie podaj jej własną domenę, taką jak
pbx.acme.example, wskazującą na ten serwer. Telefony rejestrują się w tej domenie, a jej administratorzy otwierają ją w przeglądarce. - Ustaw jej pierwszego administratora: nazwę użytkownika i hasło o długości co najmniej 12 znaków, oraz jej kraj.
- Opcjonalnie ustaw limity.
Organizacja zaczyna działać natychmiast z pustym systemem telefonicznym, gotowym do ustawienia przez jej administratora, jak opisano w Rozpoczęcie (rozdział 1).
Jak połączenia znajdują odpowiednią organizację
| Żądanie | idzie do |
|---|---|
z telefonu rejestrującego się do pbx.acme.example | organizacji z tą domeną |
z telefonu logującego się jako acme.100 | Acme, rozszerzenie 100 |
| od dostawcy, dla numeru | organizacji, z której pochodzi łącze i której trasa przychodząca ma ten numer |
| wszystko inne | głównego systemu |
Więc dwie organizacje mogą mieć rozszerzenie 100, a kilka może dzielić jeden dostawcę z różnymi numerami.
Gdzie są jej dane
Na SQLite, każda organizacja ma swój własny folder pod tenants/ w folderze danych, ze swoim własnym plikiem bazy danych. Na PostgreSQL, każda ma swój własny schemat w tej samej bazie danych (tenant_acme). Kopie zapasowe, archiwa i eksporty są na organizację.
Limity
| Limit | Co się dzieje przy nim |
|---|---|
| Rozszerzenia | dodanie jednego więcej jest odrzucone z wiadomością |
| Połączenia na raz | nowe połączenia są odrzucone (503) do momentu zakończenia jednego |
| Przechowywanie | nowe nagrania i voicemail nie są przechowywane |
| Żądania AI dziennie | transkrypcje, podsumowania i recepcjonista AI przestają działać do północy UTC |
0 to brak limitu. Połączenia awaryjne nigdy nie są odrzucone: organizacja, która osiągnęła limit połączeń lub jest zawieszona, może nadal wywoływać 911 i być wywoływana.
Otwieranie organizacji
Otwórz loguje się do jej interfejsu internetowego jako dostawca, bez własnego konta; pojawia się w jej rejestrze audytu jako dostawca. Jej administratorzy logują się pod jej własnym adresem z własnymi kontami. Każda organizacja ma swój własny ciasteczko logowania, więc bycie zalogowanym do jednej nigdy nie loguje nikogo do innej.
Organizacje nigdy nie widzą ekranów samego serwera: aktualizacji, bazy danych, innych serwerów, certyfikatu, śledzenia SIP (które pokazuje wszystkie wiadomości organizacji), generatora połączeń ani tej listy.
Wstrzymywanie i usuwanie
Wstrzymane zatrzymuje logowania i każde połączenie, z wyjątkiem połączeń awaryjnych; nic nie jest usuwane. Usuń zatrzymuje organizację i przenosi jej folder na bok (tenants/.removed-<name>-<time>), aby błąd mógł być naprawiony ręcznie.
Kodeki i dźwięk
Kodek to sposób, w jaki dźwięk jest przekształcany w dane podczas połączenia. Telefony, przeglądarki i operatorzy obsługują niektóre z nich; BitVoice konwertuje między dowolnymi dwoma kodekami, gdy dwie strony się różnią, aby każdy mógł rozmawiać z każdym. Gdy obie strony używają tego samego kodeka, dźwięk jest przenoszony niezmieniony.
Kodeki
| Kodek | Dźwięk | Przepustowość | Używany przez |
|---|---|---|---|
| G.722 | HD (szerokopasmowy) | 64 kbit/s | większość telefonów biurkowych: najlepszy wybór między nimi |
| G.711 µ-law | telefoniczny | 64 kbit/s | Ameryka Północna i Japonia; każdy operator |
| G.711 A-law | telefoniczny | 64 kbit/s | reszta świata |
| Opus | HD, radzi sobie z utratą | 24 kbit/s | przeglądarki i aplikacje mobilne |
| G.729 | telefoniczny, nieco szorstki | 8 kbit/s | cienkie połączenia, niektórzy operatorzy |
| G.726 (40 kbit/s) | telefoniczny; najlepiej przenosi tony modemowe spośród wszystkich szybkości G.726 | 40 kbit/s | bramy, niektóre systemy DECT |
| G.726 (32 kbit/s) | bliski telefonicznemu | 32 kbit/s | bazy DECT, starsze bramy |
| G.726 (24 kbit/s) | pomiędzy 32 a 16 | 24 kbit/s | niektóre systemy DECT |
| G.726 (16 kbit/s) | szorstki | 16 kbit/s | bardzo cienkie połączenia |
| AMR-WB (G.722.2) | HD | 6,6 do 23,85 kbit/s | sieci komórkowe HD voice, połączenia VoLTE |
| AMR | telefoniczny, komórkowy | 4,75 do 12,2 kbit/s | sieci komórkowe, niektórzy operatorzy i bramy |
| iLBC | telefoniczny, radzi sobie z utratą | 13,3 lub 15,2 kbit/s | starsze softfony i aplikacje |
| Speex | telefoniczny | 15 kbit/s (2,15 do 24,6) | starsze softfony, połączenia z innymi systemami Asterisk |
| GSM | szorstki | 13 kbit/s | starsze softfony i bramy |
| G.723.1 | szorstki; konwertowany tylko z ffmpeg | 5,3 lub 6,3 kbit/s | bardzo stare telefony wideo i bramy |
| G.722.1 (Siren 7) | szerokopasmowy, przenoszony niezmieniony | 24 lub 32 kbit/s | telefony Polycom, telefony wideo i konferencyjne |
| G.722.1C (Siren 14) | super-szerokopasmowy, przenoszony niezmieniony | 24 do 48 kbit/s | telefony konferencyjne, systemy pokojowe |
| G.719 | pełnopasmowy, przenoszony niezmieniony | 32 do 128 kbit/s | systemy pokojowe telepresencyjne |
| Codec2 | bardzo niskiej przepustowości, przenoszony niezmieniony | 0,7 do 3,2 kbit/s | połączenia radiowe, bramy radiowe amatorskie |
Ustawienia wyświetlają listę kodeków, które mogą być używane przez telefony, najlepsze jako pierwsze; każda linia może mieć własną listę. Porty adapterów analogowych zawsze używają G.711, który jest wymagany przez faksy, modemy i panele alarmowe.
G.722.1, G.722.1C, G.719 i Codec2 są przenoszone niezmienione między dwiema stronami, które je używają, z zachowaniem ich szybkości bądź trybu w ofercie (BitVoice nie konwertuje ich, więc połączenie między jednym z nich a telefonem bez niego używa innego kodeka, który obie strony mają). Umieść je na liście, powyżej G.711, tam gdzie systemy pokojowe lub konferencyjne powinny zachować swój zakres dźwięku podczas połączeń ze sobą. Listy nazywają G.722.1 przy 32 kHz G7221C, chociaż SDP nazywa oba G7221.
G.723.1 jest przenoszony niezmieniony między dwiema stronami, które go używają. Aby umożliwić urządzeniu z tylko G.723.1 rozmowę z dowolnym innym, włącz Konwertuj G.723.1 z ffmpeg w Ustawieniach i zainstaluj ffmpeg (apt install ffmpeg, brew install ffmpeg): BitVoice uruchamia wtedy ffmpeg jako oddzielny program dla każdego kierunku, który wymaga konwersji (słyszany przy dowolnej szybkości, wysyłany przy 6,3 kbit/s, szybkości, którą ffmpeg koduje), około 60 ms później niż w przypadku innych kodeków, i zatrzymuje go kilka sekund po zakończeniu połączenia. BitVoice nie zawiera własnego kodu G.723.1: referencyjny kod ITU nie ma licencji, która pozwala na jego dołączenie, a ffmpeg jest instalowany i uruchamiany oddzielnie.
Koszt konwersji
Konwersja wymaga czasu procesora, tylko w przypadku połączeń, w których strony różnią się. Na połączenie, około 0,3 ms jednego rdzenia co 20 ms dla Opus i 0,12 ms dla G.729 (około 60 i 170 przekonwertowanych połączeń na rdzeń); G.726 i GSM kosztują mniej niż G.729; G.711 i G.722 prawie nic. G.729 jest wysyłany bez załącznika B (bez ramkek ciszy).
Czystość dźwięku
Czystość dźwięku (Ustawienia) obniża stały hałas tła i wyrównuje poziomy, dla poczty głosowej i, jeśli chcesz, podczas połączeń.
Microsoft Teams (Direct Routing)
/trunksBitVoice może być kontrolerem granicznym sesji (SBC) dla dzierżawy Microsoft Teams, aby użytkownicy Teams mogli wykonywać połączenia do rozszerzeń BitVoice i linii telefonicznych, a BitVoice dzwoni do użytkowników Teams.
Co potrzebujesz: publiczna nazwa dla tego serwera w domenie, którą dzierżawca Microsoft 365 zweryfikował (sbc.example.com), port 5061 otwarty w obie strony do sieci Microsoft 52.112.0.0/14 i 52.120.0.0/14, oraz certyfikat dla tej nazwy z publicznej władzy. Użytkownicy Teams potrzebują licencji Phone System.
Kroki
- Ustawienia, Certyfikat: zainstaluj certyfikat i jego klucz prywatny (PEM). Jest on używany od razu, dla tego interfejsu i dla SIP przez TLS, i BitVoice przedstawia go firmie Microsoft.
- Trunki, Dodaj, zacznij od Microsoft Teams: wprowadź publiczną nazwę serwera. Szczegóły mówią, czy certyfikat go obejmuje.
- Skopiuj PowerShell wyświetlany w szczegółach i uruchom go jako administrator Teams: dodaje SBC (New-CsOnlinePSTNGateway), trasę głosową i politykę, oraz regułę planu wybierania, aby krótkie numery rozszerzeń dotarły do BitVoice tak, jak zostały wybrane; następnie przydziel każdemu użytkownikowi Teams politykę i jego numer.
- Aby dzwonić do użytkowników Teams z BitVoice, dodaj trasę wychodzącą dla ich numerów przez trunk Teams. Teams znajduje swoich użytkowników tylko według numerów z + i kodem kraju: jeśli ludzie dzwonią do nich bez, dodaj + i kod kraju w Prepend trasy (ślad połączenia mówi o tym, gdy wyjdzie bez niego).
Gdy użytkownik Teams przenosi połączenie, Microsoft prosi BitVoice o umieszczenie go (REFER nazwujący własny serwer proxy, z numerem lub ID użytkownika Teams): BitVoice wywołuje dokładnie to, co Microsoft nazwał, z Referred-By, które Microsoft podał, więc przeniesienie do innego użytkownika Teams działa tak samo jak do numeru telefonu. BitVoice nigdy nie wysyła Teams nagłówka Replaces, który Microsoft odrzuca.
BitVoice wysyła firmie Microsoft OPTIONS co minutę z nazwą SBC w Contact, jak wymaga Microsoft, i próbuje sip, sip2 i sip3.pstnhub.microsoft.com po kolei. Multimedia są zawsze szyfrowane (SRTP). Ostrzeżenie o stanie zdrowia, gdy certyfikat nie obejmuje nazwy, jest samopodpisany lub kończy się wkrótce, oraz gdy Microsoft przestaje odpowiadać.
To postępuje zgodnie z opublikowanymi wymaganiami SBC firmy Microsoft i jest testowane przeciwko symulowanemu serwerowi proxy Microsoft; BitVoice nie jest na liście certyfikowanych SBC firmy Microsoft.
Importuj
/importPrzenosi rozszerzenia, grupy dzwonienia, kolejki i trunki z FreePBX, Asterisk lub 3CX; oraz ludzi, polowania i grupy dzwonienia, trunki SIP, przychodzące numery i wzorce numerów z Cisco, Avaya i Mitel. Prześlij wyeksportowane pliki, kilka na raz (plik .zip lub .tar z nimi również działa); BitVoice pokazuje dokładnie, co się zmieni, zanim cokolwiek zostanie zastosowane, a import staje się rewizją, którą można cofnąć w Zmiany (rozdział 61).
Przenoszenie z FreePBX
Najlepszym plikiem jest backup FreePBX: zawiera wszystko, w tym hasła SIP.
- W FreePBX: Admin → Backup & Restore → Dodaj backup. Zaznacz co najmniej Core, Grupy dzwonienia, Kolejki i Poczta głosowa (wszystkie moduły są w porządku), zapisz i Uruchom.
- Pobierz backup z jego wiersza (plik nazywa się jak
20261001-100000-1790000000-17.0.19-1234567.tar.gz). - Zainstaluj BitVoice na nowym serwerze i ukończ konfigurację z jednym rozszerzeniem, którego FreePBX nie używa (np. 199) i bez linii telefonicznej: import przywozi linie.
- W Importuj (rozdział 68), upuść .tar.gz, jak jest. Przeczytaj podgląd: ostrzeżenia wymieniają wszystko, co nie może zostać przeniesione.
- Wybierz Dodaj. To jest jedna rewizja w Zmiany (rozdział 61): cofnij ją tam, jeśli coś wygląda nie tak, i importuj ponownie.
- Przenieś telefony: każdy z nich wskazuje na BitVoice (lub zainstaluj je z Telefony (rozdział 4)), z tym samym numerem rozszerzenia i hasłem SIP, które miały.
- Przetestuj połączenia wewnątrz i na zewnątrz, a następnie przenieś rejestrację operatora (lub przeniesienie numeru) jako ostatnie.
Wypróbowane na prawdziwym systemie: FreePBX 17.0.33 (oficjalna instalacja Debian 12) z czterema rozszerzeniami i pocztą głosową, trunkiem PJSIP, który rejestruje, dwiema trasami wychodzącymi (jedną z prefiksem wybierania), grupą dzwonienia, kolejką z karami i trzema numerami DID, zabezpieczoną przez Backup & Restore z każdym modulem zaznaczonym. Backup ma 70 MB, prawie wszystko to pliki dźwiękowe i historia połączeń: BitVoice czyta je, jak przychodzi, i zachowuje tylko konfigurację, więc backup o rozmiarze do 512 MB jest przesyłany. Wszystko powyżej przeszło: hasła, PIN-y poczty głosowej i adresy e-mail, rejestracja trunku i kodeki, trasy z prefiksami, grupa dzwonienia z pocztą głosową, gdy nie jest odpowiedziana, kolejka z karami i numery DID do grupy, kolejki i rozszerzenia.
Co jest przenoszone:
- Rozszerzenia: numer, nazwa, ID wyświetlane podczas połączeń wychodzących, czas dzwonienia i hasło SIP (BitVoice tworzy nowe, gdy hasło FreePBX jest krótsze niż 12 znaków: wprowadź je ponownie w tym telefonie). Poczta głosowa z PIN-em i adresem e-mail (oraz czy wiadomości są wysyłane jako załączniki).
- Trunki: konta operatorów PJSIP i chan_sip: serwer, port, nazwa użytkownika, hasło, rejestracja, domena, kodeki, ID wyświetlane. Trunki wyłączone pozostają wyłączone. Trunki DAHDI stają się trunkiem kart telefonicznych.
- Trasy wychodzące, w kolejności FreePBX: każdy prefiks trasy staje się cyframi, które są pomijane, a cyfry dołączane. Trasa, której wzorce pomijają lub dołączają różne cyfry, staje się jedną trasą BitVoice dla każdej.
- Grupy dzwonienia: członkowie, czas dzwonienia, dzwonienie wszystkich lub jeden po drugim (polowanie, pamięć polowania, pierwszy dostępny), i gdzie nieodpowiedziane połączenia są kierowane.
- Kolejki: członkowie z karami, strategia (dzwonienie wszystkich, najmniej niedawno, najmniej połączeń, losowo, liniowo), czas dzwonienia, czas oczekiwania i najdłuższe oczekiwanie.
- Trasy przychodzące: każdy numer DID do jego rozszerzenia, grupy dzwonienia, kolejki, skrzynki pocztowej, lub odłączenia.
Co nie jest przenoszone i jest powiedziane w podglądzie: IVR, warunki czasowe, ogłoszenia, follow-me, niestandardowe trunki i konteksty, dopasowanie ID wyświetlanego na trasach, oraz numery zewnętrzne w grupach dzwonienia. Zbuduj je w Menu (rozdział 21), Harmonogramy (rozdział 26) i Follow me rozszerzenia. Starsze backupy (FreePBX 13 i wcześniejsze) i zwykły mysqldump asterisk bazy danych FreePBX są czytane w ten sam sposób.
Inne systemy
Gdzie każdy eksport jest:
- FreePBX (tylko rozszerzenia): Admin → Bulk Handler → Export → Extensions (CSV).
- Asterisk: pjsip.conf lub sip.conf.
- 3CX: Użytkownicy → Eksport (CSV).
- Cisco Unified CM: Bulk Administration → Telefony → Eksport telefonów, wszystkie szczegóły; lub Użytkownicy → Eksport użytkowników. Pierwsza linia telefonu staje się rozszerzeniem, z nazwą lub etykietą linii jako nazwą.
- Avaya IP Office: Menedżer → Plik → Import/Eksport → Eksport, Użytkownicy.
- Avaya Communication Manager:
list stationzapisany jako CSV; stacje wirtualne i VDN są pomijane. - Mitel MiVoice Business: Zarządzanie systemem → Konfiguracja użytkownika i urządzenia → Eksport.
Grupy i trasy. Prześlij je z plikiem osób, aby każda grupa była znaleziona przez numer lub nazwę:
- Cisco Unified CM: Bulk Administration → Import/Eksport → Eksport, z zaznaczonymi Line Group, Hunt List, Hunt Pilot, SIP Trunk i Route Pattern; przesłanie pliku .tar tak, jak jest. Każdy pilot polowania staje się grupą dzwonienia z członkami listy polowania, Top Down i Circular jako jeden po drugim, Broadcast jako wszyscy na raz, czas oczekiwania RNA jako czas dzwonienia. Wzorce tras stają się trasami wychodzącymi:
9.[2-9]XXXXXXz PreDot jest wzorcem9[2-9]XXXXXXusuwając 9;!staje się kropką końcową. Wzorce używające@(planu krajowego) są wymienione do ręcznego wprowadzania. - Avaya IP Office: Eksportuj Grupę polowania oraz Użytkowników (obie są plikami CSV bez nagłówka). Tryb grupy to wszyscy na raz; Polowanie, Rotary i Longest Waiting dzwonią jeden po drugim.
- Avaya Communication Manager:
list hunt-groupzapisany jako CSV, z członkami w kolumnie Members lub w oddzielnym pliku członków. - Mitel MiVoice Business: Grupy dzwonienia i Przypisanie grupy dzwonienia (Cascade to jeden po drugim, Ring All to wszyscy na raz), oraz Grupy polowania.
Trunki z tych eksportów przychodzą wyłączone i bez haseł, ponieważ eksporty nie zawierają ich. Trasy wychodzą na zaimportowanym trunku o tej samej nazwie; trasa, której trunk nie jest tutaj, jest pomijana i zgłaszana. Obracający się i najdłużej bezczynny sygnał dzwonienia jest bliższy kolejce niż grupie dzwonienia: podgląd mówi o tym, więc możesz go uczynić jednym.
Te eksporty (wszystkie, poza kopią zapasową FreePBX) nie zawierają haseł SIP, więc każde rozszerzenie otrzymuje nowe hasło; hasła skrzynki pocztowej, nazwy i adresy e-mail są przenoszone, gdy eksport je zawiera. Telefony Cisco, Avaya H.323/DCP i Mitel uruchamiają oprogramowanie swojego producenta i nie mogą być konfigurowane przez BitVoice: import mówi, ile z nich zostało wymienionych. Telefony Cisco mogą być ponownie przepalane oprogramowaniem Cisco multiplatform (SIP); telefony Avaya J100 i Mitel 6800/6900 mogą rejestrować się w BitVoice ręcznie w trybie SIP.
Konfiguracja jako kod
Wszystko, co robią ekran, przechodzi przez interfejs API REST BitVoice, więc wszystko można przepisać, przechowywać w Git lub zarządzać za pomocą Terraform. API jest opisane dla narzędzi w /api/openapi.json (/api/openapi.json).
Tokeny API
Utworzone w Administratorzy (rozdział 57): jeden na program, tylko do odczytu lub z możliwością zmiany wszystkiego. Wyślij go jako Authorization: Bearer bv_.... Jest wyświetlany raz; odwołaj go, gdy nie jest już potrzebny. Zmiany tokenu są wyświetlane w zmianach i w rejestrze inspekcji pod jego nazwą.
curl -H "Authorization: Bearer bv_..." https://pbx.example.com/api/extensions
Terraform lub OpenTofu
Repozytorium deploy/terraform pokazuje rozszerzenia, grupy dzwonienia i trasy zarządzane za pomocą dostawcy REST: plan pokazuje, co się zmieni, zastosuj wprowadza zmiany. Dostawca sprawdza certyfikat BitVoice; podczas gdy BitVoice nadal używa własnego certyfikatu samopodpisanego, pobierz go z Let's Encrypt (Ustawienia, Certyfikaty) lub ustaw bitvoice_insecure = true w sieci, której ufasz (w systemie Linux, SSL_CERT_FILE wskazujący na certyfikat BitVoice również działa). Zasoby są dopasowane przez identyfikator, który nadał im BitVoice, więc drugi plan nie pokazuje zmian, dopóki plik lub ekran nie zmieni czegoś.
Konfiguracja z Git
W Ustawienia (rozdział 14), Konfiguracja z Git, BitVoice odczytuje konfigurację z pliku w repozytorium co kilka minut i albo pokazuje, co różni się, albo wprowadza zmiany. Rozpocznij plik od Eksportuj dla Git, który pomija hasła; BitVoice przechowuje własne, więc tajemnice nigdy nie trafiają do repozytorium.
Zgodność z Asterisk (AMI, ARI i AGI)
Narzędzia napisane dla Asterisk mogą kontrolować BitVoice: CRM, tablice, przyciski klik-nie-dzwoni, kontrolery rejestratorów połączeń. Włącz je w Ustawieniach (rozdział 14), Zgodność z Asterisk. Narzędzia widzą połączenia jako kanały o nazwach takich jak PJSIP/100-..., jak w Asterisk.
AMI
Interfejs menedżera na porcie TCP 5038 (AMI nasłuchuje: domyślnie tylko na tym komputerze). Obsługiwane:
| Rodzaj | Nazwy |
|---|---|
| Akcje | Logowanie (zwykłe lub wyzwanie MD5), Ping, Zdarzenia, Filtrowanie, Lista poleceń, CoreShowChannels, Status, CoreStatus, CoreSettings, PJSIPShowEndpoints, ExtensionState, ExtensionStateList, DeviceStateList, Getvar, Originate, Redirect, BlindTransfer, Hangup, Logoff |
| Kolejki | QueueStatus, QueueSummary, QueuePause, QueueAdd i QueueRemove (zapisują agenta w wszystkich kolejkach lub go z nich usuwają), Agenci |
| Inne | ParkedCalls; ConfbridgeListRooms, ConfbridgeList, ConfbridgeKick, ConfbridgeMute, ConfbridgeUnmute, ConfbridgeLock, ConfbridgeUnlock; MailboxCount, MailboxStatus; PauseMonitor, UnpauseMonitor; UserEvent; Reload (nie ma nic do przeładowania: zmiany są stosowane natychmiast) |
| Zdarzenia | Newchannel, Newstate, Hangup, DialBegin, DialEnd, Hold, Unhold, PeerStatus, ContactStatus, MessageWaiting, ConfbridgeJoin, ConfbridgeLeave, ConfbridgeEnd, UserEvent |
Filtrowanie zachowuje tylko zdarzenia, które pasują do wyrażenia regularnego (Event: Newchannel), lub je odrzuca z ! na początku, jak w Asterisk. Nie ma linii poleceń Asterisk: Polecenie odpowiada błędem.
ARI
W /ari/, z uwierzytelnianiem podstawowym lub ?api_key=user:secret:
| Żądanie | Co robi |
|---|---|
GET /ari/channels | połączenia w toku |
POST /ari/channels?endpoint=PJSIP/100&extension=5551234 | dzwoni na 100, a następnie wybiera numer |
DELETE /ari/channels/{id} | kończy połączenie |
POST /ari/channels/{id}/redirect?endpoint=PJSIP/102 | przekazuje połączenie do 102 |
/ari/endpoints, /ari/bridges, /ari/asterisk/info | telefony, mosty, wersja |
/ari/events | WebSocket zdarzeń |
POST /ari/channels/externalMedia?external_host=host:port&encapsulation=rtp&format=ulaw | kanał wysyłający dźwięk do programu za pomocą RTP (ulaw lub alaw przez UDP); jego lokalny port jest w UNICASTRTP_LOCAL_PORT kanału |
POST /ari/channels/externalMedia?external_host=host:port&encapsulation=audiosocket&transport=tcp&format=slin&data=<uuid> | to samo za pomocą AudioSocket |
POST /ari/bridges/{call}/addChannel?channel={id} | kanał multimedialny dołącza do połączenia: słyszy obie strony i obie słyszą go; z role=listener nikt go nie słyszy (do transkrypcji na żywo) |
POST /ari/bridges/{call}/removeChannel?channel={id} | opuszcza połączenie; dwie strony rozmawiają bezpośrednio ponownie |
Kanał zewnętrznej transmisji multimedialnej, który nie zostanie dodany do połączenia w ciągu minuty, zostanie zamknięty.
Aplikacje ARI
Aplikacja ARI (Asterisk's Stasis()) uruchamia połączenia z własnego programu. Dodaj ją w Aplikacjach ARI w Ustawieniach, zgodności z Asterisk: nazwa, opcjonalny numer rozszerzeń do wybrania, i domyślny. Następnie wyślij połączenia do niej jak do każdego innego miejsca przeznaczenia: trasę przychodzącą, klawisz menu, harmonogram.
Twój program łączy się z /ari/events?app=NAME (WebSocket, z logowaniem w ?api_key=user:secret). Każde połączenie, które dociera do aplikacji, jest odbierane i przychodzi jako StasisStart, z kanałem; program następnie go uruchamia:
| Żądanie | Co robi |
|---|---|
POST /ari/channels/{id}/play?media=sound:goodbye,digits:42 | odtwarza komunikaty z Sounds (sound:), digits:, number:, tone:beep lub nagrany dźwięk (recording:); PlaybackStarted i PlaybackFinished następują. DELETE /ari/playbacks/{id} zatrzymuje go. |
POST /ari/channels/{id}/record?name=msg1&maxDurationSeconds=60&maxSilenceSeconds=5&beep=true&terminateOn=%23 | nagrywa (wav) do przechowywanych nagrań; RecordingStarted i RecordingFinished. POST /ari/recordings/live/{name}/stop kończy je, DELETE odrzuca. |
GET /ari/recordings/stored, .../{name}, .../{name}/file, DELETE .../{name} | przechowywane nagrania |
POST /ari/channels/{id}/dtmf?dtmf=123 | wysyła klawisze do dzwoniącego |
GET/POST /ari/channels/{id}/variable?variable=X&value=Y | zmienne kanału |
POST /ari/bridges?bridgeId=room1, .../addChannel?channel=a,b, .../removeChannel, .../play, DELETE | mosty mieszające: każdy w jednym słyszy wszystkich innych |
POST /ari/channels/{id}/continue?extension=101 | puszcza połączenie: do tego rozszerzenia, grupy dzwonienia lub kolejki, w przeciwnym razie domyślny |
DELETE /ari/channels/{id} | kończy połączenie |
POST /ari/channels?endpoint=PJSIP/101&app=NAME | dzwoni na 101; po odebraniu wchodzi do aplikacji |
GET /ari/applications | aplikacje, czy program jest połączony, i ich kanały |
POST /ari/channels/{id}/mute?direction=in, DELETE .../mute | wycisza to, co mówi dzwoniący (in), to, co słyszy (out) lub obie |
POST/DELETE /ari/channels/{id}/hold, .../moh, POST .../silence | muzyka na czas przetrzymania połączenia do dzwoniącego (ChannelHold, ChannelUnhold), lub cisza |
GET/POST /ari/channels/{id}/variables | kilka zmiennych na raz (ChannelVarset) |
POST /ari/channels/{id}/move?app=other | przekazuje kanał do innej aplikacji (StasisEnd, a następnie StasisStart tam; ApplicationMoveFailed gdy nie ma programu, który ją uruchamia) |
POST /ari/channels/{id}/snoop?spy=in&app=NAME | kanał podsłuchujący w aplikacji, który słyszy to, co mówi dzwoniący, aby go nagrać (POST /ari/channels/{snoop}/record) |
POST /ari/channels/create?endpoint=PJSIP/101&app=NAME, a następnie POST .../dial | kanał, który czeka, aż zostanie wybrany; zdarzenia Dial mówią, jak idzie dzwonienie, i wchodzi do aplikacji po odebraniu |
GET /ari/channels/{id}/rtp_statistics | pakiety i bajty wysłane i otrzymane, straty i jitter |
POST /ari/playbacks/{id}/control?operation=pause | pauzuje, wznawia, restartuje, cofa i przewija (trzy sekundy) |
POST /ari/bridges/{id}/moh, .../record, .../variable, .../play/{playbackId} | muzyka na czas przetrzymania połączenia do mostu, nagrywanie jego miksu, jego zmienne |
POST /ari/recordings/stored/{name}/copy, POST/DELETE /ari/recordings/live/{name}/pause, .../mute | kopiowanie nagrania; pauzuje lub wycisza nagranie na żywo |
POST /ari/applications/{app}/subscription?eventSource=deviceState:Custom:lamp, PUT .../eventFilter | subskrypcje (kanał:, most:, endpoint:PJSIP/100, deviceState:) i filtry zdarzeń ({"disallowed": [{"type": "ChannelVarset"}]}) |
GET /ari/deviceStates, PUT /ari/deviceStates/Custom:lamp?deviceState=INUSE | stany telefonów (PJSIP/100: NOT_INUSE, INUSE, RINGING, UNAVAILABLE) i niestandardowe stany, które programy utrzymują (DeviceStateChanged); stan telefonu przychodzi również jako EndpointStateChange |
GET /ari/mailboxes, PUT /ari/mailboxes/{name}?newMessages=1&oldMessages=0 | liczniki poczty głosowej rozszerzeń (100@default), i skrzynki pocztowe, które programy same utrzymują |
GET /ari/sounds | komunikaty dźwiękowe Sounds, w językach, w których zostały nagrane, i dźwięki przesłane do skryptów AGI |
PUT /ari/endpoints/sendMessage?to=pjsip:100&body=Hi | tekst na telefonie rozszerzenia 100 |
POST /ari/events/user/{name}?application=NAME | zdarzenie użytkownika do aplikacji (ChannelUserevent) |
GET /ari/asterisk/ping, GET/POST /ari/asterisk/variable, GET /ari/asterisk/modules | ping, zmienne globalne, i części BitVoice nazwane jako moduły, które reprezentują |
BitVoice odpowiada na każdą operację opublikowanego przez Asterisk ARI (jego zestaw testowy wywołuje każdą z nich i sprawdza, czy odpowiedź zawiera pola wymagane przez opis Asterisk). Niektóre z nich nie mają tu znaczenia i zwracają 501 z powodem: moduły do ładowania (BitVoice jest jednym programem), dynamiczna konfiguracja Sorcery (BitVoice jest ustawiana w swoim interfejsie sieciowym), kanały logowania, źródła wideo mostków (mostki ARI przenoszą dźwięk), wysyłanie REFER do telefonów i oświadczenie o połączeniach nadawczych. Podsłuch słyszy tylko połączającego (spy=in), a szepot nie jest oferowany: mostek kanału z ich kanałem, aby z nimi rozmawiać. Zdarzenia kanałowe dla każdego połączenia (ChannelCreated, ChannelStateChange, ChannelDestroyed) są wysyłane do każdego programu, tak jak w przypadku subscribeAll=true Asterisk. Biblioteki ARI, które czytają interfejs z serwera (ari-client i inne), znajdują go w /ari/api-docs/resources.json. Jakie programy teraz przechowują, w aplikacjach ARI w Ustawieniach, wyświetla aplikacje, niestandardowe stany urządzeń, skrzynki pocztowe, zmienne globalne i mostki ustawione przez programy.
Naciśnięte klawisze przychodzą jako ChannelDtmfReceived; rozmówca kończący połączenie jako StasisEnd. Gdy nie ma podłączonego programu, połączenie jest kierowane do programu zastępczego; gdy ostatnie połączenie programu zostaje zamknięte, jego połączenia są kierowane tam również po pięciu sekundach (czasie potrzebnym do ponownego połączenia). Dla logiki połączeń bez własnego programu użyj Skryptów (rozdział 27), które uruchamiają całe połączenie; aby przekazać audio do programu, Boty głosowe (rozdział 24).
Skrypty AGI
Skrypt AGI (Asterisk AGI() i EAGI()) uruchamia polecenie połączenia, więc IVR i integracje napisane dla Asterisk (phpagi, pyst2, Asterisk-Java, dowolny serwer FastAGI) nadal działają. Dodaj go w Skryptach AGI w Ustawieniach, zgodność z Asterisk:
| Pole | Co to jest |
|---|---|
| Nazwa skryptu | jak miejsca docelowe go nazywają |
| Adres | serwer FastAGI, agi://host:4573/script?x=1 (port 4573, gdy nie podano), hagi://domain/script dla serwerów w rekordach SRV _agi._tcp domeny, próbowanych w kolejności priorytetu, lub nazwa pliku programu w folderze Programy AGI |
| Argumenty | przekazywane jako agi_arg_1, agi_arg_2 … |
| Numer do wywołania | opcjonalnie: numery wewnętrzne wywołują go jak każdy inny numer |
| Program zastępczy | gdzie połączenie jest kierowane, gdy skrypt kończy się bez wyboru numeru lub nie może być osiągnięty |
| Najdłuższe uruchomienie | skrypt, który działa dłużej, jest zatrzymywany (domyślnie godzina) |
| EAGI | dla programu: audio rozmówcy (8 kHz, podpisane 16-bit, little-endian) na deskryptorze pliku 3. Linux i macOS |
Test łączy się z serwerem (lub sprawdza, czy program jest tam i wykonywalny) bez wysyłania połączenia. Następnie wysyłaj połączenia do niego jak do każdego innego miejsca docelowego.
BitVoice odpowiada na połączenie, wysyła zmienne agi_ (agi_network_script, agi_callerid, agi_dnid, agi_extension, agi_language …) i wykonuje polecenia, odpowiadając jak Asterisk 20 (zestaw testowy porównuje każdą odpowiedź z nagraniem Asterisk):
| Polecenia | Uwagi |
|---|---|
| ANSWER, HANGUP, CHANNEL STATUS, NOOP, VERBOSE | HANGUP z nazwą kanału tylko kończy połączenie skryptu |
| STREAM FILE, CONTROL STREAM FILE, GET OPTION, GET DATA, WAIT FOR DIGIT | klawisze escape, przesunięcia próbek i endpos jak w Asterisk; przewijanie do przodu, cofanie i pauza w CONTROL STREAM FILE |
| SAY DIGITS, SAY NUMBER, SAY ALPHA, SAY PHONETIC, SAY DATE, SAY TIME, SAY DATETIME | z usługą mowy w Ustawieniach, AI są one wypowiadane; bez, cyfry są wypowiadane z dźwięków |
| RECORD FILE | s=N cisza, sygnał dźwiękowy, klawisze escape; plik ląduje w bibliotece dźwięków |
| SET VARIABLE, GET VARIABLE, GET FULL VARIABLE | CALLERID(num), CALLERID(name), EXTEN, UNIQUEID, CHANNEL … i wyrażenia ${NAME} |
| DATABASE GET, PUT, DEL, DELTREE | baza danych Asterisk (AstDB), przechowywana przez BitVoice i wyświetlana w Bazie danych AGI |
| SET CALLERID, SET EXTENSION, SET CONTEXT, SET PRIORITY, SET AUTOHANGUP, SET MUSIC | SET EXTENSION jest miejscem, gdzie połączenie jest kierowane, gdy skrypt kończy się |
| SPEECH CREATE … SPEECH RECOGNIZE | używa rozpoznawania mowy z Ustawień, AI: wynik jest tym, co rozmówca powiedział, jako text0, do porównania przez skrypt; gramatyki są akceptowane i nie są używane |
| EXEC | Odpowiedź, Rozłączenie, Odtwarzanie, Tło, Odczyt, Ustawienie, MSet, SayDigits, SayNumber, SayAlpha, Czekaj, Wywołaj (wybiera każdy numer z kolei; DIALSTATUS), Przejdź, Poczta głosowa, Muzyka w trakcie postoju, Nagrywanie, Brak, Verbose, Log. Inne odpowiedzi -2, jak Asterisk dla brakującej aplikacji |
BitVoice nie ma planu wybierania: tam, gdzie skrypt mógłby iść dalej w planie wybierania Asterisk (SET EXTENSION, EXEC Goto), połączenie jest kierowane do tego numeru tutaj (numer wewnętrzny, grupa dzwonienia, kolejka, menu lub numer zewnętrzny przez trasy wychodzące) po zakończeniu skryptu. Skrypty nigdy nie wywołują numerów awaryjnych. Gdy rozmówca kończy połączenie, skrypt FastAGI otrzymuje HANGUP, a program SIGHUP; tylko polecenia dozwolone na martwym kanale są wykonywane wtedy (511 dla innych), a połączenie jest zamykane 30 sekund później, jeśli skrypt kontynuuje. Każde uruchomienie jest wyświetlane w Ostatnich uruchomieniach z liniami VERBOSE i jest wysyłane do strumienia zdarzeń jako agi.ran.
Dźwięki dla skryptów AGI. Skrypty odtwarzają dźwięki według nazw, których używają w Asterisk: przesyłaj je w Dźwięki dla skryptów AGI z folderem (custom/welcome; es/custom/welcome dla rozmówców po hiszpańsku). WAV, MP3 i .gsm, .ulaw, .alaw, .sln i .sln16 Asterisk są akceptowane; ścieżka jak /var/lib/asterisk/sounds/en/custom/welcome.gsm znajduje custom/welcome. Własne nagłówki i tony Asterisk (digits/0–digits/9, beep, silence/N i kilka innych, vm-goodbye, invalid, please-hold) grają nagłówki i tony BitVoice. To, co skrypty nagrywają, jest przechowywane w tej samej bibliotece, oznaczone jako nagrane przez skrypt, przez dni, które wybierzesz (30 domyślnie). Biblioteka przechowuje do 1 GB.
Programy. Program uruchamia się na tym serwerze z prawami BitVoice, więc nigdy nie jest przesyłany przez sieć: skopiuj go do folderu Programy AGI wyświetlanego na ekranie (DATA/agi-bin) i nadaj mu prawa do wykonywania. Otrzymuje tylko PATH i AST_AGI_DIR ze środowiska, uruchamia się w tym folderze, a to, co zapisuje do standardowego strumienia błędów, trafia do dziennika serwera. FastAGI wysyła polecenia w postaci zwykłego TCP: zachowaj serwer na tym komputerze lub w sieci prywatnej.
Logowania
Każde logowanie ma Nazwę użytkownika i Hasło. Logowania są tylko do odczytu, chyba że są oznaczone jako Może zmieniać połączenia. Zachowaj AMI na tym komputerze, chyba że narzędzie działa gdzie indziej: AMI jest zwykłym, niezaszyfrowanym TCP.
Asystenci AI (MCP)
Asystent AI, taki jak Claude, ChatGPT, Gemini lub Cursor, może korzystać z BitVoice za pomocą Model Context Protocol (MCP), standardowego sposobu, w jaki asystenci docierają do innych programów. Zapytaj go w prostych słowach: kto dzwonił rano i czy ktoś oddzwonił, co powiedział dzwoniący z gabinetu dentystycznego, dlaczego połączenie o godz. 9 trafiło na pocztę głosową, czy linia dostawcy jest wyłączona. Z Twojej zgody może również umieścić połączenie, wysłać wiadomość tekstową lub rozłączyć połączenie.
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.
Włączanie
W Ustawieniach (rozdział 14), Asystenci AI (MCP):
- Pozwól asystentom AI łączyć się: wyłączone domyślnie. Wyłączone,
/mcpodpowiada tylko tym, że jest wyłączone. - Pozwól asystentom działać: wyłączone domyślnie. Wyłączone, asystenci mogą tylko czytać, niezależnie od ich tokenu. Włączone, asystent, którego token może modyfikować rzeczy, również otrzymuje narzędzia, które działają.
Karta wyświetla adres i gotowe do skopiowania ustawienia dla wspólnych asystentów i wyświetla listę wszystkich narzędzi.
Co może zrobić asystent
Czytanie (dowolnego tokenu):
- calls_now: trwające obecnie połączenia.
- call_history: przeszłe połączenia, wyszukiwane według numeru lub nazwy, kierunku i od określonego czasu, z powodem, dla którego każde z nich trafiło tam, gdzie trafiło.
- extensions: nazwy, numery, działy, adresy e-mail; nigdy hasło telefonu.
- phones_connected: które telefony są zarejestrowane i skąd.
- voicemail, search_transcripts: wiadomości i to, co zostało powiedziane na nagranych połączeniach.
- queues, trunks, health: kolejki obecnie, linie dostawców, własne kontrole BitVoice.
- directory, text_messages: firmowy spis telefonów i rozmowy tekstowe.
Działanie (z Pozwól asystentom działać, i tokenem, który może zmieniać rzeczy):
- place_call: kliknij, aby zadzwonić. Telefon rozszerzenia dzwoni najpierw; kiedy ktoś tam odbiera, BitVoice wywołuje numer dla niego, tak jakby sam wybrał, więc mają zastosowanie jego trasy, identyfikator wywołującego i limity.
- send_text: wiadomość tekstowa z jednego z numerów tekstowych organizacji.
- hang_up_call: kończy trwające połączenie.
Każdy narzędzie jest jedną z tras API, uruchamianą jako asystent: widzi i zmienia dokładnie to, na co pozwala jego token, te same kontrole mają zastosowanie, a jego zmiany są rejestrowane w dzienniku inspekcji pod jego nazwą. Odpowiedź jest ograniczona do około 60 000 znaków; asystent jest proszony o zawężenie wyszukiwania, gdy jest ono cięte.
Podłączanie asystenta
Asystenci, którzy się logują (Claude.ai i ChatGPT niestandardowi łącznicy, i inni): dodaj łącznik z adresem BitVoice. Asystent otwiera stronę logowania BitVoice w Twojej przeglądarce; zaloguj się normalnie (hasło, dwuetapowe, logowanie jednokrotne), a strona powie, jaki asystent prosi i gdzie wraca. Administrator może pozwolić mu działać lub Tylko pozwolić na odczyt; asystent widza może tylko czytać. Nie zezwalaj wysyła go z niczym. Jego dostęp jest następnie w Administratorzy (rozdział 57), tokeny API, jako Asystent AI, zalogowany: działa na /mcp tylko, nigdy dla reszty API, trwa godzinę na raz i odnawia się przez maksymalnie 30 dni nieaktywności. Cofnij kończy go natychmiast. Ci asystenci docierają do BitVoice ze swoich własnych serwerów, więc potrzebuje adresu dostępnego z Internetu i certyfikatu, którym ufają (Let's Encrypt, w Certyfikat (rozdział 14)).
Asystenci, którym podaje się token (Claude Code, Cursor, VS Code i inne narzędzia, które przyjmują adres i nagłówek): utwórz token API w Administratorzy (rozdział 57), tylko odczyt, chyba że powinien działać, i podaj go jako Authorization: Bearer bv_...:
claude mcp add --transport http bitvoice https://pbx.example.com:8443/mcp --header "Authorization: Bearer bv_..."
Asystenci, którzy uruchamiają program (Claude Desktop, i inne, które przyjmują polecenie): program BitVoice zawiera mostek, bitvoice mcp, który przekazuje każdą wiadomość do serwera przez HTTPS. Podaj mu adres serwera i token:
{ "mcpServers": { "bitvoice": { "command": "bitvoice", "args": ["mcp", "-url", "https://pbx.example.com:8443"], "env": { "BITVOICE_TOKEN": "bv_..." } } } }
With BitVoice's own certificate (not one from an authority), the bridge refuses it and prints its SHA-256: check it is your server's, then add "-pin", "THAT-SHA256" to the arguments. Only that certificate is then accepted.
Bezpieczne pozostawienie włączonego
- Tylko tokeny: logowanie przeglądarki do BitVoice nigdy nie dociera do
/mcp, a strona na innym serwisie jest odrzucana (Origin), więc strona internetowa nie może używać połączenia asystenta. - Asystenci mogą być błędni. Przydzielaj im tokeny tylko do odczytu, chyba że muszą podejmować działania; wszystko, co zrobili, jest w rejestrze audytu, a umieszczenie połączenia zawsze najpierw wybiera telefon osoby.
- Logowanie za pomocą OAuth 2.1 zgodnie z określeniami MCP: asystent rejestruje się sam (tylko publiczni klienci, z PKCE), zwraca tylko do adresów, które zarejestrował (https, lub http do własnego komputera), a kod jest ważny tylko raz, przez minutę.
- Organizacja hostowana na innym BitVoice udostępnia swoim asystentom tokeny; logowanie za pomocą OAuth tam jeszcze nie zostało wypróbowane.
Archwium
/archiveArchiwum przechowuje kopie nagrań, poczty głosowej i konfiguracji w innym miejscu: wiadrach Amazon S3 (lub dowolnym magazynie zgodnym z S3) lub kontenerze Azure Blob Storage. Jeśli dysk tego serwera zostanie utracony, archiwum nadal je posiada.
Konfiguracja
- W Archiwum (rozdział 72), wybierz Gdzie archiwizować: Amazon S3 lub Azure.
- Dla S3: Wiadro, jego Region, opcjonalny Folder w wiadrze i Punkt końcowy (dla magazynów zgodnych z S3), oraz ID klucza dostępu i Klucz dostępu tajnego. Kopiuj zasady daje jedynie uprawnienia, których potrzebuje BitVoice, aby dołączyć do użytkownika lub roli.
- Dla Azure: Adres URL kontenera SAS z uprawnieniami do zapisu, oraz opcjonalny Folder w kontenerze.
- Wybierz, co skopiować oprócz konfiguracji: Nagrania połączeń, Poczta głosowa, lub oba.
Co się dzieje
Co dziesięć minut BitVoice kopiuj nowe nagrania i wiadomości, które jeszcze nie są w archiwum, oraz raz dziennie datowaną kopię konfiguracji (config/2026-10-13.json). Strona pokazuje ostatni przebieg, ostatni sukces i ewentualne błędy.
Usuwanie czegoś tutaj (przez retencję lub ręcznie) nie powoduje usunięcia kopii archiwum: ustaw własne reguły cyklu życia wiadra lub kontenera, aby określić, jak długo archiwum przechowuje elementy.
Prawne zatrzymania
/holdsPrawne zatrzymanie zachowuje rekordy połączeń, nagrania i pocztę głosową, które mogą być potrzebne w danej sprawie, i uniemożliwia ich usunięcie, aż do momentu ich zwolnienia. Używaj go, gdy prawnik poprosi o zachowanie rekordów.
Dodawanie zatrzymania
Na Prawnych zatrzymaniach (rozdział 73), naciśnij Dodaj:
| Pole | Co to jest |
|---|---|
| Nazwa | co jest nazwą sprawy |
| Powód | dlaczego, dla zapisu |
| Numery | rozszerzenia i numery zewnętrzne, które obejmuje (101, +15551234567), lub Wszystko |
| Od, Do | daty, które obejmuje; puste dla braku ograniczenia |
Podczas zatrzymania
- Przechowywanie pozostawia to, co obejmuje, bez zmian, niezależnie od wieku.
- Nikt nie może usunąć zatrzymanego połączenia, nagrania lub poczty głosowej, w tym administratorzy.
- Zatrzymane połączenia wyświetlają zamknięcie w Historii połączeń (rozdział 47).
Zwolnienie
Zwolnienie sprawia, że to, co zatrzymanie zachowało, jest ponownie poddane ustawieniom przechowywania: rzeczy starsze niż przechowywanie są usuwane podczas następnej czyszczenia. Zwolnione zatrzymania pozostają na liście, wraz z datą i osobą, która je zwolniła, a dodawanie i zwalnianie zatrzymań jest rejestrowane w dzienniku inspekcji.
Metriki: Prometheus, OpenTelemetry, Grafana, SNMP i rekordy połączeń
/settingsPrometheus pobiera /metrics z adresu internetowego. Utwórz token API w sekcji Administratorzy (wystarczy token widza) i podaj go Prometheus jako token nośnikowy:
scrape_configs:
- job_name: bitvoice
scheme: https
authorization: { credentials: bv_... }
static_configs: [{ targets: ['pbx.example.com'] }]
Czyta połączenia w trakcie (po stanie), zakończone połączenia (po kierunku i wyniku), czas rozmowy, zarejestrowane telefony, stan każdego traktu i czas podróży, rozmówców oczekujących i agentów w każdej kolejce, otrzymane i utracone pakiety dźwięku, histogram ocen jakości połączenia (MOS) oraz zaplanowane powiadomienia. Liczniki zaczynają się od zera po ponownym uruchomieniu BitVoice, tak jak oczekuje Prometheus.
OpenTelemetry: w Ustawieniach, Metriki, wprowadź adres kolektora OTLP/HTTP (i nagłówek, taki jak Autoryzacja, z jego wartością), aby wysyłać te same pomiary co minutę (lub tak często, jak ustawisz, od 15 sekund). Wysłanie teraz sprawdza zapisane ustawienia.
Pulpit nawigacyjny Grafana pobiera gotowy pulpit nawigacyjny: importuj go w Grafana i wybierz źródło danych Prometheus.
SNMP
Dla systemów monitorowania, które obsługują SNMP (Zabbix, PRTG, LibreNMS, Nagios, SolarWinds), włącz agent SNMP w Ustawieniach. Odpowiada na SNMPv2c GET, GETNEXT i GETBULK, tylko do odczytu, na porcie UDP 161 (lub innym, który wybierzesz: port 161 wymaga uprawnienia do otwierania portów niskich w systemie Linux), i tylko z sieci, które wymieniasz. Wybierz społeczność, która nie jest publiczna ani prywatna: jest to hasło, które przechodzi przez sieć w postaci jawnej.
Dostarcza standardową grupę systemu (sysDescr, sysUpTime, sysContact, sysName, sysLocation) i własne wartości BitVoice pod bazowym OID: połączenia w trakcie i dzwoniące, zarejestrowane telefony, trakty w górę i ustawione, rozmówcy oczekujący, zakończone połączenia, sekundy rozmowy, utracone pakiety, średnia jakość połączenia, tabela traktów (nazwa, w górę lub w dół, opóźnienie) i tabela kolejek (oczekujący, agenci, odpowiedzi, porzuceni). Pobierz BITVOICE-MIB obok ustawień dla Twojego systemu monitorowania. BioDream LLC nie ma jeszcze numeru przedsiębiorstwa, więc domyślne bazowe OID znajduje się w przestrzeni eksperymentalnej Net-SNMP; umieść je pod własnym numerem przedsiębiorstwa, aby zachować stabilność.
Pułapki (SNMPv2) są wysyłane do każdego odbiorcy, którego wymieniasz, gdy trakt zostaje wyłączony lub włączony, gdy wykonano połączenie awaryjne lub gdy serwer klastra przestał odpowiadać. SNMPv3 nie jest jeszcze obsługiwany.
Rekordy połączeń w innym miejscu
Obok Historii połączeń, każdy rekord może być wysłany, po zakończeniu połączenia, do:
- Syslog (RFC 5424, jako JSON) przez UDP, TCP lub TLS, dla serwera logów lub SIEM.
- Pliku CSV dziennie, z kolumnami Master.csv Asterisk, aby narzędzia raportowania i rozliczania stworzone dla Asterisk mogły go odczytać. Pliki można pobrać u dołu Historii połączeń (rozdział 47). Komórki, które arkusz kalkulacyjny wykonałby jako formułę, są zapisywane w sposób bezpieczny.
- Tabeli PostgreSQL w innej bazie danych, utworzonej po raz pierwszy z kolumnami
cdrAsterisk (calldate, clid, src, dst, duration, billsec, disposition, uniqueid…) plus kierunek, trakt, koszt i MOS BitVoice. Każde połączenie jest zapisywane jeden raz.
Wyślij rekord testowy próbuje serwer syslog i bazę danych z zapisanymi ustawieniami.
Generator połączeń
/loadtestGenerator połączeń umieszcza prawdziwe połączenia z prawdziwym dźwiękiem do BitVoice z tego komputera: aby zobaczyć, ile połączeń obsługuje serwer i jak dobrze, lub aby sprawdzić po zmianie, czy połączenia nadal trafiają tam, gdzie powinny.
Uruchamianie testu
| Ustawienie | Co to jest |
|---|---|
| Numer do wywołania | numer wewnątrz BitVoice: rozszerzenie, grupa, kolejka, menu |
| Połączenia pochodzą z | numer nadawcy, który jest wyświetlany |
| Odpowiedź jako | rozszerzenie, dla którego generator odpowiada samodzielnie; lub nikt, gdy numer odpowiada samodzielnie (menu, test echa) |
| Połączenia | ile w sumie |
| Naraz | ile może być w trakcie jednocześnie, do 2 000. Każde przekierowane połączenie zajmuje porty multimedialne z Multimedia od i Multimedia do (Ustawienia): domyślnie 10 000-20 000 mieści około 1 800, więc rozszerzaj je dla większej ilości |
| Nowe na sekundę | jak szybko one zaczynają się |
| Każde trwa (s) | jak długo każde trwa |
Czytanie wyników
| Wynik | Co mówi |
|---|---|
| Odpowiedziane, Nieudane | i Dlaczego połączenia nie powiodły się, z powodu |
| Czas odpowiedzi, mediana i 95% | jak długo czekali dzwoniący |
| Utracone audio | udział pakietów dźwięku, które nigdy nie dotarły |
| Ocena audio | szacowana jakość dźwięku (MOS): 4 i więcej jest dobre, poniżej 3,6 jest słaba |
| Jitter, 95% połączeń | jak nierównomiernie dźwięk wracał (RFC 3550 jitter między przyjściem, średnio dla każdego połączenia); telefony wyrównują do około 20 ms |
| Najdłuższa przerwa, najgorsze połączenie | najdłuższa przerwa między dwoma pakietami dźwięku w dowolnym połączeniu; przychodzą co 20 ms, więc zatrzymanie serwera jest widoczne tutaj |
| Pauzy pamięci, najdłuższa pauza | jak często i przez jaki czas w trakcie uruchomienia Go runtime wstrzymywał wszystko, aby uporządkować pamięć |
| Połączenia w trakcie na przestrzeni czasu | wykres obciążenia |
Ślad SIP
/traceŚlad SIP wyświetla wiadomości, które BitVoice wysyła i otrzymuje, na żywo: pierwsze miejsce, w którym należy szukać, gdy telefon nie może się zarejestrować lub połączenie awaryjne nie powiedzie się, i to, o co poprosi dział wsparcia dostawcy.
Znajdowanie wiadomości
BitVoice przechowuje ostatnie 2 000 wiadomości w pamięci (nic nie jest zapisywane na dysku, a są one usuwane po ponownym uruchomieniu). Wpisz część numeru, adresu lub Call-ID w filtrze. Naciśnij Odśwież, aby uzyskać najnowsze.
Wybierz wiadomość, aby ją zobaczyć w pełni i, obok niej, przepływ połączenia: każdą wiadomość tego samego połączenia w kolejności, między telefonem, BitVoice i dostawcą, jak na rysunku.
Odczytywanie śladu
| Widzisz | Zwykle oznacza |
|---|---|
| REGISTER odpowiedź 401, potem nic | telefon nie ma hasła lub ma nieprawidłowe hasło |
| REGISTER odpowiedź 403 | adres jest zablokowany lub telefon loguje się jako inna rozszerzenie |
| INVITE odpowiedź 404 | nie ma dopasowania trasy dla wybranego numeru (Trasy połączeń (rozdział 8)) |
| INVITE odpowiedź 403 od dostawcy | dostawca odrzuca ID wywołującego lub numer |
| 486 | druga strona jest zajęta |
| 488 | obie strony nie mają wspólnego kodeka (Kodeki (rozdział 66)) |
| 200 OK, potem BYE po około 30 sekundach | ACK nigdy nie dotarł: router pośredni modyfikuje lub usuwa wiadomości (wyłącz jego "SIP ALG") |
| Połączenie łączy się, ale nikt nic nie słyszy | dźwięk jest zablokowany: sprawdź publiczny adres w Ustawieniach i porty multimedialne w zaporze sieciowej |
Bezpieczeństwo publiczne: ścieżka laboratoryjna
Profil punktu przyjmowania połączeń 911, konsola radiowa i usługi rdzenia NG911. Są to ścieżka laboratoryjna i projektowa: zbudowana i przetestowana z wykorzystaniem nagranych danych, danych próbnych i zastępczych, ale nie certyfikowana do obsługi żywych połączeń 911 lub radiowych i nie jeszcze wypróbowana z żywym systemem ESInet, P25 lub CAD. Są one wyłączone z menu, dopóki nie zostaną włączone w Ustawieniach. Połączenia awaryjne z własnych telefonów (Rozpoczęcie pracy) nie są częścią tej ścieżki: są częścią każdego systemu telefonicznego.
Połączenia 911 (profil 911)
/psapBitVoice odpowiada na połączenia 911 jako system obsługi połączeń PSAP: połączenia z sieci usług awaryjnych (ESInet, NENA i3) przychodzą z lokalizacją osoby dzwoniącej i danymi sieci, operator widzi je od razu, a CAD jest powiadamiany, gdy połączenie jest odebrane.
Konfiguracja.
- W Trunkach (rozdział 7) dodaj trunk od dostawcy ESInet (lub jądro ESRP NG911) i włącz Z ESInet.
- W Routeingu połączeń (rozdział 8), przekieruj połączenia do twoich dyspozytorów: kolejki lub grupy dzwonienia.
- W połączeniach 911, wprowadź swój identyfikator agencji (domenę, np.
psap.county.example.gov) i informacje o CAD, które przyjmuje: adres i port, na którym nasłuchuje ALI, oraz adres EIDO.
Gdy połączenie 911 dzwoni, wyświetla się na połączeniach 911 z:
- adresem, który sieć wysłała (lokalizacja cywilna), i położeniem z informacją o niepewności (w promieniu tylu metrów), naniesionym na mapę z okręgiem niepewności (po ustawieniu mapy poniżej) i linkiem do OpenStreetMap;
- dostawcą, rodzajem usługi (bezprzewodowej, VoIP, domowej, biznesowej), urządzeniem i abonamentem, gdy połączenie je przyniosło (dodatkowe dane, RFC 7852);
- informacjami o błędach podczas odczytywania.
Lokalizacja jest przesyłana w połączeniu (jako wartość), lub jako referencja, którą BitVoice pobiera za pomocą HELD. Połączenie z referencją ma ponowne żądanie lokalizacji: BitVoice pyta ponownie, dla osoby, która się porusza lub której pierwsze ustalenie było niedokładne.
Gdy ponowne żądanie zmienia lokalizację, sprawdzenie lokalizacji określa, którą wyświetlić jako pierwszą i dlaczego: nową lokalizację jako regułę; pierwszą, gdy była to precyzyjna lokalizacja urządzenia (GPS, w promieniu 100 m) mniej niż dwie minuty temu i nowa jest mniej precyzyjna; oraz obie, gdy dwie lokalizacje różnią się bardziej niż na ich niepewność pozwala, więc dyspozytor pyta osobę, która dzwoni. Pierwsza lokalizacja pozostaje w połączeniu w każdym przypadku.
Gdy dyspozytor odbiera połączenie, CAD otrzymuje, każde oddzielnie, aby CAD, który jest niedostępny, nie blokował połączenia:
- ALI spill: blok tekstu, który systemy CAD odczytują (numer zwrotny, klasa usługi, adres, położenie i niepewność, dostawca), wysłany przez TCP;
- EIDO, dokument incydentu NENA-STA-024, za pomocą HTTPS POST (z tokenem nośnika, jeśli jest ustawiony). EIDO w połączeniu wyświetla je. Adres musi być
https, lub zwykłyhttptylko do CAD na tym samym komputerze (http://127.0.0.1:…): EIDO zawiera lokalizację osoby, która dzwoni, i token, więc nigdy nie przekracza sieci bez szyfrowania, w tym sieci prywatnej. To samo dotyczy Wyślij zdarzenia radiowe do CAD na. Zapisywanie innego zwykłego adresuhttpjest odrzucane; jeden zapisany przez starszą wersję pozostaje, więc BitVoice nadal się uruchamia i inne zmiany nadal zapisują, ale nic nie jest wysyłane do niego, a Stan (rozdział 13) wyświetla je na czerwono, dopóki nie zostanie zmieniony.
ALI spill sam w sobie jest zwykłym TCP, ponieważ starsze słuchacze CAD przyjmują go, więc nie może wymagać szyfrowania. Gdy jest wysyłany do innego komputera, Stan ostrzega: trzymaj tę ścieżkę poza każdą siecią współdzieloną, z bezpośrednim połączeniem szeregowym (serial:/dev/…) lub VPN lub obwodem prywatnym do CAD. Ustaw również Identyfikator agencji: EIDOs i nazwa loga i3 identyfikują agencję za pomocą niego, a Stan (rozdział 13) ostrzega, dopóki nie jest pusty.
Połączenie 911 nigdy nie jest odrzucane. Połączenie głosowe z ESInet (lub trunku CAMA), którego trasa przychodząca odrzuciłoby je, ponieważ trasa kończy się, dzwoni grupie bez nikogo w niej lub nie istnieje, lub nikt nie odbiera, dzwoni każdemu dyspozytorowi zamiast tego: każdej włączonej rozszerzeniu i każdemu telefonowi, który łączy się, podczas gdy dzwoni, aż ktoś odbierze lub osoba, która dzwoni, kończy połączenie. Połączenie tekstowe czeka na tym ekranie w ten sam sposób. Jak było trasowane mówi, co się stało, a Stan (rozdział 13) ostrzega o takiej trasie, aby mogła być poprawiona. Tylko połączenia testowe (urn:service:test.sos) i połączenia, które nie są połączeniami 911, zachowują swoją trasę odmowy.
Ani upuszczone przez transfer. Gdy dyspozytor przekazuje połączenie 911 i transfer nie może się połączyć, ponieważ rozszerzenie nie ma podłączonego telefonu lub nikt nie odbiera go, połączenie wraca do tego dyspozytora, podczas gdy nadal jest on na połączeniu. Jeśli już rozłączył się (większość telefonów biurkowych robi to zaraz po przełączeniu), każdy dyspozytor dzwoni zamiast tego, aż ktoś odbierze. Połączenie 911 nigdy nie jest przekazywane do poczty głosowej rozszerzenia lub innego celu braku odpowiedzi, a ślad trasowania mówi, co się stało. W każdym połączeniu telefon, który rozłącza się zaraz po poproszeniu o transfer, uwalnia tylko siebie: transfer kontynuuje się.
Osoba, która zniknęła. Gdy jeden koniec połączenia przestaje wysyłać dźwięk na minutę (telefon, który stracił zasilanie lub sygnał, nie wysyła sygnału rozłączenia), podczas gdy drugi koniec nadal wysyła, połączenie jest kończone z powodem *dźwięk osoby, która dzwoni, przestał* (lub kto to zrobił), w rekordzie połączenia i w zdarzeniu call.ended, które CAD słyszy (cause, endedBy). Koniec na czacie, faksowaniu lub który powiedział, że nic nie wysyła (głośnik do ogłoszeń), nigdy nie kończy się w ten sposób. Cisza nadal wysyła pakiety, więc osoba, która nie może mówić, utrzymuje połączenie.
Transkrypcje na żywo. Z Pisząc 911 połączenia na żywo włączone (Ustawienia, AI), każda strona odebranej odpowiedzi 911 jest zapisywana jako mówi, przez usługę rozpoznawania mowy, gdy jest ustawiona (tak, aby audio pozostało w budynku (rozdział 28)), w przeciwnym razie przez usługę AI, przecinane tam, gdzie mówca pauzuje, i wyświetlane pod połączeniem jako Transkrypcja na żywo. CAD otrzymuje każdy kawałek jako zdarzenie call.transcript: {"call": id, "lines": [{"speaker": "Caller", "side": "caller", "text": "…", "second": 12.4}]}. Dźwięk połączeń jest wysyłany do usługi AI, podczas gdy trwają, nagrywany lub nie. Własna transkrypcja nagrania nadal przychodzi, gdy połączenie się kończy.
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.
Wideo i zdjęcia nadawcy. Podczas połączenia 911, Wyślij nadawcy link wideo tworzy link, który otwiera tylko to połączenie: wysłany do nadawcy z numeru pod Wyślij link z, lub odczytany. Gdy nie można go wysłać (nie ustawiono numeru tekstowego lub nadawca nie wysłał numeru), ekran i API problem mówią, dlaczego. Nadawca otwiera go w przeglądarce telefonu (bez aplikacji): Udostępnij wideo na żywo wysyła wideo z tylniej kamery na żywo (WebRTC, WHIP: RFC 9725), a Wyślij zdjęcia lub wideo wysyła to, co zostało już sfotografowane, w tym pliki z kamer samochodowych i akcji. Podczas połączenia:
- wideo na żywo wyświetla NA ŻYWO; Obejrzyj wideo nadawcy odtwarza je rozmyte, a Pokaż (może być niepokojące) pokazuje je; Rozmyj ponownie ukrywa je;
- każdy plik wyświetla swój rozmiar, kiedy został sfotografowany (zgodnie z zegarem kamery), gdzie (z GPS, gdy jest dostępny), i jego SHA-256, pobrany, gdy przychodzi, aby później można było wykazać, że jest to ten sam plik; Pokaż otwiera go; Zatrzymaj jako dowód przechowuje pliki połączenia poza okresem przechowywania;
- link do oglądania pod nim (WHEP) pozwala CAD, ekranie jednostki lub innemu stanowisku obserwować to samo wideo na żywo, bez logowania: traktuj go jako klucz.
Wideo nigdy nie jest pobierane z połączeń: każde wideo na żywo ma własne porty, ten serwer przyjmuje maksymalnie Wideo na żywo jednocześnie z nich (4, chyba że ustawiono), każde prosi o pozostanie poniżej Przepływność wideo, a wideo, które zatrzymuje się na dziesięć sekund, jest kończone. Telefony nadawców muszą dotrzeć do tego serwera w Adresie linku (https) i jego portach multimedialnych (UDP). Pliki są przechowywane Przechowuj pliki i rejestr ekspozycji dni (pusty: do usunięcia), z wyjątkiem połączeń wstrzymanych.
Nagrywanie wideo na żywo. Z włączonym Nagrywaj wideo na żywo nadawców, wideo na żywo nadawcy jest przechowywane z zdjęciami i klipami jako jeden plik na każdy odcinek wideo: te same obrazy, które telefon wysłał, nieprzetworzone, w pliku IVF (H.264 lub VP8 z własnym czasem dla każdego obrazu), zahashowane, gdy jest zapisywane. Uszkodzony obraz spowodowany utratą pakietu jest pomijany, a telefon jest proszony o pełny obraz, aby kontynuować. Pokaż odtwarza go (z kopii w WebM lub MP4, którą tworzy ffmpeg, te same obrazy w innym kontenerze; bez ffmpeg tylko oryginał jest pobierany); Pobierz oryginał daje plik, którego hash jest.
Do CAD. EIDO (NENA-STA-021) wysłane do CAD nazywa każde zdjęcie, klip i nagranie oraz wideo na żywo, tak długo, jak trwa, jako dodatkowe dane za pomocą odniesienia: urlPurpose to caller-photo, caller-video, caller-video-recording lub caller-video-live, a additionalDataByReferenceUrl to plik w /m/{viewToken}/{n} lub wideo na żywo w /whep/{viewToken}. BitVoice wysyła CAD EIDO ponownie, gdy plik przychodzi lub wideo na żywo zaczyna się lub kończy. Linki używają Adresu linku (lub publicznego adresu tego serwera); bez nich EIDO nie nazywa nośników. Każde pobranie za pomocą nich jest w rejestrze ekspozycji. Strumień zdarzeń mówi to samo (GET /api/events: call.media, call.video). EIDO BitVoice są sprawdzane przeciwko opublikowanemu schematowi EIDO NENA.
Linki, które nie istnieją, są odgadywane nie szybciej niż logowania: adres, który stale próbuje, jest odrzucany na jakiś czas. Pliki od nadawców są obsługiwane w piaskownicy, nigdy jako strona tego serwera.
Ekspozycja. Każde ujawnienie wideo na żywo i każde otwarcie zdjęcia lub klipu jest liczone pod Ekspozycją w połączeniach 911: kto, jak często, przez ile połączeń. Jest to dla nadzorców i programu wellness centrum.
Wideo, które telefon wysyła w samym połączeniu 911 (wideo SIP przez ESInet), może być oglądane w ten sam sposób: Obejrzyj traktuje je jako źródło, gdy nie ma linku wideo na żywo.
Połączenia z tylko numerem. Połączenie 911, które przynosi numer callback i nie ma lokalizacji (z traktu CAMA lub połączenia ESInet, którego lokalizacja nie przychodzi), może być wyszukane: podaj Wyszukiwanie lokalizacji (ALI) adres interfejsu HELD bazy danych ALI lub serwera lokalizacji (RFC 5985, zapytany przez numer telefonu, jak to ma RFC 6155). BitVoice pyta, gdy połączenie przychodzi, bez zatrzymywania go, i lokalizacja pojawia się w połączeniu, gdy odpowiedź przychodzi; połączenie mówi, kiedy wyszukiwanie nie powiodło się i dlaczego.
Dziedzictwo połączenia ALI. Bez serwera HELD, BitVoice może poprosić kontroler ALI lub połączenie danych bazy danych ALI w starym sposób: wysyła żądanie i odczytuje rekord jako tekst, przez sieć (adres połączenia ALI host:port) lub z portu szeregowego (serial:/dev/ttyUSB0?baud=9600&parity=none, z bits i stop również; adapter szeregowy USB działa; w systemie Linux i macOS, nie w Windows: tam użyj konwertera szeregowo-sieciowego i jego adresu). Żądanie to co wysłać: {ani10} dziesięcio-cyfrowy numer callback, {ani7} jego ostatnich siedem, {pos2} pozycja, STX i ETX ({ani10} gdy pusty). Odpowiedź jest odczytywana do jej ETX. Układy ALI różnią się między dostawcami i stanami, więc umieść każde pole: jego linia, kolumna i długość (0: do końca linii), z wydruku ekranu ALI; Ulica (cała linia) dzieli linię ulicy na jej części, lub umieść części pojedynczo. Wklej przykładowy rekord i Przeczytaj przykład, aby zobaczyć linie z kolumną i to, co każde pole odczytuje; Poproś prosi same połączenie o numer. Adres rekordu i pozycja stają się lokalizacją połączenia, jego nazwa nazwą osoby dzwoniącej, a klasa usługi jest wyświetlana na połączeniu. Protokoły, które nie są żądaniem i odpowiedzią tekstową (PAM, E2 i własne protokoły innych dostawców) nie są obsługiwane: wymagają bramki.
Przepełnienie ALI przez port szeregowy. Przepełnienie ALI do również przyjmuje port szeregowy (serial:/dev/ttyS0?baud=9600), dla systemu CAD, który odczytuje przepełnienie z kabla szeregowego.
Mapa. W ustawieniach 911, pod Mapą, podaj BitVoice swoje kafelki mapy: plik .mbtiles kafelków rastrowych (PNG, JPEG lub WebP) na tym serwerze, dla mapy, która działa bez internetu (twój zespół GIS, TileMill, gdal2tiles lub dostawca kafelków tworzy jeden dla twojej okolicy), lub serwer kafelków z {z}, {x} i {y} w jego adresie (twój serwer hrabstwa, lub komercyjny: zwróć uwagę na warunki; publiczne serwery OpenStreetMap nie są dla tego przeznaczone). W obu przypadkach przeglądarki call-takerów pobierają kafelki z BitVoice tylko: odczytuje plik lub pobiera z serwera kafelków i przechowuje ostatnie kafelki w pamięci. Ta sama mapa pokazuje pozycje radiowe na konsoli radiowej. Kafelki wektorowe nie są obsługiwane.
Dziennik i3 przechowuje zdarzenia NENA i3 dla każdego połączenia (rozpoczęcie połączenia, odpowiedź, lokalizacja, wysłanie EIDO), jeden plik dziennie. Czasy odpowiedzi pokazują, ile połączeń zostało odebranych w ramach twojego celu (NENA: 90% w ciągu 15 sekund, 95% w ciągu 20 sekund), porzucone połączenia i średni czas odpowiedzi dla każdego call-takera. Wiersz dziennie (CSV) pobiera liczbę połączeń, które są zwykle pytane przez biura 911 stanu (połączenia, odebrane, porzucone, w ramach celu i w ciągu 20 sekund, średni i najdłuższy czas oczekiwania) dla wybranych dni; Wiersz na połączenie (CSV) wyświetla każde połączenie 911 z czasem, kiedy zostało odebrane, przez kogo i czy było to połączenie tekstowe. Każdy stan ma swój własny formularz: ułóż swój pod Układ raportu. Połączenie tekstowe odebrane na tym ekranie lub przez system CAD jest liczony pod osobą, która je odebrała; połączenie, które nikt nie odebrał przed opuszczeniem przez dzwoniącego, jest liczony jako porzucone.
Układ raportu. Nowy układ raportu układa raport zgodnie z formularzem twojego stanu lub hrabstwa: co jest w każdym wierszu (dzień, tydzień, miesiąc, godzina dnia, call-taker, lub jeden wiersz dla wszystkich), wiersz sumaryczny i kolumny, w kolejności, z własnym nagłówkiem, jeśli formularz słowa je inaczej: połączenia, odebrane, porzucone (liczba lub udział), odebrane w ciągu tylu sekund (liczba lub udział; sekundy są twoje, więc 10 i 20 dla jednego formularza i 15 i 40 dla innego), odebrane po więcej niż tylu sekundach, średni i najdłuższy czas oczekiwania, czas, w którym 90% połączeń zostało odebranych, średnia długość połączenia i połączenia tekstowe (TTY, tekst w czasie rzeczywistym, tekst do 911). Czas oczekiwania jest liczony od momentu przyjścia połączenia do momentu odpowiedzi call-takera. Wybierz układ i daty, a następnie Uruchom, aby przeczytać go tutaj, Arkusz (CSV), aby pobrać go, lub Strona do wydruku dla prostej strony do wydruku lub zapisania jako PDF. Układy są przechowywane z ustawieniami, więc idą z kopią zapasową i do Git.
Połączenia TTY. Dzwoniący głuchoniemi i słabosłyszący mogą dzwonić do 911 za pomocą TTY (telefonu tekstowego, Baudot z prędkością 45,45 bit/s). BitVoice nasłuchuje TTY na każdym połączeniu 911, od samego początku: to, co dzwoniący wpisuje, pojawia się na połączeniu, gdy tylko go wpisuje, pod Tekstem, z pauzą lub nową linią, która rozpoczyna nową linię. Ciche połączenie może być TTY, które czeka na odpowiedź: raz odpowiedziane, Odpowiedz przez TTY wysyła tekst, zanim zostanie wpisany którykolwiek. Wpisz odpowiedź i naciśnij Wyślij: zostanie wysłany do dzwoniącego jako ton TTY (głos call-takera jest wyciszony podczas odtwarzania, ponieważ TTY biorą udział na zmianę), w wielkich literach, a etykieta TTY ma zastosowanie: kończ każdą turę GA („go ahead”), a SK podczas zamykania. Znaki, które TTY nie mogą wyświetlić, są pomijane. Mowa, muzyka i tonowe sygnały są nigdy nie brane za tekst TTY: znak jest liczony tylko wtedy, gdy każdy bit jest czystym tonem TTY. Rozmowa jest przechowywana z połączeniem w historii połączeń i w dzienniku i3 (jeden MessageLogEvent na turę). Odznacz Nasłuchuj TTY na połączeniach 911 w ustawieniach 911, aby przestać nasłuchiwać.
Przekierowania. Połączenie 911 przekierowane do innego PSAP zachowuje swoją lokalizację: PIDF-LO jest przekazywany z połączeniem.
Tekst w czasie rzeczywistym (RTT). Telefon, który wysyła tekst obok swojego głosu (RFC 4103, jak telefony VoLTE i połączenia NG911) ma swój tekst odpowiedni przez BitVoice, ponieważ telefony biurkowe nie wyświetlają go: każdy znak pojawia się na połączeniu, gdy nadawca go wpisuje, a Twoja odpowiedź jest wysyłana z powrotem jako tekst. Zagubione pakiety są uzupełniane przez redundancję RTT; tekst utracony poza nią jest wyświetlany jako .
Tekst do 911. Centrum kontroli tekstu (TCC) wysyła teksty do PSAP jako sesję bez głosu (MSRP, RFC 4975, przez trunk ESInet). BitVoice odpowiada na nie i czeka na połączenia 911 oznaczone jako Tekst do 911, z tekstami, które nadeszły; żaden telefon nie dzwoni. Weź ten tekst sprawia, że stajesz się operatorem połączenia (czas odpowiedzi jest liczony wtedy, a CAD otrzymuje ALI i EIDO wtedy); odpowiedz w polu pod konwersacją, a Zakończ konwersację, gdy skończysz. Zamknięcie sesji przez TCC kończy ją również. Wiadomość SIP MESSAGE wysłana wewnątrz dialogu połączenia 911 jest traktowana jako tekst nadawcy w ten sam sposób, a odpowiedzi są wysyłane z powrotem przez SIP MESSAGE. Teksty są akceptowane tylko z trunków oznaczonych jako Z ESInet.
TCC, które oferuje sesję przez TLS (TCP/TLS/MSRP, ścieżki msrps, RFC 4975 sekcja 14), otrzymuje ją przez TLS, z certyfikatem tego serwera (Ustawienia › Certyfikaty; bez niego oferta jest odrzucana). Certyfikat TCC musi być tym, który jego oferta nazwała (a=fingerprint, SHA-256); gdy nie nazwał żadnego, musi być śledzony do korzeni Agencji Poświadczania PSAP ustawionych pod Usługi podstawowe, jeśli są ustawione. Odpowiedź BitVoice nazwała swój własny certyfikat w ten sam sposób.
Cała konwersacja, niezależnie od sposobu, w jaki nadeszła, jest przechowywana z połączeniem w historii połączeń i w logu i3.
Co jeszcze nie jest tutaj: przekazywanie sesji tekstu przez rdzeń NG911 (ESRP trasuje głos; sesja tekstu jest odpowiadana tam, gdzie przychodzi); własne subskrypcje standardu EIDO (NENA-STA-024 WebSocket): BitVoice publikuje EIDOs pod jednym adresem.
Konsola radiowa dyspozytorska
/radioDyspozytorzy rozmawiają na kanałach radiowych z tego samego słuchawka, co ich połączenia telefoniczne. BitVoice dociera do radiotelefonów przez bramy radio-over-IP (RoIP); sieć radiowa pozostaje z tym, kto ją obsługuje.
Konfiguracja. W Konfiguracji konsoli, wybierz numer konsoli (800, na przykład) i dodaj każdy kanał: jego nazwę, port na tym serwerze, do którego brama wysyła dźwięk kanału, oraz adres i port bramy dla dźwięku wychodzącego. Na bramie: RTP, G.711 µ-law, do adresu tego serwera i tego portu; włącz radio na głos (VOX). Każdy kanał używa swojego portu i następnego, poza zakresem używanym przez połączenia telefoniczne.
Dołączanie. Dyspozytor wybiera numer konsoli z telefonu biurkowego lub naciska Dołącz z telefonem przeglądarki. Następnie słyszy ruch wszystkich kanałów zmieszany razem; Słuchanie / Wyciszenie na kanale usuwa go z jego słuchawki. Łampa na kanale świeci, gdy odbiera.
Mówienie. Przytrzymaj przycisk Przytrzymaj, aby mówić kanału (lub skup się na nim i przytrzymaj spację): twój głos idzie tylko do tego kanału, a kanał pokazuje TX z twoim numerem wewnętrznym. Jeden dyspozytor mówi na kanale na raz; przycisk jest szarzy dla innych, gdy ktoś mówi. Nic nie jest wysyłane do kanału, gdy nikt nie mówi, więc radio z włączonym głosem nie jest nigdy trzymane w powietrzu.
Łączenie. Naciśnij Łącz na jednym kanale, a następnie Łącz tutaj na innym: dwa kanały słyszą się nawzajem (kanał straży pożarnej i kanał pomocy wzajemnej, na przykład) do momentu, gdy naciśniesz Rozłącz.
Grupy rozmów P25. Kanał może być również grupą rozmów P25, dołączoną bezpośrednio przez ISSI (TIA-102.BACA, interfejs między podsystemami P25; z Wyślij słowo PTT konsoli CSSI włączone, BitVoice dodaje słowo podsystemu konsoli do każdego żądania). Wybierz Grupę rozmów P25 (ISSI), podaj ID grupy rozmów, adres SIP i ID RFSS, który jest gospodarzem grupy rozmów, oraz port dla jej głosu. W Konfiguracji tej konsoli w systemie P25, wprowadź WACN i ID systemu, ID RFSS, które twoj administrator P25 dał tej konsoli, ID jednostki, którą dyspozytorzy transmitują, oraz port SIP, który ISSI używa tutaj; system P25 musi znać ten serwer jako RFSS pod tym adresem. Kafelek pokazuje P25, gdy połączenie grupowe jest aktywne (P25 nieaktywne i powód, gdy nie jest), oraz ID jednostki radiowej, która mówi, na czerwono z EMERGENCY, gdy jest to połączenie awaryjne. Przytrzymaj, aby mówić prosi o kanał u gospodarza RFSS (Proszę o kanał...); twój głos idzie, gdy tylko go przyznaje, a jeśli odmówi (ktoś z wyższym priorytetem go ma), kafelek mówi o tym. Głos jest konwertowany na i z IMBE, kodera P25, w BitVoice.
Szyfrowane grupy rozmów. W Klucze szyfrowania, dodaj każdy klucz ruchu dostarczony przez sklep radiowy: nazwę, algorytm (AES-256, DES-OFB lub trój krotny DES), identyfikator klucza i klucz w postaci heksadecymalnej (TIA-102.AAAD). Klucz nie jest ponownie wyświetlany po zapisaniu, nawet dla administratorów, a pozostawienie pola pustego go zachowuje. Konsola odbiera szyfrowaną transmisję, gdy posiada klucz z tym algorytmem i identyfikatorem klucza: kafelka wyświetla zamknięcie i algorytm obok jednostki mówiącej. Bez klucza transmisja jest wyciszona, nigdy nie jest odtwarzana jako szum, a kafelka wyświetla brak klucza: wyciszona. Aby transmitować szyfrowanie na grupie rozmów, wybierz klucz w Transmit dla tego kanału; kafelka wyświetla wtedy TX AES-256 (lub wybrany algorytm). Pełny eksport konfiguracji (Ustawienia, kopie zapasowe administratora) zawiera klucze, więc przechowuj te pliki tak bezpiecznie, jak klucze.
Prywatne połączenia. Z konsolą na systemie P25, Wywołaj radio w pasku pozycji wywołuje radio według jego identyfikatora jednostki (włącz Awaryjne, aby wywołać je jako awaryjne). Połączenie staje się kafelką o nazwie Prywatne połączenie: jednostka 197, z Poczekaj, aby mówić jak każdy kanał i Zakończ. Radia mogą również wywoływać konsolę, na identyfikatorze jednostki, który transmituje: połączenie pojawia się jako kafelka oznaczona wywołano (na czerwono z AWARYJNE, gdy radio wywołało jako awaryjne), każdy dyspozytor słyszy je, i znikają, gdy któraś ze stron zakończy połączenie. W Prywatnych połączeniach w ustawieniach P25 konsoli, podaj adres SIP i identyfikator RFSS, który jest domem dla radia (pusty używa pierwszego kanału domowego), oraz, jeśli prywatne połączenia powinny być szyfrowane, klucz do ich wysłania.
Tony alarmowe. Wyślij ton alarmowy… na kanale wysyła jeden z następujących: Alarm 1, stały ton 1000 Hz przez 3 sekundy; Alarm 2, falowanie między 1000 a 1500 Hz; Alarm 3, impulsy 1000 Hz; lub krótki Sygnał. Ton trzyma kanał, podczas gdy jest odtwarzany (kafelka wyświetla ton i Twoje rozszerzenie), każdy dyspozytor monitorujący kanał słyszy go, a na kanale P25 jest odtwarzany, gdy domowy RFSS przyznaje kanał.
Nagłe wypadki. Gdy radio nadaje sygnał nagłej potrzeby (jego przycisk nagłej potrzeby), jego kafelka staje się czerwona z NAGŁA POTRZEB i identyfikatorem jednostki, log serwera zanotuje to, a system CAD zostaje powiadomiony natychmiast (poniżej). Nagła potrzeba pozostaje podniesiona na każdej konsoli po zakończeniu transmisji radiowej, aż dyspozytor naciśnie Potwierdź: kafelka wskazuje wtedy, kto ją potwierdził i kiedy, a system CAD otrzymuje zdarzenie radio.emergency.ack. Potwierdzenie wymienia jednostkę wyświetlaną: jeśli inna jednostka nagłej potrzeby ją zastąpiła chwilę wcześniej, BitVoice odmawia i kafelka wyświetla nową, aby nigdy nie pomijać sygnału nagłej potrzeby przez pomyłkę. Potwierdzenie systemu CAD za pomocą interfejsu API może to samo zrobić: POST /api/radio/channels/{id}/ack z {"unit": "bee07.1d5.00044d"} (lub identyfikatorem radiowym, "1101") zwraca 409, gdy nagła potrzeba kanału jest teraz jednostką innej; bez treści potwierdza to, co kanał zawiera.
Simulselect. Aby powiedzieć coś na kilku kanałach jednocześnie, zaznacz wybierz na każdym kanale, a następnie przytrzymaj Mów na N kanałach w pasku nad kafelkami. To albo wszystko, albo nic: jeśli inny dyspozytor mówi na jednym z nich, żaden nie jest kluczowany, a zostaniesz poinformowany, który.
Pozycje radiowe. Radia zgłaszają swoje położenie przez stronę danych systemu radiowego, a nie przez stronę głosową, do której dołącza konsola: usługę lokalizacji P25, LRRP firmy Motorola lub własną usługę dostawcy, zbieraną przez bramę danych lub centrum radiowe. Należy skonfigurować bramę (lub niewielki skrypt obok niej), aby wysyłała każde zgłoszenie do BitVoice za pomocą tokenu API: POST /api/radio/locations z {"unit": 1205, "lat": 40.2633, "lon": -76.8823, "speed": 42, "heading": 90, "accuracy": 8, "at": "2026-10-15T14:05:00Z"}, lub listę do 500 (prędkość w km/h, kierunek w stopniach, dokładność w metrach; wszystkie trzy oraz czas są opcjonalne). Pozycje radiowe na konsoli wyświetlają ostatnie położenie każdego radia, wraz z jego nazwą, a system CAD otrzymuje każde z nich jako zdarzenie radio.location. BitVoice nie dekoduje samodzielnie LRRP ani usługi lokalizacji P25.
Nazwy radia. W Nazwach radia, nadaj nazwy radia według ich identyfikatora jednostki P25 (1205 to „Silnik 5”, na przykład): kafelka wyświetla nazwę obok jednostki, podczas gdy mówi, a log radia i zdarzenia CAD zawierają ją.
Log radia i nagrywanie. Włącz Nagrywaj każdą transmisję w Nagrywaniu i CAD: każda transmisja na każdym kanale, słyszana lub wysłana, jest zachowywana jako nagranie z linią w Logu radia: kiedy, kanał, kto (identyfikator jednostki radia lub rozszerzenie dyspozytora), jak długo i czy była to awaryjna sytuacja, ton alarmowy, szyfrowana czy prywatna rozmowa. Słyszana transmisja zaczyna się od pierwszej mowy i kończy się 1,5 sekundy po ostatnim słowie. Znajdź jednostkę, dyspozytora lub kanał za pomocą pola wyszukiwania, a następnie naciśnij Odtwórz, aby posłuchać. Nagrania są przechowywane tak długo, jak nagrania połączeń (Ustawienia, Nagrywanie).
Dane radiowe do CAD. Podaj adres CAD pod Wyślij zdarzenia radiowe do CAD (oraz wspólny sekret, jeśli CAD tego wymaga; jest wysyłany jako token nośnika i nie jest już wyświetlany). BitVoice wysyła każde zdarzenie (radio.unit, radio.emergency, radio.emergency.ack, radio.transmission i radio.location) jako JSON, {"type": ..., "agency": ..., "data": {...}}: radio.unit gdy radio zaczyna mówić na kanale (jego ID jednostki, WACN, system, kanał, tryb awaryjny, szyfrowanie), radio.emergency w przypadku awarii (próbowane trzykrotnie, jeśli CAD nie odpowiada) i radio.transmission dla każdego zakończonego przekazu, tak jak pojawia się w logu radiowym. CAD może również odczytać sam log za pomocą GET /api/radio/log (filtry: channel, q, since, until). CAD, który jest niedostępny, nie blokuje konsoli.
Nie jest jeszcze dostępne: P25 Faza 2 (TDMA) głos w swoim własnym półprzepustowym kodowaniu. System Fazy 2 działa z konsolą, gdy grupy rozmów ISSI przenoszą pełnopasmowy (Faza 1) głos lub gdy transkoduje je, co jest powszechne: zapytaj swojego administratora P25. Grupa rozmów, której głos przychodzi w blokach, które ta konsola nie dekoduje (półprzepustowy głos wysłany bez transkodowania, najprawdopodobniej) wyświetla Cisza tutaj na swojej kafelku, podczas gdy radio mówi, więc nikt nie bierze ciszy za cichy kanał. Dekodowanie go wymaga dwóch rzeczy, których BitVoice nie ma: półprzepustowego kodowania (AMBE+2, patentowane do 2028: licencja od właściciela lub sprzętowy układ kodowania z licencją) i formatu półprzepustowego bloku głosu ISSI (TIA-102.BACA-B, sprzedawanego przez TIA, niepublicznego).
Usługi rdzenia NG911 (ECRF, ESRP, LVF, BCF, LIS, logowanie)
/coreDla władz stanowych lub regionalnych 911, które prowadzą własne rdzenie NG911: BitVoice odpowiada na LoST jako ECRF i trasuje każde połączenie 911 jako ESRP do PSAP, który obsługuje nadawcę.
Obszary usług. Eksportuj swoje granice z GIS jako wielokąty GeoJSON (granice PSAP dla urn:service:sos; obszary policyjne, strażackie lub EMS dla urn:service:sos.police i innych) i przekaż je w Usługi podstawowe. Właściwości name, uri i number są odczytywane; podaj domyślny adres URI PSAP dla tych, które go nie mają. Edytuj obszar, aby dodać miasta lub hrabstwa, które obsługuje, dla osób, których lokalizacja jest tylko adresem cywilnym. Sprawdź miejsce pokazuje, który obszar odpowiada na pozycję lub miasto, jak zapytanie LoST.
ECRF. Włącz Odpowiedz na zapytania LoST i wyświetl adresy, które mogą pytać (Twoja ESInet): inne elementy wysyłają findService do /lost (RFC 5222) i otrzymują adres URI PSAP. Konkretna usługa (sos.police) jest odpowiadana z własnych obszarów najpierw, a potem z sos. Miejsce, które nie jest pokryte przez żaden z Twoich obszarów, może być skierowane do Przewodnika leśnego (RFC 5582: krajowy katalog ECRF): zapytanie rekurencyjne jest wysyłane tam w imieniu pytającego i odpowiedź jest zwracana (oba serwery są wymienione w ścieżce odpowiedzi), a inne zapytanie jest przekierowane do niego, a zapytanie, które już przeszło przez ten ECRF, jest odrzucane jako pętla.
ESRP. Wyświetl PSAP: każdy z nich ma adres URI (tak jak obszary go nazywają), trunk, który go osiąga, i wybierz domyślny PSAP. Następnie wysyłaj połączenia 911 ESInet do ESRP w Trasowaniu połączeń (rozdział 8). Każde połączenie jest kierowane do PSAP dla jego lokalizacji (z obszarów tego serwera lub zewnętrznego ECRF przez LoST), z jego lokalizacją i usługą, o którą poprosił, przenoszoną na nim; gdy ten PSAP nie przyjmuje go, do jego PSAP zastępczego; bez lokalizacji lub z miejsca, które nie jest pokryte przez żaden obszar, do domyślnego. Każda decyzja jest w logu i3 na połączeniach 911 (rozdział 77).
Reguły polityki. Po tym, jak ECRF wybrał PSAP, reguły pod Reguły polityki są sprawdzane w kolejności i pierwsza, której warunki wszystkie są spełnione, decyduje: wysyłaj połączenie do innego PSAP lub odrzuć je jako zajęte. Reguła może sprawdzić usługę (tylko pożary, na przykład), PSAP, który ECRF wybrał, harmonogram (podczas gdy centrum nocnej zmiany jest zamknięte), połączenia bez lokalizacji, połączenia, które BCF oznaczył jako podejrzane, i trunk, z którego połączenie nadeszło. Każda decyzja jest w logu i3 jako RouteLogEvent, nazywając regułę.
Kontrola graniczna (BCF). Z włączoną opcją Sprawdź połączenia z ESInet, każde połączenie z trunku ESInet jest najpierw sprawdzane: adresy pod Zawsze odrzuć są odrzucane, a także adres, który rozpoczyna więcej połączeń na minutę lub utrzymuje więcej połączeń jednocześnie, niż dozwolono (ataki telefoniczne typu denial-of-service wysyłają falę połączeń z kilku źródeł). Odrzucone połączenia otrzymują odpowiedź 503 z Retry-After. Włącz prześlij połączenie oznaczone jako podejrzane, aby wysłać takie połączenia dalej i pozwolić regułom polityki (do centrum, które je sprawdza, lub odrzuca); rzeczywisty nadawca w falie połączeń nie zostanie w ten sposób utracony. Kontrola graniczna: ostatnie wyświetla, co zostało odrzucone lub oznaczone. Sprawdź podpisy STIR/SHAKEN sprawdza podpisaną identyfikację nadawcy (nagłówek Identity) każdego połączenia, które ją zawiera, względem korzeni STI ustawionych w Call screening w Ustawieniach: połączenie, którego podpis nie powiedzie się, jest kierowane dalej jako podejrzane, aby reguła polityki mogła je skierować gdzie indziej, i jest wyświetlane w logu BCF; połączenie 911 nigdy nie jest odrzucane z tego powodu, a połączenia niepodpisane (większość z nich dzisiaj) są pozostawione bez zmian. Każde połączenie opuszcza BitVoice jako nowy, oddzielny wniosek, przenosząc tylko nagłówki i treści, które BitVoice rozumie i przekazuje dalej: lokalizację, dodatkowe dane i sesję. Inspekcja multimediów sprawdza każdy pakiet RTP połączenia ESInet przed jego użyciem lub przekazaniem dalej: pakiety z adresu innego niż ten, który podał SDP połączenia, z typem ładunku, który nie został nazwany w ofercie, z długościami nagłówków (CSRC, rozszerzenie, wypełnienie), które nie pasują do pakietu, większe niż Największy pakiet (1,500 bajtów, gdy puste), lub poza Pakiety na sekundę (150, gdy puste; G.711 przy 20 ms wysyła 50) są odrzucane i liczone. Pierwszy z każdego rodzaju, a następnie 10., 100. itd., trafia do Kontrola graniczna: ostatnie (jako *media odrzucone*) i notatek połączenia. Połączenie nigdy nie jest kończone z powodu multimediów: nadawca zachowuje dobre pakiety. Połączenia z trunków CAMA pochodzą z lokalnego programu karty i nie są inspekcjonowane.
Weryfikacja adresu (LVF). Prześlij swoje dane adresowe GIS 911 jako GeoJSON, w modelu danych GIS NENA (NENA-STA-006): linie środkowe dróg z FromAddr_L, ToAddr_L, Parity_L, IncMuni_L i resztą, oraz punkty adresowe miejsc i struktur z Add_Number, St_Name, Inc_Muni. Zapytanie LoST z validateLocation="true" otrzymuje ważne, nieważne i niesprawdzone części adresu w odpowiedzi (RFC 5222), aby nosiciele i serwery lokalizacji mogli poprawić adres przed użyciem go w połączeniu 911. Sprawdź adres robi to samo tutaj: największy dopasowanie to punkt adresowy, a następnie segment ulicy, którego zakres po prawej stronie drogi zawiera numer (szanując strony nieparzyste i parzyste); pisownie takie jak Street i St, North i N są traktowane podobnie.
Usługa logowania i3. Włącz Uruchom usługę logowania i3: inne elementy Twojego rdzenia (ESRP, BCF, PSAP) wysyłają swoje zdarzenia logowania (NENA-STA-010), każde podpisane jako JWS z certyfikatem elementu w nagłówku x5c, za pomocą POST do /i3log/LogEvents z dozwolonych adresów. Każde przychodzi jako JWS w płaskiej formie JSON (podpisane lub niepodpisane z algorytmem none, które usługa logowania może przyjąć: oznaczone jako nieśledzone do PCA), jest sprawdzane i przechowywane, a odpowiedź jest jego ID zdarzenia logowania. Odczytaj ponownie za pomocą GET /i3log/LogEvents/{logEventId}; wyświetl listę za pomocą GET /i3log/LogEvents (startTime, endTime, logEventType, limit, start); znajdź ID zdarzeń danego połączenia lub incydentu za pomocą /i3log/LogEventIds, /CallIds, /IncidentIds i /AgencyIds; oraz odczytaj tekstową konwersację połączenia za pomocą /i3log/Conversations?callId=. GET /i3log/Versions mówi, jaki wersję obsługuje ta usługa. Otrzymane zdarzenia logowania wyświetla zdarzenia z ostatniego dnia z informacją, kto podpisał każde. Każda odpowiedź jest sprawdzana względem opublikowanej definicji OpenAPI usługi przez NENA; usługa nie została jeszcze przetestowana z elementami innych dostawców.
Agencja poświadczania PSAP. Wklej certyfikaty główne PCA w Agencja poświadczania PSAP: podpisane zdarzenie logowania jest wtedy przyjmowane tylko wtedy, gdy certyfikat jego sygnatariusza łańcuchuje się do jednego z nich (i nie wygasł), i jest wyświetlane z PCA. Bez nich sam podpis jest sprawdzany, a zdarzenie jest wyświetlane jako nieśledzone do PCA.
Rekordy lokalizacyjne (LIS). Włącz Odpowiedzi na żądania lokalizacji (LIS) i przekaż arkusz kalkulacyjny (CSV) rekordów lokalizacyjnych: wiersz nagłówka i w każdym wierszu jeden z numeru (danych ALI, wyeksportowanych), sieci (zakresu adresów, takiego jak 10.20.3.0/24, lub jednego adresu: budynku, piętra, sieci VLAN, sieci Wi-Fi) lub adresu MAC (jednego urządzenia: telefonu biurkowego, portu przełącznika gniazda ściennego), a następnie adres jako hno, rd, sts, unit, floor (lub flr), a3 (miasto), a1 (stan), pc i kraj, wraz z lat, lon i radius, jeśli są znane (inne nazwy, takie jak phone, street, zip, subnet i ip, są również rozumiane). PSAP, bramy sieci dziedziczonej i telefony proszą o /held (HELD, RFC 5985) z dozwolonych adresów i otrzymują PIDF-LO. Żądanie nazywa swoje urządzenie według numeru telefonu, adresu IP lub adresu MAC (RFC 6155); żądanie, które nie podaje żadnego z nich, jest odpowiedzią dla adresu, z którego pochodzi, tak jak LIS w sieci biurowej lub kampusu. Adres jest lokalizowany przez najwęższą sieć, która go zawiera, więc /24 piętra wygrywa z /16 kampusu. Urządzenie bez rekordu otrzymuje locationUnknown HELD; tożsamość innego rodzaju (NAI, port) otrzymuje notLocatable. BitVoice PSAP wskazuje swoje Wyszukiwanie lokalizacji (ALI) tutaj. Wyszukaj numer, adres lub adres MAC sprawdza rekord i mówi, z której sieci pochodzi. Numer, sieć lub adres MAC wymieniony ponownie zastępuje swój stary rekord; Zastąp każdy rekord zaczyna od nowa. Tylko dozwolone adresy są odpowiedzią: LIS, który odpowiada na każdy adres, o który jest pytany, nie może być otwarty dla wszystkich.
Usługi internetowe i3. W Usługach internetowych NENA i3, włącz to, co to rdzeń oferuje innym elementom Twojego ESInet, pod /i3/<service>/v1, tylko dla adresów pod Może pytać. Każdy odpowiada zgodnie z opublikowanymi definicjami OpenAPI NENA (NENA-STA-010.3, repozytoria NENA911), a każdy ma zakładkę pod Usługi internetowe i3:
- Magazyn polityk (
/i3/PolicyStore/v1/Policies,/PolicyEnums): agencje przechowują, aktualizują i usuwają swoje polityki routingu (Reguły polityk routingu), każda podpisana przez agencję, która ją włada (certyfikat podpisującego musi nazwać właściciela i pochodzić z PCA, gdy jego korzenie są ustawione). Polityka jest przechowywana bez zmian, tak jak została odebrana. ESRP uruchamia je: PolitykaRoutePolicy dla Kolejki przychodzącej tego ESRP jako pierwsza, w przeciwnym razie NormalNextHopRoutePolicy wybranego przez ECRF PSAP. Spośród reguł, których warunki są spełnione, najwyższy priorytet działa; gdy trasa nie powiedzie się (zajęta, brak odpowiedzi w ciągu rnaTimer, 20 sekund, gdy nie podaje), następna trasa jest wykorzystywana; BusyAction odpowiada 600 Busy Everywhere. Warunki brane pod uwagę: okresy czasu, nagłówki SIP, dodatkowe dane, typy treści, lokalizacja (koło lub cywilna), podejrzenie połączenia, stan kolejki (własne PSAP BitVoice), LoST service URN i Normal-NextHop, źródło połączenia, URI żądania, kolejka przychodząca oraz media i języki oferty SDP; stan usługi i postawa bezpieczeństwa są traktowane jako nieznane (Niedostępne i Zielone, zgodnie z normą). Warunki części treści, CAP i weryfikacji numeru wywołującego nie są wykonywane: są traktowane jako fałszywe. Bez przechowywanej polityki, Reguły polityk powyżej decydują. Zakładka wyświetla przechowywane polityki i pozwala na wklejenie jednej lub podpisanie jej certyfikatem serwera. - Raporty niezgodności (
/i3/DiscrepancyReports/v1): inne agencje zgłaszają problemy z usługami tego serwera; każdy raport wyświetla się na zakładce, gdzie możesz odpowiedzieć na niego z rozwiązaniem i wysłać do raportującej agencji. Zgłoś raport wysyła raport do usługi DR innej agencji; odpowiedź i późniejsze rozwiązanie wyświetlają się pod Raporty złożone przez ten serwer. - Niewłaściwi aktorzy (
/i3/BadActor/v1/BadActors, z BCF): każde połączenie, które BCF przekazuje, zawiera jego źródłowy ID (Call-Info: <sip:ID>;purpose=emergency-source); PSAP, który stwierdzi, że źródło atakuje, zgłasza ID, a BCF odmawia połączeń z tego źródła lub zwiększa ich współczynnik podejrzenia dla polityk na Okres trwania raportu godzin. Podnieś kończy raport przedwcześnie. - Geokodowanie i Konwersja MSAG (
/i3/Gcs/v1,/i3/Mcs/v1): adres cywilny na pozycję i z powrotem z punktów adresowych LVF (najbliższy w promieniu 150 m), oraz adres cywilny na adres MSAG (120 N MARKET STREET, HARRISBURG CITY, PA) i z powrotem, z pólMSAGComm_L/MSAGComm_Rśrodkowych linii. Odpowiedzi są obiektami JSON lub XML, gdy pytający prosi o to. - Dane dodatkowe (
/i3/Adr/v1/AdditionalData?callerUri=): bloki danych przechowywane przez wywołującego (XML RFC 7852), obsługiwane przez wartość lub przez referencję dla pytającego, który chce JSON. Jeden blok na wywołującego jest obsługiwany przez wartość: pierwszy przechowywany. - Lokalizator (
/i3/ServiceAgencyLocator/v1): własny rekord agencji (jej ID ze strony połączeń 911, z adresami logowania i niezgodności) oraz agencje, które dodajesz. - Dezaktywacja (
/i3/DequeueRegistration/v1/Registrations): pozycje lub PSAP rejestrują się, aby odebrać połączenia z kolejki (kolejki tego ESRP lub URI PSAP); ESRP wysyła połączenia dla tej kolejki do nich, najbardziej preferowanych jako pierwsze (preferencja 5 przed 1), przez trunk PSAP. - Połączenia testowe: PSAP prosi ten rdzeń o wysłanie połączeń testowych (
/i3/TestCall/v1/SendTestCalls/{agency ID}: co jakiś czas, co najmniej pięć, między dwiema datami, z lokalizacją); BitVoice umieszcza każde połączenie wurn:service:test.sosprzez trunk PSAP i przechowuje to, co zostało odebrane. Umieść teraz próbuje jednego. - Stany PSAP (SIP, nie REST): Zapisz się do stanu kolejki i stanu usługi każdego PSAP powoduje, że ESRP SUBSCRIBE (RFC 6665) do każdego PSAP z listy, przez jego trunk, dla
emergency-QueueStateiemergency-ServiceState(NENA-STA-010.3 4.2.1.3 i 2.4.2), przez godzinę na raz, odnawianą przed upływem. To, co PSAP NOTIFY wyświetla pod Stanami PSAP i jest tym, co warunki stanu kolejki, stanu usługi i postawy bezpieczeństwa reguł polityk odczytują. PSAP, którego kolejka mówi Nieaktywny, Wyłączony, Pełny lub Wyczerpany (lub trzyma najwięcej połączeń), lub którego usługa mówi Niewyposażony, Zaplanowana konserwacja w dół, Przeciążony, Idzie w dół lub W dół, jest pomijany dla jego przepełnienia, a notatki połączenia mówią o tym; gdy każdy PSAP w łańcuchu mówi, że nie może przyjąć połączeń, połączenie jest wysyłane tak, jak jest wymienione, nigdy nie pozostawiając go z nikim, z kim można by się skontaktować. PSAP, który nie odpowiada na SUBSCRIBE, jest Niedostępny (jak mówi norma, że subskrybent musi założyć) i jest próbowany ponownie co minutę; ten, który odmawia (489, 603 ...) jest próbowany ponownie w ciągu dziesięciu minut. - Stany tego serwera: Powiedz innym elementom stan elementu, stanu usługi i stanu kolejki tego serwera odpowiada SUBSCRIBEs dla
emergency-ElementState,emergency-ServiceStateiemergency-QueueStatez adresów pod Może pytać (inni otrzymują 603 Odmowa; kolejka, która nie jest kolejką przychodzącą tego serwera, 488). Długość kolejki jest liczba nieodebranych połączeń 911, a mówi Pełna w Najwięcej oczekujących połączeń w kolejce (20, gdy pusta); usługa mówi Przeciążony w limicie połączeń tego serwera, w przeciwnym razie Normalny. NOTIFYs są wysyłane, gdy stan się zmienia, co najwyżej jeden na sekundę, i co minutę (współczynniki domyślne normy); ich treści są sprawdzane przeciwko schematom notify-body NENA.
Testowanie połączeń w PSAP. System BitVoice PSAP odpowiada na testowe połączenie z ESInet (urn:service:test.sos, NENA-STA-010.3 sekcja 9, RFC 6881) samodzielnie: odpowiedź mówi nazwę PSAP, usługę i lokalizację, z której połączenie zostało zainicjowane, pierwsze trzy pakiety dźwięku są odsyłane, a następnie połączenie zostaje rozłączone. Kolejne testowe połączenie z tego samego miejsca w ciągu dwóch minut zostaje odrzucone (486), podobnie jak piąte połączenie wykonane natychmiast. ESRP przekazuje testowe połączenie dalej, tak jakby było to prawdziwe połączenie, nadal oznaczone jako test. Wyłączenie Odpowiadaj na testowe połączenia na stronie połączeń 911 powoduje odrzucenie ich (404).
Algoritmy JWS: NENA-STA-010.3 wymaga EdDSA z Ed448. Standardowa biblioteka Go, którą BitVoice używa do każdego kryptograficznego kroku, ma Ed25519, ale nie Ed448, więc podpisy EdDSA są sprawdzane z kluczami Ed25519, a podpisy ECDSA i RSA są również akceptowane; certyfikat Ed448 jest odrzucany.
Czy miałeś na myśli. Adres, który nie jest ważny, otrzymuje do pięciu sugestii z tych samych danych, najlepsze jako pierwsze, każda z powodem: ulica jeden lub dwa litery odległa (zamiana dwóch liter jest traktowana jako jeden błąd), ta sama ulica w następnej miejscowości lub najbliższy numer ulicy, po tej samej stronie, gdy jest to możliwe (numery parzyste pozostają parzyste). Użyj wypełnia sugestię. Pozycja z adresem. Podaj szerokość geograficzną i długość geograficzną (oraz promień pozycji, gdy jest znany) wraz z adresem: pozycja jest sprawdzana wobec własnego punktu adresowego, z uwzględnieniem jego promienia i 100 m więcej (rozmiar działki i błąd GIS). Odpowiedź podaje odległość i czy obie zgodne, a gdy nie są, punkt adresowy najbliższy pozycji. Adres znany tylko z linii środkowych dróg nie ma punktu do sprawdzenia, a odpowiedź mówi o tym. Walidacja LoST nie ma miejsca na żadne z nich, więc operatorzy pytający przez LoST otrzymują samą walidację.