79 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| echo "========================================="
 | |
| echo "    Asterisk container starting up       "
 | |
| echo "========================================="
 | |
| 
 | |
| if [[ ! -f /etc/asterisk/asterisk.conf ]]
 | |
| then
 | |
| 	# extract default distro config in volume
 | |
| 	echo " -- No asterisk.conf found, unpacking distribution config for production"
 | |
| 	cd /etc/asterisk
 | |
| 	tar zxf /etc/ast-conf.tgz
 | |
| 
 | |
| 	# (also) extract default distro config in dpkg-dist for easy reference
 | |
| 	rm -rf dpkg-dist
 | |
| 	mkdir dpkg-dist
 | |
| 	cd dpkg-dist
 | |
| 	tar zxf /etc/ast-conf.tgz
 | |
| else
 | |
| 	# extract default distro config in dpkg-dist for easy reference
 | |
| 	echo " -- Existing asterisk.conf found, unpacking distribution config in reference folder"
 | |
| 	cd /etc/asterisk
 | |
| 	rm -rf dpkg-dist
 | |
| 	mkdir dpkg-dist
 | |
| 	cd dpkg-dist
 | |
| 	tar zxf /etc/ast-conf.tgz
 | |
| fi
 | |
| 
 | |
| # ensure cdr-csv subdir exists
 | |
| mkdir -p /var/log/asterisk/cdr-csv
 | |
| 
 | |
| # fix permissions
 | |
| chown -R asterisk:asterisk /etc/asterisk
 | |
| chmod -R o+r /etc/asterisk
 | |
| chown -R asterisk:asterisk /var/spool/asterisk
 | |
| chmod -R o+r /var/spool/asterisk
 | |
| chown -R asterisk:asterisk /var/log/asterisk
 | |
| chmod -R o+r /var/log/asterisk
 | |
| 
 | |
| # detect public IPv4 address and configure for sip
 | |
| if [ -z "$IP4" ]; then
 | |
|   IP4=`curl -4 -s http://icanhazip.com/`
 | |
|   echo " -- Detected external (public) IPv4 address $IP4 (requested from icanhazip)"
 | |
|   echo " -- You can override this by passing the IP4 environment variable with the desired address"
 | |
| else
 | |
|   echo " -- Detected external (public) IPv4 address $IP4 (set from environment)"
 | |
| fi
 | |
| sed -ri "s/external_media_address=(([0-9]{1,3}\.){3}[0-9]{1,3})/external_media_address=$IP4/g" /etc/asterisk/pjsip.conf
 | |
| sed -ri "s/external_signaling_address=(([0-9]{1,3}\.){3}[0-9]{1,3})/external_signaling_address=$IP4/g" /etc/asterisk/pjsip.conf
 | |
| 
 | |
| # configure msmtp
 | |
| echo "account default" > /etc/msmtprc
 | |
| if [ -n "$SMARTHOST" ]; then
 | |
|   IFS=: read -r SMARTHOST_HOST SMARTHOST_PORT <<< "$SMARTHOST"
 | |
|   echo " -- Expanding '$SMARTHOST' as default SMTP relay"
 | |
| fi
 | |
| if [ -n "$SMARTHOST_HOST" ]; then
 | |
|   echo "host $SMARTHOST_HOST" >> /etc/msmtprc
 | |
|   echo " -- Set '$SMARTHOST_HOST' as default SMTP relay host"
 | |
| else 
 | |
|   echo "host mail" >> /etc/msmtprc
 | |
|   echo " -- Using 'mail' as default SMTP relay host"
 | |
| fi
 | |
| if [ -n "$SMARTHOST_PORT" ]; then
 | |
|   echo "port $SMARTHOST_PORT" >> /etc/msmtprc
 | |
|   echo " -- Set $SMARTHOST_PORT as default SMTP relay port"
 | |
| else 
 | |
|   echo "port 587" >> /etc/msmtprc
 | |
|   echo " -- Using 587 as default SMTP relay port"
 | |
| fi
 | |
| echo "from msmtp@asterisk" >> /etc/msmtprc
 | |
| # create symlink for asterisk to use
 | |
| ln -s /usr/bin/msmtp /usr/sbin/sendmail
 | |
| 
 | |
| # go live
 | |
| echo " -- Launching Asterisk"
 | |
| /usr/sbin/asterisk -f -p -U asterisk
 | |
| 
 |