diff --git a/voice-client/files/etc/init.d/voice_client b/voice-client/files/etc/init.d/voice_client index 6b69ca10fb6d21b355da95217c8967ff1228ee6b..617779e647a7f6fc081656ccc944566647683fba 100755 --- a/voice-client/files/etc/init.d/voice_client +++ b/voice-client/files/etc/init.d/voice_client @@ -153,7 +153,6 @@ assemble_and_copy_config() [ -f $TMPL_ASTERISK ] && cp $TMPL_ASTERISK $WORKDIR/asterisk.conf [ -f $TMPL_CDR ] && cp $TMPL_CDR $WORKDIR/cdr.conf [ -f $TMPL_CEL ] && cp $TMPL_CEL $WORKDIR/cel.conf - [ -f $TMPL_INDICATIONS ] && cp $TMPL_INDICATIONS $WORKDIR/indications.conf [ -f $TMPL_MANAGER ] && cp $TMPL_MANAGER $WORKDIR/manager.conf [ -f $TMPL_MODULES ] && cp $TMPL_MODULES $WORKDIR/modules.conf [ -f $TMPL_EXTENSIONS_MACRO ] && cp $TMPL_EXTENSIONS_MACRO $WORKDIR/extensions_macro.conf @@ -165,6 +164,14 @@ assemble_and_copy_config() [ -f $TMPL_UDPTL ] && cp $TMPL_UDPTL $WORKDIR/udptl.conf [ -f $SPECRATECFG ] && cp $SPECRATECFG $WORKDIR/special_rate_nr.cfg + [ -f $TMPL_INDICATIONS ] && { + cp $TMPL_INDICATIONS $WORKDIR/indications.conf + + config_get country TEL country + country_code=$(supportedCountries |grep $country |cut -d':' -f3 |tr [A-Z] [a-z]) + sed -i "s/^country=.*/country=${country_code}/g" $WORKDIR/indications.conf + } + test -e $TMPL_MEETME && cp $TMPL_MEETME $WORKDIR/meetme.conf # Handle extensions_extra, carry over old file to new config if there is one @@ -256,9 +263,7 @@ read_codecs_ptime() # read_lines() { - local line call_lines lineid ldx lines llength clength - local loffset=$(ubus -t 1 call voice.asterisk platform | jsonfilter -e @.lineoffset) - loffset=${loffset:-0} + local line call_lines lines clength config_get call_lines $1 call_lines @@ -267,28 +272,17 @@ read_lines() # convert line format to <LINENAME><LINEID> case $line in [0-9]) - line="$LINENAME$line" ;; "$CHANNELNAME"/[0-9]) + # get the index from channel name clength=$(echo $CHANNELNAME | wc -c) - line="$LINENAME${line:$clength}" + line="${line:$clength}" ;; esac - # get the index from line name - # llength=$(echo $LINENAME | wc -c) - # lineid="${lineid:$llength}" - - # get the index from uci config order - lineid="$(uci show voice_client | grep =tel_line | grep -wn $line | cut -d ':' -f1)" - - [ -n "$lineid" ] || continue + [ -n "$line" ] || continue - # -1 to match the line's uci config index number - # +loffset to match the correct number in channel driver - ldx=$((lineid-1+loffset)) - - lines="$lines$CHANNELNAME/$ldx&" + lines="$lines$CHANNELNAME/$line&" done lines=$(escape_sed_substitution $lines) @@ -1795,6 +1789,7 @@ configure_tel() local fac local echocancel local hold_target_before_refer + local calleridtype config_get jbenable TEL jbenable config_get jbforce TEL jbforce @@ -1805,6 +1800,7 @@ configure_tel() config_get fac TEL fac config_get echocancel TEL echo_cancel config_get hold_target_before_refer TEL hold_target_before_refer + config_get calleridtype TEL calleridtype CHANNEL_FAC="$CHANNEL_FAC $fac" # Convert whitespace to commas @@ -1823,6 +1819,12 @@ configure_tel() sed -i "s/|CHANNELS|/$(db get hw.board.VoicePorts)/" $WORKDIR/$LINENAME.tmp sed -i "s/|ECHOCANCEL|/$(getEchoCancellingValue $echocancel)/" $WORKDIR/$LINENAME.tmp + if [ -n "${calleridtype}" ] ; then + sed -i "s/^calleridtype *=.*/calleridtype = ${calleridtype}/g" $WORKDIR/$LINENAME.tmp + else + sed -i "/^calleridtype *=.*/d" $WORKDIR/$LINENAME.tmp + fi + if [ "$dtmfmode" == "compatibility" ] ; then dtmfcompatibility="1" else @@ -2243,6 +2245,7 @@ reload_service() { # FXS channel module must be reloaded before sip module. Otherwise some attributes like # line's registration state which is updated by SIP module through callback might be # reset. + asterisk -rx "config reload $ASTERISKDIR/indications.conf" asterisk -rx "$(getChipVendor) reload" asterisk -rx "config reload $ASTERISKDIR/sip.conf" sleep 1 diff --git a/voice-client/files/lib/voice/broadcom.sh b/voice-client/files/lib/voice/broadcom.sh index 70c737d38f22d46e47f547ac2cff5417b1d5eccb..f4f02b7249d6db064626c987006c903c0d4aae92 100755 --- a/voice-client/files/lib/voice/broadcom.sh +++ b/voice-client/files/lib/voice/broadcom.sh @@ -22,7 +22,7 @@ getBaseMAC() { } getAllLines() { - echo "BRCM/0&BRCM/1&BRCM/2&BRCM/3&BRCM/4&BRCM/5&BRCM/6" + echo "BRCM/0&BRCM/1&BRCM/2&BRCM/3&BRCM/4&BRCM/5" } getLineIdx() { diff --git a/voice-client/files/lib/voice/intel.sh b/voice-client/files/lib/voice/intel.sh index 7e406e0479cca8c3322b3206abeb9e21a689e5b6..ca4a17d4f9173884314b8e000e90ecd52e1ded9d 100755 --- a/voice-client/files/lib/voice/intel.sh +++ b/voice-client/files/lib/voice/intel.sh @@ -28,12 +28,11 @@ getBaseMAC() { } getAllLines() { - echo "TAPI/1&TAPI/2&TAPI/3&TAPI/4&TAPI/5&TAPI/6" + echo "TAPI/0&TAPI/1" } getLineIdx() { - i=$1 - echo $((i+1)) + echo $1 } getEchoCancellingValue() { @@ -52,5 +51,14 @@ getEchoCancellingValue() { } supportedCountries() { - echo "ETSI:ETS" + echo "Austria:AUT:AT" + echo "Denmark:DNK:DK" + echo "Estonia:EST:EE" + echo "Germany:DEU:DE" + echo "Netherlands:NLD:NL" + echo "Norway:NOR:NO" + echo "Spain:ESP:ES" + echo "Sweden:SWE:SE" + echo "Switzerland:CHE:CH" + echo "United Kingdom:GBR:UK" } diff --git a/voice-client/files/usr/libexec/rpcd/voice.asterisk b/voice-client/files/usr/libexec/rpcd/voice.asterisk index d010293014959409c0b251bef50806f4b0e9b61c..dc81567403e361b298241970b4cd130dcdbe89b5 100755 --- a/voice-client/files/usr/libexec/rpcd/voice.asterisk +++ b/voice-client/files/usr/libexec/rpcd/voice.asterisk @@ -137,8 +137,8 @@ case "$1" in json_add_int chanoffset 0 ;; "tapi") - json_add_int lineoffset 1 - json_add_int chanoffset -1 + json_add_int lineoffset 0 + json_add_int chanoffset 0 ;; *) # Error, unknown platform