Module 18 - ScopTEL Logiciel PBX IP - Dépannage

Module 18 - ScopTEL Logiciel PBX IP - Dépannage

  1. Dépannage général
  2. Fichiers de journalisation
  3. Codes de réponses SIP 1XX - Codes de réponse SIP 2XX
  4. Codes de réponses SIP 3XX - Codes de réponse SIP 400-416
  5. Codes de réponses SIP 417-439 - Codes de réponse SIP 440-494
  6. Codes de réponses SIP 5XX - Codes de réponse SIP 6XX
  7. OS CLI Commande 1-3 («Commandes sur l’interface de ligne de commande »)
  8. OS CLI Commande 2-3 («Commandes sur l’interface de ligne de commande »)
  9. OS CLI Commande 3-3 («Commandes sur l’interface de ligne de commande »)
  10. Asterisk CLI Commands («Commandes sur l’interface de ligne de commande pour Asterisk »)
  11. OS CLI Commande 3-3 («Commandes sur l’interface de ligne de commande »)
  12. Asterisk CLI Commands («Commandes sur l’interface de ligne de commande pour Asterisk »)
  13. Commandes de réparation de la banque de données
  14. La réparation de MySQL prend trop de temps
  15. L’interface graphique de SCOPTEL est trop lente
  16. L’interface graphique de SCOPTEL ne peut pas redémarrer
  17. Erreur fatale de l’interface graphique de SCOPTEL et « Dead Call Processing » (traitement des appels morts)
  18. Débogage de l’échec d’authentification 1-3
  19. Débogage de l’échec d’authentification 3-3
  20. Débogage des échecs d’appel avec « database show »
  21. Débogage des échecs d’appel avec les codes de cause SIP
  22. Fichiers de journalisation de contrôle du système (« System Monitoring ») de SCOPSTATS

Dépannage général

La plupart des erreurs de téléphonie sont causées par l’une des causes suivantes :
  1. Mauvaises informations d’authentification
  2. Résolution DNS
  3. Classe de service - erreurs de configuration
  4. Problèmes de pare-feu
  5. Bogues d’Asterisk
  6. Erreur de l’utilisateur (DND, renvoi d’appel, etc.)
Les outils CLI sont utilisés pour déboguer la plupart de ces problèmes

Fichiers de journalisation

  1. Fichiers de journalisation du serveur (« Server Logs ») : /var/log/messages
  1. Fichiers de journalisation (« Logs ») SMTP : /var/log/messages
  2. Fichiers de journalisation du matériel («Hardware Logs ») : demesg
  3. Fichiers de journalisation Asterisk (« Logs ») /var/log/asterisk/messages
  4. Fichiers Asterisk : /etc/asterisk
  5. Fichiers de journalisation (« Logs ») SCOPSERV PHP : /tmp/php2.log
  6. Fichiers principaux de vidage (« Core Dump ») Asterisk (fichiers GDB) : dir /tmp/core*

Codes de réponses SIP 3XX

Redirection

3xx


300

Multiple Choices (« Choix multiples »)


301

Moved Permanently (« Déplacé de manière permanente »)


302

Moved Temporarily (« Déplacé de manière temporaire »)


305

Use Proxy (« Utiliser le proxy »)


380

Alternative Service (« Service alternatif »)


Codes de réponses SIP 4XX

Request Failure (échec de la requête)

4xx


400

Bad Request (« Mauvaise requête »)


401

Unauthorized (« Non autorisé »)


402

Payment Required (« Paiement requis »)


403

Forbidden (« Interdit »)


404

Not Found (« Pas trouvé »)


405

Method Not Allowed (« Méthode non permise »)


406

Not Acceptable (« Non acceptable »)


407

Proxy Authentication Required (« Authentification par proxy requise »)


408

Request Timeout (« Arrêt de la requête »)


410

Gone (« Disparu »)


412

Conditional Request Failed (« Échec de la requête conditionnelle »)

[RFC3903]

413

Request Entity Too Large (« Entité de la requête trop grande »)


