DND status indication

  1. 13 years ago

    System:
    Centos 5 (AsteriskNow)
    Asterisk 1.6.2.17.2
    FreePBX 2.8.1.4
    FOP2 2.20

    Hello,

    so far my FOP2 installation is running fine. Login and call status is indicated without any big trouble. Unfortunately the Do not Disturb status of the users does not reach the FOP. What I checked so far:

    Manager permissions:

    read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate
    write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate

    extensions_override_freepbx.conf in /etc/asterisk (from FOP 2.20, no changes made):

    [app-dnd-on]
    include => app-dnd-on-custom
    exten => *78,1,Answer
    exten => *78,n,Wait(1)
    exten => *78,n,Macro(user-callerid,)
    ; added for fop2
    exten => *78,n,Set(DB(DND/${AMPUSER})=YES)
    exten => *78,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *78,n,Set(DB(fop2state/${CHAN})=Do not Disturb)
    exten => *78,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: Do not Disturb)
    ; end fop2 addition
    exten => *78,n,Set(DB(DND/${AMPUSER})=YES)
    exten => *78,n,Set(STATE=BUSY)
    exten => *78,n,Gosub(app-dnd-on,sstate,1)
    exten => *78,n,Playback(do-not-disturb&activated)
    exten => *78,n,Macro(hangupcall,)
    exten => sstate,1,Set(DEVSTATE(Custom:DND${AMPUSER})=${STATE})
    exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)})
    exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
    exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
    exten => sstate,n,Set(ITER=1)
    exten => sstate,n(begin),Set(DEVSTATE(Custom:DEVDND${CUT(DEVICES,&,${ITER})})=${STATE})
    exten => sstate,n,Set(ITER=$[${ITER} + 1])
    exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
    exten => sstate,n(return),Return()
    
    [app-dnd-off]
    include => app-dnd-off-custom
    exten => *79,1,Answer
    exten => *79,n,Wait(1)
    exten => *79,n,Macro(user-callerid,)
    ; added for fop2
    exten => *79,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *79,n,dbDel(fop2state/${CHAN})
    exten => *79,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: )
    ; end fop2 addition
    exten => *79,n,dbDel(DND/${AMPUSER})
    exten => *79,n,Set(STATE=NOT_INUSE)
    exten => *79,n,Gosub(app-dnd-off,sstate,1)
    exten => *79,n,Playback(do-not-disturb&de-activated)
    exten => *79,n,Macro(hangupcall,)
    exten => sstate,1,Set(DEVSTATE(Custom:DND${AMPUSER})=${STATE})
    exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)})
    exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
    exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
    exten => sstate,n,Set(ITER=1)
    exten => sstate,n(begin),Set(DEVSTATE(Custom:DEVDND${CUT(DEVICES,&,${ITER})})=${STATE})
    exten => sstate,n,Set(ITER=$[${ITER} + 1])
    exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
    exten => sstate,n(return),Return()
    
    [app-dnd-toggle]
    include => app-dnd-toggle-custom
    exten => *76,1,Answer
    exten => *76,n,Wait(1)
    exten => *76,n,Macro(user-callerid,)
    exten => *76,n,GotoIf($["${DB(DND/${AMPUSER})}" = ""]?activate:deactivate)
    exten => *76,n(activate),Set(DB(DND/${AMPUSER})=YES)
    exten => *76,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *76,n,Set(DB(fop2state/${CHAN})=Do not Disturb)
    exten => *76,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: Do not Disturb)
    exten => *76,n,Set(STATE=BUSY)
    exten => *76,n,Gosub(app-dnd-toggle,sstate,1)
    exten => *76,n,Playback(do-not-disturb&activated)
    exten => *76,n,Macro(hangupcall,)
    exten => *76,n(deactivate),dbDel(DND/${AMPUSER})
    exten => *76,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *76,n,dbDel(fop2state/${CHAN})
    exten => *76,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: )
    exten => *76,n,Set(STATE=NOT_INUSE)
    exten => *76,n,Gosub(app-dnd-toggle,sstate,1)
    exten => *76,n,Playback(do-not-disturb&de-activated)
    exten => *76,n,Macro(hangupcall,)
    exten => sstate,1,Set(DEVSTATE(Custom:DND${AMPUSER})=${STATE})
    exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)})
    exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
    exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
    exten => sstate,n,Set(ITER=1)
    exten => sstate,n(begin),Set(DEVSTATE(Custom:DEVDND${CUT(DEVICES,&,${ITER})})=${STATE})
    exten => sstate,n,Set(ITER=$[${ITER} + 1])
    exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
    exten => sstate,n(return),Return()
    
    [app-cf-off]
    include => app-cf-off-custom
    exten => *73,1,Answer
    exten => *73,n,Wait(1)
    exten => *73,n,Macro(user-callerid,)
    exten => *73,n,dbDel(CF/${AMPUSER})
    exten => *73,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *73,n,UserEvent(FOP2CUST,Family: astdbcust,Channel: ${CHAN},Value: )
    exten => *73,n,Playback(call-fwd-unconditional&de-activated)
    exten => *73,n,Macro(hangupcall,)
    exten => _*73.,1,Answer
    exten => _*73.,n,Wait(1)
    exten => _*73.,n,Set(fromext=${EXTEN:3})
    exten => _*73.,n,dbDel(CF/${fromext})
    exten => _*73.,n,Set(CHAN=${DB(DEVICE/${fromext}/dial)})
    exten => _*73.,n,UserEvent(FOP2CUST,Family: astdbcust,Channel: ${CHAN},Value: )
    exten => _*73.,n,Playback(call-fwd-unconditional&for&extension)
    exten => _*73.,n,SayDigits(${fromext})
    exten => _*73.,n,Playback(cancelled)
    exten => _*73.,n,Macro(hangupcall,)
    
    [app-cf-on]
    include => app-cf-on-custom
    exten => *72,1,Answer
    exten => *72,n,Wait(1)
    exten => *72,n,Macro(user-callerid,)
    exten => *72,n,Playback(call-fwd-unconditional)
    exten => *72,n,Playback(please-enter-your&extension)
    exten => *72,n,Read(fromext,then-press-pound,,,,)
    exten => *72,n,Set(fromext=${IF($["foo${fromext}"="foo"]?${AMPUSER}:${fromext})})
    exten => *72,n,Wait(1)
    exten => *72,n(startread),Playback(ent-target-attendant)
    exten => *72,n,Read(toext,then-press-pound,,,,)
    exten => *72,n,GotoIf($["foo${toext}"="foo"]?startread)
    exten => *72,n,Wait(1)
    exten => *72,n,Set(DB(CF/${fromext})=${toext})
    exten => *72,n,Set(CHAN=${DB(DEVICE/${fromext}/dial)})
    exten => *72,n,UserEvent(FOP2CUST,Family: astdbcust,Channel: ${CHAN},Value: ${toext} )
    exten => *72,n,Playback(call-fwd-unconditional&for&extension)
    exten => *72,n,SayDigits(${fromext})
    exten => *72,n,Playback(is-set-to)
    exten => *72,n,SayDigits(${toext})
    exten => *72,n,Macro(hangupcall,)
    exten => _*72.,1,Answer
    exten => _*72.,n,Wait(1)
    exten => _*72.,n,Macro(user-callerid,)
    exten => _*72.,n,Set(DB(CF/${AMPUSER})=${EXTEN:3})
    exten => _*72.,n,Set(CHAN=${DB(DEVICE/${AMPUSER}/dial)})
    exten => _*72.,n,UserEvent(FOP2CUST,Family: astdbcust,Channel: ${CHAN},Value: ${EXTEN:3} )
    exten => _*72.,n,Playback(call-fwd-unconditional&for&extension)
    exten => _*72.,n,SayDigits(${AMPUSER})
    exten => _*72.,n,Playback(is-set-to)
    exten => _*72.,n,SayDigits(${EXTEN:3})
    exten => _*72.,n,Macro(hangupcall,)
    
    [fop2-park]
    exten => _X.,1,Set(ARRAY(RETURN_EXTENSION,RETURN_CONTEXT)=${CUT(EXTEN,:,1)}\,${CUT(EXTEN,:,2)})
    exten => _X.,n,ParkAndAnnounce(PARKED,,Console/dsp,${RETURN_CONTEXT},${RETURN_EXTENSION},1)
    exten => _X.,n,Goto(${RETURN_CONTEXT},${RETURN_EXTENSION},1)
    exten => _X.,n,Hangup
    
    [fop2-dummy]
    exten => dummy,1,Answer
    exten => dummy,2,Wait(1)
    exten => dummy,3,Hangup
    
    ;[fop2-park]
    ; Alternative fop2-park for asterisk 1.6 and up, using parkinglots and Park application
    ;exten => _X.,1,Set(ARRAY(RETURN_EXTENSION,RETURN_CONTEXT)=${CUT(EXTEN,:,1)},${CUT(EXTEN,:,2)})
    ;exten => _X.,n,Set(PARKINGLOT=parkinglot_${RETURN_CONTEXT})
    ;exten => _X.,n,Park(,${RETURN_CONTEXT},${RETURN_EXTENSION},1,s)
    

    log during DND dial via *78 my phone is 1007 my user exten is 9666

    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: MACRO_DEPTH
    127.0.0.1       <- Value: 1
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 4
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?skipblkvm
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: MACRO_DEPTH
    127.0.0.1       <- Value: 1
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 7
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?theend
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: MACRO_DEPTH
    127.0.0.1       <- Value: 1
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 9
    127.0.0.1       <- Application: Hangup
    127.0.0.1       <- AppData:
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: MACRO_DEPTH
    127.0.0.1       <- Value: 0
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: RTPAUDIOQOS
    127.0.0.1       <- Value: ssrc=164155281;themssrc=1923237859;lp=0;rxjitter=0.000215;rxcount=152;txjitter=0.000000;txcount=179;rlp=0;rtt=0.000000
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: RTPAUDIOQOSJITTER
    127.0.0.1       <- Value: minrxjitter=0.000001;maxrxjitter=0.009601;avgrxjitter=0.001482;stdevrxjitter=16831570662546681178158623672130372778864813544777170415896070931141270497851246435101681526382304928610904811525591468605440.000000;reported_minjitter=0.000000;reported_maxjitte
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: RTPAUDIOQOSLOSS
    127.0.0.1       <- Value: lost=0;expected=152;
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: RTPAUDIOQOSRTT
    127.0.0.1       <- Value: minrtt=0.000000;maxrtt=0.000000;avgrtt=0.000000;stdevrtt=0.000000;
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: VarSet
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Variable: RTPAUDIOQOS
    127.0.0.1       <- Value:
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Hangup
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Channel: SIP/1007-00003937
    127.0.0.1       <- Uniqueid: 1305630186.72219
    127.0.0.1       <- CallerIDNum: 9666
    127.0.0.1       <- CallerIDName: Simon
    127.0.0.1       <- Cause: 16
    127.0.0.1       <- Cause-txt: Normal Clearing
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: ExtensionStatus
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Exten: 9666
    127.0.0.1       <- Context: ext-local
    127.0.0.1       <- Hint: SIP/1007&Custom:DND9666
    127.0.0.1       <- Status: 0
    127.0.0.1       <- Server: 0

    what else can I check to make this working?
    btw. while reading I also found that some have trouble with the Pause/Unpause status not getting updated. I seem to have that too, but it's a feature we didn't use so far.

    Thanks in advance
    Simon

  2. admin

    18 May 2011 Administrator

    Hi Simon,

    Unfortunately your manager capture does not have relevant information to tracking the problem down (all the varsets are just noise, the meat is on the newchannel and newexten events that come before , the ones traversing your app-dnd macros).

    You can do a quick test by adding ",all" at the end of both read and write in /etc/asterisk/manager.conf (in some asterisk implementations user events are not being sent even if you have the user permission set).

    read = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,all
    write = system,call,log,verbose,command,agent,user,config,command,dtmf,reporting,cdr,dialplan,originate,all

    Perhaps it is not a dialplan/context issue but just a manager permission thing.

    Best regards,

  3. Hello Nicolas,

    thanks for your reply. Unfortunately this does not do the trick. There are quite many calls already running, so I obviously didn't extract the right informartion. here's for you all newchannel and and newexten and everything else I though which might be useful

    127.0.0.1       <- Event: Newchannel
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- ChannelState: 0
    127.0.0.1       <- ChannelStateDesc: Down
    127.0.0.1       <- CallerIDNum: 1007
    127.0.0.1       <- CallerIDName: IETSIPTELCGN007 (Aastra 6757i)
    127.0.0.1       <- AccountCode: 
    127.0.0.1       <- Exten: *78
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: ChannelUpdate
    127.0.0.1       <- Privilege: system,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Channeltype: SIP
    127.0.0.1       <- SIPcallid: 24f1ee7c692d1af5
    127.0.0.1       <- SIPfullcontact: sip:[email protected]:5060;transport=udp
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newstate
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- ChannelState: 4
    127.0.0.1       <- ChannelStateDesc: Ring
    127.0.0.1       <- CallerIDNum: 1007
    127.0.0.1       <- CallerIDName: IETSIPTELCGN007 (Aastra 6757i)
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: ExtensionStatus
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Exten: 9666
    127.0.0.1       <- Context: ext-local
    127.0.0.1       <- Hint: SIP/1007&Custom:DND9666
    127.0.0.1       <- Status: 1
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 1
    127.0.0.1       <- Application: Answer
    127.0.0.1       <- AppData: 
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newstate
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- ChannelState: 6
    127.0.0.1       <- ChannelStateDesc: Up
    127.0.0.1       <- CallerIDNum: 1007
    127.0.0.1       <- CallerIDName: IETSIPTELCGN007 (Aastra 6757i)
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 2
    127.0.0.1       <- Application: Wait
    127.0.0.1       <- AppData: 1
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 3
    127.0.0.1       <- Application: Macro
    127.0.0.1       <- AppData: user-callerid,
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 1
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: AMPUSER=1007
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 2
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 0?report
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 3
    127.0.0.1       <- Application: ExecIf
    127.0.0.1       <- AppData: 1?Set(REALCALLERIDNUM=1007)
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 4
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: AMPUSER=9666
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 5
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: AMPUSERCIDNAME=Simon
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 6
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 0?report
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 7
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: AMPUSERCID=9666
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 8
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: CALLERID(all)="Simon" <9666>
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 10
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 0?continue
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 11
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: __TTL=64
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 12
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?continue
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 19
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: CALLERID(number)=9666
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: NewCallerid
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- CallerIDNum: 9666
    127.0.0.1       <- CallerIDName: Simon
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- CID-CallingPres: 0 (Presentation Allowed, Not Screened)
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 20
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: CALLERID(name)=Simon
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: NewCallerid
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- CallerIDNum: 9666
    127.0.0.1       <- CallerIDName: Simon
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- CID-CallingPres: 0 (Presentation Allowed, Not Screened)
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-user-callerid
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 21
    127.0.0.1       <- Application: NoOp
    127.0.0.1       <- AppData: Using CallerID "Simon" <9666>
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 4
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: DB(DND/9666)=YES
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 5
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: CHAN=SIP/1007
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 6
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: DB(fop2state/SIP/1007)=Do not Disturb
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 7
    127.0.0.1       <- Application: UserEvent
    127.0.0.1       <- AppData: FOP2ASTDB,Family: fop2state,Channel: SIP/1007,Value: Do not Disturb
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: UserEvent
    127.0.0.1       <- Privilege: user,all
    127.0.0.1       <- UserEvent: FOP2ASTDB
    127.0.0.1       <- Family: fop2state
    127.0.0.1       <- Channel: SIP/1007
    127.0.0.1       <- Value: Do not Disturb
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 8
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: DB(DND/9666)=YES
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 9
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: STATE=BUSY
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 10
    127.0.0.1       <- Application: Gosub
    127.0.0.1       <- AppData: app-dnd-on,sstate,1
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 1
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: DEVSTATE(Custom:DND9666)=BUSY
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 2
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: DEVICES=1007
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 3
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 0?return
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 4
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: LOOPCNT=1
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 5
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: ITER=1
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 6
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: DEVSTATE(Custom:DEVDND1007)=BUSY
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 7
    127.0.0.1       <- Application: Set
    127.0.0.1       <- AppData: ITER=2
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 8
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 0?begin
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: app-dnd-on
    127.0.0.1       <- Extension: sstate
    127.0.0.1       <- Priority: 9
    127.0.0.1       <- Application: Return
    127.0.0.1       <- AppData: 
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 11
    127.0.0.1       <- Application: Playback
    127.0.0.1       <- AppData: do-not-disturb&activated
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: *78
    127.0.0.1       <- Priority: 12
    127.0.0.1       <- Application: Macro
    127.0.0.1       <- AppData: hangupcall,
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 4
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?skipblkvm
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 7
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?theend
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 9
    127.0.0.1       <- Application: Hangup
    127.0.0.1       <- AppData: 
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: from-internal
    127.0.0.1       <- Extension: h
    127.0.0.1       <- Priority: 1
    127.0.0.1       <- Application: Macro
    127.0.0.1       <- AppData: hangupcall
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 1
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?skiprg
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 4
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?skipblkvm
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 7
    127.0.0.1       <- Application: GotoIf
    127.0.0.1       <- AppData: 1?theend
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    
    127.0.0.1       <- Event: Newexten
    127.0.0.1       <- Privilege: dialplan,all
    127.0.0.1       <- Channel: SIP/1007-0000619b
    127.0.0.1       <- Context: macro-hangupcall
    127.0.0.1       <- Extension: s
    127.0.0.1       <- Priority: 9
    127.0.0.1       <- Application: Hangup
    127.0.0.1       <- AppData: 
    127.0.0.1       <- Uniqueid: 1305721003.106490
    127.0.0.1       <- Server: 0
    
    127.0.0.1       <- Event: ExtensionStatus
    127.0.0.1       <- Privilege: call,all
    127.0.0.1       <- Exten: 9666
    127.0.0.1       <- Context: ext-local
    127.0.0.1       <- Hint: SIP/1007&Custom:DND9666
    127.0.0.1       <- Status: 0
    127.0.0.1       <- Server: 0
    

    Cheers,
    Simon

  4. btw. I did a manager reload and no amportal restart/ core restart but this should no matter I guess (?)

    are we talking about the manager "admin" account? this is where I set the permissions and it's the one entered in fop2.conf

  5. admin

    18 May 2011 Administrator

    Hi,

    The permissions is for the user that you set in fop2.cfg. The events look fine and permissions too, you had the two actions that are being injected for fop2 (setting an astdb entry and fire a userevent).

    With this events, DND should be reflected in the fop2 display. Are you using the automatic freepbx configuration? Are you using device&user mode in FreePBX?

  6. yes I use the automatic FreePBX configuration and yes I use device and user mode

    thanks for your help!

  7. admin

    18 May 2011 Administrator

    Perhaps the problem is fixed by modifying the macros a little bit, as right now is storing state as

    SIP/1007

    and because user&device mode fop2 will look for

    USER/1007

    instead...

    I have not tried this, just writing it here, try changing the line:

    exten => *78,n,Set(CHAN=${CUT(CHANNEL,-,1)})

    to

    exten => *78,n,Set(CHAN=USER/${AMPUSER})

    If it works, you should do a similar change in all the related macros in extensions_override_freepbx.conf

    Best regards,

  8. This seems to make sense. I will try it out and give feedback tomorrow.

    Thanks again!

  9. you are genius, thanks a lot!

    I did the changes in the dnd macros and it works excellent!
    As I see for call forwarding similar changes need to be done.

    [app-dnd-on]
    include => app-dnd-on-custom
    exten => *78,1,Answer
    exten => *78,n,Wait(1)
    exten => *78,n,Macro(user-callerid,)
    ; added for fop2
    exten => *78,n,Set(DB(DND/${AMPUSER})=YES)
    ; next line deactivated and changed for device and user mode 
    ; exten => *78,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *78,n,Set(CHAN=USER/${AMPUSER})
    exten => *78,n,Set(DB(fop2state/${CHAN})=Do not Disturb)
    exten => *78,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: Do not Disturb)
    ; end fop2 addition
    exten => *78,n,Set(DB(DND/${AMPUSER})=YES)
    exten => *78,n,Set(STATE=BUSY)
    exten => *78,n,Gosub(app-dnd-on,sstate,1)
    exten => *78,n,Playback(do-not-disturb&activated)
    exten => *78,n,Macro(hangupcall,)
    exten => sstate,1,Set(DEVSTATE(Custom:DND${AMPUSER})=${STATE})
    exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)})
    exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
    exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
    exten => sstate,n,Set(ITER=1)
    exten => sstate,n(begin),Set(DEVSTATE(Custom:DEVDND${CUT(DEVICES,&,${ITER})})=${STATE})
    exten => sstate,n,Set(ITER=$[${ITER} + 1])
    exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
    exten => sstate,n(return),Return()
    
    [app-dnd-off]
    include => app-dnd-off-custom
    exten => *79,1,Answer
    exten => *79,n,Wait(1)
    exten => *79,n,Macro(user-callerid,)
    ; added for fop2
    ; next line deactivated and changed for device and user mode 
    ;exten => *79,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *79,n,Set(CHAN=USER/${AMPUSER})
    exten => *79,n,dbDel(fop2state/${CHAN})
    exten => *79,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: )
    ; end fop2 addition
    exten => *79,n,dbDel(DND/${AMPUSER})
    exten => *79,n,Set(STATE=NOT_INUSE)
    exten => *79,n,Gosub(app-dnd-off,sstate,1)
    exten => *79,n,Playback(do-not-disturb&de-activated)
    exten => *79,n,Macro(hangupcall,)
    exten => sstate,1,Set(DEVSTATE(Custom:DND${AMPUSER})=${STATE})
    exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)})
    exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
    exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
    exten => sstate,n,Set(ITER=1)
    exten => sstate,n(begin),Set(DEVSTATE(Custom:DEVDND${CUT(DEVICES,&,${ITER})})=${STATE})
    exten => sstate,n,Set(ITER=$[${ITER} + 1])
    exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
    exten => sstate,n(return),Return()
    
    [app-dnd-toggle]
    include => app-dnd-toggle-custom
    exten => *76,1,Answer
    exten => *76,n,Wait(1)
    exten => *76,n,Macro(user-callerid,)
    exten => *76,n,GotoIf($["${DB(DND/${AMPUSER})}" = ""]?activate:deactivate)
    exten => *76,n(activate),Set(DB(DND/${AMPUSER})=YES)
    ; next line deactivated and changed for device and user mode 
    ;exten => *76,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *76,n,Set(CHAN=USER/${AMPUSER})
    exten => *76,n,Set(DB(fop2state/${CHAN})=Do not Disturb)
    exten => *76,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: Do not Disturb)
    exten => *76,n,Set(STATE=BUSY)
    exten => *76,n,Gosub(app-dnd-toggle,sstate,1)
    exten => *76,n,Playback(do-not-disturb&activated)
    exten => *76,n,Macro(hangupcall,)
    exten => *76,n(deactivate),dbDel(DND/${AMPUSER})
    ; next line deactivated and changed for device and user mode 
    ; exten => *76,n,Set(CHAN=${CUT(CHANNEL,-,1)})
    exten => *76,n,Set(CHAN=USER/${AMPUSER})
    exten => *76,n,dbDel(fop2state/${CHAN})
    exten => *76,n,UserEvent(FOP2ASTDB,Family: fop2state,Channel: ${CHAN},Value: )
    exten => *76,n,Set(STATE=NOT_INUSE)
    exten => *76,n,Gosub(app-dnd-toggle,sstate,1)
    exten => *76,n,Playback(do-not-disturb&de-activated)
    exten => *76,n,Macro(hangupcall,)
    exten => sstate,1,Set(DEVSTATE(Custom:DND${AMPUSER})=${STATE})
    exten => sstate,n,Set(DEVICES=${DB(AMPUSER/${AMPUSER}/device)})
    exten => sstate,n,GotoIf($["${DEVICES}" = "" ]?return)
    exten => sstate,n,Set(LOOPCNT=${FIELDQTY(DEVICES,&)})
    exten => sstate,n,Set(ITER=1)
    exten => sstate,n(begin),Set(DEVSTATE(Custom:DEVDND${CUT(DEVICES,&,${ITER})})=${STATE})
    exten => sstate,n,Set(ITER=$[${ITER} + 1])
    exten => sstate,n,GotoIf($[${ITER} <= ${LOOPCNT}]?begin)
    exten => sstate,n(return),Return()

    you just won a new customer!

  10. 12 years ago

    Hi,

    Don't want to hijack but don't want to start another thread if not necessary as well.

    I upgraded (licensed version) from 2.11 to 2.26. Great that you provided the /usr/local/fop2/generate_override_contexts.pl script to adjust freepbx number plans (running trixbox 2.8)!

    It seems that the script makes adjustments that are not in line with those necessary for Device&User mode. So I followed the steps in this thread again, like I did when I installed 2.11.

    However, only those extensions cashed in the database with keys SIP/<ext> are shown as DND, others are not updated.
    DND status updates work by setting status through FOP2 (FOP2 server is running OK), and ringing/call/queue status is showed correctly as well (manager connection and flash-FOP2 connection OK as well).

    To be sure I followed the steps in http://www.fop2.com/documentation-confi ... server.php another time, but still no luck. Any help would be appreciated

  11. admin

    7 Apr 2012 Administrator

    Hi,

    I upgraded (licensed version) from 2.11 to 2.26. Great that you provided the /usr/local/fop2/generate_override_contexts.pl script to adjust freepbx number plans (running trixbox 2.8)!

    It seems that the script makes adjustments that are not in line with those necessary for Device&User mode. So I followed the steps in this thread again, like I did when I installed 2.11.

    However, only those extensions cashed in the database with keys SIP/<ext> are shown as DND, others are not updated.
    DND status updates work by setting status through FOP2 (FOP2 server is running OK), and ringing/call/queue status is showed correctly as well (manager connection and flash-FOP2 connection OK as well).

    To be sure I followed the steps in http://www.fop2.com/documentation-confi ... server.php another time, but still no luck. Any help would be appreciated

    The modifications to the standard macros from FreePBX are kind of agnostics, the DND key is just the extension number:

    DND/xxxxx

    not sure where you see the SIP/xxx key. In any case, the question is: how are you setting phones in dnd? The override contexts are for making the fop2 presence state react to the DND/xxx changes in FreePBX, in both directions. So if you dial the dnd feature codes from freepbx, it should signal the presence change in fop2, and viceversa (you change in fop2, it will set the dnd/xxxx astdb entry).

    If you use your phone dnd button it will not work as it does not signal asterisk at all. So, what astdb entry is set if you change presence in FOP2? What is exactly the problem? You do not see dnd states in fop2 for extensions that were set to dnd via *78 feature code in freepbx?

    Best regards,

  12. The phone soft keys are configured to dial the asterisk feature code for DND (which defaults to *78 for this particular installation), and the DND status shows up correctly when I look at the database DND keys. With the previous version, dialing the feature code would set DND in the database correctly and signal FOP2, but with the latest release I only see the database entries change but not the status in FOP2...

  13. admin

    10 Apr 2012 Administrator

    Did you run?

    /usr/local/fop2/generate_override_contexts.pl -w

    You must do that in order to fix the freepbx macros and include the special fop2 tidbits.

  14. Yes, using -w.

    Like I described I saw that it made adjustments that did not reflect Device and User mode, so I adjusted the lines according to your suggestions in this thread on the forum (hence why I posted here instead of starting a new thread).

  15. admin

    11 Apr 2012 Administrator

    As I said before, the changes in the macros are kind of agnostic on device, as they use the extension number/amp user number. In any case, I will have to look at your server while you set yourself in dnd and trace that, if you catch me on the live help we can arrange a reverse ssh session or something.

    We were having really bad luck lately: several strong storms took down our network, power and hardware twice in a little over a month, so lately I am not much on the live help but trying to fix our network.

    Best regards,

  16. that's bad luck, indeed.
    Thanks for the offer. I need to await the VPN access to be available to set up the troubleshooting session.

or Sign Up to reply!