Prezentare generală

Webex Calling acceptă colocarea unui gateway de asigurare a continuității funcționării cu un gateway local pe același gateway gestionat de Cisco IOS. Adică, puteți utiliza același dispozitiv de gateway Cisco IOS pentru a configura serviciile de gateway locale și gateway de asigurare a continuității funcționării. Prin urmare, nu trebuie să aveți două gateway-uri diferite gestionate de Cisco IOS alocate ca gateway de asigurare a continuității funcționării și gateway local.

Acest articol tratează considerațiile pentru colocarea serviciilor de gateway local și gateway de asigurare a continuității funcționării în comparație cu implementarea independentă a acestor servicii.

  • Din cauza vulnerabilităților detectate, Webex Calling va deprecia sistemul de criptare RSAES-PKCS1-v1_5 utilizat de soluția de supraviețuire a site-ului la 1 septembrie 2024. După această dată, sistemul de criptare RSAES-OAEP este obligatoriu.

    Pentru a asigura funcționarea continuă cu acest sistem de criptare, actualizați gateway-urile de supraviețuire ale site-ului dvs. la Cisco IOS XE Dublin 17.12.3 înainte de 1 septembrie 2024. Nu sunt necesare modificări de configurare pentru a utiliza noua schemă de criptare după acest upgrade.

Cerințe preliminare

Cisco IOS XE Dublin 17.12.3 și altele.

Limitări și restricții

Următoarele sunt limitările cunoscute pentru colocarea serviciilor în gateway-urile gestionate de Cisco IOS:

  • Disponibilitatea ridicată nu este acceptată pentru gateway-urile locale.

  • Validarea configurării nu este acceptată pentru gateway-urile locale.

  • În Control Hub, gateway-ul trebuie să fie furnizat ca serviciu de gateway de asigurare a continuității funcționării.

  • Dacă clientul a configurat gateway-ul ca gateway local, trebuie să anuleze alocarea și apoi să realoce serviciul ca gateway de asigurare a continuității funcționării.

  • Colocarea este specifică gateway-ului Cisco IOS. Clienții care utilizează gateway-ul local terț trebuie să implementeze gateway-ul de asigurare a continuității funcționării separat.

  • Colocarea pentru gateway-ul local implementat de partener partajat între mai mulți clienți nu este aplicabilă.

Pentru limitări și restricții specifice serviciilor de gateway independent, consultați Înregistrați gateway-urile gestionate de Cisco IOS în Webex Cloud și Asigurarea continuității funcționării site-ului pentru Webex Calling.

Considerații de dirijare a apelurilor pentru colocare

Dirijarea apelurilor pentru colocare se bazează pe o strategie de dirijare care implică o combinație de grupuri de perechi de apelare (DPG) și dirijare obișnuită bazată pe modele de destinație. Acest lucru este diferit de strategiile de dirijare a apelurilor utilizate pentru serviciile de gateway independent gestionate de Cisco IOS. Un serviciu de gateway local independent utilizează o strategie de dirijare a apelurilor bazată pe DPG. Gateway-ul independent de asigurare a continuității funcționării dirijează apelul folosind modele de destinație.

Dirijarea apelurilor pentru colocarea gateway-ului local și a serviciilor de asigurare a continuității funcționării site-ului

