Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languageen

Table of Contents




Expand
titleInfrastructure

Infrastructure

Connectivity and Bandwidth Requirements

  • One-way latency (mouth to ear) no more than 150 ms
  • 100 kbits UP/DOWN per concurrent voice call, plus web traffic bandwidth for the Daktela web interface (average is 100kbits DOWN for each active working agent)
  • Loss no more than 1 percent IP exchanges, VoIP networks
  • Average one-way jitter targeted at less than 30 ms
  • Optional: Voice traffic should be marked to DSCP EF per the QoS Baseline and RFC 3246
  • When using a firewall, the customer must configure and change it for the VoIP and data stream to allow communication between the on premise instance, its phones and the Daktela platform
  • Disabled SIP-ALG on LAN devices and firewall, as default. May be enabled in some specific cases.
  • Due to their complexity, Daktela doesn’t provide support for customer LAN infrastructure and firewalls!
  • Professional LAN network infrastructure based on min. full duplex 100 Mbit/s switches and of type CAT5e or better.
  • The network must not run at full capacity even during peak hours. Adequate capacity must be available for the anticipated voice traffic. It is ideal to separate and prioritise the telephony data, e.g. via VLAN.
  • Separate switches for IP phones and PCs are recommended for high volume data exchange over the local network.
  • IP phones must be assigned a valid IP configuration including internet gateway designated for voice traffic by means of a DHCP server.

For on-premise Daktela Installations We Require to Open Ports for Backup, Monitoring and Remote Management

For Daktela Implementations in the Daktela Cloud

Allowed Ports for WebRTC Phones

  • Open outgoing port ( to pbx ): 8089/TCP
  • Open incoming/outgoing ports ( from/to pbx ): 10000-20000/UDP
  • Open outgoing port to stun.l.google.com: 19302/UDP

Allowed Ports for SIP Phones

  • Open outgoing port ( to pbx ): 5061/TCP
  • Open incoming/outgoing port ( from/to pbx ): 5060/UDP, 10000-20000/UDP

Outgoing

Full access to the IP address of the cloud pbx is preferred (can optionally be further limited to these outgoing ports: TCP/80, TCP/443, ICMP, TCP/20, TCP/21, TCP/UDP/123, TCP/44000-44100)




Expand
titleBrowsers

Browsers

Min. browser requirements

Daktela supports the latest versions of Chrome, Firefox, Opera , Safari, Edge

Min. requirements for Daktela Wallboards

Daktela supports the latest versions of Chrome, Firefox, Opera , Safari, Edge. Wallboards can also run on Smart TVs and LCDs with the latest versions of supported browsers.




Expand
titleHardware and Phones

Hardware and Phones

Software IP Phones

Note
titleSupport

 While Daktela V6 should work with all of the SW phones above, Daktela provides support only for the Daktela Software Phone.

Hardware IP Phones

  • Suggested HW phones: Yealink IP phones, Cisco SPA, Siemens Gigaset
  • Phone transport set as UDP, allowed codecs G.711 A-law

Min. computer requirements

  • PC with CPU min. 2.0 GHz (4+ cores ), min. 8 GB RAM (16 GB RAM preferred), Audio In/Out
  • MacBook with min. 8 GB RAM (16 GB RAM preferred)




Expand
titleEmails and Tickets

Emails and Tickets

Requirements to Send and Receive Email Using the Daktela Helpdesk

  • Daktela must be the only mail client using the mailbox.
  • The customer must be aware of the allowed quantity of sent emails to prevent blocking etc.
  • The customer must provide:
    • access to the incoming and outgoing mail server.
    • any additional required parameters.




HTML
<!-- ======================== -->
<!-- CSS for the button block -->
<style type="text/css">
.div_expand-collapse_all {
text-align:center;
font-size:.8em;
color:#EDEDED;
border-radius:.3em;
border-width:thin;
border-style:solid;
border-color:#cce9cd;
background-color:#077CC1;
position:fixed;
bottom:0;
right:0;
padding:.5em;
z-index:200;
}
.div_expand-collapse_all:before {
content:"Expand or collapse all sections"
}
.buttons_expand-collapse_all {
font-size:.8em;
margin-top:.2em;
}
.expand-control-text {
    font-size:130%;
	color:#077CC1
}
</style>


<!-- ======================================= -->
<!-- "Expand All" and "Collapse All" buttons -->
<div class="div_expand-collapse_all"><br />
<button class="buttons_expand-collapse_all" name="expandAll" id="expandAll" type="button">Expand All</button>
<button class="buttons_expand-collapse_all" name="collapseAll" id="collapseAll" type="button">Collapse All</button>
</div>


<!-- =================== -->
<!-- "Expand All" script -->
<script type="text/javascript">
AJS.toInit(function() {
AJS.$('#expandAll').click(function() {
AJS.$('.expand-container').each(function() {
if (AJS.$('.expand-content', this).css('display', 'none').css('opacity', '0')) {
AJS.$('.expand-control .expand-control-icon', this).addClass('expanded');
AJS.$('.expand-content', this).removeClass('expand-hidden');
AJS.$('.expand-content', this).css('display', 'block');
AJS.$('.expand-content', this).css('opacity', '1');
}
});
});
});
</script>


