.titleBar { margin-bottom: 5px!important; }

Nummer extrahieren [Gelöst]

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von frank_87, 14 Okt. 2008.

  1. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 frank_87, 14 Okt. 2008
    Zuletzt bearbeitet: 15 Okt. 2008
    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:1234@1.1.1.1>
    und ich brauch bloß die Telefonnummer, also 1234.

    Ich habe es schon mit CUT versucht, komme aber nicht weiter.
    :confused:
     
  2. alfhh

    alfhh Mitglied

    Registriert seit:
    5 Jan. 2006
    Beiträge:
    329
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  3. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke für die schnelle Antwort!
    Ich werde das gleich mal probieren,
    leider hats ebend meine Asterisk VM zerrissen.... (MIST)
    Kann also dauern
     
  4. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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..:(
     
  5. alfhh

    alfhh Mitglied

    Registriert seit:
    5 Jan. 2006
    Beiträge:
    329
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  6. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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!!!
     
  7. alfhh

    alfhh Mitglied

    Registriert seit:
    5 Jan. 2006
    Beiträge:
    329
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  8. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  9. alfhh

    alfhh Mitglied

    Registriert seit:
    5 Jan. 2006
    Beiträge:
    329
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  10. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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!
     
  11. alfhh

    alfhh Mitglied

    Registriert seit:
    5 Jan. 2006
    Beiträge:
    329
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #11 alfhh, 15 Okt. 2008
    Zuletzt bearbeitet: 15 Okt. 2008
    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
     
  12. frank_87

    frank_87 Neuer User

    Registriert seit:
    4 Sep. 2008
    Beiträge:
    23
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #12 frank_87, 15 Okt. 2008
    Zuletzt bearbeitet: 15 Okt. 2008
    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