Luați în considerare următoarele atunci când configurați dirijarea apelurilor pentru scenarii de colocare.

  • Pentru apelurile din Webex Calling—Perechea de apelare de intrare din Webex Calling corespunde pe baza numelui gazdei gateway-ului local sau a parametrului DTG din URI. Perechea de apelare de intrare este legată de un DPG care are PSTN. Apelul este apoi dirijat către PSTN. Pe scurt, nu există nicio modificare a dirijării apelurilor din strategia existentă de dirijare a gateway-ului local.

  • Pentru apelurile din PSTN—Eliminați dirijarea apelurilor pe baza grupurilor de perechi de apelare. Dirijați apelurile utilizând dirijarea obișnuită pe baza unui model de destinație. Adică, o pereche de apelare de intrare nu este legată de un DPG în această strategie. Perechea de apelare de intrare din PSTN corespunde pe baza adresei IP PSTN din Via URI. Se va efectua o căutare obișnuită a perechii de apelare și se va dirija un apel pe baza preferinței perechii de apelare. Apelul este dirijat către un terminal înregistrat local pentru modul de asigurare a continuității funcționării sau către Webex Calling pentru modul activ.

  • Pentru apelurile de la terminalele înregistrate la nivel local (aplicabile pentru modul de asigurare a continuității funcționării site-ului în timpul întreruperilor WAN)—Dirijați apelurile utilizând dirijarea obișnuită pe baza modelului de destinație. În această strategie, o pereche de apelare de intrare se potrivește cu o pereche de apelare laterală. Se efectuează o căutare obișnuită a perechii de apelare și un apel va fi dirijat pe baza preferinței perechii de apelare. Apelul este dirijat către un terminal înregistrat local, PSTN sau Webex Calling.

  • O preferință poate fi definită pentru fiecare pereche de apelare de ieșire. Această preferință este utilizată pentru a decide ordinea de selecție a perechilor de apelare pentru configurarea unui apel de ieșire. Cu cât este mai mică valoarea, cu atât este mai mare este preferința. Pentru dirijarea apelurilor în colocare, preferința perechii de apelare este setată după cum urmează:

    • Preferința implicită de 0 pentru dirijarea apelurilor către terminalele înregistrate la nivel local

    • Preferința 2 de a dirija apeluri către trunchiul Webex Calling

    • Preferința 3 de a dirija apeluri către trunchiul PSTN

Următorul tabel sintetizează comportamentul de dirijare a apelurilor pentru toate apelurile de intrare și de ieșire din Webex Calling care implică colocarea serviciilor de gateway gestionate de Cisco IOS:

Tabelul 1. Considerații de dirijare a apelurilor pentru colocare
Intrare de laIeșire la

Servicii gateway

Dirijarea apelurilor

Informații suplimentare

PSTN

Webex Calling

Colocarea gateway-ului local și a gateway-ului de asigurare a continuității funcționării

Pe baza modelului de destinație (.T)

Perechea de apelare cu preferința 2

PSTN

Terminale locale

Colocarea gateway-ului local și a gateway-ului de asigurare a continuității funcționării

Pe baza modelului de destinație

Utilizarea perechilor de apelare dinamice create pe baza înregistrărilor.

Nu există configurații pentru execuție pe aceste perechi de apelare de sistem. Acestea ar avea în mod automat cea mai mare prioritate.

Terminale locale

PSTN

Colocarea gateway-ului local și a gateway-ului de asigurare a continuității funcționării

Pe baza modelului de destinație

Perechea de apelare cu preferința 3

Terminale locale

Webex Calling

Colocarea gateway-ului local și a gateway-ului de asigurare a continuității funcționării

Pe baza modelului de destinație (.T)

Perechea de apelare cu preferința 2

Acest lucru se aplică numai dacă trunchiul gateway-ului local către Webex Calling este încă activat chiar și în modul gateway de asigurare a continuității funcționării.

Webex Calling

PSTN

Gateway local

Pe baza grupului de perechi de apelare

Conexiune Nailed-up la PSTN

Terminale locale

Terminale locale

Gateway de continuare

Pe baza modelului de destinație

Utilizarea perechilor de apelare dinamice create pe baza înregistrărilor.

Nu sunt necesare modificări suplimentare de configurație a perechii de apelare pe aceste perechi de apelare de sistem.

Pentru informații detaliate privind considerațiile de dirijare a apelurilor pentru colocarea serviciilor gateway gestionate de Cisco IOS, consultați Arhitectura preferată Webex Calling.

Configurați colocarea serviciilor

Dacă trebuie să alocați un nou gateway gestionat de Cisco IOS pentru colocarea gateway-ului local și a serviciilor de asigurare a continuității funcționării site-ului, alocați gateway-ul dvs. ca gateway de asigurare a continuității funcționării pe Control Hub. Pentru informații despre alocarea gateway-ului ca gateway de asigurare a continuității funcționării, consultați Înregistrați gateway-urile gestionate de Cisco IOS în Webex Cloud pentru a adăuga gateway-ul în Control Hub.

În funcție de tipul de trunchiere care este utilizat, puteți configura colocarea folosind una dintre următoarele:

Configurați colocarea pentru trunchiere pe baza înregistrării

1

Configurați certificatele.

