CME – Traitement des Appels

Je vous propose aujourd’hui d’étudier en détail comment CME traite les appels. Lors-ce que le routeur reçoit un appel, comment le traite-t-il de manière à ce que cet appel arrive à destination ?

Nous pouvons comparer cela à la façon dont un routeur route les paquets à l’aide de sa table de routage.

 

1) Sélection du Dial-Peer à la composition des numéros

 

Lors-ce que vous composez un numéro sur votre poste, le routeur recherche un pattern de destination correspondant.

Par exemple, si vous composez le 01 02 03 04 05, à chaque appui de touche, le routeur fait une recherche.

Au début il recherche, 0, puis 01, puis 012, etc…

 

Il y a deux règles dans cette recherche :

  • Le pattern de destination le plus spécifique gagne
  • Si une correspondance est trouvée, le routeur arrête de chercher et envoie l’appel

 

Reprenons l’exemple de l’article précédent en le complétant.

CCNAV - S2.5 - Image-01

R1(config)#dial-peer voice 200 voip
R1(config-dial-peer)#destination-pattern 2..
R1(config-dial-peer)#codec g711alaw
R1(config-dial-peer)#session target ipv4:172.16.0.20

R1(config)#dial-peer voice 210 voip
R1(config-dial-peer)#destination-pattern 21.
R1(config-dial-peer)#codec g711alaw
R1(config-dial-peer)#session target ipv4:172.16.0.20

 

Dans cet exemple, si 110 compose le 210, c’est le Dial-Peer 210 qui l’emporte. En effet, sur les 2 Dial-Peer disponibles, c’est le 210 qui est le plus spécifique.

 

Maintenant que se passe-t-il si nous ajoutons le Dial-Peer suivant ?

R1(config)#dial-peer voice 21 voip
R1(config-dial-peer)#destination-pattern 21
R1(config-dial-peer)#codec g711alaw
R1(config-dial-peer)#session target ipv4:172.16.0.20

 

Et bien si 110 compose le 210, c’est le Dial-Peer 21 qui gagne.

 

Pour vérifier ce comportement, vous pouvez mettre en place une infra de test.

 

Voici le schéma et les configurations.

CCNAV - S2.5 - Image-01

---- R1 ----

telephony-service
max-ephones 100
max-dn 100
ip source-address 10.0.1.254
auto-reg-ephone
create cnf-files

ephone-dn 1 dual-line
number 110

ephone 1
mac-address 000C.29E3.87A3
type CIPC
button 1:1

dial-peer voice 200 voip
destination-pattern 2..
codec g711alaw
session target ipv4:172.16.0.20

dial-peer voice 210 voip
destination-pattern 21.
codec g711alaw
session target ipv4:172.16.0.20


---- R2 ----

telephony-service
max-ephones 100
max-dn 100
ip source-address 10.0.2.254
auto-reg-ephone
create cnf-files

ephone-dn 1 dual-line
number 210

ephone 1
mac-address 0050.56C0.0002
type CIPC
button 1:1

dial-peer voice 100 voip
destination-pattern 1..
codec g711alaw
session target ipv4:172.16.0.10

 

Vous pouvez à présent constater que les appels transitent entre les deux routeurs. 110 peut appeler 210.

 

Mais comment savoir quel Dial-Peer R1 utilise pour router les appels vers 210 ?

Il y a 2 solutions :

  • Modifier l’IP du Dial-Peer 210 (ce qui aura pour effet de ne pas router l’appel s’il est utilisé)
  • Utiliser la commande show dialplan number 210

 

Si maintenant vous ajoutez le Dial-Peer 21 que nous avons vu précédemment, vous verrez que 110 ne peut plus appeler 210.

Le résultat sur le poste est le suivant :

CCNAV - S2.5 - Image-02

Quand le poste compose le numéro, il envoie les numéros un par un au routeur, c’est-à-dire 2 puis 1 puis 0.

Sauf que quand le routeur reçoit 2 puis 1, il est capable de router l’appel grâce au Dial-Peer 21. Le chiffre 0 n’est donc jamais envoyé au routeur car l’appel est routé avant.

Considérons à présent la topologie suivante.

CCNAV - S2.5 - Image-03

Comment faire pour configurer R1 pour qu’il soit capable de router les appels vers 210 et vers 21.

 

Pour cela, vous pouvez configurer le Dial-Peer 21 comme ceci.

R1(config)#dial-peer voice 21 voip
R1(config-dial-peer)#destination-pattern 21T
R1(config-dial-peer)#codec g711alaw
R1(config-dial-peer)#session target ipv4:172.16.1.30

 

