Μία από τις λειτουργίες που υπάρχει στο Asterisk είναι αυτή του DND (Do Not Distrurb). Αν κάποιος μας καλέσει και την έχουμε ενεργοποιήσει τότε θα πάρει σαν απάντηση ότι είμαστε απασχολημένοι. Το πρόβλημα με την συγκεκριμένη λειτουργία είναι ότι αν έχει ενεργοποιηθεί, δεν αλλάζει η πραγματική κατάσταση του εσωτερικού μας. Αυτό έχει σαν αποτέλεσμα σε εσωτερικά που έχουν BLF πλήκτρα, το εσωτερικό μας να εμφανίζεται σαν διαθέσιμο. Παρακάτω θα δούμε πως μπορεί να αλλάζει η κατάσταση του εσωτερικού μας ανάλογα με το αν έχουμε ενεργοποιημένη ή όχι την συγκεκριμένη λειτουργία. Οι οδηγίες αφορούν συστήματα που βασίζονται σε Elastix/FreePBX.
Αφού συνδεθούμε με Putty στο μηχάνημα μας, δίνουμε την παρακάτω εντολή.
cd /var/www/html/admin/modules/core/
Ανοίγουμε το αρχείο functions.inc.php και βρίσκουμε την γραμμή
$presence_string = $amp_conf['AST_FUNC_PRESENCE_STATE'] ? «,CustomPresence:».$exten['extension'] : »;
$presence_string = $amp_conf['AST_FUNC_PRESENCE_STATE'] ? «&Custom:DND».$exten['extension'].»,CustomPresence:».$exten['extension'] : »;
Σώζουμε το αρχείο και δίνουμε την παρακάτω εντολή
cd /etc/asterisk
Ανοίγουμε το αρχείο extensions_custom.conf και κάτω από το [from-internal-custom] βάζουμε το παρακάτω dialplan
exten => *766,1,Answer
exten => *766,n,Wait(1)
exten => *766,n,Macro(user-callerid,)
exten => *766,n,GotoIf($["${DB(DND/${AMPUSER})}" = ""]?activate:deactivate)
exten => *766,n(activate),Set(DB(DND/${AMPUSER})=YES)
exten => *766,n,Set(DEVICE_STATE(Custom:DND${AMPUSER})=BUSY)
exten => *766,n(hook_on),Playback(do-not-disturb&activated)
exten => *766,n,Macro(hangupcall,)
exten => *766,n(deactivate),Noop(Deleting: DND/${AMPUSER} ${DB_DELETE(DND/${AMPUSER})})
exten => *766,n,Set(DEVICE_STATE(Custom:DND${AMPUSER})=NOT_INUSE)
exten => *766,n(hook_off),Playback(do-not-disturb&de-activated)
exten => *766,n,Macro(hangupcall,)
Αφού σώσουμε το αρχείο, από το web interface του συστήματος, κάνουμε edit το πρώτο διαθέσιμο extension και απλά πατάμε submit/appy changes here.
Για να ενεργοποιήσουμε ή να απενεργοποιήσουμε την λειτουργία DND καλούμε το *766. Κάθε φορά θα αλλάζει η πραγματική κατάσταση του εσωτερικού μας σύμφωνα με την λειτουργία.