|
@@ -12,8 +12,8 @@ exten => s,n,execIf($[${LEN(${OUTCID})} > 0]?Set(CALLERID(all)=${OUTCID}))
|
|
|
exten => s,n,GotoIf($[${LEN(${RECORDOUT_${CID}})} = 0]?parse)
|
|
|
exten => s,n(record),Macro(stdexten-record,${CID},${OUTNUM})
|
|
|
exten => s,n,Set(TRUNK=${CUT(ARG2,/,2)})
|
|
|
-exten => s,n,AGI(gettroutcid.php,${TRUNK})
|
|
|
-exten => s,n,execIf($[${LEN(${TROUTCID})} > 0 && ${LEN(${OUTCID})} = 0]?Set(CALLERID(all)=${TROUTCID}))
|
|
|
+exten => s,n,MSet(__VOIPDID=${TRUNK},TRUNK_CID=${CID_${TRUNK}})
|
|
|
+exten => s,n,execIf($[${LEN(${TRUNK_CID})} > 0 && ${LEN(${OUTCID})} = 0]?Set(CALLERID(all)=${TRUNK_CID}))
|
|
|
exten => s,n,SIPRemoveHeader()
|
|
|
exten => s,n,GotoIf($["${CUT(ARG2,/,1)}" != "DAHDI"]?ppi)
|
|
|
exten => s,n,ExecIf($["foo${isDENOISE}" = "fooyes"]?MSet(DENOISE(rx)=on,DENOISE(tx)=on))
|
|
@@ -47,17 +47,21 @@ same => n,Macro(stdexten-record,${CAID},${CAEE})
|
|
|
same => n,ExecIf($[${ISNULL(USERID)}]?Set(__USERID=0))
|
|
|
same => n,ExecIf($[${ISNULL(USERL)}]?Set(__USERL=12))
|
|
|
same => n,ExecIf($[${ISNULL(SERVICEL)}]?Set(__SERVICEL=12))
|
|
|
-same => n,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:call)
|
|
|
-same => n(dial),Dial(${ARG2},${RINGTIME},${DIALOPTIONS}M(answered)b(ringevent^s^1))
|
|
|
+same => n,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Calling)
|
|
|
+same => n(dial),Dial(${ARG2},${RINGTIME},${DIALOPTIONS}M(answered)b(extringevent^s^1))
|
|
|
same => n,Set(SV_DIALSTATUS=${DIALSTATUS})
|
|
|
same => n,Goto(s-${SV_DIALSTATUS},1)
|
|
|
-exten => s-NOANSWER,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:noanswer)
|
|
|
+exten => s-NOANSWER,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Noanswer)
|
|
|
same => n,Hangup
|
|
|
-exten => s-BUSY,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:busy)
|
|
|
+exten => s-BUSY,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Busy)
|
|
|
same => n,Hangup
|
|
|
-exten => _s-.,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:failed)
|
|
|
+exten => _s-.,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Failed)
|
|
|
same => n,Hangup
|
|
|
|
|
|
+[extringevent]
|
|
|
+exten = s,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Ringing)
|
|
|
+same => n,Return()
|
|
|
+
|
|
|
[macro-stdexten-withoutvm]
|
|
|
exten => s,1,NoOp(Call Exten)
|
|
|
same => n,GotoIf($["foo${CALLERID(num)}"="foo"]?nocid)
|
|
@@ -68,24 +72,19 @@ same => n,Macro(stdexten-record,${CAID},${CAEE})
|
|
|
same => n,ExecIf($[${ISNULL(USERID)}]?Set(__USERID=0))
|
|
|
same => n,ExecIf($[${ISNULL(USERL)}]?Set(__USERL=12))
|
|
|
same => n,ExecIf($[${ISNULL(SERVICEL)}]?Set(__SERVICEL=12))
|
|
|
-same => n,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:call)
|
|
|
-same => n(dial),Dial(${ARG2},${RINGTIME},${DIALOPTIONS}M(answered)b(ringevent^s^1))
|
|
|
+same => n,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Calling)
|
|
|
+same => n(dial),Dial(${ARG2},${RINGTIME},${DIALOPTIONS}M(answered))
|
|
|
same => n,Set(SV_DIALSTATUS=${DIALSTATUS})
|
|
|
same => n,Goto(s-${SV_DIALSTATUS},1)
|
|
|
-exten => s-NOANSWER,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:noanswer)
|
|
|
+exten => s-NOANSWER,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Noanswer)
|
|
|
same => n,Hangup
|
|
|
-exten => s-BUSY,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:busy)
|
|
|
+exten => s-BUSY,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Busy)
|
|
|
same => n,Hangup
|
|
|
-exten => _s-.,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:failed)
|
|
|
+exten => _s-.,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Failed)
|
|
|
same => n,Hangup
|
|
|
-exten => h,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:hangup)
|
|
|
|
|
|
[macro-answered]
|
|
|
-exten = s,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:answered)
|
|
|
-
|
|
|
-[ringevent]
|
|
|
-exten => s,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:ringing)
|
|
|
-same => n,Return()
|
|
|
+exten = s,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},status:Answered)
|
|
|
|
|
|
[macro-stdexten-old]
|
|
|
exten => s,1,Set(__DYNAMIC_FEATURES=nway-start)
|
|
@@ -226,39 +225,44 @@ same => n(fail),Hangup
|
|
|
[macro-intercom]
|
|
|
exten => s,1,ChanIsAvail(${ARG2},js)
|
|
|
same => n,GoToIf($["${AVAILSTATUS}" = "1"]?autoanswer:fail)
|
|
|
-same => n(autoanswer),MSet(SRCEXTEN=${CALLERID(num)},__CALLEE=${ARG1},DATE=${STRFTIME(${EPOCH},,%Y%m%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\;answer-after=0)
|
|
|
+same => n(autoanswer),MSet(__SRCEXTEN=${CALLERID(num)},__CALLEE=${ARG1},DATE=${STRFTIME(${EPOCH},,%Y%m%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\;answer-after=0)
|
|
|
same => n,SIPAddHeader(${ALERTINFO})
|
|
|
same => n,SIPAddHeader(${CALLINFO})
|
|
|
same => n,System(/bin/sh /etc/scripts/shell_scripts.sh mkrcdir intercom ${DATE})
|
|
|
same => n,Set(FILENAME=intercom/${DATE}/intercom-${SRCEXTEN}-${CALLEE}-${UUID}.wav)
|
|
|
same => n,MixMonitor(${FILENAME},b)
|
|
|
-same => n,UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:intercom)
|
|
|
-same => n,Dial(${ARG2})
|
|
|
+same => n,UserEvent(controlEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},status:stop)
|
|
|
+same => n,Wait(2)
|
|
|
+same => n,Playback(beep)
|
|
|
+same => n,Dial(${ARG2},${RINGTIME},M(intercomstatus))
|
|
|
same => n,Hangup
|
|
|
-same => n(fail),UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:failed)
|
|
|
+same => n(fail),UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},status:Failed)
|
|
|
same => n,Hangup
|
|
|
|
|
|
+[macro-intercomstatus]
|
|
|
+exten = s,1,UserEvent(callExtenEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},status:Intercom)
|
|
|
+
|
|
|
[clicktocall]
|
|
|
-exten => _[a-zA-Z0-9+*#].,1,MSet(DESTNUM=${EXTEN},CALLERID(num)=${SRCNUM})
|
|
|
+exten => s,1,MSet(DESTNUM=${DEST},CALLERID(num)=${SRCNUM})
|
|
|
same => n,Macro(user-context,${SRCEXTEN})
|
|
|
same => n,Goto(${EXTCONTEXT},${DESTNUM},1)
|
|
|
|
|
|
[clicktointercom]
|
|
|
-exten => _[a-zA-Z0-9+*#].,1,ChanIsAvail(SIP/${EXTEN},js)
|
|
|
+exten => s,1,ChanIsAvail(SIP/${DEST},js)
|
|
|
same => n,GoToIf($["${AVAILSTATUS}" = "1"]?autoanswer:fail)
|
|
|
-same => n(autoanswer),MSet(CALLERID(num)=${SRCEXTEN},__CALLEE=${EXTEN},DATE=${STRFTIME(${EPOCH},,%Y%m%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\;answer-after=0)
|
|
|
+same => n(autoanswer),MSet(CALLERID(num)=${SRCEXTEN},__CALLEE=${DEST},DATE=${STRFTIME(${EPOCH},,%Y%m%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\;answer-after=0)
|
|
|
same => n,SIPAddHeader(${ALERTINFO})
|
|
|
same => n,SIPAddHeader(${CALLINFO})
|
|
|
same => n,System(/bin/sh /etc/scripts/shell_scripts.sh mkrcdir intercom ${DATE})
|
|
|
same => n,Set(FILENAME=intercom/${DATE}/intercom-${SRCEXTEN}-${CALLEE}-${UUID}.wav)
|
|
|
same => n,MixMonitor(${FILENAME},b)
|
|
|
-same => n,UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${EXTEN},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:intercom)
|
|
|
-same => n,Dial(SIP/${EXTEN})
|
|
|
+same => n,UserEvent(controlEvent,userid:${USERID},src:${SRCEXTEN},dest:${DEST},uuid:${UUID},status:stop)
|
|
|
+same => n,Wait(2)
|
|
|
+same => n,Playback(beep)
|
|
|
+same => n,Dial(SIP/${DEST},${RINGTIME},M(intercomstatus))
|
|
|
same => n,Hangup
|
|
|
-same => n(fail),UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:failed)
|
|
|
+same => n(fail),UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},status:Failed)
|
|
|
same => n,Hangup
|
|
|
-exten => h,1,UserEvent(intercomEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:hangup)
|
|
|
-same => n,NoOp(Intercom End)
|
|
|
|
|
|
[clicktopaging]
|
|
|
exten => s,1,MSet(CALLERID(num)=${SRCEXTEN},DATE=${STRFTIME(${EPOCH},,%Y%m%d)},__UUID=${UNIQUEID},ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\;answer-after=0)
|
|
@@ -267,14 +271,15 @@ same => n,SIPAddHeader(${CALLINFO})
|
|
|
same => n,System(/bin/sh /etc/scripts/shell_scripts.sh mkrcdir paging ${DATE})
|
|
|
same => n,Set(FILENAME=paging/${DATE}/paging-${SRCEXTEN}-${UUID}.wav)
|
|
|
same => n,MixMonitor(${FILENAME},b)
|
|
|
+same => n,UserEvent(controlEvent,userid:${USERID},src:${SRCEXTEN},dest:${DESTS},uuid:${UUID},status:stop)
|
|
|
+same => n,Wait(2)
|
|
|
+same => n,Playback(beep)
|
|
|
same => n,Page(${CHANS},b(paging-update-status^s^1)q)
|
|
|
same => n,Hangup
|
|
|
-exten => h,1,UserEvent(pagingEvent,userid:${USERID},src:${SRCEXTEN},dest:${DESTS},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:hangup)
|
|
|
-same => n,NoOp(Paging End)
|
|
|
|
|
|
[paging-update-status]
|
|
|
exten => s,1,Set(CALLEE=${CALLERID(num)})
|
|
|
-same => n,UserEvent(pagingEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:paging)
|
|
|
+same => n,UserEvent(pagingEvent,userid:${USERID},src:${SRCEXTEN},dest:${CALLEE},uuid:${UUID},status:Paging)
|
|
|
same => n,Return()
|
|
|
|
|
|
[playback-ttspaging]
|
|
@@ -286,11 +291,26 @@ same => n,GotoIf($[${loop} > 0 ]?loop)
|
|
|
same => n,hangup
|
|
|
exten => h,1,System(/bin/rm -f ${AUDIOFILE})
|
|
|
|
|
|
+[join-confbridge]
|
|
|
+exten => s,1,NoOp(exten ${DEST} join conference ${CONFNUM})
|
|
|
+same => n,UserEvent(meetingEvent,userid:${USERID},src:${CONFNUM},dest:${DEST},uuid:${UUID},status:Meeting)
|
|
|
+same => n,ConfBridge(${CONFNUM},conf_bridge)
|
|
|
+same => n,Hangup
|
|
|
+
|
|
|
[command-astinit]
|
|
|
exten = s,1,NoOp(astinit)
|
|
|
-exten = s,n,System(/etc/scripts/astinit.sh)
|
|
|
+exten = s,n,System(/etc/scripts/conf_gen.sh)
|
|
|
exten = s,n,Hangup
|
|
|
|
|
|
+[clickdial]
|
|
|
+exten => _X.,1,Set(__CAEE=${EXTEN})
|
|
|
+same => n,GotoIf($["${WDAutoAnswer}" = "1"]?auto:manual)
|
|
|
+same => n(auto),MSet(ALERTINFO=Alert-Info: Ring Answer,CALLINFO=Call-Info: <uri>\;answer-after=0)
|
|
|
+same => n,SIPAddHeader(${ALERTINFO})
|
|
|
+same => n,SIPAddHeader(${CALLINFO})
|
|
|
+same => n(manual),Dial(SIP/${EXTEN},${RINGTIME},ab(extringevent^s^1))
|
|
|
+same => n,Hangup
|
|
|
+
|
|
|
[ipinfo]
|
|
|
exten => **11,1,Answer
|
|
|
exten => **11,n,agi(wanip.sh)
|
|
@@ -537,6 +557,3 @@ exten = s,n(answer),Answer()
|
|
|
exten = s,n,Wait(${AutoAnswer})
|
|
|
exten = s,n(notanswer),Macro(analog-custom-${DAHDICHAN})
|
|
|
exten = s,n,Goto(direct-analog,direct,1)
|
|
|
-
|
|
|
-[hangup-event]
|
|
|
-exten => h,1,UserEvent(callExtenEvent,userid:${USERID},src:${CAID},dest:${CAEE},uuid:${UUID},user_level:${USERL},service_level:${SERVICEL},status:hangup)
|