OpenSER::Monitoring
juillet 18, 2007
La derniere fois j’ai parlé de monitoring d’Asterisk, cet aprem parlons d’OpenSER. La configuration de netsnmp ne change pas de celle faite pour Asterisk.
MODIFICATION DU FICHIER DE CONFIGURATION OPENSER.CFG
# SNMP
loadmodule “snmpstats.so”#snmp params
modparam(”snmpstats”, “snmpgetPath”, “/usr/bin/”)
modparam(”snmpstats”, “sipEntityType”, “registrarServer”)
modparam(”snmpstats”, “sipEntityType”, “proxyServer”)
CREATION DU FICHIER SNMPSTATS
push /etc/snmp/snmpstats.conf
EXEMPLES DE DONNEES DISPONIBLES
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.1.0 = STRING: “SIP/2.0″
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.2.0 = Timeticks: (0) 0:00:00.00
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.4.0 = STRING: “(”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.5.1.4.1.4.10.1.11.158.5060 = STRING: “`”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.5.1.4.1.4.10.1.11.158.5061 = Hex-STRING: 08
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.5.1.4.1.4.127.0.0.1.5060 = STRING: “`”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.5.1.4.1.4.127.0.0.1.5061 = Hex-STRING: 08
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.1 = STRING: “METHOD_INVITE”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.2 = STRING: “METHOD_CANCEL”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.3 = STRING: “METHOD_ACK”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.4 = STRING: “METHOD_BYE”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.5 = STRING: “METHOD_INFO”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.6 = STRING: “METHOD_OPTIONS”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.8 = STRING: “METHOD_REGISTER”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.9 = STRING: “METHOD_MESSAGE”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.10 = STRING: “METHOD_SUBSCRIBE”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.11 = STRING: “METHOD_NOTIFY”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.12 = STRING: “METHOD_PRACK”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.13 = STRING: “METHOD_REFER”
SNMPv2-SMI::enterprises.27483.3.1.1.1.1.7.1.2.14 = STRING: “METHOD_PUBLISH”
SNMPv2-SMI::enterprises.27483.3.1.1.1.3.1.0 = Counter32: 9836
SNMPv2-SMI::enterprises.27483.3.1.1.1.3.2.0 = Counter32: 3989
SNMPv2-SMI::enterprises.27483.3.1.1.1.3.3.0 = Counter32: 4388
SNMPv2-SMI::enterprises.27483.3.1.1.1.3.4.0 = Counter32: 7423
SNMPv2-SMI::enterprises.27483.3.1.1.1.3.5.0 = Counter32: 1187
SNMPv2-SMI::enterprises.27483.3.1.1.1.6.1.0 = Gauge32: 0
SNMPv2-SMI::enterprises.27483.3.1.1.1.8.1.0 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.1.1.8.2.0 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.1.1.8.3.0 = Counter32: 330
SNMPv2-SMI::enterprises.27483.3.1.2.1.3.1.0 = INTEGER: 2
SNMPv2-SMI::enterprises.27483.3.1.2.1.3.3.0 = INTEGER: 1
SNMPv2-SMI::enterprises.27483.3.1.2.1.3.4.0 = STRING: ” “
SNMPv2-SMI::enterprises.27483.3.1.2.1.4.1.0 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.2.0 = Gauge32: 3600
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.3.0 = Gauge32: 4294967295
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.4.0 = Gauge32: 0
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.5.0 = Gauge32: 3600
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.2.1 = STRING: “DefaultUser”
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.2.2 = STRING: “asterisk”
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.2.3 = STRING: “3456″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.2.4 = STRING: “0001″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.3.1 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.3.2 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.3.3 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.6.1.3.4 = Counter32: 0
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.2.1.1 = STRING: “DefaultUser”
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.2.2.1 = STRING: “sip:s@10.1.1.7″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.2.3.1 = STRING: “sip:3456@10.1.1.4:38504;rinstance=004543fdbc5f7891″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.2.3.2 = STRING: “sip:3456@10.1.1.4:36114;rinstance=4ec5a9802d261488″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.2.4.1 = STRING: “sip:0001@10.1.11.3:5060″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.3.1.1 = STRING: “DefaultUser”
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.3.2.1 = STRING: “sip:s@10.1.1.7″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.3.3.1 = STRING: “sip:3456@10.1.1.4:38504;rinstance=004543fdbc5f7891″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.3.3.2 = STRING: “sip:3456@10.1.1.4:36114;rinstance=4ec5a9802d261488″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.3.4.1 = STRING: “sip:0001@10.1.1.3:5060″
SNMPv2-SMI::enterprises.27483.3.1.2.1.5.7.1.4.1.1 = Hex-STRING: 00 00 00 00 00 00 00 00
ASTERISK::Boite vocale, son plus elevé ?
juillet 18, 2007
Dans le fichier vm_general.inc, certaines distributions (dont trixbox) disposent d’une configuration de asterisk comme suis :
format=wav49|wav
Il semblerait que passer à la forme suivante améliore le niveau sonore (non testé) :
format=wav|wav49
ce mesage s’adresse donc à ceux qui auraient des mails vocaux au niveau sonore trop faible.
ASTERISK::Trunk IAX (Inter Asterisk eXchange)
juillet 17, 2007
CONDITION DE MISE EN PLACE
deux serveurs Asterisk chacun avec le port 4569/udp en écoute.
PREPARATION DES FICHIERS DE CONFIGURATION
Fichier iax.conf pour chacun des deux serveurs
[general]
bindport = 4569
bindaddr = 0.0.0.0
disallow=all
allow=ulaw
allow=alaw
allow=gsm
mailboxdetail=yes[DNS du serveur distant]
type=friend
username=DNS du serveur local
secret=Mot de passe commun aux deux serveurs
auth=plaintext
host=DNS du serveur distant
context=fromiax
peercontext=fromiax
qualify=yes
trunk=yes
ATTENTION : le mot de passe du trunk est le même pour les deux serveurs
Fichier extensions.conf des deux serveurs :
[fromiax]
exten => _X.,1,Answer()
exten => _X.,1,PlayBack(hello-world)
exten => _X.,n,Hangup()
Dans ce cas de configuration, tous les appels envoyés d’un serveur à l’autre à travers IAX obtiendront un jolie Hello World.
COMMENT RENVOYER DES APPELS A TRAVERS IAX ?
Soit pour une extension connue avec Dial :
exten => 2002,1,Dial(IAX2/DNS du serveur distant/2002,30,r)
Soit pour toutes les extensions inconnues d’un contexte avec switch :
switch => IAX2/DNS du serveur distant
ASTERISK::Enregistrement des conversations
juillet 17, 2007
Voici deux méthodes pour l’écoute des conversations avec Asterisk
Exemple Monitor
exten =>
s,1,ExecIF($["${RECORDSIP}"="TRUE"],Monitor,wav|${TIMESTAMP}-${CALLERID(
num)}-${MACRO_EXTEN}-${UNIQUEID}.WAV)
Exemple MixMonitor
exten => _1NXXNXXXXXX,1,MixMonitor(/var/spool/asterisk/monitor/${CALLERIDNUM}-${EPOCH}-${EXTEN}.wav)
exten => _1NXXNXXXXXX,2,Dial(Zap/R1/${EXTEN},90
exten => _1NXXNXXXXXX,3,Hangup
Je ne sais pas si j’en aurais besoin mais c’est toujours mieux noté quelque part.
MAC::Fichiers de configuration Wengo
juillet 13, 2007
Un petit truc sur wengo
Emplacement du fichier de configuration :
/Users/name/Library/Application Support/WengoPhone/config.xml
Log:
/Users/name/Applications/WengoPhone.app/Contents/MacOS/log-main.txt
Asterisk::Monitoring
juillet 12, 2007
FONCTIONNEMENT
Un module Asterisk va jouer le rôle de sub-agent pour le service net-snmp
afin de diffuser des informations sur Asterisk. A l’aide d’outils tels que nagios ou cacti il sera alors possible de surveiller son bon fonctionnement.
INSTALLATION ET MISE EN PLACE
le module res-snmp de Asterisk
Ce module est dépendant de net-snmp. Pourtant, durant la compilation, un erreur peut survenir malgré la présence du service net-snmp et de ses bibliothèques :
checking for net-snmp-config… /usr/bin/net-snmp-config
checking for snmp_register_callback in -lnetsnmp… no
Apres une lecture du fichier config.log (de cette erreur), la solution est découverte :
configure:23304: checking for snmp_register_callback in -lnetsnmp
configure:23339: gcc -o conftest -g -O2 conftest.c -lnetsnmp -L/usr/lib -lnetsnmpagent -lnetsnmpmibs -lnetsnmphelpers -lnetsnmp -ldl -l
crypto -lrpm -lrpmio -lpopt -lbz2 -lz -lm -ldl -L/usr/lib -lwrap >&5
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/bin/ld: cannot find -lwrap
collect2: ld returned 1 exit status
configure:23345: $? = 1
La bibliothèque ’wrap’ est indisponible, elle est fournit par le package tcpd-devel.
La forme du fichier de configuration est quant à elle très simple :
; /etc/asterisk/res_snmp.conf
[general]
subagent = yes
enabled = yes
Le service net-snmp
Pour fonctionner normalement, net-snmp nécessite un fichier de configuration :
syslocation Server Room
syscontact Sysadmin (root@localhost)rocommunity public 127.0.0.1
rocommunity public 10.1.1.1
master agentx
Ainsi net-snmp va recevoir les informations de asterisk (master agentx) et
il accepter les requetes snmp provenant du serveur nagios (10.1.1.1).
COPIER LES MIBS(Facultatif)
Deux possibilités :
Copier les MIB dans le dossier partagé par tous les utilisateurs (droits root requis) :
cp doc/asterisk-mib.txt /usr/share/snmp/mibs/
cp doc/digium-mib.txt /usr/share/snmp/mibs/
Ou alors les copier dans le dossier /home/utilisateur/.snmp/mibs/. Seul l’utilisateur concerné pourra utiliser ces MIB mais cette fois-ci pas besoin de droits root.
VERIFIER LE BON FONCTIONNEMENT
Au chargement de asterisk :
NET-SNMP version 5.2.3 AgentX subagent connected
EXEMPLES DE DONNEES
ASTERISK-MIB::astVersionString.0 = STRING: 1.4.2
ASTERISK-MIB::astConfigUpTime.0 = Timeticks: (6693143) 18:35:31.43
ASTERISK-MIB::astConfigReloadTime.0 = Timeticks: (6693143) 18:35:31.43
ASTERISK-MIB::astNumModules.0 = INTEGER: 137
ASTERISK-MIB::astNumChannels.0 = INTEGER: 0
ASTERISK-MIB::astChanTypeName.1 = STRING: Zap
ASTERISK-MIB::astChanTypeName.2 = STRING: Skinny
ASTERISK-MIB::astChanTypeName.3 = STRING: SIP
ASTERISK-MIB::astChanTypeName.4 = STRING: Phone
ASTERISK-MIB::astChanTypeName.5 = STRING: Console
ASTERISK-MIB::astChanTypeName.6 = STRING: Local
ASTERISK-MIB::astChanTypeName.7 = STRING: IAX2
ASTERISK-MIB::astChanTypeName.8 = STRING: Feature
ASTERISK-MIB::astChanTypeChannels.1 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.2 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.3 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.4 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.5 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.6 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.7 = Gauge32: 0
ASTERISK-MIB::astChanTypeChannels.8 = Gauge32: 0
A SAVOIR
Sans l’installation des MIB sur le client snmp ces valeurs aurai plutot cette forme :
1.3.6.1.4.1.22736.1.5.1.0 = INTEGER: 0
USAGE DE CACTI
![]()
Ce graphique a été réalisé avec cacti, je vais prochainement essayer de publier son template.