cat /etc/kamailio.cfg
debug=2
#!defenvs DB_ENGINE
#!defenv DB_PASS
log_stderror=yes
children=1
fork=no
loadmodule "pv.so"
alias="test.com"
loadmodule "sl.so"
loadmodule "corex.so"
loadmodule "ctl.so"
loadmodule "kex.so"request_route {
sl_send_reply("200", "OK");
exit;
}
export DB_ENGINE='db_mysql'
export DB_PASS='passwd'
启动kamailio
kamcmd core.ppdefines_full
看到下面的内容:
{
name: DB_PASS
type: 0
value: passwd
}
{
name: DB_ENGINE
type: 0
value: "db_mysql"
}
defenvs比defenv多了双引号(可直译为定义环境变量)
接着进行比较
#!subst "!DBUSER!root!g"
#!substdef "!DBPASSWD!1234!g"
subst和substdef有什么区别呢?(可直译为替换,代替,或者取代)
运行kamcmd core.ppdefines_full,发现DBUSER没有定义,而DBPASSWD有定义,其他是一样的。
英文是这样描述substdef的:
Similar to #!subst, but in addition it adds a ID subst.
substdefs多了双引号。
其他不赘述,查文档即可。