We are building our IVR with PlumDev and Python (Flask and the popular requests library).
One of our IVR tree branches is a simple voicemail option. It is supposed to ask Plum to submit the recording back to our app's /record/upload route.
Here is the VXML form for the record portion:
Code: Select all
<vxml xmlns="http://www.w3.org/2001/vxml" application="/root.vxml" version="2.0">
<form id="fetch_record_menu">
<block>
<prompt>
At the tone, please record your message. When you have finished, press the pound key.
</prompt>
</block>
<record name="voicemail" type="audio/x-wav" beep="true" maxtime="120s" finalsilence="4000ms" dtmfterm="true"/>
<block>
<submit namelist="dnis ani session_id voicemail" next="/record/upload" enctype="multipart/form-data" method="post"/>
</block>
</form>
</vxml>
We do not appear to be receiving the full name list being sent across in the POST:
dnis ani session_id voicemail
The only thing we see in the POST Request is Headers:
Accept */*
Content-Length 45620
Content-Type multipart/form-data; boundary=------------------------cba3071c49f9e99b
Expect 100-continue
Host 1423fe9b.ngrok.io
User-Agent PlumVoicePortal/4.1
X-Forwarded-For 107.150.140.21
X-Forwarded-Proto https
The information in the namelist (dnis, ani, session_id) is very important for us to receive back in order to coorelate a voicemail with a particular DID and CallerId which is a major part
of our whole user experience.
Another issue: I noticed the HTTP Header: Expect-100 Continue and from my research on this our understanding is that Plum is awaiting a confirmation to send the full payload/file.
Is there any documentation around how to best handle this? The only useful information I've found so far regarding HTTP Expect-100 is from these links.
TL/DR:
1. We are not getting the voicemail recording.
2. The namelist in the HTTP POST is missing important information.
3. How is 100-continue expected to be used in the context or <Record>?
Hoping your team can help, thanks!
-B