PDA

Voir la version complète : PB de dialplan sur asterisk-1.8.3.2



YBDOMO
02/04/2011, 09h52
Bonjour,

j'effectue un test de asterisk-1.8.3.2 ,mais j'ai un comportement bizare d'un dialplan
qui fonctionne avec asterisk-1.4.39

voici la partie qui pose probleme


; Creation du renvoi d'appel absence
;---------------------------
exten => *70,1,Set(P_Enrenvoi=${CALLERID(num)})
exten => *70,n,Playback(call-forwarding)
exten => *70,n(Debut),Playback(ent-target-attendant)
exten => *70,n,Set(P_DestRenvoi="")
exten => *70,n(Continue_Rv),Read(Digits,,1,,,3)
exten => *70,n,GotoIf($["${LEN(${Digits})}" != "0"]?:Following_Rv)
exten => *70,n(Va_Index),Set(P_DestRenvoi=$[${P_DestRenvoi}${Digits}])
exten => *70,n,Goto(Continue_Rv)
; On verifie que le poste ne se renvoit pas sur lui meme
exten => *70,n(Following_Rv),GotoIf($[ "${P_Enrenvoi}" != "${P_DestRenvoi}" ]?:again)
exten => *70,n,Set(P_Renvoi=${DB(P_Renvoi/${P_DestRenvoi})})
exten => *70,n,GotoIf($["${LEN(${P_Renvoi})}" = "0"]?:again) ;verifie que le poste destinataire n'est pas en renvoi
exten => *70,n,Set(DB(P_Renvoi/${P_Enrenvoi})=${P_DestRenvoi}) ;Si poste pas renvoyer
exten => *70,n,Playback(vm-num-i-have)
exten => *70,n,Set(nbr=0)
exten => *70,n,While($[${nbr} < ${LEN(${P_DestRenvoi})}])
exten => *70,n,Set(nbr_lu=${P_DestRenvoi:${nbr}:1})
exten => *70,n,Playback(digits/${nbr_lu})
exten => *70,n,Set(nbr=$[${nbr}+1])
exten => *70,n,EndWhile
exten => *70,n,Playback(vm-saved)
exten => *70,n,Playback(vm-goodbye)
exten => *70,n,Hangup
exten => *70,n(again),Playback(vm-incorrect)
exten => *70,n,Goto(Debut)

j'ai des erreurs de syntaxe sur les parties en gras et je ne comprends pas

je pense qu'il y a une difference au niveau syntaxe entre asterisk 1.8 et 1.4
je n'ai pas trouve de docs pour l'instant

Avez vous une idee :confused:

Merci

A+

celya
03/04/2011, 22h24
J'ai pas déja répondu à ton poste sur le gotoif ?

YBDOMO
04/04/2011, 08h37
J'ai pas déja répondu à ton poste sur le gotoif ?

Bonjour,

Je ne le pense pas. Cependant j'ai effectue un autre test avec asterisk-1.6 et je n'ai pas d'erreur de syntaxe dans le dialplan.

avec mes remerciements

A+

cedricscha
04/04/2011, 08h44
j'ai des erreurs de syntaxe sur les parties en gras et je ne comprends pas


Et si tu nous mettais un extrait de la CLI, avec les erreurs....

Pour qu'on puisse au mieux t'aider

celya
04/04/2011, 16h57
Regarde ca.

http://www.asterisk-france.org/showthread.php/820-Pb-sur-GotoIf-asterisk-1.8.3.2?p=5211#post5211

YBDOMO
04/04/2011, 17h07
Regarde ca.

http://www.asterisk-france.org/showthread.php/820-Pb-sur-GotoIf-asterisk-1.8.3.2?p=5211#post5211

Ok je veux ben mais ca ne fonctionne point??
A+

YBDOMO
05/04/2011, 10h40
Et si tu nous mettais un extrait de la CLI, avec les erreurs....

Pour qu'on puisse au mieux t'aider

Bonjour,

Voici un extrait de full avec les erreurs