Este obligatoriu să utilizați certificatele semnate de o autoritate de certificare de încredere. Pentru mai multe informații despre modul de solicitare și creare a certificatelor, consultați Configurați certificatele.

2

Configurați comenzile vocale globale.

Configurația vocală include setări obișnuite legate atât de gateway-ul local, cât și de serviciile de gateway de asigurare a continuității funcționării. Următorul este un exemplu de configurație vocală globală:

voice service voip
  ip address trusted list
    ipv4 x.x.x.x y.y.y.y
  allow-connections sip to sip
  media statistics
  media bulk-stats
  no supplementary-service sip refer
  no supplementary-service sip handle-replaces
  fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
  stun
   stun flowdata agent-id 1 boot-count 4
   stun flowdata shared-secret 0 Password123$
  sip
   g729 annexb-all
   early-offer forced
   asymmetric payload full
   registrar server
3

Configurație specifică gateway-ului de asigurare a continuității funcționării.

Configurați preferințele globale de înregistrare vocală, rezervă și codec pentru terminalele de înregistrare la gateway-ul de asigurare a continuității funcționării. Următorul este un exemplu de configurație specifică pentru gateway-ul de asigurare a continuității funcționării:

!
voice register global
 mode webex-sgw
 no allow-hash-in-dn
 max-dn 50
 max-pool 50
!
voice class codec 1
 codec preference 1 opus
 codec preference 2 g711ulaw
!
voice register pool  1
 id network 0.0.0.0 mask 0.0.0.0
 dtmf-relay rtp-nte
 voice-class codec 1
!
4

Configurație specifică gateway-ului local. Pentru mai multe informații, consultați Gateway-ul local bazat pe înregistrare.

Acesta include configurația entității găzduite utilizate pentru înregistrarea trunchiului gateway-ului local în Webex Calling, profilurile SIP asociate și preferințele codec. Următorul este un exemplu de configurație specifică gateway-ului local:

voice class sip-profiles 200
rule 9 request ANY sip-header SIP-Req-URI modify "sips:(.*)" "sip:\1"
rule 10 request ANY sip-header To modify "<sips:(.*)" "<sip:\1"
rule 11 request ANY sip-header From modify "<sips:(.*)" "<sip:\1"
rule 12 request ANY sip-header Contact modify "<sips:(.*)>" "<sip:\1;transport=tls>" 
rule 13 response ANY sip-header To modify "<sips:(.*)" "<sip:\1"
rule 14 response ANY sip-header From modify "<sips:(.*)" "<sip:\1"
rule 15 response ANY sip-header Contact modify "<sips:(.*)" "<sip:\1"
rule 20 request ANY sip-header From modify ">" ";otg=hussain2572_lgu>"
rule 30 request ANY sip-header P-Asserted-Identity modify "sips:(.*)" sip:\1
!
voice class codec 99
codec preference 1 g711ulaw
codec preference 2 g711alaw 
!
voice class srtp-crypto 200
crypto 1 AES_CM_128_HMAC_SHA1_80
!
voice class stun-usage 200
stun usage firewall-traversal flowdata
stun usage ice lite
!
voice class tenant 200
  registrar dns:40462196.cisco-bcld.com scheme sips expires 240 refresh-ratio 50 tcp tls
  credentials number Hussain6346_LGU username Hussain2572_LGU password 0 meX7]~)VmF realm BroadWorks
  authentication username Hussain2572_LGU password 0 meX7]~)VmF realm BroadWorks
  authentication username Hussain2572_LGU password 0 meX7]~)VmF realm 40462196.cisco-bcld.com
  no remote-party-id
  sip-server dns:40462196.cisco-bcld.com
  connection-reuse
  srtp-crypto 200
  session transport tcp tls 
  url sips 
  error-passthru
  asserted-id pai 
  bind control source-interface GigabitEthernet0/0/1
  bind media source-interface GigabitEthernet0/0/1
  no pass-thru content custom-sdp 
  sip-profiles 200 
  outbound-proxy dns:la01.sipconnect-us10.cisco-bcld.com  
  privacy-policy passthru
5

Configurație specifică PSTN.

Aceasta include configurarea entității găzduite pentru PSTN și profilurile sip asociate (dacă există) și preferințele codec. Următorul este un exemplu de configurație specifică PSTN:

