= IPABX Dakar = {{{telefon.sn.auf}}} == version actuelles == /!\ Après chaque mise à jour du noyau retélecharger le module zaptel #wget http://updates.xorcom.com/pkg-voip/repo-amd64-lenny/pool/main/z/zaptel/zaptel-modules-2.6.xyz {{{ ii asterisk 1.4.9~dfsg-1 Open Source Private Branch Exchange (PBX) ii asterisk-config 1.4.9~dfsg-1 config files for asterisk ii asterisk-sounds-main 1.4.9~dfsg-1 sound files for asterisk ii libpri1.2 1.4.0-2 Primary Rate ISDN specification library ii libtonezone1 1.4.4~dfsg-1 tonezone library (runtime) ii zaptel 1.4.4~dfsg-1 zapata telephony utilities ii zaptel-modules-2.6.18-3-686 1.2.11.dfsg-1+2.6.18-7 zaptel modules for Linux (kernel 2.6.18-3-68 ii zaptel-modules-2.6.18-4-686 1.4.4~dfsg-1+2.6.18.dfsg.1-12etch2 zaptel modules for Linux (kernel 2.6.18-4-68 ii zaptel-source 1.4.4~dfsg-1 Zapata telephony interface (source code for }}} == module zaptel == # cat /etc/zaptel.conf {{{ fxsks=1-8 loadzone=fr defaultzone=fr }}} #cat /etc/modprobe.d/zaptel {{{ options wctdm24xxp opermode=TBR21 debug=1 }}} + usb flingué dans le bios, pour avoir une IRQ dédiée à la carte == Asterisk == === /etc/asterisk/zapata.conf === {{{ [trunkgroups] [channels] language=fr context=mainmenu signalling=fxs_ks echocancel=yes rxgain=0.0 txgain=0.0 ; fin de communication : detection ALACON busydetect=yes busycount=6 ; fin de communication : detection "polarite" hanguponpolarityswitch=yes group=1 callgroup=1 pickupgroup=1 immediate=no channel => 1 }}} == Quelques petites vérifications en cas de pépin == {{{ # ztmonitor 1 -v : monitor les cannaux RX/TX # ztscan description=Wildcard TDM2400P Board 1 name=WCTDM/0 manufacturer=Digium devicetype=Wildcard TDM2400P with VPM100M location=PCI Bus 01 Slot 10 basechan=1 totchans=24 # ztcfg -vv fournit des renseignements de ce genre : Zaptel Version: 1.4.12.9.svn.r4649 Echo Canceller: OSLEC Configuration ====================== Channel map: Channel 01: FXS Kewlstart (Default) (Slaves: 01) Channel 02: FXS Kewlstart (Default) (Slaves: 02) Channel 03: FXS Kewlstart (Default) (Slaves: 03) Channel 04: FXS Kewlstart (Default) (Slaves: 04) Channel 05: FXS Kewlstart (Default) (Slaves: 05) Channel 06: FXS Kewlstart (Default) (Slaves: 06) Channel 07: FXS Kewlstart (Default) (Slaves: 07) Channel 08: FXS Kewlstart (Default) (Slaves: 08) 8 channels to configure. ~# lsmod | grep zaptel zaptel 196424 11 wctdm24xxp oslec 12832 1 zaptel crc_ccitt 6528 1 zaptel }}} === indications.conf === Création d'un paragraphe {{{[sn]}}} basé sur http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf {{{ [general] country=sn ; default location [sn] description = Senegal ringcadence = 1700,3300 dial = 440 busy = 440/500,0/500 ring = 440/1700,0/3300 ; CONGESTION - not specified congestion = 440/250,0/250 callwait = 440/300,0/10000 ; DIALRECALL - not specified dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 ; RECORDTONE - not specified record = 1400/500,0/15000 info = !950/330,!1400/330,!1800/330 stutter = !440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,!440/100,!0/100,440 }}} == Surcharge AUF == === auf/extensions-final.conf === Contient le menu d'accueil {{{ [auf-accueil] exten => s,1,Set(GLOBAL(snd_path)=/usr/share/asterisk/sounds/auf/) ; variable globale du chemin des sons exten => s,n,Set(GLOBAL(agi_path)=/usr/share/asterisk/agi-bin/) ; variable globale du chemin du script externe exten => s,n,Wait(3) exten => s,n,Answer() exten => s,n,AGI(${agi_path}openclose.agi) exten => s,n,GotoIf($[${STATUS} = closed]?FERME,s,1:) exten => s,n,Playback(beep) exten => s,n,Background(${snd_path}/bienvenu|m|auf-accueil) exten => s,n,Goto(s-menu,1) }}} Initialisation d'une variable locale pour permettre de boucler le menu 4 fois {{{ exten => s-menu,1,Set(bouclemenu=4) exten => s-menu,2,Wait(1) ; exten => s-menu,n,Background(${snd_path}auf-menu) exten => s-menu,n,WaitExten(5) exten => s-menu,n,Set(bouclemenu=$[${bouclemenu} - 1]) exten => s-menu,n,GotoIf($[${bouclemenu} != 0]?2:) exten => s-menu,n,Playback(beep) exten => s-menu,n,Hangup() }}} Le menu qui redirige les gens quand un numéro est tapé. {{{ exten => 1,1,Goto(admin,s,1) ; 1- ADMINISTRATION exten => 2,1,Goto(pgrm,s,1) ; 2- PROGRAMME exten => 3,1,Goto(foad,s,1) ; 3- foad exten => 4,1,Goto(cnfd,s,1) ; 4- cnfd exten => 5,1,Goto(tech,s,1) ; 5- techS exten => 6,1,Goto(infos,s,1) ; 6- infos exten => 0,1,Goto(poste,s,1) ; 0-pour rediriger directement vers un poste connu exten => *,1,Goto(s-menu,2) ;*- revenir au menu exten => i,1,Playback(${snd_path}invalide) ; Joue le son pbx-invalid si l’utilsateur appuie sur une entrée non autorisée exten => i,n,Goto(s-menu,2) ; … puis reviens au début du contexte exten => t,1,Hangup() ; Les contexts contenants les sous menus [FERME] ;1- Heure d'ouverture bureau exten => s,1,Playback(beep) exten => s,n,Playback(${snd_path}/bienvenu) ; Bienvenue a l'auf BAO exten => s,n,Playback(${snd_path}/ferme) ; Heures d'ouverture en rappel exten => s,n,Hangup() ; }}} La fausse file d'attente si on tape sur 1 {{{ [admin] exten => s,1,Dial(IAX2/faustina.mekui-biyoo&SIP/faustina.mekui-biyoo,20,rtT) ; appel sur 2 technologies exten => s,n,Dial(IAX2/diaw.diagne,20,rtT) exten => s,n,Dial(IAX2/oulimata.dieye,20,rtT) exten => t,1,Playback(${snd_path}fin) exten => t,n,Goto(auf-accueil,s-menu,1) ; retourne au menu }}} Les contextes ou groupes d'utilisateurs pouvant faire des appels vers les différents opérateurs {{{ [dkr-fixe] ; numero orange fixe exten => _933XXXXXXX,1,Dial(Zap/r2/${EXTEN:1},20,rt) [urgences] ;a rajouter.... exten => 917,1,Dial(Zap/r2/${EXTEN:1},20,rt) ; Police exten => 918,1,Dial(Zap/r2/${EXTEN:1},20,rt) ; Pompiers [user] ; Groupe restreint aux téléphones fixes include => test include => directcentrex include => AUF include => urgences include => dkr-services include => dkr-fixe }}} Les 3 fichiers ci-dessous seront créée générer par un script ast-conf, pour avoir plusieurs fichiers cohérent. === auf/extensions.local.auto === {{{ exten => 101,1,Macro(AUFDial,oulimata.dieye) exten => 101,hint,SIP/oulimata.dieye&IAX2/oulimata.dieye exten => oulimata.dieye,1,Macro(AUFDial,oulimata.dieye) exten => oulimata.dieye,hint,SIP/oulimata.dieye&IAX2/oulimata.dieye }}} === auf/iax.local.auto === {{{ [oulimata.dieye] type=friend callerid="Oulimata Dieye" <002211101> mailbox=101@AUF user=oulimata.dieye secret=lemotdepasse context=user host=dynamic disallow=all allow=ulaw defaultip=11.22.33.44 }}} === auf/sip.local.auto === {{{ [oulimata.dieye] type=friend callerid="Oulimata Dieye" <002211101> mailbox=101@AUF username=oulimata.dieye secret=lemotdepasse context=user host=dynamic disallow=all allow=ulaw call-limit=10 }}} == Tests à effectuer avant validation == * appels sortant vers sonatel * est-ce que le hangup est bien detecté ? -- ça c'est bon * appels entrant depuis sonatel * est-ce que le hangup est bien detecté ? -- bidouillage, c'est bon quand on décroche, mais pas bon quand on décroche pas. Donc on a bidouillé au niveau de la voicemail.conf pour ne pas accepter de message vide de plus de 4 secondes. * appels sortant vers auf -- c'est bon * appels entrant depuis auf -- RAS * menu d'accueil -- On se contente de ça * n clients connectés simultanément -- C'est bô * ligne directcentrex -- ça marche * stats: MRTG -- pffffffffffffff * gestion des files d'attente -- pffffffffffffff * Documentation Wiki -- pffffffffffff * Friendly Algorithme -- pffffffffffffff ---- [[CatégorieVoIP]]