VoIP : Système de communication Voix sur IP
VoIP : Système de communication – Conclusion de mémoire :
Comme toute innovation technologique qui se respecte, la VoIP non seulement simplifie le travail mais aussi fait économiser de l’argent.
Les entreprises dépensent énormément en communication téléphonique, or le prix des communications de la ToIP (Téléphonie sur IP) est dérisoire en comparaison.
En particulier, plus les interlocuteurs sont éloignés, plus la différence de prix est intéressante.
De plus, la téléphonie sur IP utilise jusqu’à dix fois moins de bande passante que la téléphonie traditionnelle. Ceci apportant de grands intérêts pour la voix sur réseau privée.
Les entreprises après avoir émis un certain nombre de doutes sur la qualité de services sont désormais convaincues de la plus grande maturité technologique des solutions proposées sur le marché.
Qu’il s’agisse d’entreprises mono site ou multi sites, les sondages montrent que le phénomène de migration vers les systèmes de téléphonie sur IP en entreprise est actuellement engagé.
Dans notre travail nous nous sommes particulièrement intéressés sur la mise en place d’une système de communication VoIP basée sur des solutions open source et le tout dans un environnement sans fil.
En effet, avec la maturité des solutions open source, apparaissent des solutions de communication performantes et moins coûteuses.
Nous avons fait un état de l’art sur la VoIP, sur la téléphonie sur IP et sur les solutions logiciels libres afin de bien maîtriser cette technologie et de choisir la solution BAPX IP adéquate Asterisk.
Ensuite nous avons proposé une maquette de test avec toutes les fonctionnalités pour un déploiement dans un environnement hostile.
Nous avons terminé par une proposition d’un schéma de couplage d’Asterisk avec un architecture SMS.
Parmi les fonctionnalités que nous avons eues à implémenter, nous pouvons citer:
- • Les appels entre terminaux
- • La méssagerie vocale
- • Conférence audio
- • Appels vers les le réseau de la SONATEL
- • Transfert d’appels
- • Filtrages d’appels
- • Etc.
Ce stage a été enrichissant, aussi bien au niveau recherche que professionnel et sera un atout pour mon entrée dans la vie active.
Il m’a apporté de nouvelles connaissances tant méthodiques, organisationnelles que techniques et m’ a permis d’approfondir les compétences que j’ai acquises tout au long de ma scolarité.
Le projet a mis en évidence les nombreuses possibilités offertes par les solutions open source et ce stage permet de mieux les connaître et les maîtriser.
Annexes:
Annexe 1: Installation des packages nécessaires à partir des CD de linux
La liste des packages nécessaires avant d’installer asterisk
Disk 1
cpp-3.4.2-6.fc3.i386.rpm
Disk 2
cvs-1.11.17-3.i386.rpm
bison-1.875c-2.i386.rpm
e2fsprogs-devel-1.35-11.2.i386.rpm
krb5-devel-1.3.4-7.i386.rpm
Disk 3
glibc-kernheaders-2.4-9.1.87.i386.rpm
glibc-headers-2.3.3-74.i386.rpm
glibc-devel-2.3.3-74.i386.rpm
gcc-3.4.2-6.fc3.i386.rpm
libidn-devel-0.5.6-1.i386.rpm
zlib-devel-1.2.1.2-1.i386.rpm
openssl-devel-0.9.7a-40.i386.rpm
Installer en respectant l’ordre de succession des packages:
rpm -i cvs-1.11.17-3.i386.rpm
rpm -i cpp-3.4.2-6.fc3.i386.rpm
rpm -i glibc-kernheaders-2.4-9.1.87.i386.rpm
rpm -i glibc-headers-2.3.3-74.i386.rpm
rpm -i glibc-devel-2.3.3-74.i386.rpm
rpm -i gcc-3.4.2-6.fc3.i386.rpm
rpm -i bison-1.875c-2.i386.rpm
rpm -i zlib-devel-1.2.1.2-1.i386.rpm
rpm -i e2fsprogs-devel-1.35-11.2.i386.rpm
rpm -i krb5-devel-1.3.4-7.i386.rpm
rpm -i openssl-devel-0.9.7a-40.i386.rpm
rpm -i libidn-0.5.6-1.i386.rpm
rpm -i pkgconfig-0.15.0-3.i386.rpm
rpm -i libidn-devel-0.5.6-1.i386.rpm
Annexe 2 : Installation des sources d’asterisk
Installation de Asterisk la version 1.2.9
Créer le repertoire /usr/src/asterisk et copier les sources
Deplacer jusqu’à ce repertoire /usr/src/asterisk
#cd /usr/src/asterisk
Important: respecter l’ordre d’installation des paquages: libpri, zaptel, asterisk
-Installing libpri
#cd /usr/src/asterisk/libpri
#make clean
#make
#make install
-Installing zaptel
#cd /usr/src/asterisk/zaptel
#make clean
#make
#make install
-Installing asterisk
#cd /usr/src/asterisk/asterisk
#make clean
#make
#make install
-installing chan_sccp
#cd /usr/src/asterisk/chan_sccp
#make clean
#make
#make install
-installing asterisk-addon
#cd /usr/src/asterisk/libpri
#make clean
#make
#make install
-installing asterisk-sounds
#cd /usr/src/asterisk/libpri
#make clean
#make
#make install
Annexe 3: Configuration de base
** iax.conf
Dans iax.conf, on positionne les clients qui se connecterons en utilisant le protocole propriétaire Asterisk mais disponible dans un nombre croissant de téléphone sur le marché.
Chaque client sera défini par un label, nous utilisons par défaut l’extension.
Comme chaque fichier de configuration, une section initiale est globale, ensuite viennent toutes les sections variables.
Si le fichier est trop important en taille ou que l’on souhaite le découper fonctionnellement, on peut utiliser la directive
#include
Exemple avec deux téléphones d’extensions IAX:
[general]
bindport =4569
[212]
username=212
type=friend
host=dynamic
context=internal
callerid= »Fatou Sylla » <212>
[201]
username=201
type=friend
host=dynamic
context=internal
callerid= »Moussa Wade » <201>
Dans cette configuration, les postes peuvent prendre une adresse IP dynamique, aucun système d’authentification n’est mis en place et enfin, on spécifie via la directive callerid le nom de l’utilisateur et son extension dans un format type RFC822.
Le paramètre context permet de relayer vers les règles de routage de l’extension ou de l’utilisateur en question, que nous l’utiliserons dans extensions.conf.
** sip.conf
Le fichier sip.conf est similaire à iax.conf pour les téléphones ou softphones utilisant le protocole SIP. Dans notre cas, nous utilisons un téléphone SIP avec l’extension 220.
Voici le contenu du fichier, avec une partie générale et chaque définition de téléphone:
[general]
port = 5060
[pgx]
username=pgx
type=friend
host=dynamic
context=internal
callerid= »Dame Samb » <220>
Ici, le nom de la section est un nom d’utilisateur, alors que dans IAX nous avions mis un numéro d’extension.
Cette modification est important pour le client (téléphone ou softphone) qui devra utiliser ce label comme login. Nous conseillons ce type d’usage car il permet un diagnostique plus rapide que la simple manipulation des extensions.
Le context est le même que pour les téléphones en IAX, afin de bénéficier des mêmes règles de routage.
** extensions.conf
Le fichier extensions.conf permet de définir les règles de routage. Dans notre installation nous permettons pour l’instant les appels inter poste.
Dans le context internal, nous définissons comment joindre les différents postes.
Chaque extension de notre plan de numérotation interne va être interprété et acheminé vers des liens physiques (IAX ou SIP dans notre cas).
[general]
static=yes
[internal]
exten => 201,1,Dial(IAX2/201)
exten => 212,1,Dial(IAX2/212)
exten => 220,1,Dial(SIP/pgx)
L’application Dial est utilisée pour l’acheminement de l’appel dans le context
internal, le premier argument est le prefixe de la ligne (IAX2 ou SIP).
** Lancement et validation
Une fois asterisk démarré par la commande asterisk -vvvc, il est possible de prendre la main sur un mode de commande via asterisk –vvvr.
Ce mode interactif permet de vérifier les configurations et de récupérer les logs.
On peut vérifier que les postes sont bien connectés :
asterisk1*CLI> iax2 show peers
asterisk1*CLI> sip show peers
Enfin lors d’une communication, on peut voir l’état des canaux utilisés, par exemple, le
220 appelle le 201:
asterisk1*CLI> show channels
Channel Location State Application(Data)
IAX2/201-5 s@internal:1 Up Bridged Call(SIP/pgx-7ed5)
SIP/pgx-7ed5 201@internal:1 Up Dial(IAX2/201)
Annexe 4: Configuration des téléphones de la section informatique
Configuration des telephones Cisco:
Sccp.conf
[devices]
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
type = 7905
autologin = 1001
description = Mr Niang
transfer = on
park = on
speeddial = 1002,Mr Mbaye Séne
speeddial = 1003,Sécrétaire
speeddial = 1011,Salle Projet
speeddial = 1012,Salle Doyen
cfwdall = off
cfwdbusy = off
dtmfmode = inband
imageversion = CP7905060000SCCP050124A
deny=0.0.0.0/0.0.0.0
permit=192.168.0.5/255.255.255.255
dnd = on
trustphoneip = no
private = on
device => SEP0014698C508A; device name SEP
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
type = 7905
autologin = 1002
description = MrSene
transfer = on
park = on
speeddial = 1001,Mr Ibrahima Niang
speeddial = 8257584,Cabinet Recteur
speeddial = 8235719,Direction Informatique
speeddial = 8270112,SG FST
cfwdall = off
cfwdbusy = off
dtmfmode = inband
imageversion = CP7905060000SCCP050124A
deny=0.0.0.0/0.0.0.0
permit=192.168.0.6/255.255.255.255
dnd = on
trustphoneip = no
private = on
device => SEP001469E2731E; device name SEP
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[lines]
id = 1001; future use
pin = 1234; future use
label = 1001; button line label (7960, 7970, 7940, 7920)
description = Mr Niang; top diplay description
context = sccp
incominglimit = 2; more than 1 incoming call = call waiting.
transfer = on; per line transfer capability. on, off, 1, 0
mailbox = 1001; voicemail.conf (syntax: vmbox[@context][:folder])
vmnum = 100; speeddial for voicemail administration, just a
number to dial
cid_name = 1001 CID; caller id name
cid_num = 1001
trnsfvm = 1000; extension to redirect the caller (e.g for voicemail)
secondary_dialtone_digits = 9; digits for the secondary dialtone (max 9 digits)
secondary_dialtone_tone = 0x22; outside dialtone
musicclass=default; Sets the default music on hold class
language=fr; Default language setting
rtptos = 184; sets the the rtp packets TOS for this line
echocancel = on; sets the phone echocancel for this line
silencesuppression = off; sets the silence suppression for this line
line => 1001
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
id = 1002; future use
pin = 1234; future use
label = 1002; button line label (7960, 7970, 7940, 7920)
description = Mr Sene; top diplay description
context = sccp
incominglimit = 2; more than 1 incoming call = call waiting.
transfer = on; per line transfer capability. on, off, 1, 0
mailbox = 1002; voicemail.conf (syntax:
vmbox[@context][:folder])
vmnum = 100; speeddial for voicemail administration, just a
number to dial
cid_name = 1002 CID; caller id name
cid_num = 1002
trnsfvm = 1000; extension to redirect the caller (e.g for
voicemail)
secondary_dialtone_digits = 9; digits for the secondary dialtone (max 9 digits)
secondary_dialtone_tone = 0x22; outside dialtone
musicclass=default; Sets the default music on hold class
language=fr; Default language setting
rtptos = 184; sets the the rtp packets TOS for this line
echocancel = on; sets the phone echocancel for this line
silencesuppression = off; sets the silence suppression for this line
line => 1002
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
Configuration des telephones Analogique , WIFI et softphone:
Sip.conf
[bkasse]
type=friend
host=dynamic
secret=bkasse
username=bkasse
defautltip=192.168.0.2
dtmfmode=rfc2833
context=sccp
callerid= »bkasse » <2001>
maibox=2001@mb_acacia
language=fr
[khoureich]
type=friend
host=dynamic
secret=khoureich
username=khoureich
defautltip=192.168.0.2
dtmfmode=rfc2833
context=sccp
callerid= »khoureich » <2002>
maibox=2002@mb_acacia
language=fr
[1012]
type=friend
host=dynamic
secret=1012
username=1012
defautltip=192.168.0.2
dtmfmode=rfc2833
context=sccp
callerid= »1012″ <1012>
maibox=1012@mb_acacia
language=fr
[1013]
type=friend
host=dynamic
secret=1013
username=1012
defautltip=192.168.0.2
dtmfmode=rfc2833
context=sccp
callerid= »1013″ <1013>
maibox=1013@mb_acacia
language=fr
extensions.conf
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[sccp]
exten => 1001,1,SetCalledParty(« lines » <1001>);Mr Ibrahima Niang
exten => 1001,2,Dial(SCCP/1001,60,tr)
exten => 1001,n,VoiceMail(1001@mb_acacia)
exten => 1001,n,PlayBack(vm-goodbye)
exten => 1001,n,Wait(2)
exten => 1001,n,HangUp
;
exten => 1002,1,SetCalledParty(« lines » <1002>);Mr Mbaye Sene
exten => 1002,2,Dial(SCCP/1002,60,tr)
exten => 1002,n,VoiceMail(1002@mb_acacia)
exten => 1002,n,PlayBack(vm-goodbye)
exten => 1002,n,Wait(2)
exten => 1002,n,HangUp
;
exten => 1003,1,SetCalledParty(« lines » <1003>);Secretariat
exten => 1003,2,Dial(SCCP/1003,60,tr)
exten => 1003,n,VoiceMail(1003@mb_acacia)
exten => 1003,n,PlayBack(vm-goodbye)
exten => 1003,n,Wait(2)
exten => 1003,n,HangUp
;
exten => 1011,1,SetCalledParty(« lines » <1011>);Salle Projet
exten => 1011,2,Dial(SCCP/1011,60,tr)
exten => 1011,n,VoiceMail(1011@mb_acacia)
exten => 1011,n,PlayBack(vm-goodbye)
exten => 1011,n,Wait(2)
exten => 1011,n,HangUp
;
exten =>_101X,1,Dial(SIP/${EXTEN},60,tr);pour les numero commancant par
101X utilisant les telephone analogiques
exten =>_101X,n,VoiceMail(${EXTEN}@mb_acacia)
exten =>_101X,n,PlayBack(vm-goodbye)
exten =>_101X,n,Wait(2)
exten =>_101X,n,HangUp
;
exten => 2001,1,Dial(SIP/bkasse,60,tr)
exten => 2001,n,VoiceMail(2001@mb_acacia)
exten => 2001,n,PlayBack(vm-goodbye)
exten => 2001,n,Wait(2)
exten => 2001,n,HangUp
;
;pour ecouter les messages vocaux
exten=>100,1,VoicemailMain(${CALLERIDNUM}@mb_acacia)
exten=>100,2,HangUp
;
;la carte TDM04B
;filtrage des appels sotant
exten=>_8XXXXXX,1,GotoIf($[« ${CALLERIDNUM:0:3} » = « 100 »]?2:5)
exten=>_8XXXXXX,2,Dial(${LOCALTRUNK}/${EXTEN})
exten=>_8XXXXXX,3,PlayBack(/home/acacia-sounds/line-occupe)
exten=>_8XXXXXX,4,Hangup
exten=>_8XXXXXX,5,PlayBack(/home/acacia-sounds/appel-refuse)
exten=>_8XXXXXX,6,Hangup
;
;
exten=>_XX,1,GotoIf($[« ${CALLERIDNUM:0:3} » = « 100 »]?appel-sortant-dep,s,1:2)
exten=>_XX,2,PlayBack(/home/acacia-sounds/appel-refuse)
exten=>_XX,3,Hangup
;
;filtrage des appels les telephones cisco pour l accede aux sallons de conferences
exten=>900,1,GotoIf($[« ${CALLERIDNUM:0:3} » = « 100 »]?3:2)
exten=>900,2,GotoIf($[« ${CALLERIDNUM} » = « 1011 »]?3:conferences,900,1)
exten=>900,3,PlayBack(/home/acacia-sounds/appel-refuse)
exten=>900,Hangup
;
;++++++++++++++++++++++++++++++++++++++CONFER AUDIO++++++++++++++
;
[conferences]
exten=>900,1,Wait(2)
exten=>900,2,MeetMe(|MD)
;
exten=>901,1,Answer
exten=>901,2,Wait(2)
exten=>901,3,macro(conference,901,901)
;
exten=>902,1,Answer
exten=>902,2,Wait(2)
exten=>902,3,macro(conference,902,902)
;
[macro-conference]
exten=>s,1,NoOp(${DATETIME})
exten=>s,2,Answer
exten=>s,3,NoOp(Entrez le numero de sallon #${ARG1})
exten=>s,4,Playback(conference-call)
exten=>s,5,SayDigits(${ARG1})
exten=>s,6,Authenticate(${ARG2})
exten=>s,7,PlayBack(conf-youareinconfnum)
exten=>s,8,SayDigits(${ARG1})
exten=>s,9,PlayBack(conf-thereare)
exten=>s,10,MeetMeCount(${ARG1})
exten=>s,11,PlayBack(conf-peopleinconf)
exten=>s,12,PlayBack(warning)
exten=>s,13,PlayBack(this-call-may-be-monitored-or-recorded)
exten=>s,14,MeetMe(${ARG1}|cps)
exten=>s,15,PlayBack(vm-goodbye)
exten=>s,16,HangUp
;
;+++++++++++++++++++++++++les appels entrants
+++++++++++++++++++++++++++
[appels-entrant-dep]
exten=>s,1,GotoIfTime(9:00-12:00|mon-fri|*|*?sccp,1003,1:2)
exten=>s,2,GotoIfTime(15:00-18:00|mon-fri|*|*?sccp,1003,1:3)
exten=>s,3,GotoIfTime(9:00-13:00|sat|*|*?sccp,1003,1:4)
exten=>s,4,Goto(svi-prof,s,1)
;
[svi-prof]
exten=>s,1,Ringing
exten=>s,2,Wait(2)
exten=>s,n,PlayBack(/home/acacia-sounds/menu)
exten=>s,n,WaitExten
exten=>1,1,Goto(sccp,1001,1);Mr Ibrahima Niang
exten=>2,1,Goto(sccp,1002,1);Mr Mbaye Sene
exten=>4,1,PlayBack(/home/acacia-sounds/vm-goodbye)
exten=>4,2,HangUp
[secretariat]
;exten =>s,1,PlayBack(/home/acacia-sounds/bienvenue)
exten =>s,1,SetCalledParty(« lines » <1003>)
exten =>s,2,Dial(SCCP/1003);
Commandes effectuées sur le serveur asterisk
Annexe 5: Les différents softphones disponibles
Editeur Produit Utilisation Caractéristiques GnoPhone GnoPhone Gratuite Linux, IAX, vidéo IP Blue VTALL Commerciale Windows, PDA, H.323 Microsoft Windows Messenger Gratuite Windows, PDA, SIP, vidéo, messagerie instantanée Net2phone CommCenter Gratuite Windows, Net2phone Pingtel SIP Softphone Commerciale Windows, SIP Collaboration Agent Commerciale Windows, SIP, vidéo, messagerie instantanée Mobile Collaboration Agent Commerciale PDA, smartphone, SIP, messagerie instantanée SIP Quest IMS Client Commerciale smartphone, SIP, messagerie instantanée Skype Skype Gratuite Windows, MAC OS, Linux, PDA, Skype,messagerie instantanée SJLabs SJPhone Commerciale Windows, MAC OS, H.323, SIP, vidéo Source Forge Gnome Meeting Gratuite Linux, H.323, SIP SysMaster PDA Softphone Commerciale Windows, PDA, H.323, SIP ViDa ViDaCall Commerciale Windows, H.323 Wengo WengoPhone Commerciale Windows, SIP, messagerie instantanée eyeBeam Commerciale Windows, MAC OS, SIP, vidéo Xten X-Lite Gratuite Windows, MAC OS, Linux, SIP Pocket PC Commerciale PDA, SIP
Tableau 6. Les différents softphones disponibles
Annexe 6: Les différents hardphones disponibles
Fabricant Modèles Caractéristiques BCM Série WLAN600 WiFi, SIP Cisco Série 7900 Filaire Ethernet, WiFi, MGCP, H.323, SIP D-Link Business IP PHone DPH-140S Filaire Ethernet, SIP GPX-2000 Filaire Ethernet, SIP Grandstream Budget Tone-100 Filaire Ethernet, SIP IPDialog sipTone Filaire Ethernet, MGCP, IAX, SIP NTC-700-7003 WiFi, Net2phone Net2phone MaxIP10 Filaire Ethernet, Net2phone Netgear Skype WiFi Phone WiFi, Skype SoundPoint et SoundStation Filaire Ethernet, MGCP, H.323, SIP Polycom Viewstation EX Filaire Ethernet, MGCP, H.323 Série VSX Filaire Ethernet, MGCP, H.323, SIP Pulver WiSIP WiFi, SIP Senao SI-7800H WiFi, SIP Siemens Optipoint Series Filaire Ethernet, H.323, SIP Snom Série 100/200/300 Filaire Ethernet, SIP Tandberg Série MXP Filaire Ethernet, MGCP, H.323, SIP WIphone Filaire Ethernet, WiFi, MGCP, H.323, Vida IAX, SIP Pro Phone Filaire Ethernet, H.323 VP200 Filaire Ethernet, MGCP, H.323, SIP Yoda VP800 WiFi, SIP VP125 WiFi, MGCP, SIP Yuneng IP série YWH10/YWH100/YWH200 Filaire Ethernet, MGCP, H.323, Net2phone, IAX, SIP Prestige 2000W WiFi, SIP Zyxel Prestige 2000W v2 WiFi, SIP
Tableau 7. Les différents hardphones disponibles
Webographie:
Le site de référence d’Asterisk
voip-info.org/wiki-Asterisk
digum.com
les sources d’Asterisk
asterisk.org
Les cartes TDM
ges.fr/voip/product_info.php?products_id=233
Le protocole H323
fr.wikipedia.org/wiki/H.323
Les SMS
fr.wikipedia.org/wiki/Short_message_service
fr.wikipedia.org/wiki/GSM
Asterisk et les SMS
voip-info.org/wiki-Asterisk+cmd+Sms
les passerelles GSM:
satelco.ch/F/GSM-Gateway-F.htm
qiiq.com/products/GoldenGateSingleDualGSM.pdf
2n.cz/products/gsm_gateways/voip_gsm_gateway/voiceblue_voip_gsm_gateway.html
Forum de discussion:
asterisk-france.net/forum/Les softphones et hardphones disponibles
awt.be/web/fic/index.aspx?page=fic,fr,t00,017,010
Etude et mise en place d’un système de communication de VoIP :
Appliqué à un PABX IP open source
Mémoire de fin d’étude – Master II professionnel Système d’informations réparties
Département de mathématique informatique
Sommaire :
- Etat de l’art sur la Téléphonie sur IP et Solutions logiciels libres
- Notions sur la Téléphonie et sur les PABX classiques
- Avantages Système de téléphonie IP et téléphonie sur IP
- La Téléphonie sur IP: Architecture et mode d’access
- Le protocole H323: Equipements, avantages et inconvénients
- Le protocole SIP et Etude comparative entre SIP et H3233
- Codecs et Gestion de qualité de service: Téléphonie IP
- Logiciels de Téléphonie IP: VOCAL Asterisk Yate – comparaison
- Asterisk: présentation, installation et configuration
- PABX IP avec Architecture SMS: Maquette de test et Couplage
- VoIP: Système de communication