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
 
R

rentier-s

Guest
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.
 

abw1oim

Aktives Mitglied
Mitglied seit
26 Mrz 2007
Beiträge
956
Punkte für Reaktionen
4
Punkte
18
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 ...
 

back2live

Neuer User
Mitglied seit
16 Okt 2008
Beiträge
104
Punkte für Reaktionen
0
Punkte
16
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 [[email protected]: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 [[email protected]: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
 
R

rentier-s

Guest
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:

back2live

Neuer User
Mitglied seit
16 Okt 2008
Beiträge
104
Punkte für Reaktionen
0
Punkte
16
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.
 
R

rentier-s

Guest
Zeig mal den kompletten Context, das kann nur irgendwas banales sein.
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,186
Beiträge
2,031,055
Mitglieder
351,589
Neuestes Mitglied
Roezi