Ich habe das Asterisk CDR-Backend für PostgreSQL konfiguriert und alles funktioniert einwandfrei für Anrufe zwischen zwei registrierten Peers.
Das Problem ist, wenn ein Benutzer einen nicht registrierten Peer anruft. Ich möchte, dass Asterisk diesen Datensatz einfügt, aber das tut es nicht (es antwortet auf den SIP-Client des Anrufers mit 503 / Service nicht verfügbar ... vielleicht hat das etwas damit zu tun).
Ich vermute, dass das Problem in der Art und Weise liegt, in der ich die Benutzerregistrierung konfiguriert habe, aber ich bin kein Experte, also weiß ich nicht wirklich, was ich tue. Wie auch immer, ich melde alle Informationen, die ich zur Lösung des Problems für nützlich halte. Wenn ich etwas Wichtiges vermisse, bitte fragen Sie und ich werde es hinzufügen. Ich benutze Asterisk 13.
cdr.conf
:
[general]
unanswered = yes
extensions.conf
:
[default]
switch => Realtime/default@extensions
Pjsip-Peers und -Erweiterungen werden ebenfalls aus der DB übernommen.
Beispielsatz in 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)
Beispielsatz in asterisk.ps_aors
:
(id=100, max_contacts=1, remove_existing=yes, qualify_frequency=10)
Beispielsatz in asterisk.ps_auths
:
(id=100, auth_type=userpass, password=*****, username=100)
Beispielsatz in asterisk.extensions
:
(id=7, context=default, exten=100, priority=1, app=Dial, appdata=PJSIP/100)
Anmerkungen:
- Die Tabelle
asterisk.extensions
enthält nichts anderes als die Zifferblätter. - Nicht angegebene Felder in den obigen Beispielen sind NULL.
- Ich würde eine Lösung vorziehen, bei der nicht
asterisk.extensions
für jeden Benutzer mehr Datensätze hinzugefügt werden (aber ich habe kein Problem damit, eine Reihe "statischer" neuer Erweiterungen hinzuzufügen).