[Apr 5 10:47:26] VERBOSE[20270] pbx.c: -- Executing [*70@P_interne:5] Read("SIP/2052-00000001", "Digits,,1,,,3") in new stack
[Apr 5 10:47:26] VERBOSE[20270] app_read.c: -- Accepting a maximum of 1 digits.
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000000 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000000 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000005 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: Sending dtmf: 53 (5), at 192.168.1.89:10000
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000005 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000005 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000005 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000005 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: - RTP 2833 Event: 00000005 (len = 4)
[Apr 5 10:47:26] DEBUG[20270] res_rtp_asterisk.c: Sending dtmf: 53 (5), at 192.168.1.89:10000
[Apr 5 10:47:26] VERBOSE[20270] app_read.c: -- User entered '5'
[Apr 5 10:47:26] DEBUG[20270] pbx.c: Function result is '1'
[Apr 5 10:47:26] DEBUG[20270] pbx.c: Expression result is '1'
[Apr 5 10:47:26] DEBUG[20270] pbx.c: Launching 'GotoIf'
[Apr 5 10:47:26] VERBOSE[20270] pbx.c: -- Executing [*70@P_interne:6] GotoIf("SIP/2052-00000001", "1?Va_Index:Following_Rv") in new stack
[Apr 5 10:47:26] VERBOSE[20270] pbx.c: -- Goto (P_interne,*70,7)
[Apr 5 10:47:26] WARNING[20270] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '<token>', expecting $end; Input:
""5
^
[Apr 5 10:47:26] WARNING[20270] ast_expr2.fl: If you have questions, please refer to doc/tex/channelvariables.tex.
[Apr 5 10:47:26] DEBUG[20270] pbx.c: Expression result is '""'

al3x
05/04/2011, 13h58
Salut,

peut être que les quotes sont gérées différemment en 1.8.
Pourquoi mettre "espace" dans DestRenvoi ?
exten => *70,n,Set(P_DestRenvoi="")
Essaye cela avec Set(P_DestRenvoi=).

Parceque l'erreur de la CLI :
[Apr 5 10:47:26] WARNING[20270] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '<token>', expecting $end; Input: ""5^
[Apr 5 10:47:26] WARNING[20270] ast_expr2.fl: If you have questions, please refer to doc/tex/channelvariables.tex.
[Apr 5 10:47:26] DEBUG[20270] pbx.c: Expression result is '""'

me parait vouloir dire que lorsqu'il y'a ton check dans le GotoIf, il teste "" (soit P_DestRenvoi) lui même dans des doubles quotes ... """"

Et perso les espaces dans les conditions ... j'évite au maximum ;)

Pour exten => *70,n(Va_Index),Set(P_DestRenvoi=$[${P_DestRenvoi}${Digits}]) , as tu besoin de mettre cela dans une expression $[] ?, de la concaténation simple devrait suffire non ?
*70,n(Va_Index),Set(P_DestRenvoi=${P_DestRenvoi}${ Digits})

++

YBDOMO
05/04/2011, 14h21
Salut,

peut être que les quotes sont gérées différemment en 1.8.
Pourquoi mettre "espace" dans DestRenvoi ?
exten => *70,n,Set(P_DestRenvoi="")
Essaye cela avec Set(P_DestRenvoi=).

Parceque l'erreur de la CLI :
[Apr 5 10:47:26] WARNING[20270] ast_expr2.fl: ast_yyerror(): syntax error: syntax error, unexpected '<token>', expecting $end; Input: ""5^
[Apr 5 10:47:26] WARNING[20270] ast_expr2.fl: If you have questions, please refer to doc/tex/channelvariables.tex.
[Apr 5 10:47:26] DEBUG[20270] pbx.c: Expression result is '""'

me parait vouloir dire que lorsqu'il y'a ton check dans le GotoIf, il teste "" (soit P_DestRenvoi) lui même dans des doubles quotes ... """"

Et perso les espaces dans les conditions ... j'évite au maximum ;)

Pour exten => *70,n(Va_Index),Set(P_DestRenvoi=$[${P_DestRenvoi}${Digits}]) , as tu besoin de mettre cela dans une expression $[] ?, de la concaténation simple devrait suffire non ?
*70,n(Va_Index),Set(P_DestRenvoi=${P_DestRenvoi}${ Digits})

++

Avec mes remerciements
effectivement cela venait de exten => *70,n,Set(P_DestRenvoi="") en elevant les doubles cotes ça fonctionne
l'habitude developpement en PERL (initialisation variable etc...)

ce que me surprends c'est le changement de comportement d'un version a une autre



Pour exten => *70,n(Va_Index),Set(P_DestRenvoi=$[${P_DestRenvoi}${Digits}]) , as tu besoin de mettre cela dans une expression $[] ?, de la concaténation simple devrait suffire non ?
*70,n(Va_Index),Set(P_DestRenvoi=${P_DestRenvoi}${ Digits})

++
pourquoi pas c'est une question de clarete d'ecriture

Encore une fois merci

A+

al3x
05/04/2011, 14h25
Re,

avec plaisir, bonne continuation ;)

++