====== CallManager Express ====== ===== User roles ===== * **System administrator** — Able to configure all system-level and phone-based features. This person is familiar with Cisco IOS software and VoIP network configuration. * **Customer administrator** — Able to perform routine phone additions and changes without having access to system-level features. This person does not have to be familiar with Cisco IOS software. * **Phone user** — Able to program a small set of features on his or her own phone and search the Cisco Unified CME directory. In Cisco Unified CME GUI 4.2.1 and later versions, phone users can use the GUI to set up personal speed dials for an Extension Mobility phone. The same credential for logging into an Extension Mobility phone can be used to log into the Cisco Unified CME GUI. ===== cme user locale ===== ===== Management interface (cli,ccp,web) ===== ===== End-user interface ===== ===== Boot a registrace telefonu ===== - Napájení (PoE ze switche) - CDP - informace o voice VLAN - DHCP - IP parametry + Option 150 (adresa TFTP serveru) - TFTP - stažení konfigurace - Registrace - tel zkouší postupně kontaktovat všechny tři CUCM/CME servery uvedené v konf. souboru při neúspěchu se restartuje. Tel se vůči CUCM/CME identifikuje svou MAC adresou a prostřednictvím SIP/SCCP dostává pracovní konfiguraci (linky, sw.tlačítka, vyzvánění apod.) ===== PoE - Power over ethernet ===== Varianty: * ILP - Cisco In-Line Power, jedná se proprietární cisco prestandard, stále lze vidět starších telefonů (7960 apod.) * IEEE 802.3af - standard, 48V / 15.4W * IEEE 802.3at - standard, 48V / 25.5W Zdroje napájení mohou být: * Switch s podporou PoE * Power patch panel (tzv. coupler / injector) * Adaptér (power brick) Pozn.: * Telefony se dodávají automaticky BEZ adaptéru * Přídavné panely k telefonům nejsou napájeny přes PoE, musí mít svůj adaptér ===== Voice VLAN ===== * VLAN = Broadcastová doména = obvykle jeden subnet * Mnoho cisco tel. v sobě má zabudovaný switch, umožňují tedy top. zapojení sw-tel-pc. Přičemž tel i pc jsou v různých VLANách. * Zvýšení výkonu/efektivity sítě rozdělením broadcastové domény * Logické rozdělení sítě, lepší pro správu * Nezávislost na fyzickém umístění, jedná se jen o nastavení portu (např. při stěhování zaměstnance) * Bezpečnostní výhody. Komunikace mezi VLANami musí být přes L3 prvek, kde lze aplikovat ACL * Trunking IEEE 802.1Q * Pro cisco telefony se porty nastavují jako "Access s podporou voice VLAN" - tedy NE 802.1Q trunk! * Pro non-cisco tel. se porty nastavují jako access nebo jako 802.1Q trunky - pozor na bezpečnost! * Cisco tel. se číslo voice VLAN dozví přes CDP -> Nevypínat CDP na portech pro telefony! >Switch# **configure terminal** >Switch(config)# **vlan 100** >Switch(config-vlan)# **name VOICE** >Switch(config-vlan)# **exit** >Switch(config)# **vlan 200** >Switch(config-vlan)# **name DATA** >Switch(config-vlan)# **exit** >Switch(config)# **interface range FastEthernet 0/2 - 24** >Switch(config-if)# **switchport mode access** >Switch(config-if)# **switchport access vlan 200** >Switch(config-if)# **switchport voice vlan 100** >Switch(config-if)# **spanning-tree portfast** >Switch(config-if)# **end** >Switch# **show vlan brief** ===== Time / NTP ===== ==== Ruční konfigurace času ==== //Pozor! Nastavuje se v privilegovaném módu ne v configu:// >Router# **clock set 12:00:00 1 JAN 2013** ==== NTP client ==== >Router# **configure terminal** >Router(config)# **ntp server 213.168.176.3** >Router(config)# **clock timezone CZ 1 0** Router(config)#clock timezone ? WORD name of time zone Router(config)#clock timezone CZ ? <-23 - 23> Hours offset from UTC Router(config)#clock timezone CZ 1 ? <0-59> Minutes offset from UTC Router(config)#clock timezone CZ 1 0 ? >Router# **show ntp status** Router#show ntp status Clock is synchronized, stratum 4, reference is 213.168.176.3 nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**24 reference time is D66934EB.597D6AC7 (12:30:51.349 CZ Sat Dec 28 2013) clock offset is -0.7446 msec, root delay is 13.03 msec root dispersion is 495.86 msec, peer dispersion is 439.72 msec loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000000000 s/s system poll interval is 64, last update was 21 sec ago. >Router# **show ntp associations** Router#show ntp associations address ref clock st when poll reach delay offset disp *~213.168.176.3 188.2.166.125 3 55 64 77 7.879 -0.744 190.27 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured >Router# **show clock** Router#show clock 12:35:13.497 CZ Sat Dec 28 2013 ==== NTP server ==== >Router(config)# **ntp master** ===== DHCP ===== ==== DHCP server ==== >Router# **conf t** >Router(config)# **ip dhcp excluded-address 192.168.100.1 192.168.100.50** >Router(config)# **ip dhcp pool VOICE** >Router(dhcp-config)# **network 192.168.100.0 255.255.255.0** > //nebo// >Router(dhcp-config)# **network 192.168.100.0 /24** >Router(dhcp-config)# **default-router 192.168.100.1** >Router(dhcp-config)# **dns-server 8.8.8.8** >Router(dhcp-config)# **option 150 ip 192.168.100.1** >Router# **show ip dhcp binding** Router#show ip dhcp binding Bindings from all pools not associated with VRF: IP address Client-ID/ Lease expiration Type Hardware address/ User name 192.168.100.132 01cc.ef48.5e1d.e7 Dec 29 2013 07:46 AM Automatic 192.168.100.139 000c.2923.baca Dec 29 2013 12:10 AM Automatic 192.168.100.168 0190.02a9.a78a.c5 Dec 28 2013 03:37 PM Automatic 192.168.100.170 0100.16d3.2860.ed Dec 28 2013 04:36 PM Automatic 192.168.100.191 0100.036b.7ffd.e3 Dec 29 2013 10:47 AM Automatic 192.168.100.207 0100.036b.7ff9.78 Dec 29 2013 10:51 AM Automatic 192.168.100.216 0100.a0ba.020f.c9 Dec 29 2013 05:48 AM Automatic ==== DHCP Relay / helper ==== >Router(config)# **ip helper-address** ===== TFTP ===== Telefony si z TFTP tahají konfiguraci a případně i firmware. Telefon hledá svůj konf. soubor **SEP.cnf.xml**, pokud tento soubor nenajde, začne stahovat defaultní **XMLDefault.cnf.xml**. Telefony neumějí specifikovat cestu k těmto souborům, musejí tedy být v rootu TFTP serveru, nebo musíme definovat jejich aliasy. Konfigurace externího tftp serveru: >**telephony-service** >**cnf-file location tftp://**//// Příklad konfigurace aliasů: tftp-server flash:/phone_firmware/7940-7960/P0030800500.BIN alias P0030800500.BIN tftp-server flash:/phone_firmware/7940-7960/P0030800500.LOADS alias P0030800500.LOADS tftp-server flash:/phone_firmware/7940-7960/P0030800500.SB2 alias P0030800500.SB2 tftp-server flash:/phone_firmware/7940-7960/P0030800500.SBN alias P0030800500.SBN ===== Telephony-service ===== Podmínkou pro funkci je nastavení těchto tří věcí: - **ip source address** - **max-dn** - **max-ephones** Zbytečně nenastavovat max-dn a max-ephones na vysoké hodnoty. Router dle nich rezervuje systémové prostředky pro telefonii. >Router(config-telephony)# **ip source-address 192.168.100.1** >Router(config-telephony)# **max-ephones 10** >Router(config-telephony)# **max-dn 20** ===== Ephone-dn ===== * **single-line** - (default) umožňuje jen jeden hovor, další volající má obsazovací tón * **dual-line** - dva současné hovory (callwaiting, konference, přepojení s konzultací) * **octo-line** - 8 současných hovorů (recepce, shared line, konference) >Router(config)# **ephone-dn 1** >Router(config-ephone-dn)# **number 1000** >Router(config)# **ephone-dn 2 dual-line** >Router(config-ephone-dn)# **number 1001** >Router(config)# **ephone-dn 3 octo-line** >Router(config-ephone-dn)# **number 1002** //Tel.dostupný pod oběmi čísly z vnitřní sítě:// >Router(config)# **ephone-dn 4 dual-line** >Router(config-ephone-dn)# **number 1003 secondary 326211003** ===== Ephone ===== >Router(config)# **ephone 1** >Router(config-ephone)# **ephone 1** >Router(config-ephone)# **mac-address 0003.6B7F.F978** >Router(config-ephone)# **type 7960** >Router(config-ephone)# **button 1:1** > (**button** ////) ==== Varianty zápisu více tlačítek: ==== >**button 1:1** >**button 2:2** > //atd.// >**button 1:1 2:2** //atd.// >Router# **show ephone** * REGISTERED * UNREGISTERED * DECEASED (ztráta TCP keepalive spojení s telefonem) Router#show ephone ephone-1[0] Mac:0003.6B7F.F978 TCP socket:[3] activeLine:0 whisperLine:0 REGISTERED in SCCP ver 11/9 max_streams=0 mediaActive:0 whisper_mediaActive:0 startMedia:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0 caps:8 IP:192.168.100.207 * 51194 Telecaster 7960 keepalive 17703 max_line 6 available_line 6 button 1: cw:1 ccw:(0 0) dn 1 number 100 CH1 IDLE CH2 IDLE Preferred Codec: g711ulaw Lpcor Type: none ===== FXS Porty ===== >Router# **show voice port summary** FIXME Router#show voice port summary >Router(config)# **voice-port 1/0/1** FIXME >**signal loopstart** //(nebo groundstart)// >**cptone cz** >**station-id name telefon_v_garazi** >**station-id number 326210210** >**connection plar 1111**) //-horká linka na FXS portu// ===== FXO Porty ===== Připojuje se k nim linka z ústředny (CO). FXO port je vlastně jako telefon, umí přijmout jen vyzvánění, odeslat volbu. FIXME > **voice-port 1/1/0** > **signal** [ **loopstart** | **groundstart** ] > **station-id name nejake_jmeno** > **station-id number 326210211** > **dial-type** [ **dtmf** | **pulse** ] > **ring number 3** //(poč.zazvonění před vyzvednutím, def.=1)// > **connection plar 100** //(kam zazvonit po vyzvednutí)// ===== Digitální porty T1 ===== Číslování: * Kanály 0-23, signalizační je 23.kanál * Timesloty 1-24, signalizační je 24.ts ==== T1 CAS ==== FIXME >conf t >controler t1 1/0 >framing esf (ef/esf) >linecode b8zs (ami/b8zf) >clock source line (internal/line/free-running) >ds0-group 1 timeslots 1-24 type fxo-loop-start >show voice port summary ==== T1 CCS ==== FIXME >conf t >isdn switch-type primary-5ess >controller t1 1/0 >pri-group timeslots 1-24 >show voice port summary ===== Digitální porty E1 ===== Číslování: * Kanály 0-31, signalizační 16.kanál * Timesloty 1-32, signalizační 17.ts ==== E1 CAS ==== ==== E1 CCS ==== FIXME >conf t >card type e1 0 0 >isdn switch-type primary-net5 >network-clock-participate wic 0 >controller e1 1/0 >pri-group timeslots ... >sh voice port sumary ===== Dial peers ===== * **ANI** (Automatic Number Identification) - volající číslo * **DNIS** (Dialed Number Identification Service) - volané číslo >**show dialplan number 123** ==== Wildcards ==== * **.** = jakékoliv číslo 0-9 a * (neplatí pro #, stisknutí mřížky znamená konec volby) * **+** = jeden či více výskytů předchozího čísla 5+23 -> 5523,55523,555555555523 apod. * **[]** = rozsah čísel [1-3], výčet čísel [1234], kombinace[15-9], negace rozsahu[^1-3] * **T** = jakékoliv číslo v délce 0-32 číslic, pokud volené číslo je kratší než 32 číslic, čeká se do vypršení interdigit timeoutu (T302) 10 sec. nebo do stisku mřížky (nedoporučuje se používat samotné T - po 10s od vyzvednutí by se matchnul dialpeer i bez volby, vždy alespoň .T nebo 0T) * **,** = 1 sec. dlouhá pauza mezi čísly ==== Outbound matching ==== - nejvíce specifický dialpeer - preference dialpeeru (čím menší tím lepší, default=0) ==== Inbound matching ==== - volané číslo DNIS / **incoming called-number** - volající číslo ANI / **answer-address** - volající číslo ANI / **destination-pattern** - příchozí POTS port / **port** - NO MATCH - použije se defaultní //**dial-peer 0**// ==== Default Dial-peer 0 ==== * **jen inbound!** * všechny kodeky * no dtmf relay * ip precedence 0 (bez QoSu) * VAD zapnutý * bez podpory RSVP * nebere ohledy na FAX, klidně použije komprimovaný kodek * no app support - např. IVR * no DID support ==== POTS dial-peer==== * používá se pro porty typu FXS, FXO, E&M, E1/T1, BRI * bez použití **no digit-strip** ořezává přesně definovaná čísla v dest.paternu (zleva) * router zpracovává volbu digit-by-digit, tedy po číslech tak jak přichází >Router(config)# **dial-peer voice 1101 pots** >Router(config-dial-peer)# **destination-pattern 1101** >Router(config-dial-peer)# **port 1/0/1** >Router(config)# **dial-peer voice 1000 pots** >Router(config-dial-peer)# **destination-pattern 1...** >Router(config-dial-peer)# **port 1/0/1:16** >Router(config-dial-peer)# **no digit-strip** >Router(config-dial-peer)# **direct-inward-dial** //-dovolí poslání volby dovnitř při příchozím hovoru// > **show dial-peer voice** > **show dial-peer voice summary** > **debug voip dialpeer** ==== VOIP dial-peer==== >Router(config)# **dial-peer voice 2000 voip** >Router(config-dial-peer)# **destination-pattern 2...** >Router(config-dial-peer)# **session target ipv4:213.168.186.130** (nebo dns:sip.fibercall.cz) > **show dial-peer voice** > **show dial-peer voice summary** > **debug voip dialpeer** ==== Dial-peer preference ==== >Router(config)# **dial-peer voice 2000** //(u již vytvořeného dp nemusím specifikovat jeho typ voip/pots, stačí id)// >Router(config-dial-peer)# **preference 1** * preference 0 = default * hodnoty 0 - 10 * přednost má nižší preference * v případě, že dva shodné dialpeery mají stejnou pref. hovory jsou směrovány náhodně ===== Digit manipulation ===== Pořadí úprav čísla: |1.|**num-exp** |Global|num-exp 4... 5...| |2.|**[no] digit-strip**|POTS|no digit-strip| |3.|**voice translation-profile**|Global, POTS, VOIP| | |4.|**prefix** |POTS|prefix 011| |5.|**forward-digits** |POTS|forward-digits 4| Translation profile: >Router(config)# **voice translation-rule 1** >Router(cfg-translation-rule)# **rule 1 /6/ /5/** >Router(cfg-translation-rule)# **exit** >Router(config)# **voice translation-profile JMENO** >Router(cfg-translation-profile)# **translate called 1** >Router(cfg-translation-profile)# **exit** >Router(config)# **dial-peer voice 100 pots** >Router(config-dial-peer)# **translation-profile incoming JMENO** >Router# **test voice translation-rule 1 6545** Router#test voice translation-rule 1 6545 Matched with rule 1 Original number: 6545 Translated number: 5545 Original number type: none Translated number type: none Original number plan: none Translated number plan: none ===== COR - Class of restriction ===== Příklad jak to funguje: - zvednu sluchátko ip telefonu - router mi přidělí tzv. **incoming** cor list (nazvěme jej jako seznam klíčů) - vytočím číslo a matchnu odchozí dial-peer - v **outgoing** cor listu dial-peeru je napsáno jaké klíče/tagy musím mít ve svém incoming cor listu, abych se přes tento dial-peer někam dovolal - Dovolám se nebo se nedovolám Pozor na vyjímky: * !!! není-li definován **incoming** cor list, **vždy se dovolám**!!! * !!! není-li definován **outgoing** cor list, **vždy se dovolám**!!! **Příklad konfigurace** - máme tři linky pro ip telefony ephone-dn 1,2 a 3. Následující příklad ukazuje nastavením kdy ephone-dn 1 může volat jen 112, ephone-dn 2 může volat 112 a místní volání, ephone-dn 3 může volat všude. Vzhledem ke znalosti vyjímek by šel příklad zjednodušit tak, že ephone-dn 3 by neměl žádný incoming cor list - tak by mohl volat všude. A dále pots dial-peer pro volání 112 by neměl nastavený žádný outgoing cor list, tak by jej mohli používat všichni. Nastavení jmen tagů: >Router# **configure terminal** >Router(config)# **dial-peer cor custom** >Router(config-dp-cor)# **name 112** >Router(config-dp-cor)# **name LOCAL** >Router(config-dp-cor)# **name LD** >Router(config-dp-cor)# **exit** Příprava cor listů (budou použity jako OUTGOING): >Router(config)# **dial-peer cor list 112-CALL** >Router(config-dp-corlist)# **member 112** >Router(config-dp-corlist)# **exit** >Router(config)# **dial-peer cor list LOCAL-CALL** >Router(config-dp-corlist)# **member LOCAL** >Router(config-dp-corlist)# **exit** >Router(config)# **dial-peer cor list LD-CALL** >Router(config-dp-corlist)# **member LD** >Router(config-dp-corlist)# **exit** Příprava cor listů (budou použity jako INCOMING): >Router(config)# **dial-peer cor list 112-ONLY** >Router(config-dp-corlist)# **member 112** >Router(config-dp-corlist)# **exit** >Router(config)# **dial-peer cor list 112-LOCAL** >Router(config-dp-corlist)# **member 112** >Router(config-dp-corlist)# **member LOCAL** >Router(config-dp-corlist)# **exit** >Router(config)# **dial-peer cor list 112-LOCAL-LD** >Router(config-dp-corlist)# **member 112** >Router(config-dp-corlist)# **member LOCAL** >Router(config-dp-corlist)# **member LD** >Router(config-dp-corlist)# **exit** Aplikace OUTGOING cor listů na dial-peery: >Router(config)# **dial-peer voice 10 pots** >Router(config-dial-peer)# **corlist outgoing 112-CALL** >Router(config-dial-peer)# **exit** >Router(config)# **dial-peer voice 11 pots** >Router(config-dial-peer)# **corlist outgoing LOCAL-CALL** >Router(config-dial-peer)# **exit** >Router(config)# **dial-peer voice 12 pots** >Router(config-dial-peer)# **corlist outgoing LD-CALL** >Router(config-dial-peer)# **exit** Aplikace INCOMING cor listů na tel.linky (ephone-dn): >Router(config)# **ephone-dn 1** >Router(config-ephone-dn)# **corlist incoming 112-ONLY** >Router(config-ephone-dn)# **exit** >Router(config)# **ephone-dn 2** >Router(config-ephone-dn)# **corlist incoming 112-LOCAL** >Router(config-ephone-dn)# **exit** >Router(config)# **ephone-dn 3** >Router(config-ephone-dn)# **corlist incoming 112-LOCAL-LD** >Router(config-ephone-dn)# **exit** ===== QoS - Quality of service ===== QoS není žádná konkrétní funkce, jedná se o soubor nástrojů a opatření pro zajištění požadované kvality přenosu pro určitý typ provozu. Kritické body pro VoIP: * **BANDWIDTH** - malá šířka pásma, hrdlo v síti * **DELAY** * FIXED DELAY - zde QoS nemá jak pomoci * VARIABLE DELAY - lze ovlivnit např. zpoždění v bufferech * JITTER - jedná se změny zpoždění doručení paketů * **Packet LOSS** - přetížená, nedostupná síť Ideální je dosáhnout konstantní i když malé šířky pásma vyhrazené pro hlas a konstantním malým zpožděním. Při aplikaci nástrojů QoS se soustředit zejména na hrdla sítě. **__VoIP požadavky:__** - End-to-End Delay **=< 150 ms** - Jitter **=< 30 ms** - Packet loss **=< 1%** Doporučené základní rozdělení síťových aplikací: * mission-critical apps - kritické pro chod sítě a podniku, mají obvykle vyhrazené pásmo * transactional apps - požadavky na rychlou odezvu, interakce s uživateli, databázové transakce * best-efort apps - typicky email, web, ftp apod. * scavenger apps - nežádoucí aplikace s velkými požadavky na šířku pásma jako P2P sdílení. Mechanismy QoS: * **BEST-EFFORT** - defaultně ve všech sítích, žádný QoS, data se odbavují tak jak přijdou * **INTEGRATED SERVICES** (IntServ) * metoda rezervace šířky pásma * např. pro hovor 80kbps je pomocí RSVP vyrezervováno pásmo napříč celou sítí jen pro tento hovor * špatně škálovatelné při větším počtu požadavků na rezervace pásma * RSVP = resource reservation protocol * **DIFERENTIATED SERVICES** (DiffServ) * nejpožívanější metoda pro impl. QoS * třídění traficu do tříd * síť. prvky s traficem nakládají dle tříd Nástroje QoS: * Classification and marking - značkování provozu dle typu na L2=CoS / L3=ToS * Congestion management - různé strategie frontování v bufferech * Congestion avoidance - preventivní zahazování paketů * Policing and shaping - zahazování či omezování šířky pásma pro určitý provoz * Link efficiency * Payload compression * Header compression - např. komprese RTP hlaviček 40 byte to 2-4 bytes (cRTP) * LFI Link Fragmentation and Interleaving - fragmentace velkých paketů a prokládání menšími (hlasovými), používá se na multilink PPP sér. linkách a Frame-Relay POZOR: Komprese zvyšuje zpoždění a zatěžuje procesor. Fragmentace zase zvyšuje overhead - je třeba více hlaviček. V žádném případě nepoužívat na linkách rychlejších než E1/T1 !!! Queuing algorythms: * **FIFO** (First in, First Out) - default ve většině sítí * **WFQ** (Weighted Fair Queuing) - Default na cisco sér.linkách. Snaží se dostupný bw rozdělit rovnoměrně. Čím větší požadavek na šířku pásma, tím menší priorita. * **CBWFQ** (Class-based WFQ) - lze pro různý provoz vyhradit garantovanou část bw v procentech, zbytek je odbavován dle pravidla WFQ * **LLQ** (Low Lattency Queuing) - **(Doporučuje se pro VoIP)** Zvané také PQ-CBWFQ (Priority Queue - CBWFQ). CBWFQ sice garantuje šířku pásma, ale negarantuje jitter a zpoždění, což pro hlas není vhodné. LLQ tedy ještě přidává prioritní frontu pro voice a video, zbytek je odbaven dle CBWFQ. Aplikace nástrojů QoS: * VSTUP do routeru * classification * marking * policing * VÝSTUP z routeru * congestion management * marking * congestion avoidance * shaping * policing * compression * fragmentation and interleaving ==== Auto QoS ==== Trust Boundary = hranice kde důvěřujeme cos/tos značkám Možné hranice: - Cisco telefon - značkuje voip vysokou prioritou, maže značky provozu z PC - Access switch - můžeme značkovat na access sw, má-li podporu QoS - Distribution switch - značkujeme až na distribučním switchi, apokud access sw neumí QoS Auto QoS * pro detekci telefonu používá CDP => nevypínat CDP na portech pro telefony * nastavuje se per interface * platný jen tam, kde je co upřednostňovat, nemusí být tedy zapnutý všude * pozor na správně nastavený **bandwidth** na sér.linkách (router rychlost linky sám nepozná) * používá LLQ Konfigurace access portu na switchi: >conf t >interface fastethernet 0/3 >auto qos voip cisco-phone >nebo >auto qos voip cisco-softphone non-cisco telefony: >auto qos trust zrušení: >no auto qos voip Konfigurace switch uplinku či portu na routeru: >conf t >interface fa 0/1 >auto qos voip trust ===== Directory ===== (tel. seznam) ===== Call Forwarding ===== (přesměrování) ===== Call Transfer ===== (přepojování) ===== Call Park ===== (parkování) ===== Call Pickup ===== ===== Hunt Group ===== ===== Intercom ===== ===== Paging ===== ===== After-hours call blocking ===== ===== CDR - Call detail records, Call accounting ===== ===== MOH - Music on hold ===== ===== SNR - Single number reach ===== ===== CME Extension mobility ===== +softkey template ===== CME MVA Mobile voice access IOS GW ===== --- ===== SIP trunk ===== voice service voip allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip redirect ip2ip fax protocol pass-through g711alaw h323 h225 timeout t302 5 h225 signal overlap call start slow sip bind control source-interface GigabitEthernet0/1 bind media source-interface GigabitEthernet0/1 no call service stop ! voice translation-rule 1 rule 1 /^0/ // ! voice translation-rule 2 rule 1 /\(...\)/ /326211\1/ ! voice translation-profile 1 translate calling 2 translate called 1 ! dial-peer voice 1 voip translation-profile outgoing 1 destination-pattern ^0.T session protocol sipv2 session target ipv4:x.x.x.x voice-class codec 1 ip qos dscp cs3 signaling no vad ! ! sip-ua credentials username user password pass123 realm 213.168.186.130 authentication username user password pass retry invite 2 retry register 10 timers connect 100 registrar ipv4:x.x.x.x expires 3600 sip-server ipv4:x.x.x.x host-registrar ! telephony-service no auto-reg-ephone max-ephones 110 max-dn 400 ip source-address 192.168.100.1 port 2000 system message Company-name cnf-file location flash: cnf-file perphone load 7925 CP7925G-1.4.3.4.loads load ata ATA030204SCCP090202A.zup load 6921 SCCP69xx.9-1-1-0.loads time-zone 23 time-format 24 date-format dd-mm-yy keepalive 3000 auxiliary 3000 max-conferences 8 gain -6 call-forward pattern .T web admin system name admin secret xxxxxxx dn-webedit time-webedit transfer-system full-consult transfer-pattern .T secondary-dialtone 0 create cnf-files version-stamp Jan 01 2002 00:00:00 ! ! ephone-dn 10 number 410 secondary 326211410 no-reg both label 410 description Telefon name Telefon ! ephone 10 mac-address 70CA.9B99.8943 max-calls-per-button 2 type 6921 button 1:10 ===== SIP phones ===== voice service voip allow-connections sip to sip sip bind control source-interface GigabitEthernet0/1 bind media source-interface GigabitEthernet0/1 registrar server expires max 1200 min 300 ! voice register global mode cme source-address 10.3.5.2 port 5060 max-dn 10 max-pool 5 (authenticate register) authenticate realm domain.com create profile ! voice register dn 1 number 438 name telefon label 438 no-reg ! voice register pool 1 id mac AAAA.BBBB.CCCC number 1 dn 1 dtmf-relay sip-notify username username password pass123 codec g711ulaw ! CME#conf t Enter configuration commands, one per line. End with CNTL/Z. CME(config)#voice register global CME(config-register-global)#create profile CME(config-register-global)#restart show sip-ua status registrar show voice register dial-peer show voice register pool 1 debug voice register events debug voice register error debug ccsip messages ===== SIP Diversion ===== Příklad úpravy hlavičky SIP Diversion od CUCM na CUBE prvku. (Trunk mezi CUBE a CUCM je SIPový) Pozor CUCM defaultně při přesměrování hovorů nepoužívá SIP diversion hlavičku, je potřeba to na něm zapnout - dalším zádrhelem může být poskytovatel SIP trunku, který musí tuto funkci podporovat. voice service voip allow-connections h323 to h323 allow-connections h323 to sip allow-connections sip to h323 allow-connections sip to sip redirect ip2ip fax protocol pass-through g711alaw h323 no call service stop sip sip-profiles 1 ! voice class sip-profiles 1 request INVITE sip-header Diversion modify "(.*)" "\3" ===== COR - Class of restriction ===== Slouží k definování oprávnění volání. Funguje na principu "zámků" a "klíčenek". Definuji si seznam tagů (směrů): dial-peer cor custom name INTERNAL name EMER name LOCAL name LONGDIST Definuji seznam "zámků" pro OUTGOING směr: dial-peer cor list EMER-CALL member EMER ! dial-peer cor list LOCAL-CALL member LOCAL ! dial-peer cor list LONGDIST-CALL member LONGDIST ! dial-peer cor list INTERNAL-CALL member INTERNAL Definuji "klíčenky" pro INCOMING směr: dial-peer cor list EMER member EMER ! dial-peer cor list EMER-INT member INTERNAL member EMER ! dial-peer cor list EMER-INT-LOCAL member INTERNAL member EMER member LOCAL ! dial-peer cor list EMER-INT-LOCAL-LONGDIST member INTERNAL member EMER member LOCAL member LONGDIST Aplikuji OUTGOING pravidla (zámky) na dial-peery: dial-peer voice 1 voip corlist outgoing LONGDIST-CALL description <--- International + other ---> translation-profile outgoing 1 destination-pattern ^0.T session protocol sipv2 session target ipv4:213.168.186.130 voice-class codec 1 dtmf-relay sip-notify rtp-nte no vad ! dial-peer voice 2 voip corlist outgoing LOCAL-CALL description <--- Czech Republic ---> translation-profile outgoing 1 destination-pattern ^0[2-9]........ session protocol sipv2 session target ipv4:213.168.186.130 voice-class codec 1 dtmf-relay sip-notify rtp-nte no vad ! dial-peer voice 3 voip corlist outgoing INTERNAL-CALL description <--- Employes mobilephones ---> translation-profile outgoing 1 destination-pattern ^07207486.. session protocol sipv2 session target ipv4:213.168.186.130 voice-class codec 1 dtmf-relay sip-notify rtp-nte no vad ! dial-peer voice 4 voip corlist outgoing EMER-CALL description <--- Emergency ---> translation-profile outgoing 1 destination-pattern ^015. session protocol sipv2 session target ipv4:213.168.186.130 voice-class codec 1 dtmf-relay sip-notify rtp-nte no vad ! dial-peer voice 5 voip corlist outgoing EMER-CALL description <--- Emergency (universal) ---> translation-profile outgoing 1 destination-pattern ^0112 session protocol sipv2 session target ipv4:213.168.186.130 voice-class codec 1 dtmf-relay sip-notify rtp-nte no vad Aplikuji INCOMING pravidla (klíčenky) na telefonní čísla DNs: ephone-dn 81 dual-line number 680 secondary 373702680 no-reg both name 01 TestovaciTelefon corlist incoming EMER-INT ! Není-li na tel.čísle aplikován incoming COR list, je to jako by měl generální klíč, žádný outgoing list ho nezastaví!!!