• Aucun résultat trouvé

Foreign eXchange Station (FXS)

Un port FXS (Foreign eXchange Station) connecte un périphérique analogique à la ligne téléphonique. Ce port fournit donc la tonalité, le courant et le voltage nécessaire au téléphone qui y est connecté. Une prise téléphonique murale est donc généralement un port FXS bien que ce soit une extension au FXS qui se situe chez l’opérateur téléphonique.

Le module qui a été utilisé dans ce lab est une VIC2-2FXS. C’est un module qui possède deux ports FXS. Il existe une ancienne version de ce module (VIC-2FXS) mais celle-ci n’est pas compatibles avec le routeur Cisco 2801 que j’ai utilisé.

Figure 6-2 : VIC-2FXS

Foreign eXchange Office (FXO)

Un port FXO (Foreign eXchange Office) représente au contraire le téléphone qui est connecté au port FXS. Il en reçoit donc la tonalité. Ce type de port est utilisé en VoIP pour connecter un réseau VoIP au réseau téléphonique classique afin de pouvoir faire des appels vers l’extérieur. Les téléphones et les faxs font parties des FXO.

J’ai utilisé une VIC2-2FXO en tant que carte FXO. Tout comme la VIC2-2FXS, il existe une ancienne version de la carte qui n’est pas compatible avec le matériel que j’ai utilisé.

Elle possède aussi deux ports qui sont quant à eux deux ports FXO.

Module VIC2-2FXS Installation du Module

L’installation de la carte en soi n’est pas très compliquée, il suffit simplement de l’insérer dans un des quatre slots du routeur. Il ne faut pas oublier d’éteindre le routeur avant car ces cartes ne sont pas hot-plug comme le sont les modules pour Cisco 6500 par exemple.

Après avoir redémarré le routeur, je me suis vite rendu compte que les deux ports n’étaient pas présents comme ils l’auraient du. En effet, il a fallu rajouter un module PVDM au routeur. Ce type de module – interne – contient des DSPs. Sans entrer dans les détails, les DSPs (Digital Signal Processing) gèrent tout ce qui concerne le traitement de signaux audio et/ou vidéos : échantillonnage, compression, reconnaissance vocale, etc. C’est donc grâce à ce module que la carte FXS est capable d’interagir avec le réseau VoIP.

Le PVDM utilisé est un PVDM2-32, c'est-à-dire qu’il peut supporter 32 canaux vocaux.

Le codec utilisé par ce module est le G.711. Ce module contient deux DSPs.

Après l’insertion du module PVDM, les deux ports FXS sont reconnus par l’IOS. Les commandes show version et show diag nous le confirment :

rogue-cme#show version [...]

Cisco 2801 (revision 6.0) with 119808K/11264K bytes of memory.

Processor board ID FHK1106F1AX 2 FastEthernet interfaces 2 Voice FXS interfaces 2 DSPs, 32 Voice resources

DRAM configuration is 64 bits wide with parity disabled.

191K bytes of NVRAM.

500472K bytes of ATA CompactFlash (Read/Write) [...]

rogue-cme#show diag [...]

PVDM Slot 0:

32-channel (G.711) Voice/Fax PVDMII DSP SIMM PVDM daughter card Hardware Revision : 4.0

[...]

Product (FRU) Number : PVDM2-32 [...]

VIC Slot 0:

2nd generation - FXS Voice daughter card (2 port) Hardware Revision : 3.1

[...]

Product (FRU) Number : VIC2-2FXS [...]

Configuration du Module

Par défaut, les ports FXS n’interagissent pas avec UC Manager Express. Pour qu’ils puissent être contrôlés par SCCP, ces ports doivent utiliser l’application STC (SCCP

Telephony Control). Cette application doit être liée à un ccm-group – un groupe UC Manager Express.

Il faut donc premièrement définir ce groupe :

rogue-cme(config)#sccp local FastEthernet0/1

rogue-cme(config)#sccp ccm 172.19.13.254 identifier 1 version 7.0 rogue-cme(config)#sccp

Les deux premières lignes sont utilisées pour identifier un UCME. Etant donné qu’il tourne sur le routeur même, nous indiquons l’adresse du routeur. Le paramètre identifier sera utile lors de la création du groupe pour identifier le UCME. La commande sccp active tout simplement SCCP.

rogue-cme(config)#sccp ccm group 1

rogue-cme(config-sccp-ccm)#associate ccm 1 priority 1

