Maciej Zasadzki ADVICOS Report post Posted 03/18/2026 11:05 AM Hi, I’m trying to use Announce Message with a dynamic prompt filename based on a variable: C:\Program Files (x86)\VoiceGuide\tts_prompts$RV[connection_uuid].wav The issue is that I cannot properly set the variable connection_uuid using RVSet before the Transfer module, because at that stage I don’t know which channel (call leg) the variable should be assigned to. As a result, the variable is not available when Announce Message is executed. Question: What is the correct way to pass a dynamic variable like connection_uuid so it can be used in Announce Message after a Transfer? Is there a recommended approach for sharing variables between call legs in this scenario? Share this post Link to post
SupportTeam Report post Posted 03/19/2026 07:22 AM Result Variables can be created as "Global" - which are then visible to all channels. Looks like right now this can only be done in the Evaluate Expression module. Note the "Make RV Global" tick box in below screenshot: note that the value of the global $RV[connection_uuid] would have been generated elsewhere beforehand, assigned to $RV[uuid_set_elsewhere] and then the module assigns value of $RV[uuid_set_elsewhere] to $RV[connection_uuid] Note that you would still have to figure out an approach to ensure that the right UUID will be read by the right transfer leg. In cases where two call trasnferes are made at same time. eg. can you link the RV name to the number dialed, so the outgoing leg used the number it is dialing and retrieves the RV that has that number as part of its name? If multiple legs can dial same number at same time then that approach may not work... Share this post Link to post
SupportTeam Report post Posted 03/19/2026 07:39 AM Other approach that you could try is putting new connection details data in a database, and have the callflow on second leg of call read from database - but similar situations will occur as with Global RVs - how would you distinguish which database entry is for which outgoing leg call... This might be a better approach: Result Variables that hold the LineID of the other leg of the transferred calls are created as soon as the transfer module selected the new line. So you have access to the LineID of new leg as soon as the transfer is initiated. If you set the $RV[connection_uuid] on that new leg immediately after transfer is initiated then it will pretty confidently be set before the outgoing leg is answered. You could also have some script on the outgoing leg which checks for when that RV is set and only proceed with playing of prompt once $RV is set. Share this post Link to post
Maciej Zasadzki ADVICOS Report post Posted 03/19/2026 08:32 AM Thank you for your response. After further testing, I found an alternative solution. I forced the announcement to be played on the destination channel directly after the call is connected by using a VBS module: set vg = CreateObject("vgServices.CommandLink") vg.Play_Start $RV[Conf_LineId_2], "C:\Program Files (x86)\VoiceGuide\tts_prompts\$RV[whisper_prompt].wav" vg.Run_ResultReturn $RV[Conf_LineId_2], "success" set vg = Nothing This approach introduces a short silence on the A-leg, but it guarantees that the correct prompt is played for the specific connection. Thanks again for the guidance. Share this post Link to post
SupportTeam Report post Posted 03/20/2026 05:59 AM OK, thanks for letting us know how you got it working. Just a quick note - it looks like this VBScript is ran on the line that initiated the transfer, not the line on which the whisper message is being played, so this line: vg.Run_ResultReturn $RV[Conf_LineId_2], "success" should probably be: vg.Run_ResultReturn $RV_LINEID, "success" That way the 'success' result will be sent to the line from which the VBScript was called. Share this post Link to post