From a652b67d045cde7c07c7e662cac7212f8c6350fd Mon Sep 17 00:00:00 2001 From: Yalu Zhang <yalu.zhang@iopsys.eu> Date: Mon, 25 Nov 2019 14:09:38 +0100 Subject: [PATCH] Change line/channel names from tapi/1 and tapi/2 to tapi/0 and tapi1 Unsupported lines/channes like TAPI/[2-6], BRCM/6 are also removed. This change has the following benefits. - To simplify the line/channel name handling in /etc/init.d/voice_client - To have the consistent implementation both on Intel and on Broadcom platforms (cherry picked from commit 40c426ca09daeaf2b75512610cd4d114c626fbba) --- voice-client/files/etc/init.d/voice_client | 41 ++++++++++--------- voice-client/files/lib/voice/broadcom.sh | 2 +- voice-client/files/lib/voice/intel.sh | 16 ++++++-- .../files/usr/libexec/rpcd/voice.asterisk | 4 +- 4 files changed, 37 insertions(+), 26 deletions(-) diff --git a/voice-client/files/etc/init.d/voice_client b/voice-client/files/etc/init.d/voice_client index 6b69ca10f..617779e64 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 70c737d38..f4f02b724 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 7e406e047..ca4a17d4f 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 d01029301..dc8156740 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 -- GitLab