!
voice class tenant 100 
 session transport udp
 url sip
 error-passthru
 bind control source-interface GigabitEthernet0/0/0
 bind media source-interface GigabitEthernet0/0/0
 no pass-thru content custom-sdp
!
6

Configurați perechea de apelare PSTN de intrare.

Aceasta include selecția perechii de apelare pentru apelurile PSTN de intrare pe baza potrivirii antetului. Următorul este un exemplu de configurație pentru perechea de apelare PSTN de intrare:

!
voice class uri 100 sip
  host ipv4:192.168.80.13
!
dial-peer voice 100 voip
description Incoming dial-peer from PSTN
session protocol sipv2
incoming uri via 100
voice-class codec 99
dtmf-relay rtp-nte
voice-class sip tenant 100
emergency response callback
no vad
!
7

Configurați perechea de apelare Webex Calling de ieșire.

Aceasta include selecția perechii de apelare pentru trunchiul Webex Calling de ieșire pe baza grupului de perechi de apelare. Următorul este un exemplu de configurație pentru perechea de apelare Webex Calling de ieșire:

dial-peer voice 200201 voip
description Outbound Webex Calling
destination e164-pattern-map 100
preference 2
session protocol sipv2
session target sip-server
voice-class codec 99
dtmf-relay rtp-nte
voice-class stun-usage 200
no voice-class sip localhost
voice-class sip tenant 200
srtp
no vad
!
8

Configurați perechea de apelare Webex Calling de intrare.

Acesta include selecția perechii de apelare pentru apelurile Webex Calling de intrare pe baza potrivirii parametrului DPG din antetul Request-URI. Grupul de perechi de apelare este utilizat pentru dirijarea apelurilor direct către PSTN de ieșire. Următorul este un exemplu de configurație pentru perechea de apelare Webex Calling de intrare:

voice class dpg 200
 dial-peer 101 preference 1
!
!
voice class uri 200 sip
 pattern dtg=hussain2572
!
dial-peer voice 200201 voip
description Inbound Webex Calling
destination dpg 200
max-conn 250
incoming uri request 200
!
9

Configurați perechea de apelare PSTN de ieșire.

Este utilizat pentru dirijarea apelurilor PSTN în modurile gateway local și gateway de asigurare a continuității funcționării. Schimbați modelul de destinație din BAD curent la un model potrivit pentru apelurile PSTN. Acest lucru este necesar pentru dirijarea apelurilor PSTN de la terminalele înregistrate local. Puteți face acest lucru fie direct folosind modelul de destinație sau prin intermediul modelului-hartă E164. Următorul este un exemplu de configurație pentru perechea de apelare PSTN de ieșire:

!
voice class e164-pattern-map 100
  e164 +91.T
  e164 +1.T
  e164 +.T
 !

!
dial-peer voice 101 voip 
description Outgoing dial-peer to IP PSTN
destination e164-pattern-map 100
preference 3
session protocol sipv2
session target ipv4:192.168.80.13
voice-class sip options-keepalive
voice-class codec 99
dtmf-relay rtp-nte
voice-class sip tenant 100
no vad
!
10

Configurați perechile de apelare PSTN de ieșire pentru apelurile de urgență în modul de asigurare a continuității funcționării.

Este folosit pentru selecția perechii de apelare pe baza potrivirii cu modelul E164. Aceste perechi de apelare sunt potrivite numai pentru apelurile care provin din terminalele înregistrate direct la gateway-ul de asigurare a continuității funcționării în modul de asigurare a continuității funcționării. Furnizați una sau mai multe perechi de apelare pe baza planului de apelare acceptat în modul de asigurare a continuității funcționării și a permisiunilor de apelare asociate. Următorul este un exemplu de configurație pentru perechile de apelare PSTN de ieșire pentru apelurile de urgență în modul de asigurare a continuității funcționării:

!
voice class e164-pattern-map 300
  e164 911
 !
dial-peer voice 300 voip
 description Outbound PSTN dial-peer for E911 call in Survivability Mode
 emergency response zone 1
 session protocol sipv2
 session target ipv4:10.65.125.202:9089
 destination e164-pattern-map 300
 voice-class codec 99
 voice-class sip tenant 100
 dtmf-relay rtp-nte
!
11

Configurați hunt pentru perechea de apelare.

