freeswitch container: fix config generator, add support for static xml configs
All checks were successful
/ build-freeswitch (push) Successful in 19m54s
All checks were successful
/ build-freeswitch (push) Successful in 19m54s
This commit is contained in:
parent
a86ed9b3c3
commit
33ebe1a0b2
2 changed files with 48 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
||||||
<configuration name="modules.conf" description="Modules">
|
<configuration name="modules.conf" description="Modules">
|
||||||
<modules>
|
<modules>
|
||||||
<load module="mod_console"/>
|
<load module="mod_console"/>
|
||||||
{{ $_, $module := range .Modules }}<load module="{{ $module }}" />{{ end }}
|
{{ range $_, $module := .Modules }}<load module="{{ $module }}" />{{ end }}
|
||||||
</modules>
|
</modules>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
|
@ -2,9 +2,13 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"embed"
|
"embed"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"io/fs"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"github.com/kelseyhightower/envconfig"
|
"github.com/kelseyhightower/envconfig"
|
||||||
|
@ -17,6 +21,7 @@ type Options struct {
|
||||||
LogLevel string `envconfig:"LOG_LEVEL" default:"info"`
|
LogLevel string `envconfig:"LOG_LEVEL" default:"info"`
|
||||||
Gateway Gateway `envconfig:"GATEWAY"`
|
Gateway Gateway `envconfig:"GATEWAY"`
|
||||||
Modules []string `envconfig:"MODULES" default:"mod_event_socket,mod_sofia,mod_db,mod_dialplan_xml,mod_g723_1,mod_g729,mod_amr,mod_b64,mod_opus,mod_av,mod_sndfile,mod_native_file,mod_png,mod_local_stream,mod_tone_stream,mod_lua,mod_say_en"`
|
Modules []string `envconfig:"MODULES" default:"mod_event_socket,mod_sofia,mod_db,mod_dialplan_xml,mod_g723_1,mod_g729,mod_amr,mod_b64,mod_opus,mod_av,mod_sndfile,mod_native_file,mod_png,mod_local_stream,mod_tone_stream,mod_lua,mod_say_en"`
|
||||||
|
StaticXMLDir string `envconfig:"STATIC_XML_DIR" default:"/config"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Gateway struct {
|
type Gateway struct {
|
||||||
|
@ -141,6 +146,48 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("</section>")
|
fmt.Println("</section>")
|
||||||
|
|
||||||
|
staticConfigDirectories, err := os.ReadDir(options.StaticXMLDir)
|
||||||
|
if err != nil {
|
||||||
|
if errors.Is(err, os.ErrNotExist) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, entry := range staticConfigDirectories {
|
||||||
|
if !entry.IsDir() {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
fmt.Printf("<section name=\"%s\">\n", entry.Name())
|
||||||
|
|
||||||
|
filepath.WalkDir(filepath.Join(options.StaticXMLDir, entry.Name()), func(path string, d fs.DirEntry, err error) error {
|
||||||
|
if d.IsDir() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("<!-- %s -->\n", path)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("<!-- ERROR: %v -->", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := os.Open(path)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
data, err := io.ReadAll(f)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
fmt.Println(string(data))
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
fmt.Println("</section>")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *Gateway) Decode(value string) error {
|
func (g *Gateway) Decode(value string) error {
|
||||||
|
|
Loading…
Reference in a new issue