FAQ
The questions asked most often about Avaya IP Office SMDR Connector, answered.
Why is there a separate listener? Why not point the PBX at Odoo?
Because SMDR is a raw TCP stream, not HTTP. Odoo speaks HTTP, and holding a long-lived socket open in a worker is the wrong job for a web worker.
The listener also gives you the thing that matters most in practice: a SQLite spool. A record is written the moment it is parsed and removed only once Odoo confirms it is stored, so an Odoo outage, upgrade or restart costs delay and nothing else.
The listener is running and no calls arrive
Almost always the direction. The PBX is the TCP client — IP Office dials out to the address and port you set in System → SMDR, and the listener waits to be connected to.
Pointing the listener at the PBX instead fails silently: both ends sit there looking perfectly healthy.
Does it record calls?
No. This module logs call metadata from SMDR — who, when, how long, what result. Recordings are a different system and are not included.
Why does it not match my contacts?
Matching compares the trailing digits, nine by default, which ignores the country code and the trunk prefix. If your numbers are stored with country codes and you are getting false matches, raise it. If your PBX adds a prefix, lower it — but never below 6, which the field enforces.
Then select the affected calls and press Reprocess.
Two contacts have the same number. Which one wins?
The first found, with companies before their child contacts. Trailing-digit matching cannot distinguish them, which is why the raw external number stays on the call for you to check.
Calls appeared twice. What happened?
Almost certainly PBX_UTC_OFFSET_MINUTES changed on a running system whose IP Office release does not emit a unique call id. In that case the id is synthesised from the timestamp, so shifting the clock makes the same call look like two.
Change that setting during a quiet period, or set the PBX clock to UTC and leave the offset at zero.
Note that ordinary retries do not cause duplicates: the listener retries by design, and uniqueness is enforced by a database constraint rather than by application logic — because logic that has to be remembered eventually is not.
A hunt group produced several calls for one ring
One SMDR record per leg is what IP Office emits, and all legs are stored because discarding them would lose who actually picked up.
Missed-call activities are suppressed for hunt groups, so you do not get a task per leg.
Can a sales manager see the webhook token?
No. Tokens are on a field restricted to the Avaya Technical Administrator group and masked everywhere in the interface. A sales manager needs the call history, not the credentials — that is what the three-group split is for.
Is a dialled number ever written to a log file?
No, at any log level. The raw SMDR record is stored in the database, where access control applies. A phone number in a server log is a phone number in every backup of that log and on the screen of everyone with shell access.
Can I tell a wrong token from a blocked IP?
No, and deliberately: both return 401. A probe should not be able to work out whether it guessed the token wrong or is simply calling from the wrong place.
Do old calls get deleted automatically?
Only if you switch it on. Delete calls after is 0 by default. Archiving — which hides but keeps — is also off. A call log is evidence, so destroying it on a timer is a choice.
Does the listener do TLS?
No. Put Odoo behind HTTPS, and tunnel the SMDR connection if the listener is not on a trusted network with the PBX.
Which Odoo versions?
18.0 only. A 19.0 port is planned and will not be claimed until it has been installed and tested there.