bdk0172:
Speaking of message queues, is there a way to set the max amount of times to attempt to send the message to my web app and also set a delay time between retries if the call failed for any reason(no answer, busy, etc.) when I create the message?
I am the only developer working on this particular application.
You are basically on the right track.
One way to handle the retries and delay is to keep time stamps on the database along with a call status. Your service would query at specific intervals for all records that meet your criteria. The query should select records that haven't been dialed along with those that were busy or ring no answer and it has been x number of minutes since the last try.
For example if the last try was busy you may want to wait 5 minutes before calling again. Those people are probably home (got busy signal) but you need to give them time to finish their current call.
If the last try for a record was ring no answer then you probably want to wait a little longer before trying again as the assumption is that they aren't home so you need to give them some time to get home.
Dialing either call too soon will likely result in the same results. You need to figure out what time frames work best for you.
Too short of a time frame and you waste time making too many calls. You may also want to set a max tries amount and stop making calls when that is reached but it really depends on what you are trying to accomplish.
The part about doing database look ups during a call is that it adds latency. When the remote party answers a prompt they expect the next prompt withing about 2 seconds or less. Users don't want long delays between prompts.
You should also avoid doing database look ups in the turn starting event of a QuestionAnswerActivity as that gets fired for every silence or no reco. Do it once in a code block before you get to the QA.
Marshall Harrison
MVP, Office Communications Server
GotSpeech Consulting LLC
Phone: (904) 222-8880
the gotspeech guy