Asterisk 为什么不推荐使用星号表示的动态实时?

Asterisk 为什么不推荐使用星号表示的动态实时?,asterisk,sip,asteriskami,sip-server,Asterisk,Sip,Asteriskami,Sip Server,在extconfig.conf中,他们提到了 "However, note that using dynamic realtime extensions is not recommended anymore as a best practice; instead, you should consider writing a static dialplan with proper data abstraction via a tool like func_odbc." 1) 为什么星号不推荐

在extconfig.conf中,他们提到了

 "However, note that using dynamic realtime extensions is not recommended anymore as a best practice; instead, you should consider writing a static dialplan with proper data abstraction via a tool like func_odbc." 
1) 为什么星号不推荐动态实时扩展? 2) 如何使用liek func_odbc工具进行静态拨号计划和数据抽象


我的要求是有更多的扩展(在本例中为手机号码),如何动态地将它们添加到sip.conf并将其注册到sip服务器

动态实时存在一些问题

最重要的问题是计划

当/如果您使用精确的拨号计划,如完整号码匹配-它工作正常。但当您使用模式时,它会在上下文中搜索模式。为此,每次访问dialplan时,它都会从db请求此上下文中的所有记录。这真的很糟糕,但没有简单的方法来解决它。例如,您有10行模式_011的拨号计划。和同一拨号计划中的其他模式/号码,总行数为1000。您调用011123456788,它请求优先级1行(db do 1000行检查),之后是优先级2行(db do 1000行检查)。因此,每一个新呼叫都有10x1000=10000 db的行

如果希望动态拨号计划具有高负载,请使用db配置存储(对于拨号计划更改,例如每10分钟重新加载一次),并使用func_odbc签入扩展名/拨号计划以查看功能。这样,您就可以更好地控制sql查询。当然,这需要您了解mysql并能够构建查询,但对于任何具有10-20次以上调用的动态pbx,没有其他方法


实时性是另一回事。它在启用对等更新的db更新中存在问题,或者在启用缓存的情况下不更新对等信息。你只能接受它。

查看这一链接:@os11k谢谢你的回答。这个链接说,在res_odbc.conf中,[asterisk]enabled=>yes dsn=>asterisk connector username=>asterisk password=>welcome pooling=>no limit=>1 pre connect=>yes,pooling和limit选项很有用,可以帮助我们从db获得多个连接(达到上述限制)。所以我应该将限制改为100万而不是“1”,这样我就有了更多的多个连接。这不会使我的数据库更具可伸缩性吗?