[Freeswitch-users] Problem with XML preprocessor variable
    Vladimir Klejch 
    klejch+freeswitch at netbox.cz
       
    Tue May 19 07:12:00 PDT 2009
    
    
  
Hi
I think i found a bug on XML preprocessor in way of working with 
preprocessor varibles.
I have problem with concatenation of preprocessor variables in XML config.
Preprocessor is incorectly concatenatin two preprocessor variables, and 
building wrong config xml.
Best to explain on example:
in vars.xml:
     <X-PRE-PROCESS cmd="set" data="bug_test_1=xpreprocessbug1" />
     <X-PRE-PROCESS cmd="set" data="bug_test_2=xpreprocessbug2" />
     <X-PRE-PROCESS cmd="set" data="bug_test_3=xpreprocessbug3" />
     <X-PRE-PROCESS cmd="set" data="bug_test_4=xpreprocessbug4" />
     <X-PRE-PROCESS cmd="set" data="bug_test_sum1=$${bug_test_1}$${bug_test_2}$${bug_test_3}$${bug_test_4}" />
     <X-PRE-PROCESS cmd="set" data="bug_test_sum2=$${bug_test_1}^$${bug_test_2}^$${bug_test_3}^$${bug_test_4}" />
then in dialplan:
         <extension name="x_preprocess_bug1" continue="false" >
                 <condition field="destination_number" expression="$${bug_test_sum1}" >
                     <action application="info" />
                 </condition>
         </extension>
         <extension name="x_preprocess_bug2" continue="false" >
                 <condition field="destination_number" expression="$${bug_test_sum2}" >
                     <action application="info" />
                 </condition>
         </extension>
but in freeswitch.xml.fsxml:
         <extension name="x_preprocess_bug1" continue="false" >
                 <condition field="destination_number" expression="xpreprocessbug1$%{bug_test_2}xpreprocessbug3$%{bug_test_4}" >
                     <action application="info" />
                 </condition>
         </extension>
         <extension name="x_preprocess_bug2" continue="false" >
                 <condition field="destination_number" expression="xpreprocessbug1^xpreprocessbug2^xpreprocessbug3^xpreprocessbug4" >
                     <action application="info" />
                 </condition>
         </extension>
The odd variables are wrong translated by preprocessor . The odd variable 
used as $${var} is translated corect to his content, but the even variable 
used as $${var} is mangled and in freeswitch.xml.fsxml is to seen %${var} 
form of prefious $${var}. This problem only ocur, if tvo variables are 
direcly concatenated w/o any char between them.
config :
<X-PRE-PROCESS cmd="set" data="bug_test_sum1=$${bug_test_1}$${bug_test_2}$${bug_test_3}$${bug_test_4}" />
is translated to string:
"xpreprocessbug1$%{bug_test_2}xpreprocessbug3$%{bug_test_4}" , to see in 
extension name="x_preprocess_bug1".
If there is a char between concatenated variables (in my test a ^ char), 
everything is OK, to see in extension name="x_preprocess_bug2".
It's  this known problem or I'm wrong understanding preprocessor usage ??
 	Thanks
 			Kleo
-- 
 	kleo+freeswitch at netbox.cz
    
    
More information about the FreeSWITCH-users
mailing list