VoiceXML SRGS Grammars: return values

I continue to work on grammars, but here's a tip on what works in with Prophecy. I hope to have a how-to entry soon.

Let's say I have a sub-rule called NAMES. It's an alternative rule, and I want to flag that I returned from this particular rule. Furthermore, I want to return a telephone number associated with each name. Then the rule I will write will look like this, with some notes interpolated:

<rule id="NAMES">
<tag>$.name=True</tag>

Note: "$" is Voxeo's name for the object returned from the rule. The latest SRGS spec uses "out" for the name of this object.
<item>Moshe Office
<tag>$.number=tel:17737648727</tag>
</item>

The values returned by this rule will be:
$ — the object
$.name — True
$.number — tel:17737648727

Although I'd expect the value of "$" itself to be the utterance, in practice it doesn't seem to work that way; instead, at least as seen at the VoiceXML interpreter, the field is filled in with an object, namely "$". To access the actual utterance, you have to access the "utterance" property of the object. You do this by using <field_name>$.utterance.

More on this later when I get some more information on builtin grammars.