我可以在数据库中包含一部手机,以便实时使用。所以,这个代码(来自 /etc/asterisk/sip.conf
):
[phone]
type=friend
username=phone
secret=12345
host=dynamic
disallow=all
allow=g729
allow=alaw
context=somecontext
nat=no
insecure=port,invite
它现在在一个数据库中(使用mysql)。
现在,我想使用register指令包含一个sip中继,但我不知道如何做到这一点。
我怎样才能包括 register => <username>:<password>@<provider>
也在数据库里?
2条答案
按热度按时间js4nwp541#
register指令应该是sip.conf[general]部分中的一个静态条目,因此虽然可以使用static realtime执行此操作,但是加载动态realtime用户时可能会遇到问题。
最好的选择是在sip.conf中使用#exec指令。这将允许您运行一个脚本,从db字符串读取寄存器行。
为此,您需要在asterisk.conf中启用“execinclude=yes”,然后在sip.conf[general]部分中添加一行来运行脚本,例如:#exec/etc/asterisk/scripts/yourŠscriptŠfile
下面是leif madsen通过php脚本使用#exec设置externip=paramater的一个很好的例子:https://leifmadsen.wordpress.com/2011/02/27/using-exec-to-set-externaddr-in-sip-conf/
6vl6ewon2#
你有两个选择。
1) 静态实时。只要把mysql一行一行地放入整个文件
https://www.voip-info.org/asterisk-realtime-static
在这种模式下,当您发出星号重载时,只需逐行从数据库中读取并将其解释为文本文件。
2) 动态实时。
在这种模式下,星号检查数据库只有当有身份验证请求和匹配的对等方。
https://www.voip-info.org/asterisk-realtime-sip/
使用regserver param放置注册服务器。