414

Request-URI Too Long (« URL de la requête trop longue »)


415

Unsupported Media Type (« Type de média non supporté »)


416

Unsupported URI Scheme (« Schème URL non supporté »)


417

Unknown Resource-Priority (« Ressource inconnue - Priorité »)

[RFC4412]

420

Bad Extension (« Mauvaise extension »)


421

Extension Required (« Extension requise »)


422

Session Interval Too Small (« Intervalle de la session trop court »)

[RFC4028]

423

Interval Too Brief (« Intervalle trop court »)


424

Bad Location Information (« Information de mauvais emplacement »)

[RFC6442]

428

Use Identity Header (« Utiliser l’en-tête d’identité »)

[RFC4474]

429

Provide Referrer Identity (« Fournir identité de référeur »)

[RFC3892]

430

Flow Failed (« Échec du flux »)

[RFC5626]

433

Anonymity Disallowed (« Anonymat interdit »)

[RFC5079]

436

Bad Identity-Info (« Mauvaise information d’identité »)

[RFC4474]

437

Unsupported Certificate (« Certificat non supporté »)

[RFC4474]

438

Invalid Identity Header (« En-tête d’identification invalide »)

[RFC4474]

439

First Hop Lacks Outbound Support (« Le premier saut n’a pas de support pour les appels sortants »)

[RFC5626]

440

Max-Breadth Exceeded (« Largeur maxi dépassée »)

[RFC5393]

469

Bad Info Package (« Mauvais paquet d’informations »)

[RFC6086]

470

Consent Needed (« Consentement requis »)

[RFC5360]

480

Temporarily Unavailable (« Indisponible temporairement »)


481

Call/Transaction Does Not Exist (« L’appel/transaction n’existe pas »)


482

Loop Detected (« Boucle détectée »)


483

Too Many Hops (« Trop de sauts »)


484

Address Incomplete (« Adresse incomplète »)


485

Ambiguous (« Ambigu »)


486

Busy Here (« Occupé ici »)


487

Request Terminated (« Requête arrêtée »)


488

Not Acceptable Here (« Pas accessible ici »)


489

Bad Event (« Mauvais événement »)

[RFC6665]

491

Request Pending (« Requête en attente »)


493

Undecipherable (« Indéchiffrable »)


494

Security Agreement Required (« Accord de sécurité requis »)

[RFC3329]

Codes de réponses SIP 5XX

Server Failure (échec du serveur)

5xx


500

Server Internal Error (« Erreur serveur interne »)


501

Not Implemented (« Pas mis en œuvre »)


502

Bad Gateway (« Mauvaise passerelle »)


503

Service Unavailable (« Service non disponible »)


504

Server Time-out (« Arrêt du serveur »)


505

Version Not Supported (« Version non supportée »)


513

Message Too Large (« Message trop volumineux »)


580

Precondition Failure (« Échec de précondition »)

[RFC3312]

Codes de réponses SIP 6XX

Global Failure (« Échec global »)

6x


600

Busy Everywhere (« Occupé partout »)


603

Decline (« Décliner »)


604

Does Not Exist Anywhere (« N’existe nulle part »)


606

Not Acceptable (« Non acceptable »)


OS CLI Commandes («Commandes sur l’interface de ligne de commande »)

scopserv_yum update

exécute une mise à jour complète du logiciel

scopserv_yum install <package name>

installe un paquet à partir de répertoires.

scopserv_dumpkey

affiche la licence et le mot de passe administrateur

dkms status

affiche l’état d’installation des pilotes dahdi wanpipe mISDN

asterisk -r

lance Asterisk CLI pour le débogage de la ligne de commande Asterisk

asterisk -vr

ouvre Asterisk CLI pour le débogage en ligne de commande d’Asterisk avec une verbosité accrue

lsof -i :5555

affiche le service qui utiliser le port 5555

rpm -qa <package name>

affiche la version du paquet

rpm -e <package name> --nodeps

supprime le paquet sans désinstaller les dépendances

