Hack-sterisk
|
Installation of our own asterisk in our hackerspace
we begin about 19h30 - 20h with a hands-on session (nobody of us is an expert, but we'll find out :-)
- on a linux-box (take your own flavours of un*x if you want to, of course)
- configuration
we hope we can begin the tests
- test between softphones
- phones connected to ATA ? if you have a ATA-box Analog_telephone_adapter bring it !
- phones connected to the card (or even the real line ?) ? FXO and FXS
+ if all goes well, let's try ?
- teleconference : multi users conversation
- answering machine which sends your messages by email
Contents
interested ?
write your pseudo here
- Juliane
- agnez
- ptr_
- zoobab
- askarel
- Benwa
docu & good links / configs
books
- "Asterisk the future of telephony" (ed O'Reilly) 2005 : http://cdn.oreilly.com/books/9780596510480.pdf -- definitely worth a read -- has some inaccuracies in configuration (eg Asterisk trunking config has plenty of small mistakes)
Links
- http://www.asterisk.org/ Asterisk official website and https://wiki.asterisk.org/wiki/display/AST/Getting+Started+with+Asterisk
- http://jeremy-mcnamara.com/asterisk/how-to-configure-asterisk/ : "How to configure Asterisk: your first installation" : quick, minimal, a simple config, ok for a first reading
- http://www.asteriskguru.com/tutorials/
- http://www.voip-info.org/ the bible according to B. from DP
- http://www.lululaberlu.com/category/Asterisk - also from DP, in FR, but the configs are config (some English-asterisk jargon )
- http://ofps.oreilly.com/titles/9780596517342/index.html Asterisk the definitive guide book, work in progress - seems fine to read online
- http://www.asteriskguide.com/mediawiki/index.php/Main_Page
and "the getting started with asterisk" 77 pages ==
- Brussels peering : https://wiki.tuxicoman.be/PeeRing
- http://asterisk.hosting.lv/ : G.729 and G.723.1 codecs x86 (and x86_64) Linux and FreeBSD binaries for Asterisk open source PBX
- THE BIBLE : http://www.voip-info.org/
installing files
add backports repo
deb http://www.backports.org/debian lenny-backports main contrib non-free
create /etc/apt/preferences
Explanation: La version stable avant les autres Package: * Pin: release a=stable Pin-Priority: 900 Explanation: Backports Package: * Pin: release a=lenny-backports Pin-Priority: 200 Explanation: pour avoir la version 1.6 de asterisk Package: asterisk* Pin: release a=lenny-backports Pin-Priority: 999
packages to install
apt-get install -t lenny-backports asterisk-doc asterisk-sounds-main asterisk-sounds-extra asterisk-h323 asterisk-prompt-fr-proformatique postfix
don't forget to configure postfix
changed config files
All files in /etc/asterisk/
sip.conf
[general]
context=local ; context par defaut pour les utilisateurs
bindport=5060 ; port UDP du protocole SIP
bindaddr=0.0.0.0 ; adresse IP de l’interface sur lequel le serveur va ecouter le
; trafic 0.0.0.0 pour toutes les interfaces
language=fr ; messages vocaux en français
localnet=172.22.33.0/24
[wouter] ; obligatoire ; login SIP
secret=Bach ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="wouter" <5002> ; facultatif ; nom affiche et numero affiche sur le
; telephone de l'appeler
mailbox=5000@default
[benwa] ; obligatoire ; login SIP
secret=azerty ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="BenWa" <5001> ; facultatif ; nom affiche et numero affiche sur le
; telephone de l'appeler
mailbox=5001@default
[juliane] ; obligatoire ; login SIP
secret=1234 ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="juliane" <5005> ; facultatif ; nom affiche et numero affiche sur le
; telephone de l'appeler
mailbox=5002@default
[agnez] ; obligatoire ; login SIP
secret=1234 ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="agnez" <5003> ; facultatif ; nom affiche et numero affiche sur le
; telephone de l'appeler
mailbox=5003@default
[askarel] ; obligatoire ; login SIP
secret=9876 ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="askarel" <5004> ; facultatif ; nom affiche et numero affiche sur le
; telephone de l'appeler
mailbox=5004@default
[agnezATA] ; obligatoire ; login SIP
secret=1234 ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="agnezATA" <5006> ; facultatif ; nom affiche et numero affiche sur le
; telephone de l'appeler
mailbox=5006@default
extensions.conf
[local]
include => echotest
include => conference
include => messagerie
exten => 5001, 1, Dial(SIP/benwa, 10)
exten => 5001, 2, VoiceMail(5001)
exten => 5002, 1, Dial(SIP/wouter, 10)
exten => 5002, 2, VoiceMail(5002)
exten => 5003, 1, Dial(SIP/agnez, 10)
exten => 5003, 2, VoiceMail(5003)
exten => 5004, 1, Dial(SIP/askarel, 10)
exten => 5004, 2, VoiceMail(5004)
exten => 5005, 1, Dial(SIP/juliane, 10)
exten => 5005, 2, VoiceMail(5005)
exten => 5006, 1, Dial(SIP/agnezATA, 10)
exten => 5006, 2, VoiceMail(5006)
[echotest]
exten => 500, 1, Answer
exten => 500, n, Playback(demo-echotest) ; Let them know what's going on
exten => 500, n, Echo ; Do the echo test
exten => 500, n, Playback(demo-echodone) ; Let them know it's over
exten => 500, n, Hangup
[conference]
exten => 666,1,Answer
exten => 666,n,Wait(1)
exten => 666,n,MeetMe(testconf,666)
exten => 666,n,Playback(vm-goodbye)
exten => 666,n,Hangup
;exten => 666,1,MeetMe(666,666)
[messagerie]
exten => 777, 1, VoiceMailMain()
exten => 888, 1, VoiceMailMain(${CALLERIDNUM}) ; consultation de la messagerie login automatique avec le No de l'appelant
voicemail.conf
[general]
format=wav
serveremail=Asterisk-HSB
attach=yes
skipms=3000
maxsilence=10
silencethreshold=128
maxlogins=3
charset=ISO-8859-15
emailsubject=[Asterisk-HSB] : Nouveau message de ${VM_CALLERID} dans votre boite.
emailbody=${VM_NAME},\n\n\tvous avez recu un nouveau message de ${VM_CALLERID} dans votre boite.\nDurée du message : ${VM_DUR}\nNumero du message : ${VM_MSGNUM}\nDate du message : ${VM_DATE}.\n\n\t\t\t\t_--* Asterisk-Team@HSB *--_\n
emaildateformat=%A, %d %B %Y at %H:%M:%S
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
[default]
5001 = 234, Benwa, benwa@mail.mail
5002 = 234, Wouter, wouter.simons@mail.mail
5003 = 234, Agnez, agnez@mail.mail
5004 = 234, Askarel, askarel@mail.mail
5005 = 234, Juliane, juliane@mail.mail
meetme.conf
[rooms] ; ; Usage is conf => confno[,pin][,adminpin] ; conf => 666 ; simple on /// but by the way we had a problem with a device - pseudo channel ( so => to do again conf => testconf,666
peering and trunking
links on asterisk peering
peer 2 asterisk boxes using IAX2 (easier for firewalling then SIP)
- http://etel.wiki.oreilly.com/wiki/index.php/Peering_two_Asterisk_servers_using_IAX
- the o'reilly book also has some info on peering and trunking, both using SIP and IAX2 (p111 in second edition)
config we tried (later that night, by ptr_)
we have two asterisk boxes:
- idelix (on 172.22.33.23)
- obelix (on 172.22.33.75)
i only document the setup on idefix -- obelix is alike...
iax.conf -- each box sets up an account for iax2 peering
[general] register => idefix:welcome@172.22.33.75 [obelix] type=friend host=dynamic trunk=yes secret=welcome context=incoming_obelix
extentions.conf -- we added the [incoming_obelix] context (calls coming in/going out to our obelix-peer) and a dialplan with prefix extention number.
[general]
autofallthrough = yes
[local]
include => echotest
include => remote
include => internal
exten => 6010, 1, Dial(SIP/ptr, 10)
exten => 6010, 2, VoiceMail(6010)
[incoming_obelix]
include => local
[internal]
exten => _2XXXX,1,NoOp()
exten => _2XXXX,n,Dial(SIP/${EXTEN})
exten => _2XXXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _2XXXX,n,Hangup()
[remote]
exten => _1XXXX,1,NoOp()
exten => _1XXXX,n,Dial(IAX2/obelix/${EXTEN})
exten => _1XXXX,n,Hangup()
[echotest]
exten => 500, 1, Answer
exten => 500, n, Playback(demo-echotest) ; Let them know what's going on
exten => 500, n, Echo ; Do the echo test
exten => 500, n, Playback(demo-echodone) ; Let them know it's over
exten => 500, n, Hangup