[asterisk-dev] [Code Review] CDR: add Dialed Number Identifier field (DNID) field in record
Alec Davis
sivad.a at paradise.net.nz
Tue Jan 12 00:32:30 CST 2010
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/455/
-----------------------------------------------------------
(Updated 2010-01-12 00:32:30.681200)
Review request for Asterisk Developers and Russell Bryant.
Changes
-------
changes as requested.
testing:
Tested on 1.6.1 server with mysql server, dnid was succesfully recorded.
Summary
-------
CDR record fields are missing the number the inbound caller dialed, this is important where a corporate has multiple DDI's and want to know how each of them are performing.
We have previously had customize the 'userfield' or the like, in the dialplan with a line as follows:
exten => s,n,Set(CDR(userfield)=${CALLERID(dnid)})
Now, with the addition of the 'dnid' field in the database (mysql in our case) the 'dnid' field is automatically filled.
cdr collector support:
yes (after user adds required 'dnid' field):
cdr_adaptive_odbc, cdr_mysql, cdr_pgsql and cdr_tds will automatically fill in field if 'dnid' field exists in database.
cdr_custom requires user added field in cdr_custom.conf like ;Master.csv => "${CDR(clid)}",${CDR(dnid)}",
maybe (requires cdr collector supporting code):
cdr_custom, requires optional user config flag and supporting code, IE. cdr_csv:logdnid=yes.
Has been suggested to ignore cdr_custom, as users interested in 'dnid' wouldn't seriously be using cdr_custom.
cdr_radius, requires optional user config flag and supporting code.
Tilghman considered cdr_radius 'adaptive support', but it has no real method for querying what was supported on the backend.
Diffs (updated)
-----
trunk/main/cdr.c 239388
Diff: https://reviewboard.asterisk.org/r/455/diff
Testing
-------
added additional mysql field with following systax;
mysql> alter table cdr ADD (dnid varchar(80) not null);
made inbound test calls, from my cell phone (021xxxx), and restricted number.
The DNID is only 4 digits, as that is what our Telco presents us with.
The 'userfield' is still being customized from the dialplan. My extension is 4866. 8888 was unassigned.
mysql> select calldate,clid,dnid,dst,userfield,dcontext,lastapp,lastdata,duration from cdr where dcontext like "ivr2%" and dnid like "9%";
+---------------------+-------------------------+------+------+-----------------+-----------------------------+---------+---------------+----------+
| calldate | clid | dnid | dst | userfield | dcontext | lastapp | lastdata | duration |
+---------------------+-------------------------+------+------+-----------------+-----------------------------+---------+---------------+----------+
| 2010-01-07 20:52:52 | "Alec Davis" <21496xxx> | 9100 | 4866 | 9100-Alec Davis | ivr2-bdt-dialledbyextension | Dial | DAHDI/g0/4866 | 22 |
| 2010-01-07 20:56:46 | | 9100 | 4866 | 9100-Alec Davis | ivr2-bdt-dialledbyextension | Dial | DAHDI/g0/4866 | 17 |
| 2010-01-07 21:23:44 | "Alec Davis" <21496xxx> | 9888 | 8888 | 9888- | ivr2-bdt-dialledbyextension | Dial | DAHDI/g0/8888 | 16 |
| 2010-01-07 21:24:29 | "Alec Davis" <21496xxx> | 9888 | 4866 | 9888-Alec Davis | ivr2-bdt-dialledbyextension | Dial | DAHDI/g0/4866 | 20 |
+---------------------+-------------------------+------+------+-----------------+-----------------------------+---------+---------------+----------+
4 rows in set (0.01 sec)
Thanks,
Alec
More information about the asterisk-dev
mailing list