Nummer extrahieren [Gelöst]

frank_87

Neuer User
Mitglied seit
4 Sep 2008
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche verzweifelt aus einer P-Asserted-Identity die Nummer rauszu filtern.

Ich habe mir die PAI schon in eine Variable gespeichert.
Leider ist das Problem das sie wie folgt aussieht:
<sip:[email protected]>
und ich brauch bloß die Telefonnummer, also 1234.

Ich habe es schon mit CUT versucht, komme aber nicht weiter.
:confused:
 
Zuletzt bearbeitet:
Bei mir klappt das so:

......
exten => 495,n,Set(NUMMER=${CUT(NUMMER,@,1)}); nimmt alles vor dem "@"
exten => 495,n,Set(NUMMER=${CUT(NUMMER,:,2)}); nimmt alles nach dem ":"
......

Bye,
Alf
 
Danke für die schnelle Antwort!
Ich werde das gleich mal probieren,
leider hats ebend meine Asterisk VM zerrissen.... (MIST)
Kann also dauern
 
Leider funktioniert das nicht.

Immer wenn ich damit die CALLERID(num) oder (name)
überschreiben will, kommt asterisk.
Weil die Zeile leer ist...

Theoretisch müsste es aber funktionieren, macht es aber nicht..:(
 
Setze doch mal vor und nach den CUT Befehlen ein Noop, damit du sehen kannst was die einzelnen Schritte erreichen. Wenn das klappt, kannst du ja weitersehen. Post mal deinen Code, und die Asteriskversion.

Bye,
Alf
 
Also, ich habe einen Asterisk 1.4.18.1, der mit dem AsteriskNOW Image ausgeliefert wurde.

Mein Code:

Code:
exten => 1234,1,GotoIf($[$CALLERID(num)=anonymous]?ja:nein)
exten => 1234,n(ja),Set(NUMMER=${SIP_HEADER(P-Asserted-Identity)})
exten => 1234,n(ja),Set(NUMMER=${CUT(NUMMER,@,1)})
exten => 1234,n(ja),Set(NUMMER=${CUT(NUMMER),:,2)})
exten => 1234,n(ja),Set(CALLERID(all)=${NUMMER})
exten => 1234,n(ja),Dial(SIP/345)
exten => 1234,n(nein),Dial(SIP/345)

Ich kann mir sowieso die Schritte in der CLI anschauen, da der Debugger immer läuft.

Kann es sein das NUMMER garkeinen Wert bekommt?

DANKE für deine Hilfe!!!
 
Wenn du mit Labels arbeitest "(ja)" darf das AFAIK nur einmal vorkommen. Der Sprung soll ja an eine eindeutige Priorität führen. Mach nach den CUT Befehlen dann mal eine Zwischenzeile mit
Code:
exten=> 1234,n,Noop(${NUMMER})

Dann kannst du die Ergebnisse der einzelnen Schritte auf der CLI sehen.

Bye,
Alf
 
Ich habe jetzt mal das
Code:
exten=> 1234,n,Noop(${NUMMER})
eingefügt und in der CLI steht:

Excuting [6788@default:5] NoOp("SIP/anonymous.invailid","") in new stack

Was mir schon komisch vorkommt ist das:

Executing [6788@default:2] Set("SIP/anonymous.invailid,"NUMMER=") in new stack
 
Wie du siehst, ist kein "@" und ":" enthalten. Also wird das mit dem CUT auch nichts. Poste mal den SIP Debug eines eingehenden Anrufs. Dann können wir weitersehen.

Bye,
Alf
 
Oh man alles geklärt, dein Denkanstoß mit den Label war sehr sehr gut.

Ich habe jetzt mal den ganzen GotoIf Quatsch rausgenommen und es funktioniert!
Der Debugger zeigt jetzt das @ und : an und die "beschneidung" funktioniert 1a!

Ich danke dir von Herzen, du hast mir echt weitergeholfen.

Jetzt bleibt nur noch eine letzte Frage an dich als alten "Forenhasen".
Wie kann man das Thema schließen oder als Gelöst makieren?

DANKE!
 
Ab in den ersten Beitrag, "Ändern" wählen, Überschrift mit einen [Gelöst] versehen. Wie kommt es denn, dass die Callerid nur im zusätzlichen SIP Header steht? Das ist doch schon eigentlich nicht OK.

Bye,
Alf
 
Zuletzt bearbeitet:
Auf der Lastmile dürfen eigentlich keine P-Asserted-Identitys mitgeschickt werden.
Da ich die PAI als glaubwürdiger einschätze wollte ich mir diese anzeigen lassen.

Gruß Frank
 
Zuletzt bearbeitet:
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.