rpm -qa |grep <package name>

affiche la version des paquets installés

chown -R scopserv:scopserv /<path>

change la propriété (« ownership ») récursivement sur un chemin

kill -KILL <pid>

tue un identifiant de processus

htop

affiche tous les processus et consommations

top

affiche tous les processus et consommations

ngrep -d any port 25 -W BYLINE

trace réseau sur le port 25 pour déboguer les problèmes SMTP

network trace on port 25 to debug SMTP issues

Recherche d’un enregistrement MX dans le DNS Linux sur un domaine spécifié

rm -rf /root/.ssh/known_hosts

rm -rf /root/.ssh/known_hosts

wget <package path>

Commande d’interface de lignes de commandes pour télécharger un fichier d’un chemin de fichier

ngrep -d port any 69

trace réseau sur le port 69 pour afficher le trafic TFTP

cat /<path>

afficher le contenu du fichier à l’écran

nano /<path>

Éditeur de texte Linux pour modifier le chemin d’accès

service <service name> restart

redémarrer le réseau sans redémarrer le serveur

service <service name> stop

arrêter le nom du service sans redémarrer le serveur

service <service name> status

afficher l’état du nom du service

reboot

redémarrer le serveur

shutdown -h now

fermeture du serveur

lynx <website address>

Navigateur web en ligne de commande Linux

lynx <website address>

Pinger une adresse IP

lynx <website address>

tracer une adresse IP à travers plusieurs sauts

tcpdump -nq -s 0 -i eth0 -w /tmp/sip.pcap port not ssh

sauvegarde une trace SIP pcap dans /tmp en utilisant eth0

ps auwwwwx |grep crond

imprime tous les PID crond

rpm -e --allmatches <package name> -nodeps

supprime le nom du paquet sans les dépendances.

rpm -e <package name> --nodeps -noscripts

enlève de force un paquet endommagé

route

imprime la table de routage

ifconfig

La commande « ifconfig » permet au système d’exploitation de configurer les interfaces réseau et à l’utilisateur d’afficher des informations sur les interfaces réseau configurées.

Asterisk CLI Commands («Commandes sur l’interface de ligne de commande pour Asterisk »)

core show channels

affiche les canaux actifs

sip show peers

affiche tous les statuts des pairs SIP

sip show peer <peer>

affiche les détails d’un pair SIP

database show

affiche l’info astDB info (pratique pour savoir si un téléphone est en statut DND [Ne pas déranger])

queue show

affiche l’info sur les files de DAA (« ACD »)

pri show spans

affiche l’état de toutes les plages du PRI

pri intense debug span <span number>

affiche les messages Q.931 et SABME

pri set debug off span <span number>

arrête le débogage PRI intense sur un numéro de plage

hangup request <channel>|<all>

Demandez qu’un canal soit raccroché. Le raccrochage prend effet la prochaine fois que le pilote lit ou écrit sur le canal. Si « all » est spécifié au lieu d’un nom de canal, tous les canaux verront la demande de raccrochage.

core show hints

Cette commande liste les indices (« hints ») enregistrés

agi set debug on

imprime les messages de débogage agi (toujours utile lors de la création d’un ticket de support)

sip set debug <on/off>

imprime les messages SIP à l’interface de lignes de commandes

Commandes de réparation de la banque de données



mysqlcheck -A -o -r
Optimise et répare automatiquement les tables mysql Si le plantage s’est produit sur Esclave (HA), il faut effectuer cette opération sur Esclave et non sur Maître.
Si vous devez reconstruire queue_log db :
  1. service scopserv_queuelog stop
  2. `` /var/www/scopserv/telephony/scripts/queue2sql.pl –recover /var/log/asterisk/queue_log ``
  3. service scopserv_queuelog start
Mettre à jour la direction de la banque de données CDR mysql scopserv (enter) update cdr set calldir='unknown';

La réparation de MySQL prend trop de temps

Si le serveur n’est pas configuré en mode « High Availability » (installation standard) :
mysql scopserv

