add v22
This commit is contained in:
		
							
								
								
									
										24
									
								
								22-debian/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								22-debian/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| FROM debian:bookworm-slim | ||||
| LABEL maintainer="Florian Overkamp <docker@flrn.eu>" | ||||
|  | ||||
| ADD asterisk-wrapper.sh /usr/local/sbin/asterisk-wrapper.sh | ||||
| ADD asterisk-build.sh /usr/local/sbin/asterisk-build.sh | ||||
|  | ||||
| RUN apt-get update && apt-get upgrade -y && \ | ||||
|     apt-get -y install pkg-config curl msmtp sox mpg123 && \ | ||||
|     asterisk-build.sh && rm /usr/local/sbin/asterisk-build.sh && \ | ||||
|     cd /etc/asterisk && tar czf /etc/ast-conf.tgz * | ||||
|  | ||||
| VOLUME /etc/asterisk | ||||
| VOLUME /var/spool/asterisk | ||||
| VOLUME /var/log/asterisk | ||||
| VOLUME /var/lib/asterisk/agi-bin | ||||
| VOLUME /var/lib/asterisk/sounds/prompts | ||||
| VOLUME /usr/local/bin | ||||
|  | ||||
| EXPOSE 5060/udp | ||||
| EXPOSE 5060 | ||||
|  | ||||
| WORKDIR /etc/asterisk | ||||
| CMD ["/usr/local/sbin/asterisk-wrapper.sh"] | ||||
|  | ||||
							
								
								
									
										25
									
								
								22-debian/asterisk-build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										25
									
								
								22-debian/asterisk-build.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| apt-get -y install build-essential libssl-dev libedit-dev uuid-dev libxml2-dev libsqlite3-dev | ||||
|  | ||||
| cd /usr/src | ||||
| curl -L http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22-current.tar.gz > asterisk.tar.gz | ||||
| tar zxf asterisk.tar.gz  | ||||
| cd asterisk-22.* | ||||
| # set compiler flags for cross system compatibility | ||||
| export ASTCFLAGS="-g -O2 -march=x86-64 -fstack-protector-strong -Wformat -Werror=format-security" | ||||
| # configure to use the bundled jansson libs (less dependancy on base image) | ||||
| ./configure --with-jansson-bundled | ||||
| make | ||||
| make install | ||||
| make samples | ||||
|  | ||||
| cd /usr/src | ||||
| rm -rf * | ||||
|  | ||||
| apt-get -y purge build-essential | ||||
| apt -y autoremove | ||||
|  | ||||
| adduser --system --home /var/lib/asterisk --shell /sbin/nologin --group asterisk | ||||
| chown -R asterisk:asterisk /var/lib/asterisk | ||||
|  | ||||
							
								
								
									
										78
									
								
								22-debian/asterisk-wrapper.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										78
									
								
								22-debian/asterisk-wrapper.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| #!/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 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user