Home | How it works | Projects archive | Contact Us
Air Compressor Bot
 
The Career Path of Freelance Programming Jobs 

   Urgent - Modify Asterisk IVR/Query - Simple

Bidding Time:
30/04/2007 23:55 - 01/05/2007 00:00
Budget:
$30-100
Status:
Closed


Job Type:
PHP, Perl/CGI, C/C++, Engineering
Description:



Paying too much for web hosting?

I need to have someone modify the following IVR so that it does the following.
This is an urgent request as we need to have this working tomorrow and the
developer that did it hasn't responded to resolve this, even though he said he
would. I just about had it done myself, but don't have the time.
Here are the 2 things that need to be changed.
There is a field in the pr_sites table now called GMT, this holds the + or – GMT
time for each location.
the systems time is -8 GMT.
Need to calculate the local time of the site and modify the Set-Time-Arrive and
Set-time-departure query’s to enter the local time using the GMT field.
Neet to modify the set-the-comment to go to the pr_comments table, which will
require setting the following fields: id_site, author_type = 'provider',
author_id=tech_id, date_time = Local Date and Time, content=url
Here is the current IVR script
[ivr-arrive-tech]
exten => s,1,Answer()
exten => s,n,Set(TIMEOUT(digit)=3)
exten => s,n(WELCOME),Background(ivr-tech/thankyou-for-calling)
exten => s,n,Set(tech_id_try=0)
exten => s,n(TECH_ID),Set(STEP=TECH_ID)
exten => s,n,Set(NEXT_STEP=TECH_NAME)
exten => s,n,GotoIf($[${tech_id_try} < 3]?:call-ring-group,s,1)
exten => s,n,Set(tech_id_try=$[${tech_id_try} + 1]
exten => s,n,BackGround(ivr-tech/please-enter-tech-id)
exten => s,n,Read(TECH_ID)
exten => s,n,GotoIf($["a${TECH_ID}" =
"a"]?s,TECH_ID:${TECH_ID},1)
exten => s,n(TECH_NAME),GoSub(tech-name,s,1)
exten => s,n,Set(project_id_try=0)
exten => s,n(PROJECT_ID),Set(STEP=PROJECT_ID)
exten => s,n,Set(NEXT_STEP=PROJECT_NAME)
exten => s,n,GotoIf($[${project_id_try} < 3]?:call-ring-group,s,1)
exten => s,n,Set(project_id_try=$[${project_id_try} + 1]
exten => s,n,BackGround(ivr-tech/please-enter-project-id)
exten => s,n,Read(PROJECT_ID)
exten => s,n,GotoIf($["a${PROJECT_ID}" =
"a"]?s,PROJECT_ID:${PROJECT_ID},1)
exten => s,n(PROJECT_NAME),GoSub(project-name,s,1)
exten => s,n,Set(store_num_try=0)
exten => s,n(STORE_NUM),Set(STEP=STORE_NUM)
exten => s,n,Set(NEXT_STEP=STORE_NAME)
exten => s,n,GotoIf($[${store_num_try} < 3]?:call-ring-group,s,1)
exten => s,n,Set(store_num_try=$[${store_num_try} + 1]
exten => s,n,BackGround(ivr-tech/please-enter-the-store-number)
exten => s,n,Read(STORE_NUM)
exten => s,n,GotoIf($["a${STORE_NUM}" =
"a"]?s,STORE_NUM:${STORE_NUM},1)
exten => s,n(STORE_NAME),GoSub(store-name,s,1)
exten => s,n,Goto(time-recording,s,1)
exten => _X,1,Set(ENTER=${LEN(${EXTEN})})
exten => _X,n,GotoIf($["${EXTEN:$[${${LEN(${EXTEN})}} -
1]:${LEN(EXTEN)}}" = "#"]?${EXTEN:0:$[${ENTER} - 1]},1)
exten => _X,n,Set(ENTER_${STEP}=${EXTEN})
exten => _X,n,Goto(s,${NEXT_STEP})
exten => _X.,1,Set(ENTER=${LEN(${EXTEN})})
exten => _X.,n,GotoIf($["${EXTEN:$[${${LEN(${EXTEN})}} -
1]:${LEN(EXTEN)}}" = "#"]?${EXTEN:0:$[${ENTER} - 1]},1)
exten => _X.,n,Set(ENTER_${STEP}=${EXTEN})
exten => _X.,n,Goto(s,${NEXT_STEP})
exten => i,1,Playback(ivr-tech/invalid-option)
exten => i,n,Goto(s,${STEP})

[tech-name]
exten => s,1,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=select firstname, secondname from provider where
id='${ENTER_TECH_ID}' limit 1)
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} TECH_FIRST_NAME TECH_LAST_NAME)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Noop(${MYSQL_STATUS})
exten => s,n,GotoIf($["${fetchid}" = "0"]?wrong,1)
exten => s,n,Noop("Fecth id = ${fetchid}")
exten => s,n,Noop("Tech name = ${TECH_FIRST_NAME}
${TECH_LAST_NAME}")
exten =>
s,n,Set(FILE_NAME=${ENTER_TECH_ID}_${STRFTIME(${EPOCH},+2,%H_%M_%S-%G_%m_%d)})
exten => s,n,System(echo "${TECH_FIRST_NAME}
${TECH_LAST_NAME}"|text2wave -o /tmp/${FILE_NAME}.ulaw -otype ulaw -)
exten => s,n,Background(ivr-tech/you-are)
exten => s,n,Background(/tmp/${FILE_NAME})
exten => s,n,System(rm /tmp/${FILE_NAME}.ulaw)
exten => s,n,Set(tech_name_try=0)
exten => s,n(confirmation),GotoIf($[${tech_name_try} <
2]?:call-ring-group,s,1)
exten => s,n,Set(tech_name_try=$[${tech_name_try} + 1]
exten => s,n,Background(ivr-tech/press-1-to-confirm-or-2-to-enter-again)
exten => s,n,WaitExten()
exten => 1,1,Noop("Tech name is OK)
exten => 1,n,Return()
exten => 2,1,Noop("Tech name is WRONG")
exten => 2,n,Goto(ivr-arrive-tech,s,TECH_ID)
exten => i,1,Playback(ivr-tech/invalid-option)
exten => i,n,Goto(s,confirmation)
exten => t,1,Goto(s,confirmation)
exten => wrong,1,Playback(ivr-tech/you-have-entered-a-wrong-tech-id)
exten => wrong,n,Goto(ivr-arrive-tech,s,TECH_ID)
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)

[project-name]
exten => s,1,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Noop(${MYSQL_STATUS})
exten => s,n,Set(QUERY=select title from projects where
id='${ENTER_PROJECT_ID}' limit 1)
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} PROJECT_NAME)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Noop(${MYSQL_STATUS})
exten => s,n,GotoIf($["${fetchid}" = "0"]?wrong,1)
exten => s,n,Noop("Project name = ${PROJECT_NAME}")
exten => s,n,System(echo "${PROJECT_NAME} "|text2wave -o
/tmp/${FILE_NAME}.ulaw -otype ulaw -)
exten => s,n,Background(ivr-tech/project-name-is)
exten => s,n,Background(/tmp/${FILE_NAME})
exten => s,n,System(rm /tmp/${FILE_NAME}.ulaw)
exten => s,n,Set(project_name_try=0)
exten => s,n(confirmation),GotoIf($[${project_name_try} <
2]?:call-ring-group,s,1)
exten => s,n,Set(project_name_try=$[${project_name_try} + 1]
exten => s,n,Background(ivr-tech/press-1-to-confirm-or-2-to-enter-again)
exten => s,n,WaitExten()
exten => 1,1,Noop("Project name is OK)
exten => 1,n,Return()
exten => 2,1,Noop("Project name is WRONG")
exten => 2,n,Goto(ivr-arrive-tech,s,PROJECT_ID)
exten => i,1,Playback(ivr-tech/invalid-option)
exten => i,n,Goto(s,confirmation)
exten => wrong,1,Playback(ivr-tech/you-have-entered-a-wrong-project-id)
exten => wrong,n,Goto(ivr-arrive-tech,s,PROJECT_ID)
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)
[store-name]
exten => s,1,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=select id, street_address from pr_sites where
id_project='${ENTER_PROJECT_ID}' and store_number='${ENTER_STORE_NUM}' and
technician='${ENTER_TECH_ID}' limit 1)
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} STORE_ID STORE_ADDRESS)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GotoIf($["${fetchid}" = "0"]?wrong,1)
exten => s,n,Noop("Store address = ${STORE_ADDRESS}")
exten => s,n,System(echo "${STORE_ADDRESS} "|text2wave -o
/tmp/${FILE_NAME}.ulaw -otype ulaw -)
exten => s,n,Background(ivr-tech/store-address-is)
exten => s,n,Background(/tmp/${FILE_NAME})
exten => s,n,System(rm /tmp/${FILE_NAME}.ulaw)
exten => s,n,Set(store_name_try=0)
exten => s,n(confirmation),GotoIf($[${store_name_try} <
2]?:call-ring-group,s,1)
exten => s,n,Set(store_name_try=$[${store_name_try} + 1]
exten => s,n,Background(ivr-tech/press-1-to-confirm-or-2-to-enter-again)
exten => s,n,WaitExten()
exten => 1,1,Noop("Store name is OK)
exten => 1,n,Return()
exten => 2,1,Noop("Store name is WRONG")
exten => 2,n,Goto(ivr-arrive-tech,s,STORE_ID)
exten => i,1,Playback(ivr-tech/invalid-option)
exten => i,n,Goto(s,confirmation)
exten => t,1,Goto(s,confirmation)
exten => wrong,1,Playback(ivr-tech/you-have-entered-a-wrong-store-number)
exten => wrong,n,Goto(ivr-arrive-tech,s,STORE_NUM)
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)
[time-recording]
exten => s,1,Set(TIME=${STRFTIME(${EPOCH},+2,%H:%M:%S)})
exten => s,n,Set(DATE=${STRFTIME(${EPOCH},+2,%G-%m-%d)})
exten => s,n,Set(DAY=${STRFTIME(${EPOCH},+2,%d)})
exten => s,n,Set(DATE_PREV=${STRFTIME(${EPOCH},+2,%G-%m-)}$[${DAY} - 1])
exten => s,n,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=select actual_start, actual_stop, comment from
pr_sites_workdays where id_site='${STORE_ID}' and date='${DATE}' limit 1)
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} ACTUAL_START ACTUAL_STOP
COMMENT)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GotoIf($["${fetchid}" = "1"]?check1,1)
exten => s,n,Set(DAY=${STRFTIME(${EPOCH},+2,%d)})
exten => s,n,Set(DATE=${STRFTIME(${EPOCH},+2,%G-%m-)}$[${DAY} - 1])
exten => s,n,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=select actual_start, actual_stop, comment from
pr_sites_workdays where id_site='${STORE_ID}' and date='${DATE}' limit 1)
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} ACTUAL_START ACTUAL_STOP
COMMENT)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GotoIf($["${fetchid}" = "0"]?wrong,1)
exten => s,n,GotoIf($["${ACTUAL_START}" =
"00:00:00"]?wrong,1)
exten => s,n,GotoIf($["${ACTUAL_STOP}" =
"00:00:00"]?s,departure)
exten => s,n,GotoIf($["${COMMENT}" = "None"]?s,comment)
exten => s,n,Goto(wrong,1)
exten => s,n(check1),GotoIf($["${ACTUAL_START}" =
"00:00:00"]?s,arrive)
exten => s,n(check2),GotoIf($["${ACTUAL_STOP}" =
"00:00:00"]?s,departure)
exten => s,n(check2),GotoIf($["${COMMENT}" =
"None"]?s,comment)
exten => s,n(check3),Goto(wrong,1)
exten => s,n(arrive),Background(ivr-tech/press-one-to-record-arrival-time)
exten => s,n,Goto(s,read)
exten =>
s,n(departure),Background(ivr-tech/press-two-to-record-departure-time)
exten => s,n(comment),Background(ivr-tech/press-three-to-record-a-comment)
exten => s,n(read),WaitExten()
exten => 1,1,Noop("Record the arrival time")
exten => 1,n,Goto(set-time-arrive,s,1)
exten => 2,1,Noop("Record the daparture time")
exten => 2,n,Goto(set-time-departure,s,1)
exten => 3,1,Noop("Record the commnent about the site")
exten => 3,n,Goto(set-the-comment,s,1)
exten => i,1,Playback(ivr-tech/invalid-option)
exten => i,n,Goto(s,check1)
exten => t,1,Goto(s,check1)
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)
exten =>
wrong,1,Playback(ivr-tech/wrong-data-please-wait-while-connecting-to-operator)
exten => wrong,n,Goto(call-ring-group,s,1)
[set-time-arrive]
exten => s,1,Noop("Record the arrival time")
exten => s,n,GotoIf($["${DATE}" =
"${DATE_PREV}"]?wrong,1)
exten => s,n,GotoIf($["${actual_start}" =
"00:00:00"]?:wrong,1)
exten => s,n,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=update pr_sites_workdays set actual_start='${TIME}'
where id_site='${STORE_ID}' and date='${DATE}')
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,Set(QUERY=select actual_start from pr_sites_workdays where
id_site='${STORE_ID}' and date='${DATE}')
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} MYSQL_TIME)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GotoIf($["${MYSQL_TIME}" =
"${TIME}"]?:mysql_error,1)
exten => s,n,Playback(ivr-tech/arrive-time-is-saved)
exten => s,n,Playback(ivr-tech/goodbye)
exten => s,n,Hangup()
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)
exten =>
wrong,1,Playback(ivr-tech/wrong-data-please-wait-while-connecting-to-operator)
exten => wrong,n,Goto(call-ring-group,s,1)
[set-time-departure]
exten => s,1,Noop("Record the arrival time")
exten => s,n,GotoIf($["${actual_stop}" =
"00:00:00"]?:wrong,1)
exten => s,n,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=update pr_sites_workdays set actual_stop='${TIME}'
where id_site='${STORE_ID}' and date='${DATE}')
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,Set(QUERY=select actual_stop from pr_sites_workdays where
id_site='${STORE_ID}' and date='${DATE}')
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Fetch fetchid ${resultid} MYSQL_TIME)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,GotoIf($["${MYSQL_TIME}" =
"${TIME}"]?:mysql_error,1)
exten => s,n,Playback(ivr-tech/departure-time-is-saved)
exten => s,n,Goto(time-recording,s,comment)
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)
exten =>
wrong,1,Playback(ivr-tech/wrong-data-please-wait-while-connecting-to-operator)
exten => wrong,n,Goto(call-ring-group,s,1)
[set-the-comment]
exten => s,1,Noop("Record the comment")
exten => s,n,Record(/var/www/html/comments/${FILE_NAME}.wav)
exten => s,n,MySQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DB})
exten => s,n,GotoIf($["${MYSQL_STATUS}" =
"0"]?:mysql_error,1)
exten => s,n,Set(QUERY=update pr_sites_workdays set
comment='${COMMENT_LINK}/${FILE_NAME}.wav' where id_site='${STORE_ID}' and
date='${DATE}')
exten => s,n,MYSQL(Query resultid ${connid} ${QUERY})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,Playback(ivr-tech/the-comment-is-saved)
exten => s,n,Playback(ivr-tech/goodbye)
exten => s,n,Hangup()
exten =>
mysql_error,1,Playback(ivr-tech/an-error-has-occured-connecting-to-operator)
exten => mysql_error,n,Goto(call-ring-group,s,1)

[call-ring-group]
exten => s,1,Noop("Dialing ring group")
exten => s,n,Goto(ext-group,${RING_GROUP},1)

Start your work-at-home career for $7.00. Get direct access to thousands of freelance and home-based jobs. Click here to find work now.

Related Projects:
Flash/php/mysql Website Clone
Customize Phpadsnew
10-15 Real Estate Articles #1
Needing 40 Wedding Articles Rewritten in Original Content ** Please Read Post Carefully **
Yahoo Account Cracker

This project is the proprietary information of . Click here to remove this project from OUR database.
Operating System:
Linux
Database System:
MySQL
<<< back

Recent Projects Archive:

Thursday - Wednesday - Tuesday - Monday - Sunday - Saturday - Friday

View all freelance web projects

 
Home | Projects archive | RSS | Resources | Links | Contact Us © 2004-2008 ProjectsList.biz /0.648