truncate cel;
truncate phones_history;
truncate horde_histories;
Si le serveur est configuré en mode « High Availability » :
mysql scopserv_repl

truncate cel;
truncate phones_history;
truncate horde_histories;

L’interface graphique de SCOPTEL est trop lente

mysqlcheck -A -o -r : Optimise et répare automatiquement les tables mysql Si le plantage s’est produit sur Esclave (HA), il faut effectuer cette opération sur Esclave et non sur Maître.
scopserv_yum update : Les paquets plus anciens, surtout avant les changements de scopserv_realtime nodejs ne sont pas entièrement optimisés. Telephony>Configuration>Reports (CDR/ACD)>Archiving>Enable Archiving :[x]

L’interface graphique de SCOPTEL ne peut pas redémarrer

mysqlcheck -A -o -r

Optimise et répare automatiquement les tables mysql Si le plantage s’est produit sur Esclave (HA), il faut effectuer cette opération sur Esclave et non sur Maître.

service scopserv stop

Arrête le service GUI (« interface graphique ») et realtime

lsof -i :5555

Affiche le PID lié au port de service scopserv

kill -KILL <PID output of lsof -I 5555>

Tue le PID lié au port scopserv

service scopserv start

Démarre l’interface graphique une fois que le port de liaison est libéré

Erreur fatale de l’interface graphique de SCOPTEL et « Dead Call Processing » (traitement des appels morts)

  1. Le plus souvent, cela est causé par un disque dur plein
  1. Les fichiers sur le disque dur doivent être supprimés pour restaurer le traitement des appels.
  2. Habituellement, cela est causé par :
  1. Trop de sauvegardes locales
  2. Trop de fichiers d’enregistrement dans /var/spool/asterisk/monitor/
  3. Trop de fichiers dans /var/log/asterisk/
  4. Trop de fichiers dans /tmp/
  1. Pour localiser les plus grands dossiers ne :

cd /

Change to root directory (changement au répertoire root)

du * -s

Imprimer le résumé de l’utilisation du disque et localiser le dossier le plus volumineux

  1. Utiliser la commande « cd » pour changer dans le plus grand répertoire
  1. Utiliser la commande Linux « rm » pour supprimer des fichiers
  2. Maintenir la commande / et utiliser la commande “du * -s’ pour localiser les plus grands dossiers et continuer à supprimer des fichiers avec la commande “rm” jusqu’à ce qu’il y aie assez d’espace dans le système de fichiers pour restaurer un service normal.

Débogage des échecs d’authentification

Voici un exemple typique d’échec d’authentification dans Asterisk. La raison de cet échec est que le pair 228 n’existe pas !

[root@demo ~]# asterisk -vr

[Aug  1 14:41:46] Running as group 'scopserv'
[Aug  1 14:41:46] Connected to Asterisk 1.8.12.0 currently running on demo (pid = 6006)
Verbosity is at least 3
Core debug is at least 3
[2012-08-01 14:50:06] NOTICE[6260]: chan_sip.c:24974 handle_request_register: Registration from '"228"<sip:228@scopserv.local>' failed for '192.168.192.55:57744' - No matching peer found

Voici un exemple typique d’échec d’authentification dans Asterisk. La raison de cet échec est que le mot de passe ne correspond pas !

[root@demo ~]# asterisk -vr

[Aug  1 14:41:46] Running as group 'scopserv'
[Aug  1 14:41:46] Connected to Asterisk 1.8.12.0 currently running on demo (pid = 6006)
Verbosity is at least 3
Core debug is at least 3
[2012-08-01 14:53:49] NOTICE[6260]: chan_sip.c:24974 handle_request_register: Registration from '"227"<sip:227@scopserv.local>' failed for '192.168.192.55:63316' - Wrong password

Voici un exemple typique de succès d’authentification dans Asterisk.

[root@demo ~]# asterisk -vr