De cette manière, le Dial-Peer 21 est moins précis que le 210.

Les appels vers 210 vont donc passer par le Dial-Peer 210.

Quant aux appels pour 21, ils seront pris en charge par le Dial-Peer 21, après que le Timer de 10s soit passé (dû à l’utilisation du Wildcard T). Sinon, pour éviter le Timer, il faut appuyer sur # après avoir composé le 21.

Pour rappel, le Wildcard T peut être 0 ou plusieurs chiffres (pour un numéro de 32 chiffres max).

C’est pour cela que le Dial-Peer 21 prend en charge les appels vers 21. Car si l’on compose le 21, le pattern 21T est plus précis que 21.

 

2) Sélection des Dial-Peer entrant et sortant

 

Continuons notre étude du fonctionnement du CME par la sélection des Dial-Peers entrant et sortant.

Comme nous l’avons vu, pour router un appel, le routeur a besoin d’un Dial-Peer.

Selon si l’appel entre dans le routeur ou en sort, le comportement ne sera pas la même.

 

Dans le Dial-Peer il peut y avoir différentes configuration pour le routage de l’appel.

Nous avons déjà vu les suivantes :

  • destination-pattern
  • session target
  • port

Mais il y a aussi les commandes incoming called-number et answer-address que nous n’avons pas vu.

 

Dial-Peer Sortant

 

Commençons pas la sélection du Dial-Peer sortant, car c’est la plus simple.

 

Pour sélectionner le Dial-Peer sortant, le routeur se base simplement sur les destination-patterns.

Une fois qu’il a choisi le Dial-Peer, il utilise la configuration Session Target (VoiP) ou Port (analogique et numérique) pour router l’appel.

 

Exemple en VoIP :

dial-peer voice 200 voip
destination-pattern 2..codec g711alaw
session target ipv4:172.16.0.20

 

Exemple en analogique :

dial-peer voice 200 pots
destination-pattern 2..
port 1/0/0

 

Dial-Peer entrant

 

C’est ici que les choses se corsent. La sélection du Dial-Peer entrant est plus compliquée, mais finalement très simple à comprendre.

Il y a 5 méthodes pour la sélection du Dial-Peer entrant. Le routeur les parcours dans l’ordre.

1 – Match le numéro appelé (DNIS) avec la commande incoming called-number

2 – Match le numéro appelant (ANI) avec la commande answer-address

3 – Match le numéro appelant (ANI) avec la commande destination-pattern

4 – Match un Dial-Peer POTS entrant avec la commande port

5 – Si toujours pas de match, utilisation du Dial-Peer 0

 

Dans les exemples que nous avons vus jusqu’ici, nous n’avons jamais utilisé les commandes incoming called-number et answer-address.

 

Donc finalement, la sélection du Dial-Peer entrant est très simple.

 

Exemple

 

Pour bien comprendre la sélection des Dial-Peers entrants et sortant voyons ensemble un exemple.

Prenons cet exemple.

CCNAV - S2.4 - Image-08

Considérons un appel depuis 110 vers 210.

Premièrement l’appel arrive à R1. Pour sélectionner le Dial-Peer entrant, il utilise la méthode 4.

En effet, l’appel arrive sur un port analogique. La sélection est donc très simple, le routeur utilise le Dial-Per associé au port en question. Comme nous n’avons pas mis en place les commandes incoming called-number et answer-address et qu’un poste analogique ne fournit pas de numéro appelant, c’est la méthode 4 qui est utilisée.

 

Puis l’appel veut quitter R1. Comme nous l’avons dit, la sélection d’un Dial-Peer sortant est très simple. Il se base sur les destination-patterns. Pour joindre 210 il utilise donc le Dial-Peer 210.

 

Puis l’appel arrive à R2. Pour sélectionner le Dial-Peer entrant, R2 utilise la méthode 3.

Il va sélectionner le Dial-Peer 110.

Pourquoi ? Car nous n’avons pas configuré les commandes incoming called-number et answer-address. Par contre, comme il s’agit d’un appel VoIP, un numéro d’appelant est indiqué (ici c’est 110). Et il y a un Dial-Peer avec comme destination-patter 110.

 

Enfin, pour sortir de R2 et aller vers le poste 210, le routeur n’a pas besoin de Dial-Peer. En effet, la configuration ephone suffit.

 

Mais qu’en est-il de la méthode 5 ?

Et bien elle est utilisée si aucune autre méthode ne match. Le Dial-Peer agit comme une sorte de route par défaut. Le Dial-Peer 0 possède des paramètres par défauts qui sont inchangeables.

 

 

Tagués avec :
Publié dans Call Manager Express

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.