PDA

Voir la version complète : Mystere sur la fonction CUt



plouf
01/06/2011, 21h53
Bonsoir à tous,

Je rencontre un soucis avec l'utilsation de cut.

Pour info c'est un asterisk 1.4.18.1

Voici mon code:

exten => _X.,1,Answer()
exten => _X.,n,Set(entrant="${REALTIME(sda,sda,${EXTEN})}")
exten => _X.,n,Set(requete="${CUT(entrant,"|",4)}")
exten => _X.,n,Set(routine="${CUT(${requete},"=",2)}")
exten => _X.,n,Macro(${routine},${EXTEN})


Le problème c'est que le troisième SET ne donne rien!!! Et je ne comprends pas pourquoi.

Sur le CUT du troisième SET, le caractere de délimitation est bien = et je veux récupérer le second champ (appel_sda dans les logs ci-dessous)

et voici le retour dans la CLI:


-- Executing [3003@default:1] Answer("SIP/100099-081ffe70", "") in new stack
-- Executing [3003@default:2] Set("SIP/100099-081ffe70", "entrant="id=16|sda=3003|number=1212|macro=appel_sda|predecr oche=groupe|attente=agence"") in new stack
-- Executing [3003@default:3] Set("SIP/100099-081ffe70", "requete="macro=appel_sda"") in new stack
-- Executing [3003@default:4] Set("SIP/100099-081ffe70", "routine=""") in new stack
-- Executing [3003@default:5] Macro("SIP/100099-081ffe70", "|3003") in new stack
[Jun 1 21:54:37] WARNING[22764]: app_macro.c:204 _macro_exec: Invalid macro name specified


Est-ce l'un d'entre vous aurait une explication

plouf
01/06/2011, 22h04
Bon

Pas la peine de chercher!

Je ferais mieux de relire 7 fois mon code avant de poster :wahoo:

j'avais une erreur (forcément), en remplacant:


exten => _X.,n,Set(routine="${CUT(${requete},"=",2)}")

par:


exten => _X.,n,Set(routine="${CUT(requete,"=",2)}")

Le soucis est réglé.

Merci quand même à ceux qui ont eu un instant l'intention de regarder mon erreur.

ffossard
02/06/2011, 10h35
Sinon je me demandais si t'a pas trop de guillemets, ils sont indispensables :confused: