<div>Hi,</div>
<div>thanks for replying my email.</div>
<div>i send you some parts of my script that may be need.</div>
<div>-------------------------<br>........<br>proc init_perCallVars { } {</div>
<div>
<p>&nbsp;&nbsp;&nbsp; global NumLangPrompt;<br>&nbsp;&nbsp;&nbsp; global NumCardPrompt;<br>&nbsp;&nbsp;&nbsp; global NumDestPrompt;<br>&nbsp;&nbsp;&nbsp; global PromptFlag;<br>&nbsp;&nbsp;&nbsp; global DestPromptFlag;<br>&nbsp;&nbsp;&nbsp; global NoPlayWarn;<br>&nbsp;&nbsp;&nbsp; global NoTimeLimit;<br>&nbsp;&nbsp;&nbsp; global SetupDone; 
</p>
<p>&nbsp;&nbsp;&nbsp; set NumLangPrompt 0;<br>&nbsp;&nbsp;&nbsp; set NumCardPrompt 0;<br>&nbsp;&nbsp;&nbsp; set NumDestPrompt 0;<br>&nbsp;&nbsp;&nbsp; set PromptFlag 0;<br>&nbsp;&nbsp;&nbsp; set DestPromptFlag 0;<br>&nbsp;&nbsp;&nbsp; set NoPlayWarn 0;<br>&nbsp;&nbsp;&nbsp; set NoTimeLimit 0;<br>&nbsp;&nbsp;&nbsp; set SetupDone 0;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; return;</p>
<p>}<br>....<br>proc act_CardAuthorize { } {</p>
<p>&nbsp;&nbsp;&nbsp; global PromptFlag;<br>&nbsp;&nbsp;&nbsp; global NumCardPrompt;<br>&nbsp;&nbsp;&nbsp; global ParamForDest;<br>&nbsp;&nbsp;&nbsp; global ParamForCard;<br>&nbsp;&nbsp;&nbsp; global retryCnt;</p>
<p>&nbsp;&nbsp;&nbsp; set status [infotag get evt_status];<br>&nbsp;&nbsp;&nbsp; if {$status == &quot;ao_000&quot;} {</p>
<p>if {[infotag get aaa_avpair_exists h323-credit-amount]} {</p>
<p>&nbsp;&nbsp;set amt [infotag get aaa_avpair h323-credit-amount]<br>&nbsp;&nbsp;puts &quot;\n***amount = $amt&quot;<br>&nbsp;} else {<br>&nbsp;&nbsp;media play leg_incoming _no_aaa.au;<br>&nbsp;&nbsp;fsm setstate CALLDISCONNECT;<br>&nbsp;&nbsp;return;<br>&nbsp;}<br>&nbsp;&nbsp;fsm setstate DESTSELECTION; 
<br>&nbsp;&nbsp;if {$amt &lt;= 999999.99} {<br>&nbsp;&nbsp;media play leg_incoming _you_have.au %a$amt _enter_dest.au;<br>&nbsp;} else {<br>&nbsp;&nbsp;media play leg_incoming _enter_dest.au;<br>&nbsp;}</p>
<p>&nbsp;leg collectdigits leg_incoming ParamForDest;<br>&nbsp;return;<br>&nbsp;}</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; if {[infotag get aaa_avpair_exists h323-return-code]} {<br>&nbsp;set return_code [infotag get aaa_avpair h323-return-code];<br>&nbsp;} else {<br>&nbsp;media play leg_incoming _no_aaa.au;<br>&nbsp;fsm setstate CALLDISCONNECT;<br>&nbsp;return; 
<br>&nbsp;}</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; incr NumCardPrompt;</p>
<p>&nbsp;&nbsp;&nbsp; if {$NumCardPrompt &lt; $retryCnt} {</p>
<p>&nbsp;leg collectdigits leg_incoming ParamForCard;<br>&nbsp;act_PlayCardReturnCode $return_code;<br>&nbsp;} else {<br>&nbsp;act_GetCard;<br>&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; return;</p>
<p>}<br>.<br>.<br>.<br>proc act_GetDestination { } {</p>
<p>&nbsp;&nbsp;&nbsp; global retryCnt;<br>&nbsp;&nbsp;&nbsp; global ParamForDest;<br>&nbsp;&nbsp;&nbsp; global DestPromptFlag;<br>&nbsp;&nbsp;&nbsp; global NumDestPrompt;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; if {$NumDestPrompt &lt; $retryCnt} {</p>
<p>switch $DestPromptFlag {</p>
<p>&nbsp;0 {media play leg_incoming _enter_dest.au; #Abortkey pressed}<br>&nbsp;1 {media play leg_incoming _no_dest_entered.au; #Timeout -no digits entered}<br>&nbsp;2 {media play leg_incoming _reenter_dest.au; #Not mutch to the dial plan} 
</p>
<p>&nbsp;default {<br>&nbsp;&nbsp;media play leg_incoming _no_aaa.au;<br>&nbsp;&nbsp;fst setstate CALLDISCONNECT;<br>&nbsp;&nbsp;return;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;}<br>&nbsp;leg collectdigits leg_incoming ParamForDest;<br>&nbsp;} else {<br>&nbsp;media play leg_incoming _dest_collect_fail.au;<br>&nbsp;fsm setstate CALLDISCONNECT;<br>&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; return;</p>
<p>}</p>
<p>proc act_GotDestination { } {<br>&nbsp;&nbsp;&nbsp; global NumDestPrompt;<br>&nbsp;&nbsp;&nbsp; global DestPromptFlag;<br>&nbsp;&nbsp;&nbsp; global account;<br>&nbsp;&nbsp;&nbsp; global pin;<br>&nbsp;&nbsp;&nbsp; global destination;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; set status [infotag get evt_status];<br>switch $status {</p>
<p>&quot;cd_001&quot; {<br>&nbsp;incr NumDestPrompt;<br>&nbsp;set DestPromptFlag 1;<br>&nbsp;act_GetDestination;<br>&nbsp;return;<br>&nbsp;}</p>
<p>&quot;cd_002&quot; {</p>
<p>&nbsp;set DestPromptFlag 0;<br>&nbsp;act_GetDestination;<br>&nbsp;return;</p>
<p>&nbsp;}</p>
<p>&quot;cd_004&quot; {</p>
<p>&nbsp;set destination [infotag get evt_dcdigits];<br>&nbsp;puts &quot;\n************dest_number = $destination&quot;;<br>&nbsp;aaa authorize $account $pin &quot;&quot; $destination leg_incoming;<br>&nbsp;return;</p>
<p>&nbsp;}</p>
<p>default {<br>&nbsp;incr NumDestPrompt;<br>&nbsp;set DestPromptFlag 2;<br>&nbsp;act_GetDestination;<br>&nbsp;return;</p>
<p>&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; return;<br>}<br>...<br>proc act_CallAuthorize { } {</p>
<p>&nbsp;&nbsp;&nbsp; global NumDestPrompt;<br>&nbsp;&nbsp;&nbsp; global DestPromptFlag;<br>&nbsp;&nbsp;&nbsp; global WarnTime;<br>&nbsp;&nbsp;&nbsp; global NoPlayWarn;<br>&nbsp;&nbsp;&nbsp; global NoTimeLimit;<br>&nbsp;&nbsp;&nbsp; global creditTime;<br>&nbsp;&nbsp;&nbsp; global retryCnt;<br>&nbsp;&nbsp;&nbsp; global ParamForDest;<br>&nbsp;&nbsp;&nbsp; global param; 
<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; set status [infotag get evt_status];<br>&nbsp;&nbsp;&nbsp; set param(enableReporting) true;<br>&nbsp;&nbsp;&nbsp; set param(interruptPrompt) false;</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; if {$status == &quot;ao_000&quot;} {</p>
<p>&nbsp;if {[infotag get aaa_avpair_exists h323-credit-time]} {<br>&nbsp;set creditTime [infotag get aaa_avpair h323-credit-time];<br>&nbsp;} else {<br>&nbsp;media play leg_incoming _no_aaa.au;<br>&nbsp;fsm setstate CALLDISCONNECT;<br>&nbsp;return;<br>
&nbsp;}</p>
<p>&nbsp;if {$creditTime &lt;= $WarnTime} {set NoPlayWarn 1;}<br>&nbsp;if {$creditTime == &quot;unlimited&quot;} {set NoTimeLimit 1;}</p>
<p>&nbsp;media play leg_incoming _you_have.au %t$creditTime;<br>&nbsp;leg collectdigits leg_incoming param; #For Fast leg setup<br>&nbsp;fsm setstate PLACECALL;<br>&nbsp;return;<br>&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; incr NumDestPrompt; #Call authorize failed</p>
<p>&nbsp;&nbsp;&nbsp; if {[infotag get aaa_avpair_exists h323-return-code]} {<br>&nbsp;set return_code [infotag get aaa_avpair h323-return-code];<br>&nbsp;} else {<br>&nbsp;media play leg_incoming no_aaa.au;<br>&nbsp;fsm setstate CALLDISCONNECT;<br>&nbsp;return; 
<br>&nbsp;}</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; if {$NumDestPrompt &lt; $retryCnt} {<br>&nbsp;act_PlayDestReturnCode $return_code;<br>&nbsp;leg collectdigits leg_incoming ParamForDest;<br>&nbsp;} else {<br>&nbsp;act_GetDestination;<br>&nbsp;}<br>&nbsp;&nbsp;&nbsp; return;</p>
<p>&nbsp;&nbsp;&nbsp; }<br>.......<br>.......<br>proc act_CallWarnMedia { } {</p>
<p>&nbsp;&nbsp;&nbsp; global incoming;<br>&nbsp;&nbsp;&nbsp; global outgoing;</p>
<p>&nbsp;&nbsp;&nbsp; connection create $incoming $outgoing;<br>&nbsp;&nbsp;&nbsp; return;<br>}</p>
<p>&nbsp;</p>
<p>proc act_LongPound { } {</p>
<p>&nbsp;&nbsp;&nbsp; if {[infotag get evt_digit] != &quot;#&quot;} {<br>&nbsp;fsm setstate same_state;<br>&nbsp;return;<br>&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; set duration [infotag get evt_digit_duration];</p>
<p>&nbsp;&nbsp;&nbsp; if {$duration &lt; 300} {<br>&nbsp;fsm setstate same_state;<br>&nbsp;return;<br>&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp; connection destroy con_all;<br>&nbsp;&nbsp;&nbsp; return;<br>}<br>....<br>...<br>proc act_ConnDestroyed { } {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; global account;<br>&nbsp;&nbsp;&nbsp;&nbsp; global pin;</p>
<p>&nbsp;&nbsp;&nbsp; leg disconnect leg_outgoing;<br>&nbsp;&nbsp;&nbsp; init_perCallVars;<br>#&nbsp;&nbsp;&nbsp; act_GetDestination;<br>&nbsp;&nbsp;&nbsp; aaa authorize $account $pin &quot;&quot; &quot;&quot;&nbsp; leg_incoming;<br>&nbsp;&nbsp;&nbsp; fsm setstate CARDSELECTION;<br>#&nbsp;&nbsp;&nbsp; fsm setstate DESTSELECTION; 
</p>
<p>&nbsp;&nbsp;&nbsp; return;<br>}<br>#---------------<br>set ivr_fsm(CALLACTIVE,ev_digit_end) &quot;act_LongPound CONNDESTROY&quot;;<br>set ivr_fsm(CONNDESTROY,ev_destroy_done) &quot;act_ConnDestroyed same_state&quot;;<br>set ivr_fsm(CARDSELECTION,ev_authorize_done) &quot;act_CardAuthorize same_state&quot;; 
</p>
<p>the important part is proc act_ConnDestroyed. when two line(that i commented) are invoked the script is good and wait for new destination but when other two line(aaa and cardselect) are invoked the radius return 0 for Credit-Time 
</p>
<p>i look forward to hearing from you<br>thanks and have a nice day<br></p></div>