From 37be8888204d438b25cf9d32e711ec50058be431 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Mon, 2 Nov 2015 16:28:18 +0000
Subject: [PATCH] Show SIP extensions on control panel

---
 src/freedombone-controlpanel | 45 +++++++++++++++++++++++++++---------
 1 file changed, 34 insertions(+), 11 deletions(-)

diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel
index 1de4b01ed..a3f3e4160 100755
--- a/src/freedombone-controlpanel
+++ b/src/freedombone-controlpanel
@@ -30,6 +30,7 @@
 
 COMPLETION_FILE=$HOME/freedombone-completed.txt
 SELECTED_USERNAME=
+SIP_CONFIG_FILE=/etc/sipwitch.conf
 
 function any_key {
     echo ' '
@@ -78,6 +79,26 @@ function add_user {
     fi
 }
 
+function show_sip_extensions {
+    if [ ! -f $SIP_CONFIG_FILE ]; then
+        return;
+    fi
+    clear
+    echo "SIP phone extensions:"
+    echo " "
+    while read ext; do
+        if [[ $ext == *"user id"* ]]; then
+            echo -n "    "
+            echo -n $(echo "$ext" | awk -F '"' '{print $2}' | awk -F '"' '{print $1}')
+            echo -n " "
+        fi
+        if [[ $ext == *"extension"* ]]; then
+            echo $(echo "$ext" | awk -F '>' '{print $2}' | awk -F '<' '{print $1}')
+        fi
+    done < $SIP_CONFIG_FILE
+    any_key 
+}
+
 function select_user {
     SELECTED_USERNAME=
     data=$(tempfile 2>/dev/null)
@@ -519,13 +540,14 @@ function menu_top_level {
         trap "rm -f $data" 0 1 2 5 15
         dialog --backtitle "Freedombone Control Panel" \
                --title "Control Panel" \
-               --radiolist "Choose an operation:" 13 70 6 \
+               --radiolist "Choose an operation:" 14 70 7 \
                1 "Backup and Restore" off \
-               2 "Logging on/off" off \
-               3 "Manage Users" off \
-               4 "Email Filtering Rules" off \
-               5 "Security Settings" off \
-               6 "Exit" on 2> $data
+               2 "Show SIP Phone Extensions" off \
+               3 "Logging on/off" off \
+               4 "Manage Users" off \
+               5 "Email Filtering Rules" off \
+               6 "Security Settings" off \
+               7 "Exit" on 2> $data
         sel=$?
         case $sel in
             1) exit 1;;
@@ -533,11 +555,12 @@ function menu_top_level {
         esac
         case $(cat $data) in
             1) menu_backup_restore;;
-            2) logging_on_off;;
-            3) menu_users;;
-            4) menu_email;;
-            5) freedombone-sec;;
-            6) break;;
+            2) show_sip_extensions;;
+            3) logging_on_off;;
+            4) menu_users;;
+            5) menu_email;;
+            6) freedombone-sec;;
+            7) break;;
         esac
     done
 }
-- 
GitLab