C.124. RaiseException()

Löst eine Exception (Ausnahme) aus.
RaiseException(Grund)
RaiseException() löst eine Exception aus, springt also zur Extension e im aktuellen Kontext, wo die Ausnahme dann mit der Funktion EXCEPTION() abgefragt und behandelt werden kann. Falls keine e-Extension existiert, wird der Kanal aufgelegt.
123 => {
    // ...
    if ("${eingabe}" = "") {
        RaiseException(KEINEEINGABE);
    }
    // ...
}

e => {
    Verbose(1,### Eine Exception ist aufgetreten);
    if ("${EXCEPTION(reason)}" = "KEINEEINGABE") {
        Playback(sie-haben-nichts-eingegeben);
    }
    else if ("${EXCEPTION(reason)}" = "RESPONSETIMEOUT") {
        Playback(ein-timeout-ist-aufgetreten);
    }
    else {
        Playback(ein-anderer-fehler-ist-aufgetreten);
    }
    Hangup();
}
Asterisk-Versionen:
        |     |        |     |        | 1.6 |————————
Interner Hilfetext zu dieser Applikation in Asterisk 1.6:
  -= Info about application 'RaiseException' =-

[Synopsis]
Handle an exceptional condition

[Description]
  RaiseException(<reason>): This application will jump to the "e" extension
in the current context, setting the dialplan function EXCEPTION(). If the "e"
extension does not exist, the call will hangup.
Differenz des internen Hilfetexts von Asterisk 1.4 zu 1.6:
— in Asterisk 1.4 nicht vorhanden —