Utilisation des routeurs Cisco

2007-04-10

Switzernet Sàrl

 

 

 

Exemples/exercices de configuration. 1

A. Connecter un appareil BudgeTone sur les différents serveurs. 1

B. Configuration des dial-peers sur le routeur Cisco. 2

Routeur cisco entrant 3

Retrouver des informations sur les appels depuis le routeur 4

Exemples de connexions. 8

Choix du codec utilisé pour la communication. 10

Divers. 11

Ports utilisés par le protocole SIP. 11

Serveur Syslog. 11

 

Exemples/exercices de configuration

A. Connecter un appareil BudgeTone sur les différents serveurs

Seule l’adresse IP du serveur SIP change. Il faut aussi que le numéro de compte (4121550xxxx) soit déclaré sur le serveur, et que le mot de passe SIP corresponde.

 

1)       Swiss PortaOne (128.179.67.35)

 

 

2)       Swiss Asterisk (128.179.67.78)

 

 

B. Configuration des dial-peers sur le routeur Cisco

Sur le routeur, les dial-peers servent à indiquer la destination pour un appel (entrant ou sortant) en fonction du numéro composé.

Se connecter au routeur ("telnet <ip_routeur>") et l’activer ("enable"). Le Cisco reconnaît les abréviations non-ambigües.

 

On affiche la configuration courante avec la commande "sh run" (barre espace ou touche entrée pour faire défiler les lignes) :

 

 

Pour éditer la configuration, on doit d’abord passer en mode de configuration :

# conf t

 

Dans ce mode, on entre les lignes de la configuration comme des commandes (une par ligne). Par exemple ici on va ajouter un nouveau dial peer, mais la modification de configurations existantes se passe de la même façon.

 

On commence par créer (ou entrer dedans si elle existe déjà, mêmes commandes dans les deux cas) la section du nouveau dial-peer (308) :

 

dial-peer voice 308 voip

 

Puis on peut créer ou modifier la configuration (une ligne puis Enter = une ligne de configuration du Cisco) :

 

destination-pattern 41215500308         le numéro appelé pour ce dial-peer

session protocol sipv2                 le protocole utilisé

session target ipv4:128.179.67.78 l’adresse IP du serveur cible

 

Et enfin on retourne au mode normal :

 

exit (ou Ctrl-Z pour sortir directement du mode de configuration)

 

Les modifications seront perdues au prochain redémarrage du routeur, sauf si on les sauve explicitement avec la commande "write memory".

 

Si on veut effacer une configuration existante, on utilise les mêmes commandes, mais précédées de "no". Par exemple pour supprimer le paramètre destination pattern :

 

no destination-pattern

Routeur cisco entrant

 

 

Le dial-peer 444 redirige tous les appels entrants (expression régulière .T) reçus du réseau téléphonique vers le serveur SIP 128.179.67.35.

 

Pour faire des tests sur le serveur Asterisk (128.179.67.78), un second dial-peer (308) redirige les appels à destination du numéro 215500308 sur ce serveur. Ici l’indicatif international 41 est inutile, c'est sous cette forme (215500308) que nous recevons le numéro de l'opérateur. Notons que le dial-peer le plus précis prend le dessus.

 

Retrouver des informations sur les appels depuis le routeur

 

On appelle le téléphone SIP 41215500308 depuis une ligne fixe (0216939261). On utilisera ici une commande très utile sur les routeurs Cisco, qui est le "|".

 

Avec des espaces autour, cela correspond à un pipe, similairement à la commande UNIX. On l’utilise par exemple pour filtrer la sortie d’une commande, de la même façon qu’un grep. Par exemple "sh call act voi | incl PeerAd" affichera uniquement les lignes contenant PeerAd dans la sortie de "sh call act voi".

 

Sans utiliser d’espaces, le "|" est similaire à un OU. Par exemple la commande "sh call act voi | incl PeerAd|MediaIP" imprimera les lignes contenant "PeerAd" ou "MediaIP"

 

1)       Appels actifs (ne pas raccrocher) sur le routeur entrant :

 

a)      Identifier notre appel

 

# sh call act voi | incl PeerAd

 

PeerAddress=021646XXXX

PeerAddress=4121550XXXX

PeerAddress=076376XXXX

PeerAddress=4121550XXXX

PeerAddress=0216939261

PeerAddress=41215500308

 

On affiche simplement la liste de tous les appels actifs.

 

b)      Trouver sur quel serveur transite le média (càd la voix)

 

# sh call act voi | incl PeerAd|MediaIP

 

PeerAddress=021646XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=076376XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=0216939261

PeerAddress=41215500308

RemoteMediaIPAddress=128.179.67.78

PeerAddress=076497XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=0.0.0.0

 

