Monast est positionné par ces développeurs comme la solution de monitoring avec le panneau d’administration pour gérer des plusieurs fonctionnalités d’Asterisk. License – BSD. Project créé sur les bases de Python (daemon de connexion via AMI avec Asterisk), PHP, JS (AJAX).
Possibilités de la surveillance :
– monitoring de plusieurs serveurs d’Asterisk ;
– le mode multi utilisateurs avec de restriction des droits ;
– possibilité de voir toutes les utilisateurs et peers (SIP, IAX, DAHDI, Khomp, etc…) ;
– affichage des channels et des appels actives ;
– affichage des salles de conférence en marche ;
– affichage des appels parqués ;
– affichage des files d’attentes (Queues)
Fonctionnalités :
– initiation des appelles (originate) ;
– redirection des appelles (transfer) ;
– raccrochage des appelles ;
– mise en parc de l’appel en cours ;
– écoute discrète (ChanSpy) ;
– invitation en conférence ;
– permet de gérer la file d’attente de l’appel en cours ;
– gestion de la conférence ;
– exécution des commandes dans CLI d’Asterisk ;
Installation :
J’ai testé Monast sur Ubuntu 12.04 LTS et Asterisk 1.8
1. On va vérifier la présence de Python dans le système :
# python –version

Si on ne voit pas que Python est installé, on le fait :
# sudo apt-get update && sudo apt-get install python
2.Pour gérer Monast on va utiliser l’interface WEB. Il faut installer serveur WEB avec support PHP et PHP-Pear. S’il n’a pas été fait avant, on l’installe :
# sudo apt-get install apache2 php5 php-pear
3. On installe toutes les dépendances nécessaires :
– Twisted Python 10.1+
– zope.interface 3.6+
– Starpy SVN-Trunk
– PHP PEAR Packages: (HTTP_Client)
Le paquet zope.interface a déjà été dans le système.
On installe le paquet HTTP_Client :
# sudo pear install HTTP_Client
Si vous avez Ubuntu 12.04 l’erreur suivante sera apparaitre :

Le paquet php-pear en Ubuntu 12.04 marche correctement uniquement avec PHP <= 5.2.
Pour PHP => 5.3 il faut faire :
# service fail2ban stop
# wget http://pear.php.net/go-pear.phar
# php go-pear.phar
Et encore :
# sudo pear install HTTP_Client

Comme nous voyons il nous propose d’installer un nouveau paquet HTTP_Request2 :
# sudo pear install HTTP_Request2

4. Maintenant on va installer Twisted et StarPy depuis des sources :
| # apt-get install build-essential gcc-4.5 libssl-dev python-dev # cd /usr/src/# wget http://twistedmatrix.com/Releases/Twisted/13.2/Twisted-13.2.0.tar.bz2# tar jxvf Twisted-13.2.0.tar.bz2# cd Twisted-13.2.0# python setup.py install |
| # cd /usr/src
# wget http://downloads.sourceforge.net/project/starpy/starpy/1.0.0a13/starpy-1.0.0a13.tar.gz # tar zvxf starpy-1.0.0a13.tar.gz # cd starpy-1.0.0a13 # python setup.py install |
5. On installe Monast :
| # cd /usr/src/ # wget http://downloads.sourceforge.net/project/monast/Monast%20for%20Asterisk%201.4%2C%201.6%20and%201.8/3.0b4/monast-3.0b4.tar.gz# tar zvxf monast-3.0b4.tar.gz # cd monast-3.0b4/ # ./install.sh |

Le scripte de démarrage Monast s’installe pour SuSE, RedHat, Debian, Gentoo, Slackware, FreeBSD mais n’est pas pour Ubuntu. On peut utiliser le scripte de Debian :
| # cp contrib/init.d/rc.debian.monast /etc/init.d/monast # chmod 755 /etc/init.d/monast # update-rc.d monast defaults 91 60 |

