Guest User

Untitled

a guest
Oct 13th, 2016
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.45 KB | None | 0 0
  1.  
  2. [sub-record-check]
  3. include => sub-record-check-custom
  4. exten => s,1,GotoIf($[${LEN(${FROMEXTEN})}]?initialized)
  5. exten => s,n,Set(__REC_STATUS=INITIALIZED)
  6. exten => s,n,Set(NOW=${EPOCH})
  7. exten => s,n,Set(__DAY=${STRFTIME(${NOW},,%d)})
  8. exten => s,n,Set(__MONTH=${STRFTIME(${NOW},,%m)})
  9. exten => s,n,Set(__YEAR=${STRFTIME(${NOW},,%Y)})
  10. exten => s,n,Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)})
  11. exten => s,n,Set(__FROMEXTEN=${IF($[${LEN(${AMPUSER})}]?${AMPUSER}:${IF($[${LEN(${REALCALLERIDNUM})}]?${REALCALLERIDNUM}:unknown)})})
  12. exten => s,n,Set(__MON_FMT=${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})})
  13. exten => s,n(initialized),Noop(Recordings initialized)
  14. exten => s,n,ExecIf($[!${LEN(${ARG3})}]?Set(ARG3=dontcare))
  15. exten => s,n,Set(REC_POLICY_MODE_SAVE=${REC_POLICY_MODE})
  16. exten => s,n,ExecIf($["${BLINDTRANSFER}${ATTENDEDTRANSFER}" != ""]?Set(REC_STATUS=NO))
  17. exten => s,n(next),GotoIf($[${LEN(${ARG1})}]?checkaction)
  18. exten => s,n(recorderror),Playback(something-terribly-wrong,error)
  19. exten => s,n,Hangup
  20. exten => s,n(checkaction),GotoIf($[${DIALPLAN_EXISTS(sub-record-check,${ARG1})}]?sub-record-check,${ARG1},1)
  21. exten => s,n,Noop(Generic ${ARG1} Recording Check - ${FROMEXTEN} ${ARG2})
  22. exten => s,n,Gosub(recordcheck,1(${ARG3},${ARG1},${ARG2}))
  23. exten => s,n,Return()
  24.  
  25. exten => recordcheck,1,Noop(Starting recording check against ${ARG1})
  26. exten => recordcheck,n,Goto(${ARG1})
  27. exten => recordcheck,n(dontcare),Return()
  28. exten => recordcheck,n(always),Noop(Detected legacy "always" entry. Mapping to "force")
  29. exten => recordcheck,n(force),Set(__REC_POLICY_MODE=FORCE)
  30. exten => recordcheck,n,GotoIf($["${REC_STATUS}"!="RECORDING"]?startrec)
  31. exten => recordcheck,n,Return()
  32. exten => recordcheck,n(delayed),Noop(Detected legacy "delayed" entry. Mapping to "yes")
  33. exten => recordcheck,n(yes),ExecIf($["${REC_POLICY_MODE}" = "NEVER" | "${REC_POLICY_MODE}" = "NO" | "${REC_STATUS}" = "RECORDING"]?Return())
  34. exten => recordcheck,n,Set(__REC_POLICY_MODE=YES)
  35. exten => recordcheck,n,Goto(startrec)
  36. exten => recordcheck,n(no),Set(__REC_POLICY_MODE=NO)
  37. exten => recordcheck,n,Return()
  38. exten => recordcheck,n(never),Set(__REC_POLICY_MODE=NEVER)
  39. exten => recordcheck,n,Goto(stoprec)
  40. exten => recordcheck,n(startrec),Noop(Starting recording: ${ARG2}, ${ARG3})
  41. ;exten => recordcheck,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=no)
  42. exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})
  43. exten => recordcheck,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT},ai(LOCAL_MIXMON_ID)${MIXMON_BEEP},${MIXMON_POST})
  44. exten => recordcheck,n,Set(__MIXMON_ID=${LOCAL_MIXMON_ID})
  45. exten => recordcheck,n,Set(__RECORD_ID=${CHANNEL(name)})
  46. exten => recordcheck,n,Set(__REC_STATUS=RECORDING)
  47. exten => recordcheck,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
  48. exten => recordcheck,n,Return()
  49. exten => recordcheck,n(stoprec),Noop(Stopping recording: ${ARG2}, ${ARG3})
  50. exten => recordcheck,n,Set(__REC_STATUS=STOPPED)
  51. exten => recordcheck,n,System(/var/lib/asterisk/bin/stoprecording.php "${CHANNEL(name)}")
  52. exten => recordcheck,n,Return()
  53.  
  54. exten => out,1,Noop(Outbound Recording Check from ${FROMEXTEN} to ${ARG2})
  55. exten => out,n,Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)})
  56. exten => out,n,ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins))
  57. exten => out,n,ExecIf($["${ARG3}" = "never" | "${ARG3}" = "force"]?Goto(routewins))
  58. exten => out,n(extenwins),Gosub(recordcheck,1(${RECMODE},out,${ARG2}))
  59. exten => out,n,Return()
  60. exten => out,n(routewins),Gosub(recordcheck,1(${ARG3},out,${ARG2}))
  61. exten => out,n,Return()
  62.  
  63. exten => in,1,Noop(Inbound Recording Check to ${ARG2})
  64. exten => in,n,Set(FROMEXTEN=unknown)
  65. exten => in,n,ExecIf($[${LEN(${CALLERID(num)})}]?Set(FROMEXTEN=${CALLERID(num)}))
  66. exten => in,n,Gosub(recordcheck,1(${ARG3},in,${ARG2}))
  67. exten => in,n,Return()
  68. exten => exten,1,Noop(Exten Recording Check between ${FROMEXTEN} and ${ARG2})
  69. exten => exten,n,Set(CALLTYPE=${IF($[${LEN(${FROM_DID})}]?external:internal)})
  70. exten => exten,n,ExecIf(${LEN(${CALLTYPE_OVERRIDE})}?Set(CALLTYPE=${CALLTYPE_OVERRIDE}))
  71. exten => exten,n,Set(CALLEE=${DB(AMPUSER/${ARG2}/recording/in/${CALLTYPE})})
  72. exten => exten,n,ExecIf($[!${LEN(${CALLEE})}]?Set(CALLEE=dontcare))
  73. exten => exten,n,GotoIf($["${CALLTYPE}"="external"]?callee)
  74. exten => exten,n,GotoIf($["${CALLEE}"="dontcare"]?caller)
  75. exten => exten,n,ExecIf($[${LEN(${DB(AMPUSER/${FROMEXTEN}/recording/priority)})}]?Set(CALLER_PRI=${DB(AMPUSER/${FROMEXTEN}/recording/priority)}):Set(CALLER_PRI=0))
  76. exten => exten,n,ExecIf($[${LEN(${DB(AMPUSER/${ARG2}/recording/priority)})}]?Set(CALLEE_PRI=${DB(AMPUSER/${ARG2}/recording/priority)}):Set(CALLEE_PRI=0))
  77. exten => exten,n,GotoIf($["${CALLER_PRI}"="${CALLEE_PRI}"]?${REC_POLICY}:${IF($[${CALLER_PRI}>${CALLEE_PRI}]?caller:callee)})
  78. exten => exten,n(callee),Gosub(recordcheck,1(${CALLEE},${CALLTYPE},${ARG2}))
  79. exten => exten,n,Return()
  80. exten => exten,n(caller),Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/internal)})
  81. exten => exten,n,ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare))
  82. exten => exten,n,ExecIf($["${RECMODE}"="dontcare"]?Set(RECMODE=${CALLEE}))
  83. exten => exten,n,Gosub(recordcheck,1(${RECMODE},${CALLTYPE},${ARG2}))
  84. exten => exten,n,Return()
  85.  
  86. exten => conf,1,Noop(Conference Recording Check ${FROMEXTEN} to ${ARG2})
  87. exten => conf,n,Gosub(recconf,1(${ARG2},${ARG2},${ARG3}))
  88. exten => conf,n,Return()
  89.  
  90. exten => page,1,Noop(Paging Recording Check ${FROMEXTEN} to ${ARG2})
  91. exten => page,n,GosubIf($["${REC_POLICY_MODE}"="always"]?recconf,1(${ARG2},${FROMEXTEN},${ARG3}))
  92. exten => page,n,Return()
  93.  
  94. exten => recconf,1,Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3})
  95. exten => recconf,n,Set(__CALLFILENAME=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${DB(RECCONF/${ARG2})}:${ARG1}-${ARG2}-${ARG3}-${TIMESTR}-${UNIQUEID})})
  96. exten => recconf,n,ExecIf($[!${CONFBRIDGE_INFO(parties,${ARG2})}]?Set(DB(RECCONF/${ARG2})=${CALLFILENAME}-${NOW}))
  97. exten => recconf,n,Set(CONFBRIDGE(bridge,record_file)=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT})
  98. exten => recconf,n,ExecIf($["${ARG3}"!="always"]?Return())
  99. exten => recconf,n,Set(CONFBRIDGE(bridge,record_conference)=yes)
  100. exten => recconf,n,Set(__REC_STATUS=RECORDING)
  101. exten => recconf,n,Set(CDR(recordingfile)=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${CALLFILENAME}.${MON_FMT}:${CALLFILENAME}-${NOW}.${MON_FMT})})
  102. exten => recconf,n,Return()
  103.  
  104. exten => recconf,n,Set(CDR(recordingfile)=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${CALLFILENAME}.${MON_FMT}:${CALLFILENAME}-${NOW}.${MON_FMT})})
  105. exten => recconf,n,Return()
  106.  
  107. exten => recq,1,Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3})
  108. ;exten => recq,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=no)
  109. exten => recq,n,Set(MONITOR_FILENAME=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME})
  110. exten => recq,n,MixMonitor(${MONITOR_FILENAME}.${MON_FMT},${MONITOR_OPTIONS}${MIXMON_BEEP},${MIXMON_POST})
  111. exten => recq,n,Set(__REC_STATUS=RECORDING)
  112. exten => recq,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
  113. exten => recq,n,Return()
  114.  
  115. exten => parking,1,Noop(User ${ARG2} picked up a parked call)
  116. exten => parking,n,Set(USER=${ARG2})
  117. exten => parking,n,ExecIf($[!${LEN(${ARG2})}]?Set(USER=unknown))
  118. exten => parking,n,Set(RECMODE=${DB(AMPUSER/${ARG2}/recording/out/internal)})
  119. exten => parking,n,ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare))
  120. exten => parking,n,Gosub(recordcheck,1(${RECMODE},parked,${USER}))
  121. exten => parking,n,Return()
  122.  
  123. ;--== end of [sub-record-check] ==--;
Advertisement
Add Comment
Please, Sign In to add comment