On voit que notre appel passe bien par le serveur Asterisk, alors que les autres numéros sont dirigés sur le serveur PortaOne.

 

2)       Utiliser l’historique

 

Pour les appels émis depuis le réseau classique (i.e. Swisscom, …), on commence toujours sur le serveur entrant.

 

a)      Afficher le numéro des 5 derniers appels passés (deux numéros par appel : appelant et appelé) :

 

# sh call hist voi last 10 | incl PeerAd

 

PeerAddress=003332672XXXX

PeerAddress=4121550XXXX

PeerAddress=076462XXXX

PeerAddress=4121550XXXX

PeerAddress=

PeerAddress=4121550XXXX

PeerAddress=076497XXXX

PeerAddress=4121550XXXX

PeerAddress=0216939261

PeerAddress=41215500308

 

b)      Retrouver la durée des appels passés :

 

# sh call hist voi last 10 | incl PeerAd|CallDuration

 

PeerAddress=076462XXXX

CallDuration=00:01:14 sec

PeerAddress=4121550XXXX

CallDuration=00:01:14 sec

PeerAddress=

CallDuration=00:00:00 sec

PeerAddress=4121550XXXX

CallDuration=00:00:00 sec

PeerAddress=076497XXXX

CallDuration=00:00:00 sec

PeerAddress=4121550XXXX

CallDuration=00:00:00 sec

PeerAddress=0216939261

CallDuration=00:01:06 sec

PeerAddress=41215500308

CallDuration=00:01:06 sec

PeerAddress=027932XXXX

CallDuration=00:00:00 sec

PeerAddress=4121550XXXX

CallDuration=00:00:00 sec

 

c)       Retrouver le serveur de média :

 

# sh call hist voi last 10 | incl PeerAd|MediaIP

 

PeerAddress=076462XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=

PeerAddress=4121550XXXX

RemoteMediaIPAddress=0.0.0.0

PeerAddress=076497XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=0.0.0.0

PeerAddress=0216939261

PeerAddress=41215500308

RemoteMediaIPAddress=128.179.67.78

PeerAddress=027932XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=0.0.0.0

 

Dans ce cas c’est bien notre serveur Asterisk.

 

d)      Retrouver la "Signalling IP" de l’appel :

 

# sh call hist voi last 10 | incl PeerAd|SignallingIP

 

PeerAddress=

PeerAddress=4121550XXXX

RemoteSignallingIPAddress=128.179.67.35

PeerAddress=076497XXXX

PeerAddress=4121550XXXX

RemoteSignallingIPAddress=128.179.67.35

PeerAddress=0216939261

PeerAddress=41215500308

RemoteSignallingIPAddress=128.179.67.78

PeerAddress=027932XXXX

PeerAddress=4121550XXXX

RemoteSignallingIPAddress=128.179.67.35

PeerAddress=076497XXXX

PeerAddress=4121550XXXX

RemoteSignallingIPAddress=128.179.67.35

 

On cherche ici à connaître le serveur qui s’occupe de la signalisation SIP. Dans ce cas, c’est toujours le serveur Asterisk.

 

e)      Retrouver les dial-peers qui ont traité l’appel :

 

# sh call hist voi last 10 | incl PeerAd|PeerId

 

PeerAddress=076497XXXX

PeerId=111

PeerAddress=4121550XXXX

PeerId=444

PeerAddress=0216939261

PeerId=111

PeerAddress=41215500308

PeerId=308

PeerAddress=027932XXXX

PeerId=111

PeerAddress=4121550XXXX

PeerId=444

PeerAddress=076497XXXX

PeerId=111

PeerAddress=4121550XXXX

PeerId=444

PeerAddress=4121550XXXX

PeerId=444

PeerAddress=021646XXXX

PeerId=111

 

On voit que c’est bien le dial-peer 308 défini plus haut qui a été utilisé en sortie du routeur.

 

3)       Appels sortants sur le routeur 1 :

 

#sh call active voice | include PeerAd|MediaIP

 

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=26466XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=84880XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=24485XXXX

PeerAddress=021327XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=22321XXXX

 

4)       Appels sortants sur le routeur 2 :

 

# sh call active voice | include PeerAd|MediaIP

 

PeerAddress=4121550XXXX

RemoteMediaIPAddress=66.234.138.73

PeerAddress=32861XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=66.234.138.73

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=21316XXXX

PeerAddress=78719XXXX

PeerAddress=4121550XXXX

RemoteMediaIPAddress=128.179.67.35

PeerAddress=21802XXXX

 

Exemples de connexions

1)       Appel d’un téléphone externe (par exemple Swisscom) vers un appareil SIP du serveur Asterisk :

 

 

