Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Despertador em AEL
- // AlarmClock in AEL
- // Create by: Rafael Saraiva
- // rafaelsnsa@gmail.com
- context from-sip {
- _1XX => {
- Dial(SIP/${EXTEN});
- };
- *48 => {
- Answer();
- timezone = "America/Sao_Paulo";
- begin:
- opt = 0;
- if(${DB_EXISTS(alarm/${CALLERID(num)})} == 1) {
- Read(opt,pt_BR/to-change&&pt_BR/press-1&pt_BR/and&pt_BR/press-2,1,,3,5); // 1 - set time, 2 - cancel
- if (${opt} == 1) {
- goto begin-alarm;
- } else if(${opt} == 2) {
- del = "${DB_DELETE(alarm/${CALLERID(num)})}";
- del_file = "${SHELL(rm -rf /var/spool/asterisk/outgoing/alarm-${CALLERID(num)}.call && echo 1 || echo 0)}";
- if(${del_file} == 1) {
- Playback(pt_BR/de-activated);
- Playback(pt_BR/auth-thankyou);
- hangup;
- } else {
- Playback(pt_BR/an-error-has-occured);
- hangup;
- }
- } else {
- goto begin;
- }
- } else {
- begin-alarm:
- hour = 0;
- minutes = 0;
- begin-hour:
- Read(hour,pt_BR/hour,2);
- if(${hour} > 23) {
- Playback(pt_BR/invalid);
- goto begin-hour;
- } else {
- begin-minute:
- Read(minutes,pt_BR/minute,2);
- if(${minutes} > 59) {
- Playback(pt_BR/invalid);
- goto begin-minute;
- } else {
- year=${STRFTIME(${DAY},${timezone},%Y)};
- month=${STRFTIME(${DAY},${timezone},%m)};
- day=${STRFTIME(${DAY},${timezone},%d)};
- now="${STRFTIME(${EPOCH},${timezone},%Y-%m-%d %H:%M:%S)}";
- now_epoch=${STRPTIME(${now},${timezone},%Y-%m-%d %H:%M:%S)};
- alarm=${STRPTIME(${year}-${month}-${day} ${hour}:${minutes}:00,${timezone},%Y-%m-%d %H:%M:%S)};
- if(${alarm} < ${now_epoch}) {
- alarm=${MATH(${alarm}+86400,int)};
- year=${STRFTIME(${alarm},${timezone},%Y)};
- month=${STRFTIME(${alarm},${timezone},%m)};
- day=${STRFTIME(${alarm},${timezone},%d)};
- }
- tmp_file = "/var/spool/asterisk/tmp/alarm-${CALLERID(num)}.call";
- end_file = "/var/spool/asterisk/outgoing/alarm-${CALLERID(num)}.call";
- res1 = ${SHELL(echo "Channel: SIP/${CALLERID(num)}" > ${tmp_file} && echo 1 || echo 0)};
- res2 = ${SHELL(echo "CallerID: \"Despertador\" <${CALLERID(num)}>" >> ${tmp_file} && echo 1 || echo 0)};
- res3 = ${SHELL(echo "Context: from-sip" >> ${tmp_file} && echo 1 || echo 0)};
- res4 = ${SHELL(echo "Extension: alarm-${CALLERID(num)}" >> ${tmp_file} && echo 1 || echo 0)};
- res5 = ${SHELL(echo "Priority: 1" >> ${tmp_file} && echo 1 || echo 0)};
- res = ${res1}+${res2}+${res3}+${res4}+${res5};
- if(${res} == 5) {
- System(touch -t ${year}${month}${day}${hour}${minutes}.00 ${tmp_file});
- move_file = ${SHELL(mv ${tmp_file} ${end_file} && echo 1 || echo 0)};
- if(${move_file} == 1) {
- DB(alarm/${CALLERID(num)})="${year}-${month}-${day} ${hour}:${minutes}:00";
- Playback(pt_BR/activated);
- Playback(pt_BR/auth-thankyou);
- hangup;
- } else {
- Playback(pt_BR/an-error-has-occured);
- goto begin-hour;
- }
- } else {
- Playback(pt_BR/an-error-has-occured);
- goto begin-hour;
- }
- }
- }
- }
- }
- _alarm-X. => {
- Answer();
- del = "${DB_DELETE(alarm/${CALLERID(num)})}";
- Playback(tt-monkeys);
- hangup;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement