Объект Microsoft.Rtc.Collaboration.AudioVideo.VoiceXml.Browser в C# имеет метод RunAsync, который принимает URI страницы Vxml для запуска, и CookieCollection, который теоретически должен позволять передавать параметры, которые можно использовать в сценарий. Я испробовал все мыслимые способы получения файлов cookie из Vxml, и, похоже, к документу не было прикреплено ни одного файла. Любые идеи о том, как получить доступ к переданным файлам cookie из Vxml?
В упрощенном виде это то, что у меня было как vxml:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE vxml PUBLIC "-//BeVocal Inc//VoiceXML 2.0//EN" "http://cafe.bevocal.com/libraries/dtd/vxml2-0-bevocal.dtd">
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" xml:lang="en-US" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml21/vxml.xsd" >
<form id="QueueForm">
<script>
<![CDATA[
function GetCookie(name)
{
var cookies = document.cookie;
return cookies;
}
]]>
</script>
<var name="cookie" expr="GetCookie('')" />
<field name="QueueField">
<prompt>
<value expr="cookie" />
were cookies
</prompt>
<grammar mode="dtmf" root="Dtmf">
<rule id="Dtmf">
<one-of>
<item> 1 </item>
</one-of>
</rule>
</grammar>
<filled>
<exit namelist="cookie"/>
</filled>
</field>
</form>
</vxml>
И это в вызывающем коде
_browser.SetAudioVideoCall(_call);
System.Net.CookieContainer cookies = new System.Net.CookieContainer(1);
cookies.Add(new System.Net.Cookie("data", "grapefruit", "/", "localhost"));
_browser.Run(_startPage, cookies);
...что приводит к разговору "Были куки". во всех случаях я пытался.
Я пытался установить разные домены и пути для объекта cookie, вызывая разные объекты Javascript, чтобы получить файл cookie разными способами, и все, что я мог придумать, но не смог получить доступ к файлу cookie. Примеры проектов Microsoft для Vxml также не содержат примера доступа к файлам cookie. Я уверен, что есть способ получить доступ к переданным элементам, но я не смог понять, как это сделать; Есть предположения?