ProjectMF Installation (telefon Phreaking) (5 / 8 steg)
Steg 5: Post konfiguration
Varje gång vi redigera filen /etc/asterisk/extensions.conf måste vi starta om Asterisk. Följande rader i filen bestämmer hur Asterisk hantera inkommande samtal, där ges DID numret till oss av Vitelity.net
Konfiguration sammanhang i Extensions.conf
Det finns tre kontexter som behöver specificeras inom hakparenteser – standard, inkommande, och från inre. Standardkontexten finns tillägg som kan ringas utan att gå över en SF stammen. Det refereras också till i filen /etc/asterisk/sip.conf som "standardkontext för inkommande samtal." Detta sammanhang används endast om ett visst sammanhang inte anges inom posten sip.conf enhet/leverantör. Enbart tal i standardkontexten kan ringas direkt via gjorde DISA.
Inkommande är i detta sammanhang som vi använder för en inkommande Vitelity.net nummer. Det är i detta sammanhang används när stammarna 25-48 får ett samtal från stammar 1-24 ("g1") till exempel,
[inkommande] < br > exten = >, 1, svar < br > exten = >, 2,DISA(1234|default) < br > exten = >, 3, Hangup
är en enskild instans i den inkommande kontext som kommer att svara på inkommande samtal till DID. DISA i det här exemplet är "Direkt aktiv System tillgång" och kommer att svara på samtalet med kopplingston som koden som anges ovan "1234" får en ny kopplingston. Om vi skapar en förlängning 999 som,
exten = > 999,1,Wait(1) < br > exten = > 999,2,Playback(660927ring,noanswer) < br > exten = > 999,5, HangUp
Vi kan skapa en anslutning till en Zaptel kanal, använda funktionen Dial() , som,
Dial(ZAP/G1/999)
Detta skulle ansluta till kanalen Zaptel i tillägget 999. Vi kan sätta den här funktionen körs när en viss förlängning rings upp från vår DISA anslutning, som något som förlängning 2600 som,
exten = > 2600,1, svar < br > exten = > 2600,2,Dial(ZAP/g1/999) < br > exten = > 2600,3, HangUp
Där 2600 är våra anknytningsnumret som svarar, skapas en Zaptel anslutning om du vill gruppera 1 med nästa tillgängliga paret på vår stam. Denna förlängning skall vara under standardkontexten DISA kommandot för DID startpunkter i detta sammanhang. Med våra nya Zaptel kanal anslutning, kan vi nu ringa från inre tal med hjälp av våra blå ruta. Både den "från inre" och "standard" sammanhang definieras också i filen Zapata.conf som vi såg i steg 3 - konfigurationen.
Spela ljud
Om vi vill spela toner eller andra ljudklipp, måste vi först skapa dem. Ljud i Asterisk spelas bäst som GSM-filer som vi kan enkelt göra genom att konvertera WAV-filer med hjälp av sox.
roten sox < input file.wav > - r 8000 - c 1 -s -w sampla - ql
MP3-filer kan också kodas till WAV med hjälp av lame-mp3 LINUX verktyg som kommer att installeras från externa källor, som
Lame--avkoda soundfile1.mp3 soundfile1.wav
eller igen vi kan script denna process som följande,
för jag i *.mp3; lame--avkoda $i "basename $i.mp3'.wav; gjort
Sedan har vi helt enkelt placera nya GSM/WAV-filer till katalogen/var/lib/asterisk/ljud / . Vi kan nu använda Playback() eller ControlPlayback() funktioner i filen /etc/asterisk/extensions.conf för att spela dem. Till exempel, kan vi ställa upp förlängning 112 att spela ett ringande ljud och sedan classtrack1HQ.gsm fil med följande kod som,
; Evan Doorbell inspelning: < br > exten = > 112,1,Playback(ring08) < br > exten = > 112,2,ControlPlayback(classtack1HQ,30000,#,*,0) < br > exten = > 112,3,Wait(1) < br > exten = > 112,4, HangUp
Vi kan ändra alla WAV-filer i aktuell katalog med denna enkla Bash one-liner:
rot för i i *; gör j = $(eko $i|sed/wav$ / gsm /'); Sox $i - r 8000 - c 1 -s -w $j sampla - ql; gjort
Sedan helt enkelt göra,
root cp *.gsm/var/lib/asterisk/ljud /
Kopiera dem till katalogen Asterisk ljudresurser.
IF - annan logik
Om / Else logik är möjligt med hjälp av filen extensions.conf i en ternär-liknande sätt. Till exempel, kan vi samla in information från användarens knappsats, kolla det, och om det är vad vi vill gå till en linje som heter exten. Låt oss ta en titt på ett exempel.
exten = > 9935,1, svar; Besvara samtal! < br > exten = > 9935,n(ring),PlayBack(ringback); ringde en gång
exten = > 9935,n(begin),Read(datulogin,440long,,2); spela "kopplingston" 440hz A4 Obs - 7 sekunder timeout
exten = > 9935, n, GoToIf ($[${datulogin}"="1111"]? getnum:), lösenordet är"1111"(standard)
exten = > 9935, n, GoToIf ($[${datulogin}"=" * 2222222 "]? datuadmin:end); om inte 1111 eller 222222 - slut
exten = > 9935,n(getnum),Read(datulogin,440long,10,10); get abonnenten radnummer
exten = > 9935,n,PlayBack(datu_connectedto); säga "ansluten till"
exten = > 9935,n(readnum),SayDigits(${datulogin}); säga siffror tryckte (måste vara i DATU röst, kommer att genomföra senare)
exten = > 9935,n,PlayBack(datu_ok); "OK"
exten = > 9935,n,PlayBack(datu_opt_audiom); "AUDIO MONITOR"
exten = > 9935,n,Wait(1); pausa
exten = > 9935,n,PlayBack(am_10sec)
exten = > 9935,n,PlayBack(datu_614hz); spela dubbel pip
exten = > 9935,n,Read(temp,,2,0,1,60); Om ingen funktion väljs
Ovanstående kod för extensions.conf simulerar en Direkt tillgång Test enhet. Märka hur numren som vanligtvis används för att beställa exten raderna är nu "n." också, vi har nu etiketter efter den 'n's som "ring", "börja", "getnum" och "readnum." Dessa etiketter kallas av funktionerna GoTo() och GoToIf() . Vi använder funktionen Read() att spela upp ett ljud och lyssna för användarindata. Användardata lagras sedan i variabelnamnet anges. En allmän definition av read() kan vara så,
Read(Variable[|filename][|maxdigits][|option][|attempts][|timeout])
Där är "filnamn" GSM ljudfil som ska spelas. I vårt fall, vi spela 440Hz tonen och väntar på indata från användaren. Låt oss ta en snabb titt på GoToIf().
GoToIf($[]?somelabel:otherLabel)
Om uttrycket är sant, GoToIf() kommer att gå till "somelabel" etiketten och kör den nya linjen. Om det inte är sant, det går till otherlabel etiketten och kör den nya linjen. Om otherlabel inte har definierats, skulle Asterisk har bara fortsatt ner till nästa rad. Detta är hur enkelt if/else logica kan användas i Asterisk för ProjectMF.