Konfigurer USB headset i Horizon View

I dette blog indlæg beskæftiger jeg med med Unified Communication, og hvorledes USB høretelefoner , enten direkte USB tilkoblet , eller med en USB bluetooth dongle. Når du har læst den vil du kunne tage et “tilfældigt” headset og får det til at virke. Så er du HERO i “Konfigurer USB headset i Horizon View”. Bemærk artiklen er skrevet med baggrund i eLux®, men kan bruges på mange andre tynd klient operativsystemer baseret på linux.

HID input og knapper

De “fleste” eller mange har sikket prøvet at tilslutte et USB headset til en linux maskine , for derefter at konstatere at musen begynder at opføre sig mærkeligt. Enten låser musen helt, eller den er svær at styre. Problemet er i Xorg. I Xorg er der en driver “evdev” som er ansvarlig for HID enheder. HID enheder er nomalt noges som mus, keyboard, touchplads, touchskærms input mv. Men knapperne på et Headset opfattes også (ofte) som HID input. Vi skal altså finde en metode til at få X11 evdev til IKKE at bruge disse devices som HID.

  1. Generelt kan du læse om EVDEV her
  2. Unicon har også en fin manual her

I eLux® har men en rimelig nem tilgang til at løse dette problem. I Scout skal man i “Advanced file entries” oprette en linie med de USB vendor ID man ønsker ignoreret af EVDEV. Nedenstående er et eksempel på udelukkelse af Jabra , Senheizer mv. I VendorID, DeviceID kan der bruges vilcard som “*” og “?” . de hexadicimale værdier skal angives med “små” bogstaver.  DU kan ikke oprette flere linier, så alle devices skal være på samme linie. Eksempel: gå til “advanced file entries” i din scout console, Opret en linie med følgende værdier.

  • FILE  /setup/terminal.ini
  • SECTION   Xorg
  • ENTRY  IgnoreUsbInput
  • VALUE 047f:****,0b0e:****,27bb:****,0b33:****      (hver entry adskildes med et “,”  og find selv på flere enheder )

Du har nu sørget for at der ikke bliver problemer med X11, men du er ikke helt færdig

 

Horizon View klienten skal også vide en hel del om hvad der skal bruges af USB, og hvor det skal brugesHorizon view config files for eLux

De følgende filer kræver nok lidt forklaring. En USB enhed, herunder headset, kan bestå af mange del komponenter:  Mikrofonen er en delkomponent, højttaler et en del komponent og hver enkelt knap er en del komponent. Når du bruger Horizon View er du interesseret i at din “telefon applikation” kan forstå de kapper der bliver trykket på, som f.eks. “tag opkald”,”afslut opkald”, “mute”, “skru op for lyden” mv.  Vi er interesseret i at redirigere knapper, men ikke mikrofon og højttalere da disse fortolkes langt bedre lokalt af den tynde klient, og aflaster “horizon view serveren” betydeligt. Lyd og video skal fortolkes lokalt på den tynde klient og 1) sendes via RTAV eller 2) via “Skype for Business” optimerings  pakken som findes til Horizon view. Det med at redirigere noget af et USB device og beholde noget fortolket lokalt kaldes med et fint ord “USB Device Splitting”. (google det). her er en konfigurations fil som netop kun redirigerer Headset knapper men ikke audio, som håndteres andetsteds(RTAV eller skype for business plugin).

/setup/elux/.vmware/default-config

viewusb.IncludeVidPid = “vid-27bb_pid-3bcd,vid-047f_pid-02f7_mi-03_col-01,vid-047f_pid-02f7_mi-03_col-02,vid-047f_pid-02f7_mi-03_col-03,vid-047f_pid-02f7_mi-03_col-04,vid-0B0e_pid-0305_mi-03_col-01,vid-0B0e_pid-0305_mi-03_col-02,vid-0B0e_pid-0305_mi-03_col-03,vid-047f_pid-ab11_mi-03_col-01,vid-047f_pid-ab11_mi-03_col-02,vid-047f_pid-ab11_mi-03_col-03,vid-047f_pid-ab11_mi-03_col-04,vid-047f_pid-013a_mi-03_col-01,vid-047f_pid-013a_mi-03_col-02,vid-047f_pid-013a_mi-03_col-03,vid-047f_pid-013c_mi-00,vid-047f_pid-013c_mi-03,vid-047f_pid-013c_mi-03_col-01,vid-047f_pid-013c_mi-03_col-02,vid-047f_pid-013c_mi-03_col-03,vid-0b0e_pid-1041_mi-03_col-01,vid-0b0e_pid-1041_mi-03_col-02,vid-0b0e_pid-1041_mi-03_col-03,vid-047f_pid-ab11_mi-03_col-01,vid-047f_pid-ab11_mi-03_col-02,vid-047f_pid-ab11_mi-03_col-03,vid-047f_pid-ab11_mi-03_col-04,vid-047f_pid-ab01_mi-03_col-01,vid-047f_pid-ab01_mi-03_col-02,vid-047f_pid-ab01_mi-03_col-03,vid-047f_pid-ab01_mi-03_col-04,vid-047f_pid-0127_col-01,vid-047f_pid-0127_col-02,vid-047f_pid-0127_col-03”
viewusb.ExcludeVidPid = “vid-0b33_pid-1004;vid-0d24_pid-000*;vid-047f_pid-0156”
viewusb.IncludeFamily = “storage”
rtav.srcWCamFrameWidth = “1280”
rtav.srcWCamFrameHeight = “720”
rtav.srcWCamFrameRate = “20”

