Σκοπός αυτού του άρθρου είναι να δείξει πώς μπορούμε να κάνουμε τις κλήσεις που προωθούνται αλλά δεν απαντούνται, να επιστρέψουν σε αυτόν που τις προώθησε.
Πολύ συχνά στις εγκαταστάσεις τηλεφωνικών κέντρων βασισμένων σε Asterisk® καλούμαστε να αντικαταστήσουμε παλιότερα τηλεφωνικά κέντρα, τα οποία διαθέτουν χαρακτηριστικά τα οποία «φαίνεται» ότι δεν υποστηρίζονται από το Asterisk®. Μια από αυτές τις περιπτώσεις είναι η επιστροφή αναπάντητης προωθημένης κλήσης, όπως στο παράδειγμα που ακολουθεί:
- Γίνεται μια εισερχόμενη κλήση και καταλήγει στο εσωτερικό 100
- Το εσωτερικό 100 προωθεί την κλήση άμεσα στο εσωτερικό 101 (δηλαδή χωρίς να μιλήσει με το εσωτερικό 101)
- Το εσωτερικό 101 κουδουνίζει για 30 δευτερόλεπτα (ή για όσο χρόνο είναι καθορισμένο να κουδουνίζει μέχρι η κλήση να μεταβεί στην κατάσταση ‘μη διαθέσιμο’), αλλά δεν απαντά
- Η κλήση επιτρέφει στο εσωτερικό 100, το οποοίο και αρχίζει να κουδουνίζει
Σε μια τυπική εγκατάστση Asterisk®, στην οποία δεν έχουν γίνει οι απαραίτητες ρυθμίσεις, αυτό που συμβαίνει στο βήμα 4 είναι το κλείσιμο της γραμμής ή, αν έχει ενεργοποιηθεί ο τηλεφωνητής, η μετάβαση της κλήσης στο voice mail του εσωτερικού.
Για να επιτύχουμε την επιστροφή της κλήσης στο αρχικό εσωτερικό (βήμα 4), αρκεί να προσθέσουμε τις γραμμές που ακολουθούν στο extensions.conf.
exten => _XXX,1,Macro(user-callerid,)
exten => _XXX,2,Dial(SIP/${EXTEN},20,tT)
exten => _XXX,n,GotoIf($[ "x${BLINDTRANSFER}" = "x" ]?noBT)
exten => _XXX,n,Set(DIALRET=${CUT(BLINDTRANSFER,-,1)});
exten => _XXX,n,Goto(dRet)
exten => _XXX,n(noBT),GotoIf($[ "x${TRANSFERERNAME}" = "x" ]?sai)
exten => _XXX,n,Set(DIALRET=${CUT(TRANSFERERNAME,-,1)});
exten => _XXX,n(dRet),Set(CALLERID(all)=RET_${EXTEN} <${CALLERID(num)}>)
exten => _XXX,n,Dial(${DIALRET},,mTt)
exten => _XXX,n(sai),Hangup()
Στις παραπάνω γραμμές θα πρέπει να ατικατασταθούν τα XXX με τόσα Χ όσο και το πλήθος των ψηφίων των εσωτερικών που έχουμε στο dial plan μας. Αν δηλαδή τα εσωτερικά μας είναι διψήφια, τότε θέλουμε ΧΧ, αν είναι τριψήφια ΧΧΧ, κ.ο.κ.
Σε ποιό σημείο του dialplan μπαίνουν όλα αυτά τα παραπάνω;
- Σε περίπτωση που δουλεύετε σε vanilla Asterisk®, τότε σίγουρα ξέρετε πού θα προσθέσετε τις γραμμές (στο σημείο που χειρίζεστε το unattended transfer).
- Σε περίπτωση που δουλεύετε με FreePBX (δηλαδή Elastix, trixbox, vanilla Asterisk + FreePBX, κλπ), τότε ανοίξτε το extensions.conf και αναζητήστε το section from-internal-xfer. Προσθέστε όλες τις γραμμές του script πριν από τα δύο (ή μόνο ένα, ανάλογα με την έκδοση του FreePBX) HangUp που βρίσκονται στο τέλος του section.
Τι χάνετε με αυτό το script; Με τον τρόπο που είναι γραμμένο αυτό το script, αγνοεί το voice mail του κάθε εσωτερικού, δηλαδή, ακόμα και αν είναι ενεργοποιημένο το voice mail, όταν γίνει προώθηση κλήσης, ο τηλεφωνητής δεν θα απαντήσει ποτέ. Βέβαια, στην περίπτωση που η κλήση απαντηθεί εκ νέου από την τηλεφωνήτρια, αυτή μπορεί να το προωθήσει απ’ ευθείας στον τηλεφωνητή (πληκπτρολογώντας * και το εσωτερικό).