Acesta este utilizat pentru a selecta perechile de apelare pentru dirijare pe baza preferinței setate pentru perechile de apelare.

!
dial-peer hunt 2
!

Configurați colocarea pentru trunchiere pe baza certificatului

Înainte de a începe

Configurația de colocare pentru trunchierea pe baza certificatului este similară cu trunchierea pe baza înregistrării, cu excepția celor specifice trunchiurilor de gateway local și entităților găzduite.

1

Configurați certificatele.

Este obligatoriu să utilizați certificatele semnate de o autoritate de certificare de încredere. Pentru mai multe informații despre modul de solicitare și creare a certificatelor, consultați Configurați certificatele.

2

Configurați comenzile vocale globale.

Configurația vocală include setări obișnuite legate atât de gateway-ul local, cât și de serviciile de gateway de asigurare a continuității funcționării. Următorul este un exemplu de configurație vocală globală:

voice service voip
  ip address trusted list
    ipv4 x.x.x.x y.y.y.y
  allow-connections sip to sip
  media statistics
  media bulk-stats
  no supplementary-service sip refer
  no supplementary-service sip handle-replaces
  fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
  stun
   stun flowdata agent-id 1 boot-count 4
   stun flowdata shared-secret 0 Password123$
  sip
   g729 annexb-all
   early-offer forced
   asymmetric payload full
   registrar server
3

Configurație specifică gateway-ului de asigurare a continuității funcționării.

Configurați preferințele globale de înregistrare vocală, rezervă și codec pentru terminalele de înregistrare la gateway-ul de asigurare a continuității funcționării. Următorul este un exemplu de configurație specifică pentru gateway-ul de asigurare a continuității funcționării:

!
voice register global
 mode webex-sgw
 no allow-hash-in-dn
 max-dn 50
 max-pool 50
!
voice class codec 1
 codec preference 1 opus
 codec preference 2 g711ulaw
!
voice register pool  1
 id network 0.0.0.0 mask 0.0.0.0
 dtmf-relay rtp-nte
 voice-class codec 1
!
4

Configurație specifică gateway-ului local. Pentru mai multe informații, consultați Trunchiere pe baza certificatului.

Acesta include configurația trunchiului și a entității găzduite necesară pentru a efectua schimbul de certificate în gateway-ul local, profilurile SIP asociate și preferințele codec. Următorul este un exemplu de configurație specifică gateway-ului local:

voice class codec 200
codec preference 1 g711ulaw
 codec preference 2 g711alaw
!
voice class sip-options-keepalive 200
 description Keepalive webex_mTLS
 up-interval 5
 transport tcp tls
!
voice class tls-profile 200
 description Webexcalling
 trustpoint sbc6
 cn-san validate bidirectional
 cn-san  1 us01.sipconnect.bcld.webex.com
!
voice class sip-profiles 200
 rule 10 request ANY sip-header Contact modify "@.*:" "@sbc6.tekvizionlabs.com:" 
 rule 20 response ANY sip-header Contact modify "@.*:" "@sbc6.tekvizionlabs.com:" 
!
voice class srtp-crypto 200
 crypto 1 AES_CM_128_HMAC_SHA1_80
!

voice class tenant 200
  no remote-party-id
  localhost sbc6.tekvizionlabs.com
  srtp-crypto 200
  session transport tcp tls 
  url sips 
  error-passthru
  asserted-id pai 
  bind control source-interface GigabitEthernet0/0/1
  bind media source-interface GigabitEthernet0/0/1
  no pass-thru content custom-sdp 
  sip-profiles 200 
  privacy-policy passthru
  tls-profile 200
!
5

Configurație specifică PSTN.

Aceasta include configurarea entității găzduite pentru PSTN și profilurile sip asociate (dacă există) și preferințele codec. Următorul este un exemplu de configurație specifică PSTN:

!
voice class tenant 100 
 session transport udp
 url sip
 error-passthru
 bind control source-interface GigabitEthernet0/0/0
 bind media source-interface GigabitEthernet0/0/0
 no pass-thru content custom-sdp
!
6

Configurați perechea de apelare PSTN de intrare.

Aceasta include selecția perechii de apelare pentru apelurile PSTN de intrare pe baza potrivirii antetului. Următorul este un exemplu de configurație pentru perechea de apelare PSTN de intrare:

