Bob Mottram před 9 roky
rodič
revize
16dfb20f1f
1 změnil soubory, kde provedl 87 přidání a 0 odebrání
  1. 87
    0
      src/freedombone

+ 87
- 0
src/freedombone Zobrazit soubor

@@ -316,6 +316,8 @@ GET_IP_ADDRESS_URL="checkip.two-dns.de"
316 316
 VOIP_SERVER_PASSWORD=
317 317
 # Port on which VoIP server listens
318 318
 VOIP_PORT=64738
319
+SIP_SERVER_PASSWORD=
320
+SIP_PORT=5060
319 321
 
320 322
 # Location of VoIP database and configuration
321 323
 VOIP_DATABASE="mumble-server.sqlite"
@@ -10685,6 +10687,16 @@ function get_voip_server_password {
10685 10687
   fi
10686 10688
 }
10687 10689
 
10690
+function get_sip_server_password {
10691
+  if [ -f /home/$MY_USERNAME/README ]; then
10692
+      if grep -q "SIP server password" /home/$MY_USERNAME/README; then
10693
+          if [ ! $SIP_SERVER_PASSWORD ]; then
10694
+              SIP_SERVER_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "SIP server password" | awk -F ':' '{print $2}' | sed 's/^ *//')
10695
+          fi
10696
+      fi
10697
+  fi
10698
+}
10699
+
10688 10700
 function install_ipfs {
10689 10701
   if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
10690 10702
       return
@@ -10886,6 +10898,80 @@ function install_voip {
10886 10898
   echo 'install_voip' >> $COMPLETION_FILE
10887 10899
 }
10888 10900
 
10901
+function install_sip {
10902
+  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
10903
+      return
10904
+  fi
10905
+  if grep -Fxq "install_sip" $COMPLETION_FILE; then
10906
+      return
10907
+  fi
10908
+
10909
+  apt-get -y install sipwitch
10910
+
10911
+  get_sip_server_password
10912
+  if [ ! $SIP_SERVER_PASSWORD ]; then
10913
+      SIP_SERVER_PASSWORD="$(openssl rand -base64 10)"
10914
+  fi
10915
+
10916
+  echo '<?xml version="1.0"?>' > /etc/sipwitch.conf
10917
+  echo '<sipwitch>' >> /etc/sipwitch.conf
10918
+  echo '<provision>' >> /etc/sipwitch.conf
10919
+
10920
+  echo "<user id=\"$MY_USERNAME\">" >> /etc/sipwitch.conf
10921
+  echo '<extension>201</extension>' >> /etc/sipwitch.conf
10922
+  echo "<secret>$SIP_SERVER_PASSWORD</secret>" >> /etc/sipwitch.conf
10923
+  echo "<display>$MY_USERNAME 201</display>" >> /etc/sipwitch.conf
10924
+  echo '</user>' >> /etc/sipwitch.conf
10925
+
10926
+  echo '</provision>' >> /etc/sipwitch.conf
10927
+  echo '<access>' >> /etc/sipwitch.conf
10928
+  echo '</access>' >> /etc/sipwitch.conf
10929
+  echo '<stack>' >> /etc/sipwitch.conf
10930
+  echo "  <localnames>$DEFAULT_DOMAIN_NAME</localnames>" >> /etc/sipwitch.conf
10931
+  echo '  <mapped>200</mapped>' >> /etc/sipwitch.conf
10932
+  echo '  <threading>2</threading>' >> /etc/sipwitch.conf
10933
+  echo '  <interface>*</interface>' >> /etc/sipwitch.conf
10934
+  echo '  <dumping>false</dumping>' >> /etc/sipwitch.conf
10935
+  echo '  <system>system</system>' >> /etc/sipwitch.conf
10936
+  echo '  <anon>anonymous</anon>' >> /etc/sipwitch.conf
10937
+  echo '</stack>' >> /etc/sipwitch.conf
10938
+  echo '<timers>' >> /etc/sipwitch.conf
10939
+  echo '  <!-- ring every 4 seconds -->' >> /etc/sipwitch.conf
10940
+  echo '  <ring>4</ring>' >> /etc/sipwitch.conf
10941
+  echo '  <!-- call forward no answer after x rings -->' >> /etc/sipwitch.conf
10942
+  echo '  <cfna>4</cfna>' >> /etc/sipwitch.conf
10943
+  echo '  <!-- call reset to clear cid in stack, 6 seconds -->' >> /etc/sipwitch.conf
10944
+  echo '  <reset>6</reset>' >> /etc/sipwitch.conf
10945
+  echo '</timers>' >> /etc/sipwitch.conf
10946
+  echo '<!-- we have 2xx numbers plus space for external users -->' >> /etc/sipwitch.conf
10947
+  echo '<registry>' >> /etc/sipwitch.conf
10948
+  echo '  <prefix>200</prefix>'
10949
+  echo '  <range>100</range>' >> /etc/sipwitch.conf
10950
+  echo '  <keysize>77</keysize>' >> /etc/sipwitch.conf
10951
+  echo '  <mapped>200</mapped>' >> /etc/sipwitch.conf
10952
+  echo '  <!-- <realm>GNU Telephony</realm> -->' >> /etc/sipwitch.conf
10953
+  echo '</registry>' >> /etc/sipwitch.conf
10954
+  echo '<routing>' >> /etc/sipwitch.conf
10955
+  echo '</routing>' >> /etc/sipwitch.conf
10956
+  echo '</sipwitch>' >> /etc/sipwitch.conf
10957
+
10958
+  service sipwitch start
10959
+
10960
+  if ! grep -q "SIP Server" /home/$MY_USERNAME/README; then
10961
+      echo '' >> /home/$MY_USERNAME/README
10962
+      echo '' >> /home/$MY_USERNAME/README
10963
+      echo 'SIP Server' >> /home/$MY_USERNAME/README
10964
+      echo '==========' >> /home/$MY_USERNAME/README
10965
+      echo "SIP server username: $MY_USERNAME" >> /home/$MY_USERNAME/README
10966
+      echo "SIP server extension: 201" >> /home/$MY_USERNAME/README
10967
+      echo "SIP server password: $SIP_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
10968
+      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
10969
+      chmod 600 /home/$MY_USERNAME/README
10970
+  fi
10971
+
10972
+  echo 'install_sip' >> $COMPLETION_FILE
10973
+}
10974
+
10889 10975
 function install_final {
10890 10976
   if grep -Fxq "install_final" $COMPLETION_FILE; then
10891 10977
       return
@@ -10993,6 +11079,7 @@ configure_firewall_for_xmpp
10993 11079
 install_irc_server
10994 11080
 configure_firewall_for_irc
10995 11081
 install_voip
11082
+install_sip
10996 11083
 install_wiki
10997 11084
 install_blog
10998 11085
 mark_blog_domain