Asterisk 18 Funktion REPLACE funktioniert nicht

IpTelpert

Neuer User
Mitglied seit
26 Mai 2011
Beiträge
92
Punkte für Reaktionen
0
Punkte
6
Hallo,
Ich habe Probleme mit der Funktion REPLACE

exten => 777,n,Set(channame_mod=REPLACE('TestXXXXXXXXXXXXXXXXXXXXxweert'X','M'))
exten => 777,n,NoOp(channame_mod: ${channame_mod})


-- Executing [777@xy:16] Set("PJSIP/817-00000000", "channame_mod=REPLACE('TestXXXXXXXXXXXXXXXXXXXXxweert'X','M')") in new stack
-- Executing [777@exy:17] NoOp("PJSIP/817-00000000", "channame_mod: REPLACE('TestXXXXXXXXXXXXXXXXXXXXxweert'X','M')") in new stack

Bei der Funktion CUT kommt eine Fehlermeldung

[Aug 30 12:55:47] ERROR[16262][C-00000001]: pbx_functions.c:608 ast_func_read: Function CUT not registered

daher gehe ich davon aus REPLACE erlaubt und geladen ist

Gruss
 
Bitte beschreibe ganz langsam, was genau Du mit was ersetzen möchtest, also auf welcher Variable Du arbeitest und so weiter. Bitte beschreibe auch, was Du eigentlich erreichen willst, also bitte eins/zwei Abstraktionsebenen höher beschreiben. Auch sehe ich drei einfache Anführungszeichen in Deinen find-chars. Ist das so gewollt?
 
Zuletzt bearbeitet:
Hallo,
sorry was da gepostet wurde war nicht der letzte,richtige Stand, insbesondere mit den falschen Anführungszeichen
hier noch einmal vereinfacht.

Das Modul ist auch geladen
REPLACE(varname,find-chars[,replace Replace a set of characters in a given string with another character.



exten => 777,n,Set(channame_mod=${REPLACE('TestXXXXXXXXXXXXXXXXXXXXxweert','X')})
exten => 777,n,NoOp(channame_mod: ${channame_mod})

-- Executing [777@test:18] Set("PJSIP/817-00000000", "channame_mod=") in new stack
-- Executing [777@test:19] NoOp("PJSIP/817-00000000", "channame_mod: ") in new stack

Erwartet hätte ich das X entfernt ist....

PS: CUT gibt es wohl nicht mehr
core show functions like CUT
0 matching custom functions installed.
 
Ahoi,

du hast ja parallel immer noch einen Thread laufen, der auf Modul-Fehlkonfiguration hindeutet (https://www.ip-phone-forum.de/threads/pjsip-module-laden-für-dialplan.311056/).

Die Suche klappt bei mir so herum besser:
Code:
core show function CUT
Da findet er bei mir die Funktion auch. Probiere ich es so wie du (also mit 'functionS') findet er auch nichts.

Offenbar wendest du REPLACE auch falsch an. Der erste Parameter ist der Variablenname und nicht der "Haystack":
Code:
[Syntax]


REPLACE(varname,find-chars[,replace-char])

Hier funktioniert es wie folgt:
Code:
 same => n,Set(var99=hallo)
 same => n,Set(var99=${REPLACE(var99,l,n)})
 same => n,Verbose(${var99})

Führt zu:

hanno
 
ja das war ein grober Fehler meinerseits! Ich habe zuviel "probiert"Danke

; REPLACE(varname,find-chars[[,replace-char])
exten => 777,n,Set(testwert='TestXXXXXXXXXXXXXXXXXXXXxweert')
exten => 777,n,Set(channame_mod=${REPLACE(testwert,X,M)})
exten => 777,n,NoOp(testwert: ${testwert} channame_mod: ${channame_mod})

NoOp("PJSIP/817-00000001", "testwert: 'TestXXXXXXXXXXXXXXXXXXXXxweert' channame_mod: 'TestMMMMMMMMMMMMMMMMMMMMxweert'") in new stack


An der Konfiguration bin ich noch am arbeiten, CUT ist noch nicht da

X2*CLI> core show function CUT
No function by that name registered.

X2*CLI> core show functions like REPLACE
Matching Custom Functions:
--------------------------------------------------------------------------------
REPLACE REPLACE(varname,find-chars[,replace Replace a set of characters in a given string with another character.
STRREPLACE STRREPLACE(varname,find-string[,rep Replace instances of a substring within a string with another string.
2 matching custom functions installed.
 
IpTelpert sollte sich mit der Zitierfunktion auseinandersetzten und seinen Beitrag selbst bearbeiten, damit dies leserlich wird.
 
IpTelpert, der Moderator meint, dass Deine Antwort versehentlich in die QUOTE-Tags gerutscht ist. Am Einfachsten behebst Du das, indem Du Dein Post bearbeitest und in der Icon-Liste auf das dritte Icon von links drückst (die zwei eckigen Klammern = BBCode umschalten). Dann löschst Du alles außer Deinem Antwortsatz und speicherst Deinen Post.
 
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.