!
voice class uri 100 sip
  host ipv4:192.168.80.13
!
dial-peer voice 100 voip
description Incoming dial-peer from PSTN
session protocol sipv2
incoming uri via 100
voice-class codec 99
dtmf-relay rtp-nte
voice-class sip tenant 100
emergency response callback
no vad
!
7

Configurați perechea de apelare Webex Calling de ieșire.

Aceasta include selecția perechii de apelare pentru trunchiul Webex Calling de ieșire pe baza grupului de perechi de apelare. Următorul este un exemplu de configurație pentru perechea de apelare Webex Calling de ieșire:

dial-peer voice 200201 voip
description OutBound Webex Calling
session protocol sipv2
session target dns:<insert us01.sipconnect.bcld.webex.com>
session transport tcp tls
destination e164-pattern-map 100
voice-class codec 200
voice-class stun-usage 200
voice-class sip asserted-id pai
voice-class sip tenant 200
voice-class sip options-keepalive profile 200
voice-class sip bind control source-interface GigabitEthernet 0/0/2
voice-class sip bind media source-interface GigabitEthernet 0/0/2
dtmf-relay rtp-nte
srtp
no vad
!
8

Configurați perechea de apelare Webex Calling de intrare.

Acesta include selecția perechii de apelare pentru apelurile Webex Calling de intrare pe baza potrivirii parametrului DPG din antetul Request-URI. Grupul de perechi de apelare este utilizat pentru dirijarea apelurilor direct către PSTN de ieșire. Următorul este un exemplu de configurație pentru perechea de apelare Webex Calling de intrare:

voice class dpg 200
 dial-peer 101 preference 1
!
!
voice class uri 200 sip
 pattern dtg=hussain2572
!
dial-peer voice 200201 voip
description Inbound Webex Calling
destination dpg 200
max-conn 250
incoming uri request 200
!
9

Configurați perechea de apelare PSTN de ieșire.

Este utilizat pentru dirijarea apelurilor PSTN în modurile gateway local și gateway de asigurare a continuității funcționării. Schimbați modelul de destinație din BAD actual la un model potrivit pentru apelurile PSTN. Acest lucru este necesar pentru dirijarea apelurilor PSTN de la terminalele înregistrate local. Puteți face acest lucru fie direct folosind modelul de destinație sau prin intermediul modelului-hartă E164. Următorul este un exemplu de configurație pentru perechea de apelare PSTN de ieșire:

!
voice class e164-pattern-map 100
  e164 +91.T
  e164 +1.T
  e164 +.T
 !

!
dial-peer voice 101 voip 
description Outgoing dial-peer to IP PSTN
destination e164-pattern-map 100
preference 3
session protocol sipv2
session target ipv4:192.168.80.13
voice-class sip options-keepalive
voice-class codec 99
dtmf-relay rtp-nte
voice-class sip tenant 100
no vad
!
10

Configurați perechile de apelare PSTN de ieșire pentru apelurile de urgență în modul de asigurare a continuității funcționării.

Este folosit pentru selecția perechii de apelare pe baza potrivirii cu modelul E164. Aceste perechi de apelare sunt potrivite numai pentru apelurile care provin din terminalele înregistrate direct la gateway-ul de asigurare a continuității funcționării în modul de asigurare a continuității funcționării. Furnizați una sau mai multe perechi de apelare pe baza planului de apelare acceptat în modul de asigurare a continuității funcționării și a permisiunilor de apelare asociate. Următorul este un exemplu de configurație pentru perechile de apelare PSTN de ieșire pentru apelurile de urgență în modul de asigurare a continuității funcționării:

!
voice class e164-pattern-map 300
  e164 911
 !
dial-peer voice 300 voip
 description Outbound PSTN dial-peer for E911 call in Survivability Mode
 emergency response zone 1
 session protocol sipv2
 session target ipv4:10.65.125.202:9089
 destination e164-pattern-map 300
 voice-class codec 99
 voice-class sip tenant 100
 dtmf-relay rtp-nte
!
11

Configurați hunt pentru perechea de apelare.

Acesta este utilizat pentru a selecta perechile de apelare pentru dirijare pe baza preferinței setate pentru perechile de apelare.

!
dial-peer hunt 2
!