Я пишу CDR в mssql таблицу с cdr_adaptive_odbc. Это хорошо работает в том смысле, что запись записана после вызова.
Но я хотел бы записать cdr_record, когда вызов входит, прежде чем он будет отвечен/прерван.
Причина: я хотел бы добавить функцию в нашей системе CRM: нажмите эту кнопку и посмотрите phonenumber входящего вызова, где запись CDR "звонит" или что-то. Затем соответствуйте phonenumber клиентским записям и покажите информацию о вызывающем абоненте на экране.
(Я не хочу продвигать число к CRM, это должно быть получение по запросу),
Я попробовал это:
exten => 13,1,noop()
same => n,forkcdr()
same => n,Wait(2)
same => n,dial(SIP/L13)
same => n,hangup()
но это не создает новую запись в базе данных.
Kama iji CDR, ana m abanye CEL na tebụl. Mgbe ahụ enwere m ike ịhụ oku a malitere (ihe omume 1, CHANNEL_START), wee hụ ma ọ bụrụ na njikọ ahụ nwere ihe kwekọrọ na ya na ihe omume 4 ỌZỌ na ihe omume nwere ụdị 2 CHANNEL_END
m wee chọta onye ahịa ikpeazụ-id na nọmba ekwentị ahụ ( onye ahịa nwere ike ịdenye aha ọtụtụ oge na otu nọmba), ma gosi aha ya kwekọrọ.
M mechara (naanị maka ịgba ụkwụ) gosipụta oge ikwu okwu na ọnọdụ sitere na ndekọ CDR.
SELECT TOP 10 a.cid_num,
a.eventtime 'begin',
b.eventtime 'answer',
c.eventtime 'end',
mk.maxid,
navn,
cdr.duration,
cdr.billsec,
cdr.disposition
FROM asteriskcel a
LEFT JOIN asteriskcel b
ON b.eventtype = 4 -- ANSWER
AND b.linkedid = b.uniqueid
AND b.linkedid = a.linkedid
LEFT JOIN asteriskcel c
ON c.eventtype = 2 -- CHANNEL_END
AND c.linkedid = c.uniqueid
AND c.linkedid = a.linkedid
LEFT JOIN (SELECT RIGHT(telefon, 8) tlf,
Max(id) maxid
FROM t_kunder
GROUP BY RIGHT(telefon, 8)) mk
ON RIGHT(a.cid_num, 8) = mk.tlf
LEFT JOIN t_kunder k
ON mk.maxid = k.id
LEFT JOIN bit_cdr cdr
ON cdr.linkedid = a.linkedid
WHERE a.eventtype = 1 -- CHANNEL_START
AND a.linkedid = a.uniqueid
AND a.context = 'default'
ORDER BY a.eventtime DESC