mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2025-12-10 07:44:50 +01:00
voice-client: patch from Pantera.
Ref: 13031
This commit is contained in:
parent
8f36765f5b
commit
d39c16248f
5 changed files with 85 additions and 1 deletions
|
|
@ -42,6 +42,41 @@ exten => s,n, Playback(beep)
|
|||
exten => s,n, Playback(beep)
|
||||
exten => s,n, Hangup()
|
||||
|
||||
[macro-create_cw]
|
||||
;
|
||||
; ${ARG1} - Associated SIP peer
|
||||
;
|
||||
exten => s,1, System(/lib/cw.sh ${ARG1} 1)
|
||||
exten => s,n, System(asterisk -rx 'brcm reload')
|
||||
exten => s,n, Playback(beep)
|
||||
exten => s,n, Hangup()
|
||||
|
||||
[macro-delete_cw]
|
||||
;
|
||||
; ${ARG1} - Associated SIP peer
|
||||
;
|
||||
exten => s,1, System(/lib/cw.sh ${ARG1} 0)
|
||||
exten => s,n, System(asterisk -rx 'brcm reload')
|
||||
exten => s,n, Playback(beep)
|
||||
exten => s,n, Playback(beep)
|
||||
exten => s,n, Hangup()
|
||||
|
||||
[macro-status_cw]
|
||||
;
|
||||
; ${ARG1} - Associated SIP peer
|
||||
;
|
||||
exten => s,1, Set(result=${SHELL(/lib/cw.sh ${ARG1} ?)})
|
||||
exten => s,n, GotoIf(${result}?cwon:cwoff)
|
||||
;If call waiting on play beep and hang up
|
||||
exten => s,n(cwon), Playback(beep)
|
||||
exten => s,n, Hangup()
|
||||
exten => s,n, MacroExit()
|
||||
;If call waiting off play two beep and hang up
|
||||
exten => s,n(cwoff), Playback(beep)
|
||||
exten => s,n, Playback(beep)
|
||||
exten => s,n, Hangup()
|
||||
exten => s,n, MacroExit()
|
||||
|
||||
[macro-call_return]
|
||||
;
|
||||
; Return call to last incoming caller
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
include => clir
|
||||
include => local_extensions
|
||||
include => |PROVIDER|-callforwarding
|
||||
include => |PROVIDER|-callwaiting
|
||||
include => |PROVIDER|-outgoing
|
||||
include => |PROVIDER|-direct
|
||||
|
||||
[|PROVIDER|-transfer]
|
||||
; Context used for call transfer for this Provider
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ config 'brcm_advanced' 'BRCM'
|
|||
config 'features' 'features'
|
||||
option 'cbbs_enabled' '1'
|
||||
option 'callforward_enabled' '1'
|
||||
option 'callwaiting_enabled' '1'
|
||||
option 'redial_enabled' '1'
|
||||
option 'callreturn_enabled' '1'
|
||||
option 'advanced_register_settings' '1'
|
||||
|
|
@ -162,6 +163,9 @@ config 'sip_service_provider' 'sip0'
|
|||
option 'cfim_off' '#21#'
|
||||
option 'cfbs_on' '*61*'
|
||||
option 'cfbs_off' '#61#'
|
||||
option cw_on '*43#'
|
||||
option cw_off '#43#'
|
||||
option cw_status '*#43#'
|
||||
option 'call_return' '*69'
|
||||
option 'redial' '*66'
|
||||
option 'is_fax' '0'
|
||||
|
|
@ -169,4 +173,3 @@ config 'sip_service_provider' 'sip0'
|
|||
|
||||
config cdr_log 'CDR_LOG'
|
||||
option cdr_syslog '0'
|
||||
|
||||
|
|
|
|||
|
|
@ -1479,8 +1479,12 @@ configure_extensions_provider()
|
|||
local incoming_lines
|
||||
local direct_dial
|
||||
local congestiontone
|
||||
local cw_on
|
||||
local cw_off
|
||||
local cw_status
|
||||
|
||||
local callforward_enabled
|
||||
local callwaiting_enabled
|
||||
local cbbs_enabled
|
||||
local callreturn_enabled
|
||||
local redial_enabled
|
||||
|
|
@ -1489,6 +1493,7 @@ configure_extensions_provider()
|
|||
# load general settings
|
||||
config_get callforward_enabled "features" callforward_enabled
|
||||
config_get cbbs_enabled "features" cbbs_enabled
|
||||
config_get callwaiting_enabled "features" callwaiting_enabled
|
||||
config_get callreturn_enabled "features" callreturn_enabled
|
||||
config_get redial_enabled "features" redial_enabled
|
||||
|
||||
|
|
@ -1555,16 +1560,23 @@ configure_extensions_provider()
|
|||
config_get cfim_on $1 cfim_on
|
||||
config_get cfim_off $1 cfim_off
|
||||
config_get cfbs_on $1 cfbs_on
|
||||
config_get cw_off $1 cw_off
|
||||
config_get cw_on $1 cw_on
|
||||
config_get cw_status $1 cw_status
|
||||
config_get cfbs_off $1 cfbs_off
|
||||
config_get call_return $1 call_return
|
||||
config_get redial $1 redial
|
||||
|
||||
local cfim_on_len=${#cfim_on}
|
||||
local cfbs_on_len=${#cfbs_on}
|
||||
local cw_on_len=${#cw_on}
|
||||
[ -z "$cfim_on" ] && cfim_on="cfimon"
|
||||
[ -z "$cfim_off" ] && cfim_off="cfimoff"
|
||||
[ -z "$cfbs_on" ] && cfbs_on="cfbson"
|
||||
[ -z "$cfbs_off" ] && cfbs_off="cfbsoff"
|
||||
[ -z "$cw_on" ] && cw_on="cwon"
|
||||
[ -z "$cw_off" ] && cw_off="cwoff"
|
||||
[ -z "$cw_status" ] && cw_status="cwstatus"
|
||||
[ -z "$call_return" ] && call_return="callreturn"
|
||||
[ -z "$redial" ] && redial="redial"
|
||||
|
||||
|
|
@ -1603,6 +1615,16 @@ configure_extensions_provider()
|
|||
fi
|
||||
echo "" >> $WORKDIR/extensions_provider.tmp
|
||||
|
||||
# Configure call waiting if enabled
|
||||
if [ -n "$callwaiting_enabled" -a "$callwaiting_enabled" = "1" ] ; then
|
||||
echo "[$1-callwaiting]" >> $WORKDIR/extensions_provider.tmp
|
||||
echo "exten => $cw_off,1, Macro(delete_cw,$1)" >> $WORKDIR/extensions_provider.tmp
|
||||
echo "exten => ${cw_on},1, Macro(create_cw,$1)" >> $WORKDIR/extensions_provider.tmp
|
||||
echo "exten => ${cw_status},1, Macro(status_cw,$1)" >> $WORKDIR/extensions_provider.tmp
|
||||
|
||||
echo "" >> $WORKDIR/extensions_provider.tmp
|
||||
fi
|
||||
|
||||
cat $WORKDIR/extensions_provider.tmp >> $WORKDIR/extensions.tmp
|
||||
rm -f $WORKDIR/extensions_provider.tmp
|
||||
|
||||
|
|
@ -1628,6 +1650,7 @@ configure_extensions_provider()
|
|||
fi
|
||||
echo "exten => $i,1,Goto($1-outgoing,\${EXTEN},1)" >> $WORKDIR/extensions_direct.tmp
|
||||
done
|
||||
|
||||
echo "" >> $WORKDIR/extensions_direct.tmp
|
||||
cat $WORKDIR/extensions_direct.tmp >> $WORKDIR/extensions.tmp
|
||||
rm -f $WORKDIR/extensions_direct.tmp
|
||||
|
|
@ -2273,10 +2296,18 @@ start_service() {
|
|||
pbx_fix_ownership
|
||||
config_unset
|
||||
run_hook postinit
|
||||
|
||||
#/sbin/voice-monitor &
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
#stop_service() {
|
||||
# killall -9 voice-monitor
|
||||
#}
|
||||
|
||||
reload_service() {
|
||||
#stop
|
||||
start
|
||||
|
||||
# turn off voice led; asterisk will turn it on
|
||||
|
|
|
|||
13
voice-client/files/lib/cw.sh
Executable file
13
voice-client/files/lib/cw.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#! /bin/sh
|
||||
|
||||
if [ $2 != '?' ]; then
|
||||
for brcm in `uci show voice_client | grep brcm | grep $1 | cut -d . -f 2`; do
|
||||
sed -i "/\[$brcm\]/,/^\[/ s/\(callwaiting=\)[0-9]/\1$2/" /etc/asterisk/brcm.conf
|
||||
done
|
||||
else
|
||||
for brcm in `uci show voice_client | grep brcm | grep $1 | cut -d . -f 2`; do
|
||||
status=`sed -n "/\[$brcm\]/,/^\[/ s/callwaiting=\([0-9]\)/\1/p" /etc/asterisk/brcm.conf`
|
||||
echo $status
|
||||
exit 0
|
||||
done
|
||||
fi
|
||||
Loading…
Add table
Reference in a new issue