[Aug  1 14:41:46] Running as group 'scopserv'
[Aug  1 14:41:46] Connected to Asterisk 1.8.12.0 currently running on demo (pid = 6006)
Verbosity is at least 3
Core debug is at least 3
[2012-08-01 14:56:00] NOTICE[6260]: chan_sip.c:20812 handle_response_peerpoke: Peer '227' is now Reachable. (7ms / 2000ms)

Débogage des échecs d’appel avec « database show »

Dans ce premier exemple, un appel du 227 au 221 ne sonne pas 221.

[2012-08-01 15:02:05] == Extension Changed 227[default-local] new state InUse for Notify User 221
[2012-08-01 15:02:05] -- Executing [221@default-default:9] Macro("SIP/227-00000005", "default-dial,SIP/221,221,default,,en,u221@default,twWxXkKg,,default_default,,Local/0@default-local/n,vm") in new stack
[2012-08-01 15:02:05] -- Executing [s@macro-default-dial:1] NoOp("SIP/227-00000005", ""CALL TO LOCAL EXTENSION FROM 227(227)"") in new stack
[2012-08-01 15:02:05] -- <SIP/227-00000005>AGI Script agi://127.0.0.1:4573/dial completed, returning 0
[2012-08-01 15:02:05] -- Executing [s@macro-default-dial:4] ExecIf("SIP/227-00000005", "1?Macro(all-vm,default,b,221@default,Local/0@default-local/n,vm)") in new stack
[2012-08-01 15:02:05] -- Executing [s@macro-all-vm:1] NoOp("SIP/227-00000005", "CALL TO VOICEMAIL") in new stack
[2012-08-01 15:02:05] -- Executing [s@macro-all-vm:2] VoiceMail("SIP/227-00000005", "221@default,b") in new stack

database show the extension has enabled the DND feature code! demo*CLI> database show

/CustomDevstate/dnd-default-221 : BUSY
/DND/Local/*78@default          : On
/DND/SIP/221                    : On

Débogage des échecs d’appel avec les codes de cause SIP

Dans ce premier exemple, un appel du 227 au 221 ne sonne pas le 221.

[2012-08-01 15:24:27] -- Executing [221@default-default:1] Set("SIP/227-00000009", "CDR(tenant)=default") in new stack
[2012-08-01 15:24:27] -- Executing [221@default-default:9] Macro("SIP/227-00000009", "default-dial,SIP/221,221,default,,en,u221@default,twWxXkKg,,default_default,,Local/0@default-local/n,vm") in new stack
[2012-08-01 15:24:27] -- Executing [s@macro-default-dial:1] NoOp("SIP/227-00000009", ""CALL TO LOCAL EXTENSION FROM 227(227)"") in new stack
[2012-08-01 15:24:27] -- Called SIP/221
[2012-08-01 15:24:27] -- Got SIP response 302 "Moved Temporarily" back from 192.168.100.100:5060
[2012-08-01 15:24:27] -- Now forwarding SIP/227-00000009 to 'Local/555@default-default' (thanks to SIP/221-0000000a)
[2012-08-01 15:24:27] NOTICE[30807]: chan_sip.c:892 handle_response_peerpoke: Not accepting call completion offers from call-forward recipient Local/555@default-default-59dd;1
[2012-08-01 15:24:27] NOTICE[30807]: chan_local.c:899 local_call: No such extension/context 555@default-default while calling Local channel
[2012-08-01 15:24:27] NOTICE[30807]: chan_sip.c:980 handle_response_peerpoke: Forwarding failed to dial 'Local/555@default-default'
[2012-08-01 15:24:27]  == Everyone is busy/congested at this time (1:0/0/1)

Le code de réponse SIP indique que l’extension a permis un transfert SIP natif à 555 depuis le téléphone SIP ! Il n’y a pas de 555 dans le plan de numérotation et le transfert échoue. L’utilisateur doit supprimer la mauvaise tentative de transfert de son téléphone.

Fichiers de journalisation de contrôle du système (« System Monitoring ») de SCOPSTATS

Le moteur de production de rapports SCOPSTATS peut également afficher les journaux système au lieu d’accéder au système de fichiers Linux.