SCOPTEL Logiciel PBX IP — Logiciel PBX IP - Dépannage¶
Dépannage général
Fichiers de journalisation
Codes de réponses SIP 1XX - Codes de réponse SIP 2XX
Codes de réponses SIP 3XX - Codes de réponse SIP 400-416
Codes de réponses SIP 417-439 - Codes de réponse SIP 440-494
Codes de réponses SIP 5XX - Codes de réponse SIP 6XX
OS CLI Commande 1-3 («Commandes sur l’interface de ligne de commande »)
OS CLI Commande 2-3 («Commandes sur l’interface de ligne de commande »)
OS CLI Commande 3-3 («Commandes sur l’interface de ligne de commande »)
Asterisk CLI Commands («Commandes sur l’interface de ligne de commande pour Asterisk »)
OS CLI Commande 3-3 («Commandes sur l’interface de ligne de commande »)
Asterisk CLI Commands («Commandes sur l’interface de ligne de commande pour Asterisk »)
Commandes de réparation de la banque de données
La réparation de MySQL prend trop de temps
L’interface graphique de SCOPTEL est trop lente
L’interface graphique de SCOPTEL ne peut pas redémarrer
Erreur fatale de l’interface graphique de SCOPTEL et « Dead Call Processing » (traitement des appels morts)
Débogage de l’échec d’authentification 1-3
Débogage de l’échec d’authentification 3-3
Débogage des échecs d’appel avec « database show »
Débogage des échecs d’appel avec les codes de cause SIP
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 :
Mauvaises informations d’authentification
Résolution DNS
Classe de service - erreurs de configuration
Problèmes de pare-feu
Bogues d’Asterisk
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¶
Fichiers de journalisation du serveur (« Server Logs ») : /var/log/messages
Fichiers de journalisation (« Logs ») SMTP : /var/log/messages
Fichiers de journalisation du matériel («Hardware Logs ») : demesg
Fichiers de journalisation Asterisk (« Logs ») /var/log/asterisk/messages
Fichiers Asterisk : /etc/asterisk
Fichiers de journalisation (« Logs ») SCOPSERV PHP : /tmp/php2.log
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 »)¶
|
exécute une mise à jour complète du logiciel |
|
installe un paquet à partir de répertoires. |
|
affiche la licence et le mot de passe administrateur |
|
affiche l’état d’installation des pilotes dahdi wanpipe mISDN |
|
lance Asterisk CLI pour le débogage de la ligne de commande Asterisk |
|
ouvre Asterisk CLI pour le débogage en ligne de commande d’Asterisk avec une verbosité accrue |
|
affiche le service qui utiliser le port 5555 |
|
affiche la version du paquet |
|
supprime le paquet sans désinstaller les dépendances |
|
affiche la version des paquets installés |
|
change la propriété (« ownership ») récursivement sur un chemin |
|
tue un identifiant de processus |
|
affiche tous les processus et consommations |
|
affiche tous les processus et consommations |
|
trace réseau sur le port 25 pour déboguer les problèmes SMTP |
|
Recherche d’un enregistrement MX dans le DNS Linux sur un domaine spécifié |
|
rm -rf /root/.ssh/known_hosts |
|
Commande d’interface de lignes de commandes pour télécharger un fichier d’un chemin de fichier |
|
trace réseau sur le port 69 pour afficher le trafic TFTP |
|
afficher le contenu du fichier à l’écran |
|
Éditeur de texte Linux pour modifier le chemin d’accès |
|
redémarrer le réseau sans redémarrer le serveur |
|
arrêter le nom du service sans redémarrer le serveur |
|
afficher l’état du nom du service |
|
redémarrer le serveur |
|
fermeture du serveur |
|
Navigateur web en ligne de commande Linux |
|
Pinger une adresse IP |
|
tracer une adresse IP à travers plusieurs sauts |
|
sauvegarde une trace SIP pcap dans /tmp en utilisant eth0 |
|
imprime tous les PID crond |
|
supprime le nom du paquet sans les dépendances. |
|
enlève de force un paquet endommagé |
|
imprime la table de routage |
|
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 »)¶
|
affiche les canaux actifs |
|
affiche tous les statuts des pairs SIP |
|
affiche les détails d’un pair SIP |
|
affiche l’info astDB info (pratique pour savoir si un téléphone est en statut DND [Ne pas déranger]) |
|
affiche l’info sur les files de DAA (« ACD ») |
|
affiche l’état de toutes les plages du PRI |
|
affiche les messages Q.931 et SABME |
|
arrête le débogage PRI intense sur un numéro de plage |
|
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. |
|
Cette commande liste les indices (« hints ») enregistrés |
|
imprime les messages de débogage agi (toujours utile lors de la création d’un ticket de support) |
|
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 :
service scopserv_queuelog stop
`` /var/www/scopserv/telephony/scripts/queue2sql.pl –recover /var/log/asterisk/queue_log ``
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)¶
Le plus souvent, cela est causé par un disque dur plein
Les fichiers sur le disque dur doivent être supprimés pour restaurer le traitement des appels.
Habituellement, cela est causé par :
Trop de sauvegardes locales
Trop de fichiers d’enregistrement dans /var/spool/asterisk/monitor/
Trop de fichiers dans /var/log/asterisk/
Trop de fichiers dans /tmp/
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 |
Utiliser la commande « cd » pour changer dans le plus grand répertoire
Utiliser la commande Linux « rm » pour supprimer des fichiers
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.