En fonction de sa destination, l’appel est automatiquement dirigé vers le bon routeur par le routage téléphonique. Pour être dirigé ensuite sur le serveur Asterisk, on doit définir un "dial peer" sur le routeur :

 

!

dial-peer voice 308 voip

 destination-pattern 41215500308

 session protocol sipv2

 session target ipv4:128.179.67.78

!

 

Ici, on redirige spécifiquement le numéro 41215500308 vers le serveur. Dans un cas plus réel, on utilisera une expression régulière, comme "4121550.T", qui correspond à tous les numéros du type 4121550*. Si plusieurs règles s’appliquent, le routeur choisit la plus précise.

 

Du côté du serveur Asterisk, le téléphone SIP doit être correctement ajouté dans les extensions, et avoir une route entrante correspondante (voir le howto pour Trixbox).

 

2)       Appel d’un téléphone externe (par exemple Swisscom) vers un appareil SIP du serveur PortaOne :

 

 

L’appel passe par le même routeur que précédemment, on doit uniquement changer l’adresse IP de destination du dial peer :

 

!

dial-peer voice 308 voip

 destination-pattern 41215500308

 session protocol sipv2

 session target ipv4:128.179.67.35

!

 

Le serveur PortaOne doit aussi être configuré pour accepter l’appel.

 

3)       Appel d’un téléphone branché sur le routeur Cisco (128.179.67.122) vers un appareil SIP du serveur Asterisk :

 

Le routeur possède des connexions analogiques, qui permettent de brancher directement un téléphone dessus.

 

 

Dans ce cas, le routeur doit être configuré pour router l’appel correctement :

 

!

dial-peer voice 61231 voip

 destination-pattern 141216939261

 session protocol sipv2

 session target ipv4:128.179.67.78

!

dial-peer voice 308 voip

 destination-pattern 41215500308

 session protocol sipv2

 session target ipv4:128.179.67.78

!

 

Ici on a deux destinations possibles, un téléphone SIP et un téléphone analogique. Les deux renvoient vers le serveur Asterisk (voir config Asterisk pour les indicatifs, ici on a mis 1 pour le Cisco 228).

 

On doit aussi attribuer un numéro de téléphone à l’appareil dans la configuration du routeur :

 

!

dial-peer voice 13 pots

 destination-pattern 443

 port 1/3               (la ligne est donc définie sur le port 3 du Cisco 122)

 voice-class codec 1    (ou par exemple codec g723r63)

 description texte…     ("description" signale le commentaire)

!

 

Ici on attribue le numéro 443 au téléphone analogique branché sur le port 3 du routeur. On peut ajouter une description du dial-peer, et aussi choisir les codecs utilisés, de deux façons différentes :

 

!

voice class codec 1

 codec preference 1 g729r8

 codec preference 2 g723r63

!

            Ensuite on spécifie cette classe dans le dial-peer:

      voice-class codec 1

 

codec g723r63

 

4)       Appel d’un téléphone SIP vers un appareil directement connecté au routeur :

 

 

Pour cet exemple, la configuration du routeur ne change pas.

 

Par contre dans la configuration d’Asterisk, on doit spécifier un trunk et une route sortante correspondant au routeur 128.179.67.122.

 

5)       Appel d’un téléphone SIP connecté au serveur Asterisk vers un autre téléphone SIP sur PortaOne :

 

 

Dans ce cas, l’appel se déroule de SIP à SIP, et aucune configuration n’est nécessaire sur les routeurs.

 

Il suffit que le serveur Asterisk ait un trunk et une route qui le relie au serveur PortaOne.

 

Choix du codec utilisé pour la communication

On peut spécifier la préférence du codec utilisé dans le serveur Asterisk, le routeur et directement sur le téléphone. Le serveur va s’occuper de la négociation pour trouver un codec supporté par tous les appareils.

 

Si possible, Asterisk essaie d’utiliser le même codec pour les deux correspondants, pour éviter de devoir transcoder le signal :

 

 

Si on force les deux correspondants à ne pas utiliser les mêmes codecs (par exemple uniquement g723 sur le téléphone et g729 sur le routeur Cisco), le serveur Asterisk effectue le transcodage entre les deux appels :

 

 

Mais dans ce cas la charge du serveur monte à 3-6% pour un unique appel.

 

Si en plus on interdit à Asterisk d’utiliser le codec g729, cette fois les appels n’aboutissent plus (le correspondant est vu comme occupé).

Divers

Ports utilisés par le protocole SIP

What is port 5060 and what is port 5004

 

5060: transports sip signals, TCP or UDP

5004: transports media packets (e.g. voice), UDP

 

Serveur Syslog

syslog server to use :

Kiwi Syslog Daemon

 

Download from : xxx

How to configure syslog server in BudgeTone?

How to see useful info in syslog (f.e. codec which is used for media flow)?