Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SalesPlatform Vtiger CRM 7.1.0-201803
- FreePBX 14.0.5.25
- Asterisk 13
- SPAsteriskConnector 1.4.2
- manager.conf :
- ======================================================================================================
- ;
- ; AMI - Asterisk Manager interface - Generated at 2019-02-14T09:24:07+00:00
- ;
- ; FreePBX needs this to be enabled. Note that if you enable it on a different IP, you need
- ; to assure that this can't be reached from un-authorized hosts with the ACL settings (permit/deny).
- ; Also, remember to configure non-default port or IP-addresses in amportal.conf.
- ;
- ; The AMI connection is used both by the portal and the operator's panel in FreePBX.
- ;
- ; FreePBX assumes an AMI connection to localhost:5038 by default.
- ;
- [general]
- enabled = yes
- port = 5038
- bindaddr = 0.0.0.0
- displayconnects=no ;only effects 1.6+
- [admin]
- secret = 5dIR0ZVcu3Uv
- deny=0.0.0.0/0.0.0.0
- permit=127.0.0.1/255.255.255.0
- permit=192.168.0.0/255.255.255.0
- read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message,all
- write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,message,all
- writetimeout = 5000
- #include manager_additional.conf
- #include manager_custom.conf
- ======================================================================================================
- cdr_manager.conf :
- ======================================================================================================
- [general]
- enabled = yes
- [mappings]
- recordingpath => recordingpath
- ======================================================================================================
- extensions_override_freepbx.conf :
- ======================================================================================================
- [macro-parked-call]
- include => macro-parked-call-custom
- exten => s,1,Macro(user-callerid,)
- exten => s,n,Gosub(sub-record-check,s,1(parking,${AMPUSER},${AMPUSER}))
- exten => s,n,Noop(PARKRETURNTO: ${SHARED(PARKRETURNTO,${CHANNEL})})
- exten => s,n,GotoIf($[${LEN(${SHARED(PARKRETURNTO,${CHANNEL})})} > 0]?backtosender)
- exten => s,n,GotoIf($[${LEN(${BLINDTRANSFER})} > 0 | ${LEN(${ATTENDEDTRANSFER})} > 0]?attemptpark)
- exten => s,n,AGI(parkfetch.agi,${ARG1},${ARG2})
- exten => s,n,GotoIf($["${REC_STATUS}" != "RECORDING"]?next)
- exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
- exten => s,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
- exten => s,n,Set(CDR(recordingpath)=${ASTSPOOLDIR}/monitor/${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) ;SalesPlatform override
- exten => s,n(next),Set(CCSS_SETUP=TRUE)
- exten => s,n,GotoIf($["${PARKIE}" != ""]?pcall)
- exten => s,n,ResetCDR()
- exten => s,n,Set(CDR_PROP(disable)=true)
- exten => s,n,Wait(1)
- exten => s,n,Playback(pbx-invalidpark)
- exten => s,n,Wait(1)
- exten => s,n,Hangup
- exten => s,n(pcall),Noop(User: ${CALLERID(all)} attempting to pick up Parked Call Slot ${ARG1})
- exten => s,n,Noop(PARKIE: ${PARKIE})
- exten => s,n,Set(SHARED(PARKRETURNTO,${PARKIE})=)
- exten => s,n,Set(PARKOWNER=1)
- exten => s,n,ParkedCall(${ARG2},${ARG1})
- exten => s,n,Hangup
- exten => s,n(attemptpark),Noop(User: ${CALLERID(all)} attempting to Park into slot ${ARG1})
- exten => s,n,Noop(Blind Transfer: ${BLINDTRANSFER}, Attended Transfer: ${ATTENDEDTRANSFER})
- exten => s,n,Noop($[${LEN(${PARKOWNER})} = 0])
- exten => s,n,GotoIf($[${LEN(${PARKOWNER})} = 0]?parkit)
- exten => s,n,Macro(hangupcall,)
- exten => s,n(parkit),Set(PARKINGEXTEN=${ARG1})
- exten => s,n,ExecIf($[${LEN(${BLINDTRANSFER})} > 0]?Set(SHARED(PARKRETURNTO,${CHANNEL})=${CUT(BLINDTRANSFER,-,1)}):Set(SHARED(PARKRETURNTO,${CHANNEL})=${CUT(ATTENDEDTRANSFER,-,1)}))
- exten => s,n,Noop(PARKRETURNTO: ${SHARED(PARKRETURNTO,${CHANNEL})})
- exten => s,n,Park(${ARG2},sc(${CONTEXT},s,200))
- exten => s,1+199(backtosender),Noop(Attempting to go back to sender)
- exten => s,n,Set(PARKCALLBACK=${PARKER})
- exten => s,n,Set(SHARED(PARKRETURNTO,${CHANNEL})=)
- exten => s,n,Goto(park-return-routing,${PARKINGSLOT},1)
- exten => h,1,Macro(hangupcall,)
- ;--== end of [macro-parked-call] ==--;
- [parkedcallstimeout]
- include => parkedcallstimeout-custom
- exten => _[0-9a-zA-Z*#].,1,Set(PARKCALLBACK=${REPLACE(EXTEN,_,/)})
- exten => _[0-9a-zA-Z*#].,n,GotoIf($["${REC_STATUS}" != "RECORDING"]?next)
- exten => _[0-9a-zA-Z*#].,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
- exten => _[0-9a-zA-Z*#].,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MIXMON_FORMAT},a,${MIXMON_POST})
- exten => _[0-9a-zA-Z*#].,n,Set(CDR(recordingpath)=${ASTSPOOLDIR}/monitor/${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) ;SalesPlatform override
- exten => _[0-9a-zA-Z*#].,n(next),Goto(park-return-routing,${PARKINGSLOT},1)
- ;--== end of [parkedcallstimeout] ==--;
- [sub-record-cancel]
- include => sub-record-cancel-custom
- exten => s,1,Return()
- ;--== end of [sub-record-cancel] ==--;
- [sub-record-check]
- include => sub-record-check-custom
- exten => s,1,GotoIf($[${LEN(${FROMEXTEN})}]?initialized)
- exten => s,n,Set(__REC_STATUS=INITIALIZED)
- exten => s,n,Set(NOW=${EPOCH})
- exten => s,n,Set(__DAY=${STRFTIME(${NOW},,%d)})
- exten => s,n,Set(__MONTH=${STRFTIME(${NOW},,%m)})
- exten => s,n,Set(__YEAR=${STRFTIME(${NOW},,%Y)})
- exten => s,n,Set(__TIMESTR=${YEAR}${MONTH}${DAY}-${STRFTIME(${NOW},,%H%M%S)})
- exten => s,n,Set(__FROMEXTEN=${IF($[${LEN(${AMPUSER})}]?${AMPUSER}:${IF($[${LEN(${REALCALLERIDNUM})}]?${REALCALLERIDNUM}:unknown)})})
- exten => s,n,Set(__MON_FMT=${IF($["${MIXMON_FORMAT}"="wav49"]?WAV:${MIXMON_FORMAT})})
- exten => s,n(initialized),Noop(Recordings initialized)
- exten => s,n,ExecIf($[!${LEN(${ARG3})}]?Set(ARG3=dontcare))
- exten => s,n,Set(REC_POLICY_MODE_SAVE=${REC_POLICY_MODE})
- exten => s,n,ExecIf($["${BLINDTRANSFER}${ATTENDEDTRANSFER}" != ""]?Set(REC_STATUS=NO))
- exten => s,n(next),GotoIf($[${LEN(${ARG1})}]?checkaction)
- exten => s,n(recorderror),Playback(something-terribly-wrong,error)
- exten => s,n,Hangup
- exten => s,n(checkaction),GotoIf($[${DIALPLAN_EXISTS(sub-record-check,${ARG1})}]?sub-record-check,${ARG1},1)
- exten => s,n,Noop(Generic ${ARG1} Recording Check - ${FROMEXTEN} ${ARG2})
- exten => s,n,Gosub(recordcheck,1(${ARG3},${ARG1},${ARG2}))
- exten => s,n,Return()
- exten => recordcheck,1,Noop(Starting recording check against ${ARG1})
- exten => recordcheck,n,Goto(${ARG1})
- exten => recordcheck,n(dontcare),Return()
- exten => recordcheck,n(always),Noop(Detected legacy "always" entry. Mapping to "force")
- exten => recordcheck,n(force),Set(__REC_POLICY_MODE=FORCE)
- exten => recordcheck,n,GotoIf($["${REC_STATUS}"!="RECORDING"]?startrec)
- exten => recordcheck,n,Return()
- exten => recordcheck,n(delayed),Noop(Detected legacy "delayed" entry. Mapping to "yes")
- exten => recordcheck,n(yes),ExecIf($["${REC_POLICY_MODE}" = "NEVER" | "${REC_POLICY_MODE}" = "NO" | "${REC_STATUS}" = "RECORDING"]?Return())
- exten => recordcheck,n,Set(__REC_POLICY_MODE=YES)
- exten => recordcheck,n,Goto(startrec)
- exten => recordcheck,n(no),Set(__REC_POLICY_MODE=NO)
- exten => recordcheck,n,Return()
- exten => recordcheck,n(never),Set(__REC_POLICY_MODE=NEVER)
- exten => recordcheck,n,Goto(stoprec)
- exten => recordcheck,n(startrec),Noop(Starting recording: ${ARG2}, ${ARG3})
- exten => recordcheck,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
- exten => recordcheck,n,Set(__CALLFILENAME=${ARG2}-${ARG3}-${FROMEXTEN}-${TIMESTR}-${UNIQUEID})
- exten => recordcheck,n,MixMonitor(${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT},abi(LOCAL_MIXMON_ID)${MIXMON_BEEP},${MIXMON_POST})
- exten => recordcheck,n,Set(__MIXMON_ID=${LOCAL_MIXMON_ID})
- exten => recordcheck,n,Set(__RECORD_ID=${CHANNEL(name)})
- exten => recordcheck,n,Set(__REC_STATUS=RECORDING)
- exten => recordcheck,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
- exten => recordcheck,n,Set(CDR(recordingpath)=${ASTSPOOLDIR}/monitor/${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) ;SalesPlatform override
- exten => recordcheck,n,Return()
- exten => recordcheck,n(stoprec),Noop(Stopping recording: ${ARG2}, ${ARG3})
- exten => recordcheck,n,Set(__REC_STATUS=STOPPED)
- exten => recordcheck,n,System(${AMPBIN}/stoprecording.php "${CHANNEL(name)}")
- exten => recordcheck,n,Return()
- exten => out,1,Noop(Outbound Recording Check from ${FROMEXTEN} to ${ARG2})
- exten => out,n,Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/external)})
- exten => out,n,ExecIf($[!${LEN(${RECMODE})} | "${RECMODE}" = "dontcare"]?Goto(routewins))
- exten => out,n,ExecIf($["${ARG3}" = "never" | "${ARG3}" = "force"]?Goto(routewins))
- exten => out,n(extenwins),Gosub(recordcheck,1(${RECMODE},out,${ARG2}))
- exten => out,n,Return()
- exten => out,n(routewins),Gosub(recordcheck,1(${ARG3},out,${ARG2}))
- exten => out,n,Return()
- exten => in,1,Noop(Inbound Recording Check to ${ARG2})
- exten => in,n,Set(FROMEXTEN=unknown)
- exten => in,n,ExecIf($[${LEN(${CALLERID(num)})}]?Set(FROMEXTEN=${CALLERID(num)}))
- exten => in,n,Gosub(recordcheck,1(${ARG3},in,${ARG2}))
- exten => in,n,Return()
- exten => exten,1,Noop(Exten Recording Check between ${FROMEXTEN} and ${ARG2})
- exten => exten,n,Set(CALLTYPE=${IF($[${LEN(${FROM_DID})}]?external:internal)})
- exten => exten,n,ExecIf(${LEN(${CALLTYPE_OVERRIDE})}?Set(CALLTYPE=${CALLTYPE_OVERRIDE}))
- exten => exten,n,Set(CALLEE=${DB(AMPUSER/${ARG2}/recording/in/${CALLTYPE})})
- exten => exten,n,ExecIf($[!${LEN(${CALLEE})}]?Set(CALLEE=dontcare))
- exten => exten,n,GotoIf($["${CALLTYPE}"="external"]?callee)
- exten => exten,n,GotoIf($["${CALLEE}"="dontcare"]?caller)
- exten => exten,n,ExecIf($[${LEN(${DB(AMPUSER/${FROMEXTEN}/recording/priority)})}]?Set(CALLER_PRI=${DB(AMPUSER/${FROMEXTEN}/recording/priority)}):Set(CALLER_PRI=0))
- exten => exten,n,ExecIf($[${LEN(${DB(AMPUSER/${ARG2}/recording/priority)})}]?Set(CALLEE_PRI=${DB(AMPUSER/${ARG2}/recording/priority)}):Set(CALLEE_PRI=0))
- exten => exten,n,GotoIf($["${CALLER_PRI}"="${CALLEE_PRI}"]?${REC_POLICY}:${IF($[${CALLER_PRI}>${CALLEE_PRI}]?caller:callee)})
- exten => exten,n(callee),Gosub(recordcheck,1(${CALLEE},${CALLTYPE},${ARG2}))
- exten => exten,n,Return()
- exten => exten,n(caller),Set(RECMODE=${DB(AMPUSER/${FROMEXTEN}/recording/out/internal)})
- exten => exten,n,ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare))
- exten => exten,n,ExecIf($["${RECMODE}"="dontcare"]?Set(RECMODE=${CALLEE}))
- exten => exten,n,Gosub(recordcheck,1(${RECMODE},${CALLTYPE},${ARG2}))
- exten => exten,n,Return()
- exten => conf,1,Noop(Conference Recording Check ${FROMEXTEN} to ${ARG2})
- exten => conf,n,Gosub(recconf,1(${ARG2},${ARG2},${ARG3}))
- exten => conf,n,Return()
- exten => page,1,Noop(Paging Recording Check ${FROMEXTEN} to ${ARG2})
- exten => page,n,GosubIf($["${REC_POLICY_MODE}"="always"]?recconf,1(${ARG2},${FROMEXTEN},${ARG3}))
- exten => page,n,Return()
- exten => recconf,1,Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3})
- exten => recconf,n,Set(__CALLFILENAME=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${DB(RECCONF/${ARG2})}:${ARG1}-${ARG2}-${ARG3}-${TIMESTR}-${UNIQUEID})})
- exten => recconf,n,ExecIf($[!${CONFBRIDGE_INFO(parties,${ARG2})}]?Set(DB(RECCONF/${ARG2})=${CALLFILENAME}))
- exten => recconf,n,Set(CONFBRIDGE(bridge,record_file)=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT})
- exten => recconf,n,ExecIf($["${ARG3}"!="always"]?Return())
- exten => recconf,n,Set(CONFBRIDGE(bridge,record_conference)=yes)
- exten => recconf,n,Set(__REC_STATUS=RECORDING)
- exten => recconf,n,Set(CDR(recordingfile)=${IF($[${CONFBRIDGE_INFO(parties,${ARG2})}]?${CALLFILENAME}.${MON_FMT}:${CALLFILENAME}.${MON_FMT})})
- exten => recconf,n,Set(CDR(recordingpath)=${ASTSPOOLDIR}/monitor/${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) ;SalesPlatform override
- exten => recconf,n,Noop(${MIXMONITOR_FILENAME})
- exten => recconf,n,Set(CHANNEL(hangup_handler_push)=sub-record-hh-check,s,1)
- exten => recconf,n,Return()
- exten => recq,1,Noop(Setting up recording: ${ARG1}, ${ARG2}, ${ARG3})
- exten => recq,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
- exten => recq,n,Set(MONITOR_FILENAME=${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME})
- exten => recq,n,MixMonitor(${MONITOR_FILENAME}.${MON_FMT},${MONITOR_OPTIONS}${MIXMON_BEEP},${MIXMON_POST})
- exten => recq,n,Set(__REC_STATUS=RECORDING)
- exten => recq,n,Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT})
- exten => recq,n,Set(CDR(recordingpath)=${ASTSPOOLDIR}/monitor/${MIXMON_DIR}${YEAR}/${MONTH}/${DAY}/${CALLFILENAME}.${MON_FMT}) ;SalesPlatform override
- exten => recq,n,Return()
- exten => parking,1,Noop(User ${ARG2} picked up a parked call)
- exten => parking,n,Set(USER=${ARG2})
- exten => parking,n,ExecIf($[!${LEN(${ARG2})}]?Set(USER=unknown))
- exten => parking,n,Set(RECMODE=${DB(AMPUSER/${ARG2}/recording/out/internal)})
- exten => parking,n,ExecIf($[!${LEN(${RECMODE})}]?Set(RECMODE=dontcare))
- exten => parking,n,Gosub(recordcheck,1(${RECMODE},parked,${USER}))
- exten => parking,n,Return()
- ;--== end of [sub-record-check] ==--;
- ======================================================================================================
- log-ΡΠ°ΠΉΠ» SPAsteriskConnector :
- ======================================================================================================
- [Thread-0] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Connecting to 127.0.0.1:5038
- [main] INFO org.eclipse.jetty.server.Server - jetty-8.1.14.v20131031
- [Asterisk-Java ManagerConnection-0-Reader-0] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Connected via Asterisk Call Manager/2.10.3
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.ManagerConnectionImpl - Unsupported protocol version 'Asterisk Call Manager/2.10.3'. Use at your own risk.
- [main] INFO org.eclipse.jetty.webapp.StandardDescriptorProcessor - NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
- [Thread-0] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Successfully logged in
- [main] INFO org.eclipse.jetty.server.AbstractConnector - Started SelectChannelConnector@0.0.0.0:5555
- [Thread-0] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Determined Asterisk version: Asterisk 13
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.EventBuilderImpl - Unable to set property 'bridgevideosourcemode' to 'none' on org.asteriskjava.manager.event.BridgeCreateEvent: no setter. Please report at http://jira.reucon.org/browse/AJ
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.EventBuilderImpl - Unable to set property 'bridgevideosourcemode' to 'none' on org.asteriskjava.manager.event.BridgeEnterEvent: no setter. Please report at http://jira.reucon.org/browse/AJ
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.EventBuilderImpl - Unable to set property 'bridgevideosourcemode' to 'none' on org.asteriskjava.manager.event.BridgeEnterEvent: no setter. Please report at http://jira.reucon.org/browse/AJ
- [Asterisk-Java ManagerConnection-0-Reader-0] INFO org.asteriskjava.manager.internal.backwardsCompatibility.bridge.BridgeState - Members size 2 org.asteriskjava.manager.event.BridgeEnterEvent[dateReceived='Thu Mar 14 11:56:58 MSK 2019',privilege='call,all',linkedid='1552553816.130',server=null,calleridname='+37529XXXXXXX',bridgeuniqueid='f82c1852-a8ee-4ae4-b8f5-b53594dc6fee',channel='PJSIP/GSM_Gate-00000025',language='ru',exten='200',calleridnum='+37529XXXXXXX',context='from-trunk',bridgetechnology='simple_bridge',connectedlinenum='200',uniqueid='1552553816.130',timestamp=null,channelstatedesc='Up',systemname=null,bridgetype='basic',bridgenumchannels='2',connectedlinename='200',bridgecreator=null,sequencenumber=null,priority='4',channelstate='6',bridgename=null,accountcode='',systemHashcode=1757259910]
- [Asterisk-Java ManagerConnection-0-Reader-0] INFO org.asteriskjava.manager.internal.backwardsCompatibility.bridge.BridgeState - Bridge SIP/200-0000002e PJSIP/GSM_Gate-00000025
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.EventBuilderImpl - Unable to set property 'bridgevideosourcemode' to 'none' on org.asteriskjava.manager.event.BridgeLeaveEvent: no setter. Please report at http://jira.reucon.org/browse/AJ
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.EventBuilderImpl - Unable to set property 'bridgevideosourcemode' to 'none' on org.asteriskjava.manager.event.BridgeLeaveEvent: no setter. Please report at http://jira.reucon.org/browse/AJ
- [Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.EventBuilderImpl - Unable to set property 'bridgevideosourcemode' to 'none' on org.asteriskjava.manager.event.BridgeDestroyEvent: no setter. Please report at http://jira.reucon.org/browse/AJ
- ======================================================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement