Advertisement
trupsalms

php dial plan

Aug 8th, 2013
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.61 KB | None | 0 0
  1. [phptimeclock]
  2. ;\\Don't let word wrap getcha, some lines are long
  3. ;\\ask for user&pass and create variables, Read(variable[,filename][,maxdigits][,option][,attempts][,timeout])
  4. exten => s,1,Answer
  5. exten => s,n(again),Wait(1)
  6. exten => s,n,Read(user,tm_userid,,,3,5)
  7. exten => s,n,NoOp(${user})
  8. exten => s,n,Wait(2)
  9. exten => s,n,Read(pass,tm_pass,,,3,5)
  10. exten => s,n,NoOp(${pass})
  11.  
  12. ;\\Connect to db, if connection fails goto error context,MYSQL(Connect connid dhhost dbuser dbpass dbname)
  13. exten => s,n,MYSQL(Connect connid xxx.xxx.xxx.xxx phptimeclock phptimeclock phptimeclock)
  14. exten => s,n,NoOp(${connid})
  15. exten => s,n,GotoIf($["${connid}" = ""]?error,1)
  16.  
  17. ;\\check empfullname and employee_passwd in employees table - if yes get tstamp set variable
  18. exten => s,n,MYSQL(Query resultid ${connid} SELECT tstamp FROM employees WHERE empfullname=${user} AND employee_passwd= encrypt("${pass}","xy"))
  19. exten => s,n,MYSQL(Fetch fetchid ${resultid} tstamp)
  20. exten => s,n,MYSQL(Clear ${resultid})
  21. exten => s,n,NoOp(${fetchid})
  22. exten => s,n,GotoIf($["${fetchid}" = "0"]?fail:next)
  23.  
  24. exten => s,n(fail),Playback(tm_login_incorrect)
  25. exten => s,n,goto(again)
  26.  
  27. exten => s,n(next),NoOp("moving On")
  28. exten => s,n,NoOp(${tstamp})
  29.  
  30. ;check tstamp for null, first time login will be null so we set stat to in and jump to n(bad) line to complete Punch In, if not Null the stat will be changed in next section
  31. exten => s,n,Set(stat="in")
  32. exten => s,n,GotoIf($["${tstamp}" = "NULL"]?initial)
  33.  
  34. ;\\check inout status from info where fullname=empfullname and timestamp=tstamp,
  35. exten => s,n,MYSQL(Query resultid ${connid} SELECT info.inout FROM info WHERE fullname=${user} AND timestamp= tstamp)
  36. exten => s,n,MYSQL(Fetch fetchid ${resultid} inout)
  37. exten => s,n,MYSQL(Clear ${resultid})
  38. exten => s,n,NoOp(${inout})
  39.  
  40. ;\\check inout, toggle and set stat, So if their last action was Punch In now Punch Out or reverse
  41. exten => s,n,set(stat=${IF($[ ${inout} = in]?out:in)}) ; Set(foo=${IF($[ ${x} = 7]?tval:fval)})
  42. exten => s,n,NoOp(${stat})
  43.  
  44. ;\\entry from Goto in tstamp was null
  45. exten => s,n(initial),NoOp(initial login)
  46.  
  47. ;\\Make timestamp
  48. exten => s,n,MYSQL(Query resultid ${connid} SELECT unix_timestamp( utc_timestamp( ) ) )
  49. exten => s,n,MYSQL(Fetch fetchid ${resultid} time)
  50. exten => s,n,MYSQL(Clear ${resultid})
  51. exten => s,n,NoOp(${time})
  52.  
  53. ;\\We use caller number to see where the punch comes from
  54. exten => s,n,NoOp("CallerID is "${CALLERID(num)})
  55.  
  56. ;\\insert punch record in info tbl
  57. exten => s,n,MYSQL(Query resultid ${connid} UPDATE employees SET tstamp='${time}' WHERE empfullname=${user})
  58. exten => s,n,MYSQL(Clear ${resultid})
  59.  
  60. ;\\then update tstamp in employees tble, this is used to set the users last action
  61. exten => s,n,MYSQL(Query resultid ${connid} INSERT INTO info SET fullname=${user}, info.inout=${stat}, timestamp=${time}, ipaddress=${CALLERID(num)})
  62. exten => s,n,MYSQL(Fetch fetchid ${resultid})
  63. exten => s,n,MYSQL(Clear ${resultid})
  64.  
  65. ;\\Say goodbye
  66. exten => s,n,GotoIf($["${stat}" = "in"]?in:out)
  67. exten => s,n(in),Playback(tm_clocked_in)
  68. exten => s,n,goto(done)
  69. exten => s,n(out),Playback(tm_clocked_out)
  70. exten => s,n,goto(done)
  71.  
  72. ;\\So we can see if connection id and result id is increasing
  73. exten => s,n(done),NoOp("Connection ID is "${connid})
  74. exten => s,n,NoOp("Result ID is "${resultid})
  75.  
  76. exten => s,n,Wait(1)
  77. exten => s,n,MYSQL(Clear ${resultid})
  78. exten => s,n,MYSQL(Disconnect ${connid})
  79. exten => h,1,mysql(clear ${resultid})
  80. exten => h,n,mysql(disconnect ${connid}
  81.  
  82. exten => error,1,NoOp,MYSQL(Disconnect ${connid})
  83. exten => error,n,Playback(tm_contact_admin)
  84. exten => error,n,Hangup
  85. ;end of timeclock context
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement