В мануале на asterisk 1.6.0.1, страница 16 внизу сказано:
You may also include the output of a program with the #exec directive, if you enable it in asterisk.conf.
In asterisk.conf, add the execincludes = yes statement in the options
section:
[options]
execincludes=yes
The exec directive is used like this:
#exec /usr/local/bin/myasteriskconfigurator.sh
Соответственно, чтобы не редактировать конфиг h323.conf при переносе на другие системы и при смене ip-адреса сервера, написал простенький скрипт
get_bindaddr_from_eth0.sh, генерирующий строку
bindaddr = x.y.z.k, следующего содержания :
#!/bin/bash
echo "bindaddr = `ifconfig | grep -A1 'eth0' | grep -o 'inet addr:[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | sed -e 's/inet addr://g'`"
В h323.conf строку
bindaddr = x.y.z.k закоментировал, вместо неё поставил:
#exec /etc/asterisk/get_bindaddr_from_eth0.sh
В asterisk.conf сделал строчку:
...
[options]
...
execincludes=yes ; support #exec in config files
...
В результате проделанных действий asterisk слушает сокет 0.0.0.0:1720 вместо положенного x.y.z.k:1720 , как результат, при звонках по h323 имеем отсутствие слышимости. При этом в логе он матерится следующим образом:
[Nov 8 21:04:20] WARNING[13527] config.c: Cannot perform #exec unless execincludes option is enabled in asterisk.conf (options section)!
Кто-нибудь с таким сталкивался? Это бага, или я чего-то не доделал? Кому-нибудь удавалось успешно использовать директиву #exec?