Nous créons ensuite le groupe et y rajoutons le UCME défini auparavant. Une priorité de 1 à 4 peut être entrée, la priorité 1 étant la plus importante.

Maintenant que nous avons notre groupe UCME, nous pouvons configurer l’application STC :

rogue-cme(config)#stcapp ccm-group 1 rogue-cme(config)#stcapp

C’est assez simple : nous associons premièrement l’application au groupe UCME que nous avons créé et ensuite nous l’activons. Maintenant que l’application STC est configurée, nous pouvons indiquer au port FXS de l’utiliser.

En réalité, nous devons tout d’abord configurer un dial-peer que nous associerons au port FXS. Nous lui dirons aussi d’utiliser STC. Ensuite nous pourrons configurer le port FXS. Créons donc le dial-peer :

rogue-cme(config)#dial-peer voice 1 pots rogue-cme(config-dial-peer)#port 0/0/0 rogue-cme(config-dial-peer)#service stcapp

L’identifiant du port peut être obtenu par la commande show voice port summary. Le type de dial-peer que nous avons créé est de type pots (Plain Old Telephony Service).

Il existe quatre types possibles : mmoip (Multimedia over IP), pots, vofr (Voice over Frame Relay) et voip (Voice over IP). UC Manager Express crée des interfaces virtuelles de type pots. Il est possible de les voir avec la même commande :

rogue-cme#show voice port summary

IN OUT

PORT CH SIG-TYPE ADMIN OPER STATUS STATUS EC

=============== == ============ ===== ==== ======== ======== ==

0/0/0 -- fxs-ls up dorm on-hook idle y 0/0/1 -- fxs-ls up dorm on-hook idle y 50/0/1 1 efxs up dorm on-hook idle y 50/0/2 1 efxs up dorm on-hook idle y

Il est intéressant de noter le type des ports virtuels créés par UCME : ils sont de type efxs (Ethernet FXS). Ces ports virtuels sont associés à des dial-peers que l’on peut également voir grâce à la commande show dial-peer voice (cette commande a été volontairement tronquée car les résultats n’étaient pas très clairs) :

rogue-cme#show dial-peer voice summary dial-peer hunt 0

AD OUT

TAG TYPE MIN OPER PREFIX DEST-PATTERN STAT PORT 1 pots up up down 0/0/0 20001 pots up up 1001$ 50/0/1 20002 pots up up 1002$ 50/0/2

Nous y retrouvons le dial-peer que nous avons configuré ainsi que les deux dial-peers que UCME a généré. Pour en revenir à la configuration de notre FXS, nous pouvons maintenant configurer le port FXS :

rogue-cme(config)#voice-port 0/0/0

rogue-cme(config-voiceport)#ring frequency 50 rogue-cme(config-voiceport)#cptone BE

rogue-cme(config-voiceport)#caller-id enable

Nous y configurons d’abord la fréquence de la sonnerie. Deux choix sont possibles : 25 ou 50 Hertz. Cette fréquence doit être la même que celle utilisée par le téléphone analogique, sinon il pourrait ne pas sonner. La commande cptone permet de fixer la locale de la tonalité ; le paramètre est le code ISO 3166 du pays. La dernière commande permet d’activer l’affichage du caller-id.

La configuration du port FXS est terminée. Cependant, aucun DN n’y est associé. Tout comme les téléphones IP, il y a deux façons d’assigner un DN à un téléphone : la méthode dynamique ou la méthode statique.

La méthode dynamique est la plus simple des deux : elle consiste à utiliser la commande auto assign que nous avons vue auparavant. Il est possible de n’assigner des DNs qu’aux téléphones analogiques en spécifiant le type anl.

rogue-cme(config)#telephony-service

rogue-cme(config-telephony)#auto assign 4 to 5 type anl

La méthode statique est beaucoup moins évidente à mettre en place. Elle est néanmoins nécessaire lorsque l’on souhaite assigner un DN spécifique au téléphone. Rappelons nous qu’un ephone est identifié par son adresse MAC. Cependant, un téléphone analogique n’a pas d’adresse MAC ! Lors de l’assignation automatique, un algorithme particulier est utilisé pour identifier un port FXS. C’est ce même algorithme qu’il faut utiliser pour attribuer un DN de façon statique.

Calcul de l’Adresse MAC d’un Port FXS

Cet algorithme se base sur l’adresse MAC de l’interface du UC Manager Express local.

