iface eth0 inet static address 192.168.10.41 netmask 255.255.255.0 gateway 192.168.10.1Istället för raden "iface eth0 inet dhcp" Sedan installerade jag asterisk:
sudo apt-get install asteriskLite konfiguration av asterisk. Börja med filen /etc/asterisk/sip.conf Ändra till följande inställningar i [general]-sektionen:
[general] context=default allowoverlap=no udpbindaddr=0.0.0.0 tcpenable=yes tcpbindaddr=0.0.0.0 transport=udp srvlookup=yesI slutet av sip.conf kan man även lägga in sip-konton (sip-klienter som kan registrera sig). Lägg till konton för alla i hushållet som har SIP-klienter via mobiler. Även den SIP-telefon (flera?) som alltid finns hemma. Formatet på dessa är så här:
[<användarnamn>] type=friend username=<användarnamn> secret=<lösenord> host=dynamic context=<kontext> allow=all(upprepa denna sektion för alla sip-konton, ange egna värden på <användarnamn>,<lösenord> och <kontext>) Använd långa och "säkra" lösenord. Kontext är den grupp användarna tillhör, ange exempelvis "hemma". Skapa även ett sip-konto för den sip-lur som alltid skall vara hemma. I filen /etc/asterisk/extensions.conf, kommentera bort allt i [default]-sektionen och skapa en sektion som heter [<kontext>] i mitt fall [hemma]. Lägg till anknytningen till varje användarnamn i denna sektion
exten => <anknytning>,1,Dial(SIP/<användarnamn>) exten => <användarnamn>,1,Goto(<anknytning>,1)exempel på hur det kan se ut för mig:
exten => 1001,1,Dial(SIP/jka) exten => jka,1,Goto(1001,1)Anknytningen består av siffror, exempelvis 1001. Den andra exten-raden som skapas för varje användare gör att man kan ringa till användaren även via användarnamnet, inte bara växelnumret Starta (om) asterisk och pröva att registrera ett par SIP-användare som du skapat. (domän är det domännamn som din sip-server har). Ett tips är att hämta hem SIP-klienter som går att köra på din smartphone (Android eller iPhone. Nyare versioner av Andriod har inbygd SIP-klient). Pröva att ringa till varandra.
register => <användarnamn>:<lösenord>@<hostnamn för sipserver>i slutet av "[general]"-sektionen i sip.conf. Om du tänker placera din telefonväxel bakom en brandvägg (rekommenderas) så skall man även lägga in följande parametrar i slutet av denna sektion:
domain=<ditt domännamn> externip=<det externa ip-nummer som du har> localnet=<lokalt nät/nätmask> i mitt fall: 192.168.10.0/255.255.255.0Om din växel är bakom en brandvägg får du även göra en port forwarding i din router för port 5060 både udp och tcp till ip-numret för din telefonväxel (i mitt fall 192.168.10.41)
För att kunna ringa in- och utgående samtal från och till det fasta nätet via dina SIP-klienter får du skapa en ny sektion i sip.conf (lägg den precis innan definitionerna av dina egna SIP-konton) som innehåller uppgifter om den operatör som skall användas (samma uppgifter som vid registreringen ovan). Skriv in följande:
[<namn, exempelvis operatörens namn>] i mitt fall [AllTele] nat=yes (om man sitter bakom brandvägg, annars kan detta skippas) qualify=yes fromuser=<användarnamn> username=<användarnamn> secret=<lösenord> host=<hostnamn för sipserver> insecure=port,invite allow=all context=incoming (namn på den kontext man specar i extensions.conf som hanterar inkommande samtal, se nedan)Nu lite mer konfiguration i extensions.conf. I den sektion där du la till växelnumren för dina sip-klienter (i mitt fall heter den [hemma]) får du även lägga in nummer som man skall kunna ringa ut och vilken operatör de skall kopplas till. Lägg till följande först i denna sektion:
exten => _0.,1,Dial(SIP/<operatörens namn>/${EXTEN},60) exten => _+46.,1,Dial(SIP/<operatörens namn>/${EXTEN},60)I mitt fall är operatörens namn AllTele (som spec:ades i sip.conf innan). (,60 innebär att man försöker ringa i 60 sekunder) Detta gör att det enbart går att ringa samtal inom Sverige, om du vill kunna ringa till alla länder, tag bara bort 46 i raden som inneåller _+46 Nu skall vi lägga in logiken för inkommande samtal. Vi börjar utan telefonsvarare och att man bara ringer på den SIP-telefon som jämt är hemma. Lägg till en ny sektion i extensions.conf under den du just ändrade i, vi namnger den incoming :
[incoming] exten => s,1,Answer() exten => s,n,Dial(SIP/hem,60,r) exten => s,n,Dial(SIP/<operatörens namn>/+46704411118,30,r) exten => s,n,HangupI mitt fall heter SIP-kontot för min hem-telefon "hem". operatörens namn=AllTele och det är mitt mobilnummer som skall ringas om ingen svarat hemma efter 60 sekunder Starta nu om asterisk (/etc/init.d/asterisk restart) och kontrollera att all funktionaltitet fungerar så här långt. Kolla att registreringen går bra i (/var/log/asterisk/messages). Man skall kunna ringa ut från hemtelefonen eller via SIP-klienten i din mobil. Inkommande samtal skall först ringa på hemtelefonen i 60 sekunder sedan på det specade mobilnumret
asterisk -rx "dialplan add extension s,2,Dial(SIP/hem&SIP/jka,60,r) into incoming replace"Phyton-scriptet finns att ladda ned här
mailcmd=/usr/local/bin/sendmailmp3I sektionen [default] lägg till den extension som skall få mail:
1001 => ,jka,jka@ekblad.org,,delete=yesI extensions.conf ändra i incoming-sektionen så att det nu står:
[incoming] exten => s,1,Answer() exten => s,n,Dial(SIP/hem,60,r) exten => s,n,Dial(SIP/<operatörens namn>/+46704411118,30,r) exten => s,n,Voicemail(1001,u) exten => s,n,HangupStarta om asterisk och ring telefonnumret hem utan att svara, tala in ett meddelande och se om du får ett mail!