We've Moved! Please visit our new and improved forum over at our new portal: https://portal.plumvoice.com/hc/en-us/community/topics

Get object value from an array

Questions and answers about IVR programming for Plum DEV

Moderators: admin, support

Post Reply
w2gi
Posts: 46
Joined: Fri Jun 26, 2009 1:35 pm

Get object value from an array

Post by w2gi »

Hi,

I have an array "document.locations". Each element has objects. I want to prompt object of each array element without using <foreach>.

If I use foreach it will look like this:

Code: Select all

<prompt> 
         <foreach item="location" array="document.locations">
            <break time="2s" />
         <prosody rate="135.0" pitch="high"><say-as type="address"><value expr="' ' + location.CLIENTKEY + ', ' + location.ADDRESS1 + ', ' + location.CITY + ', ' + location.STATE" /></say-as></prosody>
         </foreach>
      </prompt>
The above code works.


But I want to use something like this.

Code: Select all

<var name="location" /> 
<block>
      <script>
            clientkey = document.locations[0].CLIENTKEY;
      </script>
      <prompt>Client key is <value expr="clientkey" /></prompt>      
</block>
Above code doesn't work. I get in call log:

Fri 05 Feb 2010 11:28:45 AM EST:
Call Start Event: ANII 2242325546 DNIS 3999 VURL http://us.popproxy.plumgroup.com/plumvp/demo.php
DocumentParser::FetchDocument()
DocumentParser::FetchDocument(http://us.popproxy.plumgroup.com/plumvp/demo.php)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp/demo.php
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp/demo.php
Loading Builtin grammar: builtin:grammar/digits
Loading Builtin grammar: builtin:dtmf/digits
VXI::queue_prompts()
bargein set to true
INPUTMODES set to "DTMF VOICE"
Cache Hit: http://us.popproxy.plumgroup.com/plumvp/audio/demo.wav
Audio segment from the URL audio/demo.wav added to prompt queue
VXI::field_element - activating grammars for form = '$_internalName_205370' formitem = 'ext'
VXI::do_recognition()
PromptManager::Play()
starting playback: bargein=true, inputmodes="dtmf speech"
Newly queued prompts are now being played

Fri 05 Feb 2010 11:28:48 AM EST:
dtmf input: 1892
Found grammar match
hypothesis #0: 1892 (0.9990)
VXI::var_element(name="session_id" expr = "session.id")
VXI::var_element(name="dnis" expr = "session.telephone.dnis")
DocumentParser::FetchDocument(demo.php)
Posted form data is URL encoded
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp/demo.php
DocumentParser::FetchDocument(scratchpad.php/jscarbrough%40where2getit.com/nyco7addresultsdetail)
Cache Miss: http://us.popproxy.plumgroup.com/plumvp ... ultsdetail
Attempting to fetch http://us.popproxy.plumgroup.com/plumvp ... ultsdetail
Loading Builtin grammar: builtin:dtmf/digits?length=5
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1|9
</grammar>
---------
GrammarManager::CreateGrammarFromString(application/x-jsgf):
---------
<?xml version='1.0'?>
<grammar xml:lang="en-us" mode="dtmf">
1|2|3|9
</grammar>
---------
VXI::var_element(name="appkey" expr = "'62E21414-C219-11DD-AA3A-80E83B999D57'")
VXI::var_element(name="limit" expr = "5")
VXI::var_element(name="searchradius" expr = "'50|100|125|150'")
VXI::var_element(name="provider" expr = "'vxml'")
VXI::var_element(name="locations" expr = "")
VXI::var_element(name="geoLocs" expr = "")
VXI::var_element(name="searchcount" expr = "0")
VXI::var_element(name="messagecount" expr = "0")
VXI::var_element(name="zipcode" expr = "0")
VXI::var_element(name="intro" expr = "")
VXI::var_element(name="idx" expr = "")
VXI::var_element(name="max" expr = "")
VXI::var_element(name="location" expr = "")
Cache Miss: http://ivr.where2getit.com/newyork/ivr/vxml.js
Attempting to fetch http://ivr.where2getit.com/newyork/ivr/vxml.js

Fri 05 Feb 2010 11:28:49 AM EST:
VXI::var_element(name="appkey" expr = "'62E21414-C219-11DD-AA3A-80E83B999D57'")
VXI::var_element(name="limit" expr = "5")
VXI::var_element(name="searchradius" expr = "'50|100|125|150'")
VXI::var_element(name="provider" expr = "'vxml'")
VXI::var_element(name="locations" expr = "")
VXI::var_element(name="geoLocs" expr = "")
VXI::var_element(name="searchcount" expr = "0")
VXI::var_element(name="messagecount" expr = "0")
VXI::var_element(name="zipcode" expr = "0")
VXI::var_element(name="intro" expr = "")
VXI::var_element(name="idx" expr = "")
VXI::var_element(name="max" expr = "")
VXI::var_element(name="location" expr = "")
Cache Hit: http://ivr.where2getit.com/newyork/ivr/vxml.js
bargein set to false
INPUTMODES set to "DTMF"
Cache Hit: http://audio.plumgroup.com/root/6767283 ... 832_14.wav
Audio segment from the URL http://audio.plumgroup.com/root/6767283 ... 832_14.wav added to prompt queue
starting playback: bargein=false, inputmodes="dtmf"
Newly queued prompts are now being played
VXI::assign_element(name="intro" expr = "1")
VXI::queue_prompts()
VXI::field_element - activating grammars for form = 'getinput' formitem = 'address'
VXI::do_recognition()
PromptManager::Play()

Fri 05 Feb 2010 11:28:58 AM EST:
dtmf input: 60659
Found grammar match
hypothesis #0: 60659 (0.9990)
VXI::assign_element(name="zipcode" expr = "address")
Cache Miss: http://ivr.where2getit.com/lite?action= ... c125%7c150
Attempting to fetch http://ivr.where2getit.com/lite?action= ... c125%7c150

Fri 05 Feb 2010 11:28:59 AM EST:
VXI::assign_element(name="document.locations" expr = "updateFromResponseXML(geoLocs)")
VXI::assign_element(name="searchcount" expr = "searchcount+1")
VXI::assign_element(name="max" expr = "document.locations.length")
VXI::assign_element(name="idx" expr = "0")
bargein set to true
INPUTMODES set to "DTMF"
Cache Hit: http://audio.plumgroup.com/root/6767283 ... 832_18.wav
Audio segment from the URL http://audio.plumgroup.com/root/6767283 ... 832_18.wav added to prompt queue
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>Number of locations found are 5</speak>
---------
VXI::queue_prompts()
received event: error.semantic: value expr gave invalid type
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>
A serious error of type </speak>
---------
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak>error.semantic</speak>
---------
bargein set to true
INPUTMODES set to "DTMF"
Audio segment added to prompt queue from TTS application/synthesis+ssml for:
---------
<?xml version='1.0'?><speak> has occurred. Exiting. </speak>
---------
VXI::exit_element()
starting playback: bargein=true, inputmodes="dtmf"
Newly queued prompts are now being played

Fri 05 Feb 2010 11:29:10 AM EST:
Call End Event
Ending session
Ending Session On Channel 30


This may be related to:
http://support.plumgroup.com/viewtopic. ... 93533f6cb7


How do I prompt an obj from this array?


-Saif

w2gi
Posts: 46
Joined: Fri Jun 26, 2009 1:35 pm

Post by w2gi »

I got it to work. Here was the problem. I need space before and after variable "clientkey" when I prompt

Working code:

Code: Select all

      <prompt>Client key is <value expr="' ' +clientkey + ' '" /></prompt>
Not working code:

Code: Select all

      <prompt>Client key is <value expr="clientkey" /></prompt>
Not sure why one works and the other doesn't.

Post Reply