# Do your OUTGOING call processing customisations here.
# Als erstes einige Umformungen & die Behandlung von Sonderfälle
digitsOnly = req.URI.User.gsub(/(%20)*(%23)*/,"") # Leerzeichen (%20) aus der gewählten Adresse werden für die Hilfsvariable digitsOnly entfernt
digitsOnly = digitsOnly.gsub(/(\D)*/,"") # Nur den Ziffernanteil aus der Adresse wird ermittelt. Macht aus "(030)-233345": 030233345
case req.URI.User when /^[1-9](\d{8,12})\z/ then req.URI.User=digitsOnly="00"+digitsOnly end # Erkennt falls Rufnummern im Format +49xxxxxxxxx, aber ohne das führende + übermittelt werden (Fritzbox mach so etwas). In diesem Fall wird die Nummer zu 0049xxxxxxxxx umgewandelt.
case req.URI.User
# Regeln für manuelles Callrouting call-by-call-artig mit Vorvorwahlen
when /^00001/ then sys.Dial("${dst:5}@Provider1") # Manuelles rauswaehlen ueber Provider1 durch vorwaehlen von 00001
when /^00002/ then sys.Dial("${dst:5}@Provider2") # Manuelles rauswaehlen ueber Provider2 durch vorwaehlen von 00002
when /^00003/ then sys.Dial("${dst:5}@Provider3") # Manuelles rauswaehlen ueber Provider3 durch vorwaehlen von 00003
when /^\*1/ then sys.Dial("${dst:2}@Provider1") # Manuelles rauswaehlen ueber Provider1 durch vorwaehlen von *1
when /^\*2/ then sys.Dial("${dst:2}@Provider2") # Manuelles rauswaehlen ueber Provider2 durch vorwaehlen von *2
when /^\*3/ then sys.Dial("${dst:2}@Provider3") # Manuelles rauswaehlen ueber Provider3 durch vorwaehlen von *3
# Eigene definierte Kurzwahlen (nicht die DUS (Provider2) Kurzwahlen, sondern hier selbst definierte)
when /(^0$)|(^000$)/ then sys.Dial(ringOnCallIN) # Internruf mittels 0 oder 000 (wie Anruf von Aussen)
when /(^1$)|(^111$)/ then sys.Dial("030123456@Provicer2") # Eltern mittels 1 oder 111
when /(^2$)|(^222$)/ then sys.Dial("03045676@Provider3", 40)
sys.Dial("01790000@Provider2", 25) # Freundin1 erst Zuhause per VOIP, dann Mobil
when /(^3$)|(^333$)/ then sys.Dial("01234567@Provider1") # Meine Genion Nummer
when /(^4$)|(^444$)/ then sys.Dial("03076543@Provider1&03098654@Provider1") # Freundin2 Genion & Festnetz gleichzeitig
when /(^5$)|(^555$)/ then sys.Dial("0049177000000@Provider2") # Der Paketabholer mittels 5 oder 555
# Regeln für automatisches Callrouting basierend auf der Rufnummer
when /^([2-9][01-9][01-9]|[1-9][01-9]|[1-9])$/ then sys.Dial(digitsOnly+"@Provider2") # Matched DUS (Provider2) Kurzwahlen & routed ueber DUS
when /^([2-9]).*/ then sys.Dial("004930"+digitsOnly+"@Provider1") # Matched lokale Nummern ohne Vorwahl & routed mit Vorwahl ueber Provider1
when /^(0900|0049900|\+49900|0137|0049137|\+49137).*/ then sys.Respond(403, "Verbotene Nummer!") # Matched 0900 & 0137 und antwortet mit Verboten.
when /^([2-9]|0[2-9]|0049[2-9]|\+49[2-9]).*/ then sys.Dial(digitsOnly+"@Provider1") # Matched dt. Festnetz & routed ueber Provider1
when /^(015|016|017|004915|004916|004917|\+4915|\+4916|\+4917).*/ then sys.Dial(digitsOnly+"@Provider3") # Matched dt. Mobilfunk & routed ueber Provider3
when /^(00[1-9]).*/ then sys.Dial(digitsOnly+"@Provider3") # Matched Auslandsgespräche & routed ueber Provider3
else sys.Dial(digitsOnly+"@Provider2") # Matched alle anderen & routed ueber Provider2
end
end