Lors de la création du groupe UCME, nous avons défini cette interface comme étant FastEthernet0/1. Parmi les douze chiffres composant l’adresse MAC, seuls les neuf chiffres les plus à droite sont retenus. Ces derniers composent les neuf premiers chiffres de l’adresse MAC du port FXS.

Figure 6-3 : calcul de la MAC d’un port FXS

Les trois derniers chiffrent sont calculés à partir de l’identifiant du port FXS. Dans cet exemple, nous utilisons le port 0/0/0 où chaque chiffre représente respectivement le numéro de slot, le numéro de sous-unité et finalement le numéro de port. Ces valeurs doivent être converties en binaire. Le numéro de slot occupera trois chiffres, le numéro de sous-unité deux chiffres et le numéro de port sept chiffres. La valeur binaire obtenue doit ensuite être convertie en hexadécimal afin d’avoir les trois chiffres manquants.

Par exemple, pour le port 0/2/1 :

Figure 6-4 : calcul de la MAC d’un port FXS (suite)

Dans notre cas, le port utilisé est le port 0/0/0. Sans trop de calculs, on peut facilement déduire que les trois derniers chiffres seront 000. L’adresse MAC finale de notre carte FXS est donc AE23.E600.B000. Nous pouvons comparer cette valeur avec celle obtenue par l’assignation automatique. La commande show ephone anl fera l’affaire :

rogue-cme#show ephone anl

ephone-5[4] Mac:AE23.E600.B000 TCP socket:[1] activeLine:0 whisperLine:0 REGISTERED in SCCP ver 17/12 max_streams=1

mediaActive:0 whisper_mediaActive:0 startMedia:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0 caps:8

IP:172.19.13.254 17468 SCCP Gateway (AN) keepalive 297 max_line 1 available_line 1

port 0/0/0

button 1: dn 4 number 1004 CH1 IDLE privacy button is enabled

Preferred Codec: g711ulaw

Finalement, nous pouvons vérifier que l’application STC est correctement configurée grâce à la commande show stcapp device summary :

rogue-cme#show stcapp device summary Total Devices: 1

Total Calls in Progress: 0 Total Call Legs in Use: 0

Port Device Device Call Dev Directory Dev Identifier Name State State Type Number Cntl --- --- --- --- --- --- ---- 0/0/0 AN1AE23E600B000 IS IDLE ALG 1004 CME

Module VIC2-2FXO

Comme dit ci-haut, un port FXO permet de connecter notre système VoIP au réseau téléphonique classique. L’intérêt réside dans le fait que l’on profite d’un système VoIP avec un grand nombre de fonctionnalités et qu’à coté de cela, on puisse faire des appels vers l’extérieur, comme avec un téléphone normal.

L’installation de la carte FXO au sein du routeur n’a pas posé de problème particulier.

Elle a directement été reconnue comme le montre le show version suivant :

rogue-cme#show version [...]

Cisco 2801 (revision 6.0) with 119808K/11264K bytes of memory.

Processor board ID FHK1106F1AX 2 FastEthernet interfaces 2 Voice FX0 interfaces

2 DSPs, 32 Voice resources

DRAM configuration is 64 bits wide with parity disabled.

191K bytes of NVRAM.

500472K bytes of ATA CompactFlash (Read/Write) [...]

Configuration du Module

Tout comme le module FXS, il y a deux éléments à configurer : le port et un ou plusieurs dial-peers. Commençons par configurer le port. Sa configuration est similaire à celle du port FXS :

rogue-cme(config)#voice-port 0/2/0 rogue-cme(config-voiceport)#cptone BE

rogue-cme(config-voiceport)#caller-id enable

Dans ce cas-ci, nous ne configurons pas la fréquence de la sonnerie ; c’est le port FXO qui reçoit la tonalité. Nous créons ensuite un dial-peer pour permettre à nos utilisateurs d’appeler l’extérieur :

rogue-cme(config)#dial-peer voice 999 pots rogue-cme(config-dial-peer)#port 0/2/0

rogue-cme(config-dial-peer)#destination-pattern 9T rogue-cme(config-dial-peer)#prefix 0

La première commande nous est déjà familière, elle indique le port à utiliser. Notre carte FXO est installée dans le deuxième emplacement. Nous reparlerons du destination-pattern un peu plus tard. La commande prefix indique que lorsqu’un appel sort par le port FXO, le chiffre 0 doit être placé devant le numéro composé. Les lignes analogiques de Cisco sont configurées ainsi : un appel extérieur doit toujours commencer par un 0.

