Výběr zařízení pomocí API

Následující funkcionality jsou dostupné jen pokud se operátorovi spustí SoftPhone.

Získání možností výběru a vybraných zařízení pomocí callbacku

Získání možností výběru

Jelikož je možné získat informaci o dostupných zařízení až po povolení uživatelem, není možné zařízení poskytnout ihned. Dále se možnosti mohou měnit na základě například připojení nového zařízení (externích sluchátek).

Proto jsou zařízení dostupná pomocí callbacku v nastavení aplikace. Tento callback bude zavolán ined po načtení aplikace v případě, že zobrazení zařízení je již povoleno nebo hned po povolení uživatelem. Dále bude zavolán při každé změně dostupných zařízení.

Při prvním zavolání tohoto callbacku budou z principu jak input tak output devices prázdné, protože operátorská aplikace je získává z prohlížeče, který je také poskytuje na základě callbacku. Inicializační hodnoty tedy přijdou až ve druhém zavolání.

window.ucsOperator = {
  onDeviceOptionsChange: (
    inputDeviceOptions: { deviceId: string, label: string }[],
    outputDeviceOptions: { deviceId: string, label: string }[]
  ) => { console.log('SOFTPHONE IO', inputDeviceOptions, outputDeviceOptions); },
};

Získání informace o vybraném zařízení

Informaci o vybraném zařízení aplikace poskytne pomocí callback onSelectedDeviceChange, ve kterém jako argumentu přijdou všechny 3 zvolené zařízení. Metoda je vyvolána při inicializaci i pokaždé kdy se nějaké zařízení změní. Navíc je callback zavolán i pokud se změní dostupná zařízení, jelikož aplikace použije výchozí zařízení pokud nastavené není dostupné. To může nastat například při odpojení sluchátek.

window.ucsOperator = {
  onSelectedDeviceChange: (
    inputDevice: { deviceId: string, label: string },
    outputDevice: { deviceId: string, label: string },
    ringDevice: { deviceId: string, label: string },
  ) => { console.info('SOFTPHONE DEVICE CHANGED', inputDevice, outputDevice, ringDevice); },
};

Manuální získání dostupných a vybraných zařízení pomocí API metody

Pro získání informací o zařízeních je možné použít funkci getSoftPhoneDevices. Tato cesta je vhodná například pokud aplikace nemůže poslouchat na změny neustále nebo není možné si aktuální stav ukládat. V tom případě je možné zavoláním funkce získat aktuální stav dostupných a vybraných zařízení. Tato funkce vrací následující objekt:

{
      inputDeviceOptions: { deviceId: string, label: string }[];
      outputDeviceOptions: { deviceId: string, label: string }[];
      selectedInputDeviceId: string;
      selectedOutputDeviceId: string;
      selectedRingDeviceId: string;
}

Ukázka datové struktury, kterou vrátí funkce:

window.ucsOperator.getSoftPhoneDevices()  {
   "inputDeviceOptions": [
     {"deviceId": "default", "label": "Default - MacBook Pro Microphone (Built-in)"},
     {"deviceId": "ce5044f5db61", "label": "MacBook Pro Microphone (Built-in)"},
   ],
   "outputDeviceOptions": [
     {"deviceId": "default", "label": "Default - MacBook Pro Speakers (Built-in)"},
     {"deviceId": "97f3681d4ced", "label": "MacBook Pro Speakers (Built-in)"},
   ],
   "selectedInputdeviceId": "ce5044f5db61",
   "selectedOutputdeviceId": "default",
   "selectedRingdeviceId": "default",
}

Výběr zařízení

Pro výběr zařízení pomocí API existují 3 metody:

  • selectInputDevice: (deviceId: string) => void
  • selectOutputDevice: (deviceId: string) => void
  • selectRingDevice: (deviceId: string) => void

Například pro změnu zařízení pro vstup (mikrofon) na systémový výchozí mikrofon, zavolá se metoda selectInputDevice s parametrem default.

window.ucsOperator.selectInputDevice('default');

Test vybraného zařízení

Vybrané zařízení je možné otestovat přehráním krátkého testovacího zvuku.

Metody pro vyvolání testu:

  • testOutputDevice: () => void
  • testRingDevice: () => void