Projekat

Općenito

Profil

DynamicDialMenu, podešenje

Sva potrebna podešenja su u extensions.ael fajlu. Ova opcija već spada u programerski domen, tako da je potrebno određeno znanje funkcija tipa GoTo() itd... da bi se održavala i kreirala ova opcija.

Ono što je bitno kod ove opcije je da se dinamički menij stavi kao poseban context u samom conf fajlu.

Evo recimo jedan primjer:

context demo => {
                 31 => {
                          Dial(SIP/31, 400);
                       };

                 32 => {
                          Dial(SIP/32, 400);
                       };

                 // itd.......

                 // 50 je extenzija na kojoj sam odobrio aktivni menij dynamic dial
                 50 => {

                          // prva stvar ext.50 poziva sip 50
                          // ali sam timeout dao 30 sec.

                          Dial(SIP/50, 30, Tt);

                          // nakon timeout-a puštam pozivaocu poruku da nikoga nema
                          Playback(vm-nobodyavail);

                          // pozivam dynamic dial
                          goto dynamicdial|s|1;

                       };
                };

context dynamicdial => {

                        s => {

                              // sacekaj 2 sekunde pa se javi
                              Wait(2);
                              Answer();

                              // reprodukcija "enter num to call" 
                              Background(vm-enter-num-to-call);

                              // extension 1
                              Wait(1);
                              // "extension 1 for 31" 
                              Background(vm-extension);
                              Background(digits/1);
                              Background(vm-for);
                              Background(digits/30);
                              Background(digits/1);

                              // extension 2
                              Wait(1);
                              // "extension 2 for 32" 
                              Background(vm-extension);
                              Background(digits/2);
                              Background(vm-for);
                              Background(digits/30);
                              Background(digits/2);

                              // ........

                              // extension 5
                              // "extension 5 for messages" 
                              Wait(1);
                              Background(vm-extension);
                              Background(digits/5);
                              Background(vm-for);
                              Background(vm-messages);

                              // wait for user input

                              WaitExten();

                             };

                        1 => {
                              Background(vm-extension);
                              Background(digits/1);
                              goto demo|31|1;
                             };

                        2 => {
                              Background(vm-extension);
                              Background(digits/2);
                              goto demo|32|1;
                             };

                        5 => {
                              Background(vm-messages);
                              Voicemail(33@default,u);  // ide na mailbox usera 33 recimo
                              Hangup();
                             };

};

asterisk-b-out-ba

dakle šta se ovdje događa ?

imamo 3 ekstenzije u demo context-u koji je glavni... 31, 32, 50

Odredio sam da ako se na ext.50 niko ne javlja 30 sekundi aktivira se dinamički meni.... koji odmah vodi na context -> dynamicdial extenziju s.

s ektenzija ima funkciju da ispriča dostupne opcije od 1 do 5 npr... te se onda u tom context-u otvara za svaku od opcija i posebna extenzija, za 1, za 2 za 3 itd....

I recimo extenzija 1 opet opcijom GoTo() ide na context demo 31, itd....

Ovdje imamo mnogo mogućnosti samo se treba prepustiti mašti.

asterisk-b-out-ba