From: <abe...@us...> - 2014-03-11 15:21:27
|
Revision: 6451 http://sourceforge.net/p/astlinux/code/6451 Author: abelbeck Date: 2014-03-11 15:21:23 +0000 (Tue, 11 Mar 2014) Log Message: ----------- phoneprov-tools, rework input format slightly for massdeployment.conf, swap password and account fields and make account optional. Add [general] variables auto_account_prefix and auto_account_suffix for when account is not defined Modified Paths: -------------- branches/1.0/package/phoneprov-tools/massdeployment.conf branches/1.0/package/phoneprov-tools/phoneprov-build branches/1.0/package/phoneprov-tools/phoneprov-massdeployment branches/1.0/package/phoneprov-tools/templates/snom320.conf branches/1.0/package/phoneprov-tools/templates/spa942.conf branches/1.0/package/phoneprov-tools/templates/yealink.conf Modified: branches/1.0/package/phoneprov-tools/massdeployment.conf =================================================================== --- branches/1.0/package/phoneprov-tools/massdeployment.conf 2014-03-11 03:06:59 UTC (rev 6450) +++ branches/1.0/package/phoneprov-tools/massdeployment.conf 2014-03-11 15:21:23 UTC (rev 6451) @@ -2,12 +2,12 @@ ## Mass Deployment Data for IP Phones ## ## Format: -## template mac_addr extension[/CID_Name][;ext2/cid2;...] username password +## template mac_addr extension[/CID_Name][;ext2[/cid2];...] password [ account ] ## ## Note: Space separated entries, no quotes or spaces are allowed in the entries. ## Optional CID_Name qualifier any '_' character will be mapped to a ' ' (space). ## ## Examples: -## snom320 00:04:13:11:33:21 201 201 secret -## yealink 00:15:65:22:44:12 301/Front_Desk yealink_4412_301 supersecret +## snom320 00:04:13:11:33:21 201 secret +## yealink 00:15:65:22:44:12 301/Front_Desk supersecret yealink_4412_301 ## Modified: branches/1.0/package/phoneprov-tools/phoneprov-build =================================================================== --- branches/1.0/package/phoneprov-tools/phoneprov-build 2014-03-11 03:06:59 UTC (rev 6450) +++ branches/1.0/package/phoneprov-tools/phoneprov-build 2014-03-11 15:21:23 UTC (rev 6451) @@ -5,7 +5,7 @@ usage() { echo ' -Usage: phoneprov-build [options...] phone_model mac_addr extension[/CID_Name] username password +Usage: phoneprov-build [options...] template mac_addr extension[/CID_Name][;ext2[/cid2];...] password [ account ] Options: -f, --force-overwrite Overwrite existing files @@ -64,9 +64,9 @@ -e "s|@MAC6@|${mac6}|g" \ -e "s|@EXT@|${ext}|g" \ -e "s|@CID_NAME@|${cid_name}|g" \ - -e "s|@USERNAME@|${username}|g" \ -e "s|@PASSWORD@|${password}|g" \ -e "s|@ACCOUNT@|${account}|g" \ + -e "s|@USERNAME@|${username}|g" \ -e "s|@SIP_SERVER_IPV4@|${sip_server_ipv4}|g" } @@ -74,34 +74,34 @@ { sed -e "s|@EXT1@|${EXT[1]}|g" \ -e "s|@CID_NAME1@|${CID_NAME[1]}|g" \ - -e "s|@USERNAME1@|${USERNAME[1]}|g" \ -e "s|@PASSWORD1@|${PASSWORD[1]}|g" \ -e "s|@ACCOUNT1@|${ACCOUNT[1]}|g" \ + -e "s|@USERNAME1@|${USERNAME[1]}|g" \ -e "s|@EXT2@|${EXT[2]}|g" \ -e "s|@CID_NAME2@|${CID_NAME[2]}|g" \ - -e "s|@USERNAME2@|${USERNAME[2]}|g" \ -e "s|@PASSWORD2@|${PASSWORD[2]}|g" \ -e "s|@ACCOUNT2@|${ACCOUNT[2]}|g" \ + -e "s|@USERNAME2@|${USERNAME[2]}|g" \ -e "s|@EXT3@|${EXT[3]}|g" \ -e "s|@CID_NAME3@|${CID_NAME[3]}|g" \ - -e "s|@USERNAME3@|${USERNAME[3]}|g" \ -e "s|@PASSWORD3@|${PASSWORD[3]}|g" \ -e "s|@ACCOUNT3@|${ACCOUNT[3]}|g" \ + -e "s|@USERNAME3@|${USERNAME[3]}|g" \ -e "s|@EXT4@|${EXT[4]}|g" \ -e "s|@CID_NAME4@|${CID_NAME[4]}|g" \ - -e "s|@USERNAME4@|${USERNAME[4]}|g" \ -e "s|@PASSWORD4@|${PASSWORD[4]}|g" \ -e "s|@ACCOUNT4@|${ACCOUNT[4]}|g" \ + -e "s|@USERNAME4@|${USERNAME[4]}|g" \ -e "s|@EXT5@|${EXT[5]}|g" \ -e "s|@CID_NAME5@|${CID_NAME[5]}|g" \ - -e "s|@USERNAME5@|${USERNAME[5]}|g" \ -e "s|@PASSWORD5@|${PASSWORD[5]}|g" \ -e "s|@ACCOUNT5@|${ACCOUNT[5]}|g" \ + -e "s|@USERNAME5@|${USERNAME[5]}|g" \ -e "s|@EXT6@|${EXT[6]}|g" \ -e "s|@CID_NAME6@|${CID_NAME[6]}|g" \ - -e "s|@USERNAME6@|${USERNAME[6]}|g" \ -e "s|@PASSWORD6@|${PASSWORD[6]}|g" \ - -e "s|@ACCOUNT6@|${ACCOUNT[6]}|g" + -e "s|@ACCOUNT6@|${ACCOUNT[6]}|g" \ + -e "s|@USERNAME6@|${USERNAME[6]}|g" } index_var() { @@ -125,15 +125,15 @@ if [ -z "${CID_NAME[$i]}" ]; then CID_NAME[$i]="${EXT[$i]}" fi - USERNAME[$i]="$(index_var $i "$raw_username")" - if [ -z "${USERNAME[$i]}" ]; then - USERNAME[$i]="$username" - fi PASSWORD[$i]="$(index_var $i "$raw_password")" if [ -z "${PASSWORD[$i]}" ]; then PASSWORD[$i]="$password" fi - ACCOUNT[$i]="${EXT[$i]}${account_suffix}" + ACCOUNT[$i]="$(index_var $i "$raw_account")" + if [ -z "${ACCOUNT[$i]}" ]; then + ACCOUNT[$i]="${auto_account_prefix}${EXT[$i]}${auto_account_suffix}" + fi + USERNAME[$i]="${ACCOUNT[$i]}" } ARGS="$(getopt --name phoneprov-build \ @@ -160,13 +160,13 @@ template="$1" mac_addr="$2" raw_ext="$3" -raw_username="$4" -raw_password="$5" +raw_password="$4" +raw_account="$5" ext="$(index_var 1 "$raw_ext" | cut -d'/' -f1)" cid_name="$(index_var 1 "$raw_ext" | cut -s -d'/' -f2- | tr '_' ' ')" -username="$(index_var 1 "$raw_username")" password="$(index_var 1 "$raw_password")" +account="$(index_var 1 "$raw_account")" PHONEPROV_DIR="${PHONEPROV_BASE_DIR:-/mnt/kd/phoneprov}" TEMPLATE_DIR="$PHONEPROV_DIR/templates" @@ -257,8 +257,8 @@ OPTIONS="$(echo "$OPTIONS" | merge_variables)" -account_suffix="$(extract_var account_suffix)" -account=${ext}${account_suffix} +auto_account_prefix="$(extract_var auto_account_prefix)" +auto_account_suffix="$(extract_var auto_account_suffix)" prov_path="$(extract_var prov_path)" if [ -z "$prov_path" ]; then @@ -326,22 +326,25 @@ exit 0 fi -if [ -z "$username" ]; then - echo "phoneprov-build: no username defined." >&2 - exit 3 -fi if [ -z "$password" ]; then echo "phoneprov-build: no password defined." >&2 exit 3 fi +if [ -z "$account" ]; then + account="${auto_account_prefix}${ext}${auto_account_suffix}" +fi + +# Same as account +username="$account" + # Define indexed variables EXT[1]="$ext" CID_NAME[1]="$cid_name" -USERNAME[1]="$username" PASSWORD[1]="$password" ACCOUNT[1]="$account" +USERNAME[1]="$username" for index in 2 3 4 5 6; do define_indexed_vars $index Modified: branches/1.0/package/phoneprov-tools/phoneprov-massdeployment =================================================================== --- branches/1.0/package/phoneprov-tools/phoneprov-massdeployment 2014-03-11 03:06:59 UTC (rev 6450) +++ branches/1.0/package/phoneprov-tools/phoneprov-massdeployment 2014-03-11 15:21:23 UTC (rev 6451) @@ -9,8 +9,8 @@ Usage: phoneprov-massdeployment [options...] in_file Options: - -a, --auto-user-pass Automatically generate missing username/password(s) - -A, --only-user-pass Same as "-a, --auto-user-pass" without further processing + -a, --auto-pass Automatically generate missing password(s) + -A, --only-pass Same as "-a, --auto-pass" without further processing -f, --force-overwrite Overwrite existing files -h, --help Show this help text -i, --if-name Interface Name: INTIF, INT2IF, INT3IF, EXTIF, ethN, brN, defaults to INTIF @@ -26,8 +26,8 @@ echo "phoneprov-massdeployment: Use -f or --force-overwrite option to overwrite." echo "Files left unchanged." elif [ $result -eq 3 ]; then - echo "phoneprov-massdeployment: Use -a or --auto-user-pass option to automatically" - echo " generate any missing username/password(s)." + echo "phoneprov-massdeployment: Use -a or --auto-pass option to automatically" + echo " generate any missing password(s)." fi } @@ -45,37 +45,32 @@ echo "$template 00:00:00:00:00:00 init" } -gen_user_pass() { - local data="$1" template mac_addr ext_cid ext user pass +gen_pass() { + local data="$1" template mac_addr ext_cid ext pass template="$(echo "$data" | awk -F' ' '{ print $1; }')" mac_addr="$(echo "$data" | awk -F' ' '{ print $2; }')" ext_cid="$(echo "$data" | awk -F' ' '{ print $3; }')" - user="$(echo "$data" | awk -F' ' '{ print $4; }')" - pass="$(echo "$data" | awk -F' ' '{ print $5; }')" + pass="$(echo "$data" | awk -F' ' '{ print $4; }')" ext="$(echo "$ext_cid" | cut -d';' -f1 | cut -d'/' -f1)" if [ -n "$template" -a -n "$mac_addr" -a -n "$ext" ]; then if [ "$ext" != "init" -a "$ext" != "init-dialplan" -a "$ext" != "init-sip" ]; then - if [ -z "$user" -o -z "$pass" ]; then - if [ -z "$user" ]; then - user="${ext}_$(echo "$mac_addr" | cut -d':' -f4- | tr -d ':')" - fi - if [ -z "$pass" ]; then - pass="$(openssl rand -base64 12)" - fi + if [ -z "$pass" ]; then + pass="$(openssl rand -base64 12)" + # Properly match if '*' exists in the extension/cid ext_cid="$(echo "$ext_cid" | sed 's/*/\\*/g')" - sed -i -e "s|^${template}[ \t]*${mac_addr}[ \t]*${ext_cid}.*$|${template} ${mac_addr} ${ext_cid} ${user} ${pass}|" "$in_file" + sed -i -e "s|^${template}[ \t]*${mac_addr}[ \t]*${ext_cid}.*$|${template} ${mac_addr} ${ext_cid} ${pass}|" "$in_file" fi fi fi } ARGS="$(getopt --name phoneprov-massdeployment \ - --long auto-user-pass,only-user-pass,force-overwrite,help,if-name:,partial \ + --long auto-pass,only-pass,force-overwrite,help,if-name:,partial \ --options aAfhi:p \ -- "$@")" if [ $? -ne 0 ]; then @@ -83,15 +78,15 @@ fi eval set -- $ARGS -auto_user_pass=0 -only_user_pass=0 +auto_pass=0 +only_pass=0 force_overwrite=0 partial=0 if_name="INTIF" while [ $# -gt 0 ]; do case "$1" in - -a|--auto-user-pass) auto_user_pass=1 ;; - -A|--only-user-pass) auto_user_pass=1 ; only_user_pass=1 ;; + -a|--auto-pass) auto_pass=1 ;; + -A|--only-pass) auto_pass=1 ; only_pass=1 ;; -f|--force-overwrite) force_overwrite=1 ;; -h|--help) usage ;; -i|--if-name) if_name="$2"; shift ;; @@ -110,8 +105,8 @@ exit 1 fi -if [ $auto_user_pass -eq 1 ]; then - echo "Auto-generating username/password(s):" +if [ $auto_pass -eq 1 ]; then + echo "Auto-generating password(s):" temp_file="$(mktemp "${in_file}.XXXXXX")" cp "$in_file" "$temp_file" @@ -119,18 +114,18 @@ IFS=$'\n' extract_file "$temp_file" | while read data; do unset IFS - gen_user_pass "$data" + gen_pass "$data" done unset IFS if cmp -s "$temp_file" "$in_file"; then - echo "No missing username/password(s), input file left unchanged." + echo "No missing password(s), input file left unchanged." else - echo "Missing username/password(s) were added to input file." + echo "Missing password(s) were added to input file." fi rm "$temp_file" - if [ $only_user_pass -eq 1 ]; then + if [ $only_pass -eq 1 ]; then exit 0 fi fi Modified: branches/1.0/package/phoneprov-tools/templates/snom320.conf =================================================================== --- branches/1.0/package/phoneprov-tools/templates/snom320.conf 2014-03-11 03:06:59 UTC (rev 6450) +++ branches/1.0/package/phoneprov-tools/templates/snom320.conf 2014-03-11 15:21:23 UTC (rev 6451) @@ -9,7 +9,8 @@ #prov_path=/mnt/kd/phoneprov/snom prov_file=@MODEL@-@MAC@.htm macaddress_case=upper -account_suffix=_@MAC4@_@MODEL@ +#auto_account_prefix= +auto_account_suffix=_@MAC4@_@MODEL@ #dialplan_path=/mnt/kd/asterisk/includes dialplan_file=astlinux-phoneprov-exten.conf @@ -30,7 +31,7 @@ host=dynamic context=internal-phones secret=@PASSWORD@ -defaultuser=@USERNAME@ +defaultuser=@ACCOUNT@ callerid="@CID_NAME@" <@EXT@> mailbox=@EXT@@default qualify=no @@ -46,7 +47,7 @@ <settings> <phone-settings> <user_realname idx="1" perm="">@EXT@</user_realname> -<user_name idx="1" perm="">@USERNAME@</user_name> +<user_name idx="1" perm="">@ACCOUNT@</user_name> <user_pname idx="1" perm="">@ACCOUNT@</user_pname> <user_pass idx="1" perm="">@PASSWORD@</user_pass> <user_host idx="1" perm="">@SIP_SERVER_IPV4@</user_host> Modified: branches/1.0/package/phoneprov-tools/templates/spa942.conf =================================================================== --- branches/1.0/package/phoneprov-tools/templates/spa942.conf 2014-03-11 03:06:59 UTC (rev 6450) +++ branches/1.0/package/phoneprov-tools/templates/spa942.conf 2014-03-11 15:21:23 UTC (rev 6451) @@ -9,7 +9,8 @@ prov_path=/mnt/kd/tftpboot/linksys prov_file=@EXT@.xml macaddress_case=lower -account_suffix=_@MAC4@_@MODEL@ +#auto_account_prefix= +auto_account_suffix=_@MAC4@_@MODEL@ #dialplan_path=/mnt/kd/asterisk/includes dialplan_file=astlinux-phoneprov-exten.conf @@ -40,7 +41,7 @@ #<1019>host=10.10.20.29 context=internal-phones secret=@PASSWORD@ -defaultuser=@USERNAME@ +defaultuser=@ACCOUNT@ callerid="@CID_NAME@" <@EXT@> mailbox=@EXT@@default qualify=no @@ -178,7 +179,7 @@ <Display_Name_1_ ua="na"> @CID_NAME@ </Display_Name_1_> - <User_ID_1_ ua="na"> @USERNAME@ + <User_ID_1_ ua="na"> @ACCOUNT@ </User_ID_1_> <Password_1_ ua="na"> @PASSWORD@ </Password_1_> Modified: branches/1.0/package/phoneprov-tools/templates/yealink.conf =================================================================== --- branches/1.0/package/phoneprov-tools/templates/yealink.conf 2014-03-11 03:06:59 UTC (rev 6450) +++ branches/1.0/package/phoneprov-tools/templates/yealink.conf 2014-03-11 15:21:23 UTC (rev 6451) @@ -9,7 +9,8 @@ #prov_path=/mnt/kd/phoneprov/yealink prov_file=@MAC@.cfg macaddress_case=lower -account_suffix=_@MAC4@_@MODEL@ +#auto_account_prefix= +auto_account_suffix=_@MAC4@_@MODEL@ #dialplan_path=/mnt/kd/asterisk/includes dialplan_file=astlinux-phoneprov-exten.conf @@ -30,7 +31,7 @@ host=dynamic context=internal-phones secret=@PASSWORD@ -defaultuser=@USERNAME@ +defaultuser=@ACCOUNT@ callerid="@CID_NAME@" <@EXT@> mailbox=@EXT@@default qualify=no @@ -46,7 +47,7 @@ account.1.enable=1 account.1.label=@EXT@ -account.1.auth_name=@USERNAME@ +account.1.auth_name=@ACCOUNT@ account.1.user_name=@ACCOUNT@ account.1.password=@PASSWORD@ account.1.sip_server.1.address=@SIP_SERVER_IPV4@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |