我可以在数据库中包含一部电话以供实时使用。因此,此代码(来自/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>
?
答案 0 :(得分:1)
您有2个选择。
1)静态实时。只需逐行放入mysql整个文件
https://www.voip-info.org/asterisk-realtime-static
在这种模式下,当您发出星号时,重新加载它只需逐行从数据库读取并将其解释为文本文件即可。
2)动态实时。
在这种模式下,仅当有身份验证请求且仅对匹配的对等方请求时,星号才检查数据库。
https://www.voip-info.org/asterisk-realtime-sip/
使用regserver参数放置您的注册服务器。
答案 1 :(得分:0)
register伪指令应该是sip.conf [general]部分中的静态条目,因此尽管可以通过静态实时方式执行此操作,但是然后可能在加载动态实时用户时遇到问题。
您最好的选择是在sip.conf中使用#exec指令。这将允许您运行脚本以从db字符串读取该注册行。
为此,您需要在asterisk.conf中启用“ execinclude = yes”,然后在sip.conf [general]部分中添加一行以运行脚本,例如: #exec / etc / asterisk / scripts / your_script_file
这是Leif Madsen的一个很好的示例,它使用#exec通过php脚本设置externip =参数: https://leifmadsen.wordpress.com/2011/02/27/using-exec-to-set-externaddr-in-sip-conf/