Unterdrückten Anruf benennen

back2live

Neuer User
Mitglied seit
16 Okt 2008
Beiträge
104
Punkte für Reaktionen
0
Punkte
16
Hallo,

bei der Anlage muß eine 0 für Amtsleitung vorgewählt werden.
Damit der Rückruf am Telefon richtig möglich ist klebe ich eine 0 zusätzlich an die callerid von extern:

exten => _X!,1,Set(CALLERID(num)=0${CALLERID(num)})

wenn nun jemand unterdrückt anruft möchte wird nur 0 im Display angezeigt. Ich möchte aber in diesem Fall nicht die 0 setzen sondern CALLERID(name) auf unterdrückt setzen.
Wie müsste das Script ausschauen? Ich habe hier nachgelesen http://www.das-asterisk-buch.de/einleitung-regex.html dort wird aber nur auf rufnummern verglichen.

viele Grüße
Andi
 
Du kannst einen Befehl mit ExecIf abhängig von einer Bedingung ausführen. Oder wenn es längere Code-Blöcke sind, mit GotoIf dorthin springen.

Pass bei der Abfrage auf, wenn Du vom TSP eine leere Callerid bekommst, musst Du " setzen:
ExecIf($["${CALLERID(num)}" = ""],Set...)
Es gibt auch TSPs, die unknown oder anonymous oder etwas in der Art senden, das musst Du ggf. ausprobieren, zB. per Noop(${CALLERID(num)}).

Eine andere Möglichkeit, je nachdem wie Dein Dialplan aufgebaut ist, nennt sich Anit-Ex-Girlfriend. Diese Methode ist aber rein auf die Callerid beschränkt.
 
In Ergänzung / zur Vereinfachung des Lösungsansatzes von rentier-s:

Code:
ExecIf($[${REGEX("^[0-9]+$" ${CALLERID(num)})}],Set...)

Hat den Vorteil, dass es egal ist, ob die CALLERID(num) leer oder mit beliebigen nichtnumerischen Zeichen gefüllt ist, es wird nur ausgefüjrt, wenn die eben ausschließlich aus Ziffern besteht ...
 
Hallo,

danke für die Beispiele,

Bin etwas am experimentieren aber es klappt einfach noch nicht richtig
Ich versuche erstmal ein einfaches Beispiel für alle intern:

das hier funktioniert:

[from-internal]
exten => _X!,1,Set(CALLERID(all)=unbekannt)


das hier dann schon nicht mehr, zum testen soll es einfach mal für die Extension 11 gelten

[from-internal]
exten => _X!,1,ExecIf($["${CALLERID(num)}" = "11"] ,Set(CALLERID(all)=unbekannt))

ergibt:
asterisk*CLI>
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [10@from-internal:1] ExecIf("SIP/11-00000052", "1,Set(CALLERID(all)=unbekannt)") in new stack
== Spawn extension (from-internal, 10, 1) exited non-zero on 'SIP/11-00000052'
-- Executing [h@from-internal:1] Hangup("SIP/11-00000052", "") in new stack
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/11-00000052'
asterisk*CLI>

Bei einer anderen Extension z.b. 40 greift die Regel nicht und funktioniert wie es soll.

Andi
 
Setz mal die verbosity auf 5, dann müssten detailliertere Meldungen auftauchen.

CALLERID(all) erwartet Name <Nummer> als Parameter, ich schätze dass er deshalb abbricht.
 
Zuletzt bearbeitet von einem Moderator:
Ich hatte asterisk mit 10v aufgerufen.

asterisk -rvvvvvvvvvv


das komische ist ja das alleine
exten => _X!,1,Set(CALLERID(all)=unbekannt)

funktioniert, es werden eben alle Anrufe auf unbekannt gesetzt.
 
Zeig mal den kompletten Context, das kann nur irgendwas banales sein.
 

Statistik des Forums

Themen
244,858
Beiträge
2,219,612
Mitglieder
371,571
Neuestes Mitglied
FritzFunk
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.