ASTERISK EXPRESSION Syntax Kopfnummer

Hallo Leute,

ich bin gerade dabei mich mit SKILL Based Routing auseinander zu setzen.
Jetzt will ich anhand der Kopfnummer die mich anruft ein Label setzen.

Daher dachte ich an “ASTERISK EXPRESSION”

Mit einer kompletten Nummer (in dem Bsp: Handnummer) klappt es schon, jedoch fehlt mir die Syntax um nur die Kopfnummer anzugeben und alle Durchwahlen hinter der Kopfnummer sollen erkannt werden:

$ ${MDC_DIALCALLERNUM} = 0171XXXXXX | ${MDC_DIALCALLERNUM} = 0176XXXXXX | ${MDC_DIALCALLERNUM} = 0899999<DW> ]

Also 0899999XXX -> XXX = DW

Ich hoffe Ihr könnt mir helfen.

Merci

Hallo erstmal,

schau dir hierzu vielleicht den Artikel an https://wiki.asterisk.org/wiki/display/AST/Manipulating+Variables+Basics

Grüße
Markus

Hi Markus,

danke für den Tip, geht leider nicht. Syntax scheint in Ordnung (Kein Fehler im Log), jedoch wird das Label nicht vergeben

${MDC_DIALCALLERNUM:0:4} = 0176XXXXXXX

Ich wollte auf die Mobil Vorwahl matchen, jedoch funktioniert es leider nicht.

Noch andere Ideen?

Hi,

probier es mal so bitte

$ “${MDC_DIALCALLERNUM:0:4}” = “0176” ]

Grüße
Markus

Hallo Markus,

danke hat funktioniert.

Letzte frage, kann ich die Labels auf global setzen? Aktuell hinterlege ich Sie auf einen Verteiler mit DW, hätte aber gerne, dass jedes eingehende Gespräch ein Label erhält.

Gruß

Re,

wenn du das nicht über einen Anrufverteiler oder bei den Identitäten usw. setzen möchtest dann könnte ich mir vorstellen, dass über “sub_pre-main” Skript zu tun oder über ein Skript beim Incoming vom Amt.
Hängt davon ab, was du genau machen möchtest?!

Gruß
Markus

Hallo Markus,

ich will jedes eingehende Gespräch anhand seiner Nummer erkennen und mit einem Label versehen.
Wir haben mehr als 100 Kunden und wenn ich anhand der Kopfnummer erkenne, zu welcher Firma der Anruf gehört, kann ich es gleich richtig labeln.

Jetzt will ich aber nicht unter jeder DW die Labels per Hand pflegen, sondern an einem Ort für alle eingehenden Gespräche.

Gruß
Linuxuser

Re,

evtl. wäre das dann eine Lösung. Deine Kundenadressen ins Telefonbuch übernehmen. Bei einem Telefonbucheintrag kannst du dann Labels zuweisen.
Schau dir das mal an.

Grüße
Markus

Hallo Markus,

danke den kannte ich noch nicht, aber in unserem Telefonbuch sind 16000 Adressen drin, des dauert jahre … :wink:
Ich setzte ja schon “Generisches Label” anhand der Kopfnummer der Firma, jedoch wie beschrieben will ich das auf alle Durchwahlen anwenden und nicht nur auf einzelne.

Trotzdem danke dir.

Linuxuser

Re,

also wenn du den Skript-Ansatz bevorzugst, dann könntest du das wie gesagt über ein “sub_pre-main” Skript erledigen. Hierzu musst du einfach unter Erweitert->Skripte ein Dialplan-Skript mit dem Kontext anlegen und das nicht einbinden. Im Skript kannst du jetzt z.B. einen System-CALL ausführen, AGI aufrufen (externes Skript), REST-Aufruf oder dergleichen und dann entsprechend den Label setzen. Im Forum sollte schon einiges dazu zu finden sein. Das Skript wird dann bei jedem Anruf ausgeführt, intern wie extern, du solltest also die Ausführung einschränken bzw. Timeouts berücksichtigen.

Alternativ kannst du auch beim Amt einen alternativen Einstiegskontext angeben, unter den SIP-Optionen des Amtes “context=meinKontext”. Diesen kannst du wiederum als Dialplan-Skript anlegen, dort deine Aktionen durchführen und wieder zurück auf den ursprünglichen Kontext des Amtes springen, so dass die Regeln usw. alles greift. Den Kontext musst du dir allerdings raussuchen, mdc_incoming-X (in der mdc_sip_trunk.conf)

Grüße
Markus

Hallo Markus,

habe es mit einem Script “sub_pre-main” hinbekommen.
Ist nicht schön geworden (das Script) aber es funktioniert :wink:

Danke Dir