Da jeg alligevel er i gang får du også lige en preference fil. Det har egenlig ikke meget med headsæt at gøre, man så ved du hvor den skal ligge i eLux®.

/home/elux/.vmware/view-userpreferences

view.enableDisplayScaling = “FALSE”
view.enableRelativeMouse = “0”
view.autoHideToolbar = “TRUE”
view.sendCtrlAltDelToVM = “TRUE”
view.sendCtrlAltInsToVM = “TRUE”

NOTE:

En enkelt kunde har også brugt følgende, som vi mener er forkert, da man også i denne konfiguration redirigerer mikrofon og højttaler. (hermed til skræk og advarsel), man redirigerer faktisk alle headset og delkomponenter. Men kunden siger det virker fint?.

viewusb.IncludeVidPid = “vid-1058_pid-*;vid-0bc2_pid-*;vid-047f_pid-*_mi-0*_col-0*;vid-27bb_pid-*;vid-27bb_pid-*_mi-0*_col-0*;vid-0b0e_pid-*;vid-0b0e_pid-*_mi-0*_col-0*;vid-0951_pid-*;vid-0951_pid-*_mi-0*_col-0*;vid-0d24_pid-000*_mi-*_col-*”

læs videre hvis du vile være mester i “Konfigurer USB headset i Horizon View”

De små undtagelser og specielle tilfælde

Du har måske bemærket viewusb.ExcludeVidPid = “vid-0b33_pid-1004;”. Det er en af de enheder som ikke opfører sig helt som man forventer. Den bliver set af EVDEV, men Horizon View vil også gerne redirigere den over USB. Det er sådan et Rollermouse keyboard, som delvist bliver registreret som en HID device og delvist (musen) som noget andet. Uden denne linie i default-config ville du opleve at musen virker fint,  altså, lige indtil du kører musen uden for Horizon View vinduet. Så dør den bare og du kan ikke flytte den. Det er fordi Musen af Rollermouse keyboardet bliver USB redirigeret af Horizon view.(og det er du bestemt ikke interesseret i).  Så med ovenstående undgår du det. Vi har den altså inkluderest i EVDEV med ekskluderet i Horizon view(såden fortolkes lokalt på klienten) Som en ekstra bonus, så uden at gøre noget vildt, så virker BusyLight fint med ovenstående Horizon View konfiguration. (undersøg selv hvorfor, test dig selv om du har forstået hvad jeg skriver, og indrømmet jeg er nok ikke den bedste formidler)

En anden problemstilling, er et headset som registrerer sig forskelligt med 2 forskellige ID afhængigt om det er koblet op med en USB dongle , eller monteret i en USB charger. Her er du kun interesseret i et have ét headset. (du har jo kun ét, og er ikke specielt glad for at have  samme hedset registreret 2 gange på hver sin fysiske forbindelse).Horizon View vil rigtig bare gerne vide hvilken den skal bruge. Det kommer der en fin løsning på nu :

eLux® USB Deny regler

Som med Rollermouse,( som vi gerne vil have i EVDEV, men ikke i Horizon View), kan der være tilfælde (som med før nævnte headset som registrerer sig med 2 forskellige DeviceID) som vi slet ikke vil have at eLux® giver adgang til (til alle andre applikationer, feks Chrome RTP eller andre). Til det har vi i Scout/eLux® USB DENY rules. (ganske praktisk)

Når headsettet er koblet op via en Bluetooth dongle er alle glade, men i det øjeblik det kommer i laderen dukker det andet (samme) headset up. Det er ok at USB leverer strøm til laderen, men vi vil bare ikke snakke med headset over denne forbindelse, så hvordan gør du?

Under “Device Configuration” -> “hardware” kan du define regler, som ALLOW eller DENY, på specifikke DeviceID eller Vendor ID , og endda CLASS.  Så for det specifikke hedaset gjorde vi følgende i USB rules

DENY:  VID=047F PID=0156         #(Deny Voyager 4220)

og det er alt hvad der skal til for at eLux® ikke vil tale med et USB device. og det kan være Smartcard reader, andre tasteturer, USB drives mm.

En lille bemærkning om “Skype For Business” og Horizon View RTAV og Teams

I øjeblikket der der “optimering” for skype for business. Det betyder at din tynde klient (eller dine tynde klienter) laver opkaldet direkte fra den tynde klient, dette findes både til Horizon View og Citrix. Med Teams er det nu (pr 27 Juni 2020) kun citrix som har optimering til Teams, hvor view bruger RTAV…  begge dele virker fint. Men dine servere er lidt mere belastet på Horizon view. Der går nok ikke lang tid før det er fikset. Unicon har iøvrigt samarbejde med en række headset leverandører, som har lavet pakker til eLux® til konfigurering og firmware update af deres headset.

Jeg håber at dette blog indlæg gav dig viden og tilstrækkelig information, ellers skal du bare ringe til os…  det er derfor vi er her… også selvom du ikke har en NEXterminal maskine.

se de produkter som understøtter ovenstående