我将 Asterisk CDR 后端配置为 PostgreSQL,并且两个注册对等点之间的通话一切正常。
问题是当用户呼叫未注册的对等方时。我希望 Asterisk 插入该记录,但它没有插入(它向呼叫者的 SIP 客户端响应 503/服务不可用... 可能与此有关)。
我怀疑问题可能出在我配置用户注册的方式上,但我不是专家,所以我真的不知道我在做什么。无论如何,我会报告任何我认为对解决问题有用的信息,如果我错过了一些重要的东西,请询问,我会添加它。我使用的是 Asterisk 13。
cdr.conf
:
[general]
unanswered = yes
extensions.conf
:
[default]
switch => Realtime/default@extensions
Pjsip 对等点和扩展也是从数据库中获取的。
示例记录asterisk.ps_endpoints
:
(id=100, transport=transport-udp, aors=100, auth=100, context=default, disallow=all, allow=ulaw, direct_media=no, identify_by=username, rtp_timeout=10)
示例记录asterisk.ps_aors
:
(id=100, max_contacts=1, remove_existing=yes, qualify_frequency=10)
示例记录asterisk.ps_auths
:
(id=100, auth_type=userpass, password=*****, username=100)
示例记录asterisk.extensions
:
(id=7, context=default, exten=100, priority=1, app=Dial, appdata=PJSIP/100)
笔记:
asterisk.extensions
除了表盘以外,该表不包含任何其他内容。- 上述示例中未指定的字段为 NULL。
- 我更喜欢不需要添加更多记录的解决方案
asterisk.extensions
对于每个用户(但我可以毫无问题地添加一堆“静态”新扩展)。