Revenons à notre destination-pattern. Lorsqu’un appel est émis, UC Manager Express parcourt le destination-pattern de tous les dial-peers pour voir si l’un d’entre eux correspond. Ces destination-patterns sont basés sur les expressions régulières (RegExp), il est donc possible d’y avoir plusieurs correspondances. Dans ce cas, le destination-pattern le plus précis l’emporte. Ce fonctionnement fait fortement penser à celui de la table de routage : si un paquet vers 192.168.1.200 doit être routé et qu’il y a deux routes – 192.168.1.0/24 et 192.168.1.128/25, c’est la route la plus précise (la deuxième dans ce cas) qui est utilisée.

Le tableau qui suit reprend les caractères qui peuvent être utilisés dans un destination-pattern :

Symbole Description

. Remplace un caractère

[] Indique un fourchette de caractères possibles () Indique un pattern. Est utilisé avec ?, % ou +

? Indique que le chiffre précédent peut être trouvé 0 ou 1 fois

% Le chiffre précédent peut être trouvé 0 ou plusieurs fois (* en regexp) + Indique que le chiffre précédent est présent 1 ou plusieurs fois

T Attend un certain timeout et récupère tous les chiffres

$ Indique la fin d’un numéro Voici quelques exemples :

Pattern Explication

1001$ Exactement le numéro 1001 9T Un numéro qui commence par 9

12[3-5].% Le numéro doit commencer par 12, ensuite soit le chiffre 3, 4 ou 5 et finalement n’importe quel caractère, zéro ou plusieurs fois.

(23)+ 23, 2323, 232323, 23232323, autant de fois 23

Tout numéro composé qui commence par le chiffre 9 sera automatiquement transféré vers le port 0/2/0, c'est-à-dire notre carte FXO. Le chiffre 0 sera ajouté au début du numéro. Ainsi, si le numéro 90478123456 est composé, le numéro qui sera transmis au port FXO est le 00478123456.

Ceci s’applique pour les appels sortants. Pour ce qui concerne les appels entrants, c’est la commande connection plar qui doit être utilisée. Cette commande s’applique directement sur le port :

rogue-cme(config)#voice-port 0/2/0

rogue-cme(config-voiceport)#connection plar opx 1001

Dans ce cas, tout appel entrant est redirigé vers le numéro interne 1001. Si plusieurs numéros sont disponibles, il est possible d’utiliser le Direct Inward Dialing (DID). Ce procédé utilise une partie du numéro pour identifier la personne qui doit être appelée en interne. Malheureusement, je n’ai pas pu tester cette fonctionnalité.

Feature Access Code (FAC)

Cette fonctionnalité n’est pas propre aux téléphones analogiques mais c’est dans ce domaine que j’en vois le plus l’utilité. Les Feature Access Codes (FAC) sont tous simplement des combinaisons de touches qui permettent d’effectuer telle ou telle action.

Par exemple, si un utilisateur compose la combinaison **8 sur son téléphone, il rappelle automatiquement le dernier numéro composé. C’est donc très utile pour les téléphones analogiques qui ne disposent pas de touches supplémentaires prévues à cet effet (softkeys) comme les téléphones IP.

Il est très simple d’activer les FACs :

rogue-cme(config-telephony)#fac standard

La commande qui suit affiche les FACs qui sont disponibles :

rogue-cme#show telephony-service fac telephony-service fac standard callfwd all **1

callfwd cancel **2 pickup local **3 pickup group **4 pickup direct **5 park **6

dnd **7 redial **8 voicemail **9

ephone-hunt join *3 ephone-hunt cancel #3 ephone-hunt hlog *4

ephone-hunt hlog-phone *5 trnsfvm *6

dpark-retrieval *0

Il est aussi possible de créer ses propres FACs. Il faut cependant désactiver le mode standard. La commande devient alors :

rogue-cme(config-telephony)#fac custom feature code

Par exemple, si l’on veut que le FAC pour le rappel soit le **1, il suffit d’entrer :

rogue-cme(config-telephony)#no fac standard fac standard has been disabled!

rogue-cme(config-telephony)#fac custom redial **1 fac redial code has been configurated to **1!

Pour vérifier que le système ait bien pris nos modifications en compte, on peut réafficher les FACs disponibles :

rogue-cme#show telephony-service fac telephony-service fac custom

redial **1

Documents relatifs