L’Installation de Monast est terminé mais le service monast sera lancé âpres la configuration.
Configuration :
1. On va configurer l’ Asterisk pour qu’il puisse interconnecter avec Monast. Il faut préparer le fichier manager.conf d’Asterisk :
| ; Asterisk Call Management support
[general] ; activation du service Manager enabled = yes ; port TCP par défaut port = 5038 ; interface réseau à l’écoute bindaddr = 0.0.0.0 displayconnects = yes ; affichage des connexions dans le console d’Asterisk webenabled = no ; On désactive Asterisk static_http allowmultiplelogin = yes ; On donne l’accès pour l’utilisateur depuis plusieurs lieus de travail simultanément timestampevents = yes [monast_user] secret=azerty123 ; blocage de toutes les adresses pouvant accéder au manager ; autorisation des adresses pouvant accéder au manager permit=127.0.0.1/255.255.255.0 permit=192.168.0.20/255.255.255.0 permit=192.168.2.0/255.255.255.0 ; attribution des permissions à l’utilisateur read=system,call,log,verbose,command,agent,user,config,originate,reporting write=system,call,log,verbose,command,agent,user,config,originate,reporting |
On relit le fichier manager.conf
# asterisk -rx « manager reload »
2. On configure le fichier monast.conf
# nano /etc/monast.conf
| # Copyright (c) 2008-2011, Diego Aguirre
# All rights reserved.# ### Global Section## [global] # Bind client connetions on host:port bind_host = 127.0.0.1 ; On permit la connexion localhost bind_port = 5039 ; numéro de port pour la connexion # Use client autentication on browser auth_required = true ; authentification est obligatoire ## =================================== ## ## Servers Definitions ## [server: Server1] ; Les paramètres pour le premier serveur hostname = 192.168.0.20 hostport = 5038 username = monast_user password = azerty123 # Default user context default_context = default # Context to use in transfer calls transfer_context = default # Context and prefix for meetme meetme_context = default meetme_prefix = [server: Server2] ; Les paramètres pour le deuxième serveur hostname = 192.168.0.25 hostport = 5038 username = monast_user password = azerty123 # Default user context default_context = default # Context to use in transfer calls transfer_context = default # Context and prefix for meetme meetme_context = default meetme_prefix = ## =================================== ## ## Peers Definitions ## [peers] # sort peers (options: channel, callerid) sortby = callerid # default show/hide default = show # hide peer when default = show ;<Server Name>/SIP/user-1 = hide # show peer when default = hide ;<Server Name>/SIP/user-2 = show # always show peer. ;<Server Name>/SIP/user-3 = force # force CallerID (only in forced mode) ;<Server Name>/SIP/user-4 = force,Diego Aguirre <5555> # Create peer groups ;<Server Name>/@group/Group 1 = SIP/user-1,SIP/user-2 ;<Server Name>/@group/Group 2 = SIP/user-3,SIP/user-4 ## =================================== ## ## Meetmes / Conferences Definitions ## [meetmes] # default show/hide default = hide # hide meetme when default = show ;<Server Name>/1234 = hide # show meetme when default = hide ;<Server Name>/1234 = show # always show meetme ;<Server Name>/1234 = force ## =================================== ## ## Queues Definitions ## [queues] # defualt show/hide default = hide # show queue queue01 ;<Server Name>/queue01 = show # show queue queue02 with display name Support ;<Server Name>/queue02 = show,Support # hide queue queue03 ;<Server Name>/queue03 = hide # Map Member name ;<Server Name>/@member/SIP/user-1 = Diego Aguirre <5555> ## =================================== ## Define users and roles to use on auth_required is set to true ## roles must be: ## originate : user can originate, transfer, park and drop calls ## agent : user cans add, remove, pause and unpause members on queues ## command : user can execute asterisk cli commands ## spy : user can start a spy [user: admin] ; super utilisateur secret = SuperPassword roles = originate,queue,command,spy servers = ALL [user: manager] ; utilisateur-observateur secret = password roles = originate servers = ALL [user: server1] secret = 12345 roles = originate servers = Server1 [user: server2] secret = 54321 roles = originate,command servers = Server2 |
# /etc/init.d/monast restart

A la fin nous entrons dans interface WEB:
user: admin
Secret: SuperPassword



Laisser un commentaire