## FreePBX tftp server This is an advanced tftp server that automatically generates config files for cisco sip phones. ## How it works FreePBX server syncs with FreePBX. Binding users to phones is carried out through the fax field in the user properties from FreePBX. The tftp server receives a request for a file of the form `SEP.cfg.xml`, makes a request to the FreePBX database, generates a config and sends it to the phone. All other files are taken from provided folder as-is. ## Requirements: * [go >= 1.16](https://golang.org) * [FreePBX >= 15](https://www.freepbx.org) ## Flags: ```bash Usage of ./freepbx-tftp-server: -freepbx_db string Set freepbx db connection string (default "asterisk:password@tcp(127.0.0.1)/asterisk") -sep_template_file string Set path to sep template file (default "./sep-cisco.cnf.xml.tpl") -workdir string Set working directory (default "/tftpboot") ``` flags may be set via ENV variables by capitalizing flag name, e.g. ```bash SEP_TEMPLATE_FILE=/tftpboot/sep-cisco.cnf.xml.tpl ``` Sample docker-compose.yml: ```yaml version: '3' services: tftp: container_name: tftp hostname: tftp build: https://gogs.halsbox.ru/hal/freepbx-tftp-server.git image: halsbox/freepbx-tftp-server:latest restart: always volumes: - ${PERSISTENT_STORAGE_PATH}/tftpboot:/tftpboot environment: - FREEPBX_DB=${MYSQL_USER}:${MYSQL_PASSWORD}@tcp(${MYSQL_SERVER})/${MYSQL_DATABASE} - SEP_TEMPLATE_FILE=/tftpboot/sep-cisco.cnf.xml.tpl network_mode: host ```