<!-- ===================== -->
<!-- "Collapse All" script -->
<script type="text/javascript">
AJS.toInit(function() {
AJS.$('#collapseAll').click(function() {
AJS.$('.expand-container').each(function() {
if (AJS.$('.expand-content', this).css('display', 'block').css('opacity', '1')) {
AJS.$('.expand-control .expand-control-icon', this).removeClass('expanded');
AJS.$('.expand-content', this).addClass('expand-hidden');
AJS.$('.expand-content', this).css('display', 'none');
AJS.$('.expand-content', this).css('opacity', '0');
}
});
});
});
</script>

<script>
var expandAnchor = function() {
  var hash = decodeURIComponent(window.location.hash);
  if (hash) {
    var hashPageTitle = AJS.params.pageTitle.split(" ").join("");
    if (hash.indexOf(hashPageTitle) === -1) {
      if (jQuery.isNumeric(hashPageTitle.substring(0,1))) {
        hash = "#id-" + hashPageTitle + "-" + hash.slice(1);
      } else {
        hash = "#" + hashPageTitle + "-" + hash.slice(1);
      }
    }
    var escapedId = hash.replace(/[!"$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\$&");
    jQuery(escapedId).parents('.expand-container').children('.expand-hidden').prev().click();
    window.location.href=hash;
  }
}
AJS.toInit(function() {
  // handle initial page load
  expandAnchor();

  // use polling because hashchange event doesn't fire for some reason
  function hashHandler(){
    this.oldHash = window.location.hash;
    this.Check;


    var that = this;
    var detect = function(){
        if(that.oldHash!=window.location.hash){
            console.log("HASH CHANGED - new has" + window.location.hash);
			expandAnchor();
            that.oldHash = window.location.hash;
        }
    };
    this.Check = setInterval(function(){ detect() }, 100);
}


var hashDetection = new hashHandler();
});
</script>


Sv translation
languagecs

Table of Contents




Expand
titleInfrastruktura

Infrastruktura

Požadavky na konektivitu a šířku pásma

  • Jednosměrná latence (od úst k uchu) maximálně 150 ms
  • 100kbits UP/DOWN na každý souběžný hlasový hovor, plus přenosový výkon pro webové rozhraní Daktela (průměrně 100 kbits DOWN pro každého aktivního agenta)
  • Ztrátovost nejvýše 1 % IP výměn, sítě VoIP 
  • Cílový průměrný jednosměrný jitter méně než 30 ms
  • Volitelné: hlasový provoz označený v DSCP EF podle QoS Baseline a RFC 3246
  • Při použití firewallu ho musí zákazník nakonfigurovat pro VoIP a přenos dat, aby byla zajištěna komunikace mezi on-premise instancí, jejími telefony a platformou Daktela
  • Ve výchozím nastavení vypnutý SIP-ALG na LAN zařízenách a firewallu. V určitých případech může být povolen.
  • Daktela neposkytuje technickou podporu pro LAN infrastrukturu a firewally na straně zákazníka
  • Profesionální LAN infrastruktura založená na min. full duplex 100 Mbit/s switchích typu CAT5e nebo lepších
  • Síť nesmí běžet na plné kapacitě ani při nejvytíženějších časech. Musí být nastavena dostatečná kapacita dle předpokládaného hlasového provozu. Ideální je oddělit a prioritizovat hlasová data, např. pomocí VLAN
  • Při vysokém objemu přenášených dat po místní síti doporučujeme oddělené switche pro IP telefony a počítače
  • IP telefony musí mít validní IP konfiguraci včetně internetové brány určené pro hlasový provoz pomocí DHCP serveru.

Pro Daktela on-premise instalace vyžadujeme otevřené porty pro backup, monitoring a vzdálenou správu

  • Příchozí porty TCP, většinou 22 (SSH) z: backup.daktela.com - 82.113.42.139; gw.daktela.com - 95.80.200.192; zabbix.daktela.com - 82.113.42.131
  • Odchozí: preferujeme, pokud má on-premise instalace plnohodnotný přístup k internetu (upgrady/monitoring)

Pro Daktela instalce v Daktela Cloudu

Povolené porty pro WebRTC telefony

  • Otevřený odchozí port (k ústředně): 8089/TCP
  • Otevřené příchozí/odchozí porty (od/k ústředně): 10000-20000/UDP
  • Otevřený odchozí port na stun.l.google.com: 19302/TCP

Povolené porty pro SIP telefony

  • Otevřený odchozí port (k ústředně): 5061/TCP
  • Otevřené příchozí/odchozí porty (od/k ústředně): 5060/UDP, 10000-20000/UDP

Odchozí

Preferujeme plný přístup k IP adrese cloudové ústředny (volitelně lze omezit na tyto odchozí porty: TCP/80, TCP/443, ICMP, TCP/20, TCP/21, TCP/UDP/123, TCP/44000-44100).




Expand
titleProhlížeče

Prohlížeče

Min. požadavky na prohlížeče

Daktela podporuje aktuální verze prohlížečů Chrome, Firefox, Opera , Safari, Edge.

Min. požadavky pro Daktela Wallboardy

Daktela podporuje aktuální verze prohlížečů Chrome, Firefox, Opera , Safari, Edge. Wallboardy také mohou běžet na některých smart televizích a LCD displayích s aktuální verzí podporovaného prohlížeče.




Expand
titleHardware a telefony

Hardware a telefony

Softwarové IP telefony

Note
titlePodpora

Daktela V6 funguje se všemi SW telefony uvedenými výše, Daktela však poskytuje podporu pouze pro softwarový telefon Daktela.

Hardwarové IP telefony

  • Doporučené HW telefony: Yealink IP phones, Cisco SPA, Siemens Gigaset 
  • Transport telefonů nastavený na UDP, povolené kodeky G.711 A-law

Min. požadavky na počítače

  • PC s CPU min. 2.0 GHz (4+ jádra), min. 8 GB RAM (doporučujeme 16 GB RAM), Audio vstup/výstup
  • MacBook s min. 8 GB RAM (doporučujeme 16 GB RAM)




Expand
titleEmaily a tickety

Emails and Tickets

Požadavky pro odesílání a přijímání emailů pomocí Daktela Helpdesk

  • Daktela musí být jediným emailovým klientem, který schránku používá.
  • Zákazník si musí být vědom povoleného množství odeslaných emailů, aby nedošlo k blokování atd.
  • Zákazník musí poskytnout:
    • přístup k příchozímu a odchozímu mailovému serveru.
    • jakékoli další povinné parametry.




HTML
<!-- ======================== -->
<!-- CSS for the button block -->
<style type="text/css">
.div_expand-collapse_all {
text-align:center;
font-size:.8em;
color:#EDEDED;
border-radius:.3em;
border-width:thin;
border-style:solid;
border-color:#cce9cd;
background-color:#077CC1;
position:fixed;
bottom:0;
right:0;
padding:.5em;
z-index:200;
}
.div_expand-collapse_all:before {
content:"Rozbalit nebo sbalit všechny sekce"
}
.buttons_expand-collapse_all {
font-size:.8em;
margin-top:.2em;
}
.expand-control-text {
    font-size:130%;
	color:#077CC1
}
</style>


<!-- ======================================= -->
<!-- "Expand All" and "Collapse All" buttons -->
<div class="div_expand-collapse_all"><br />
<button class="buttons_expand-collapse_all" name="expandAll" id="expandAll" type="button">Rozbalit vše</button>
<button class="buttons_expand-collapse_all" name="collapseAll" id="collapseAll" type="button">Sbalit vše</button>
</div>


<!-- =================== -->
<!-- "Expand All" script -->
<script type="text/javascript">
AJS.toInit(function() {
AJS.$('#expandAll').click(function() {
AJS.$('.expand-container').each(function() {
if (AJS.$('.expand-content', this).css('display', 'none').css('opacity', '0')) {
AJS.$('.expand-control .expand-control-icon', this).addClass('expanded');
AJS.$('.expand-content', this).removeClass('expand-hidden');
AJS.$('.expand-content', this).css('display', 'block');
AJS.$('.expand-content', this).css('opacity', '1');
}
});
});
});
</script>


<!-- ===================== -->
<!-- "Collapse All" script -->
<script type="text/javascript">
AJS.toInit(function() {
AJS.$('#collapseAll').click(function() {
AJS.$('.expand-container').each(function() {
if (AJS.$('.expand-content', this).css('display', 'block').css('opacity', '1')) {
AJS.$('.expand-control .expand-control-icon', this).removeClass('expanded');
AJS.$('.expand-content', this).addClass('expand-hidden');
AJS.$('.expand-content', this).css('display', 'none');
AJS.$('.expand-content', this).css('opacity', '0');
}
});
});
});
</script>




<script>
var expandAnchor = function() {
  var hash = decodeURIComponent(window.location.hash);
  if (hash) {
    var hashPageTitle = AJS.params.pageTitle.split(" ").join("");
    if (hash.indexOf(hashPageTitle) === -1) {
      if (jQuery.isNumeric(hashPageTitle.substring(0,1))) {
        hash = "#id-" + hashPageTitle + "-" + hash.slice(1);
      } else {
        hash = "#" + hashPageTitle + "-" + hash.slice(1);
      }
    }
    var escapedId = hash.replace(/[!"$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, "\\$&");
    jQuery(escapedId).parents('.expand-container').children('.expand-hidden').prev().click();
    window.location.href=hash;
  }
}
AJS.toInit(function() {
  // handle initial page load
  expandAnchor();




  // use polling because hashchange event doesn't fire for some reason
  function hashHandler(){
    this.oldHash = window.location.hash;
    this.Check;


    var that = this;
    var detect = function(){
        if(that.oldHash!=window.location.hash){
            console.log("HASH CHANGED - new has" + window.location.hash);
			expandAnchor();
            that.oldHash = window.location.hash;
        }
    };
    this.Check = setInterval(function(){ detect() }, 100);
}


var hashDetection = new hashHandler();
});
</script>