From 0b184401a33475c0451b148d51a6f63a89bd3682 Mon Sep 17 00:00:00 2001 From: paulc Date: Tue, 15 Nov 2016 16:44:44 +0000 Subject: [PATCH] Added handling of CDR operation "status" in the register module. git-svn-id: http://yate.null.ro/svn/yate/trunk@6150 acf43c95-373e-0410-b603-e72c3f656dc1 --- conf.d/register.conf.sample | 3 +++ modules/server/register.cpp | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/conf.d/register.conf.sample b/conf.d/register.conf.sample index e3723e69..897070b8 100644 --- a/conf.d/register.conf.sample +++ b/conf.d/register.conf.sample @@ -137,6 +137,9 @@ ; billtime=INTERVAL '${billtime} s',ringtime=INTERVAL '${ringtime} s',status='${status}',\ ; reason='${reason}' WHERE chan='${chan}' AND time=TIMESTAMP 'EPOCH' + INTERVAL '${time} s' +;cdr_status=UPDATE cdr SET duration=INTERVAL '${duration} s',billtime=INTERVAL '${billtime} s',\ +; ringtime=INTERVAL '${ringtime} s' WHERE chan='${chan}' AND time=TIMESTAMP 'EPOCH' + INTERVAL '${time} s' + ;cdr_finalize=UPDATE cdr SET address='${address}',direction='${direction}',\ ; billid='${billid}',caller='${caller}',called='${called}',duration=INTERVAL '${duration} s',\ ; billtime=INTERVAL '${billtime} s',ringtime=INTERVAL '${ringtime} s',status='${status}',\ diff --git a/modules/server/register.cpp b/modules/server/register.cpp index 874036d0..a41974bc 100644 --- a/modules/server/register.cpp +++ b/modules/server/register.cpp @@ -83,6 +83,7 @@ protected: String m_name; String m_queryInitialize; String m_queryUpdate; + String m_queryStatus; String m_queryCombined; bool m_critical; }; @@ -550,15 +551,17 @@ bool CDRHandler::loadQuery() { m_queryInitialize = s_cfg.getValue(name(),"cdr_initialize"); m_queryUpdate = s_cfg.getValue(name(),"cdr_update"); + m_queryStatus = s_cfg.getValue(name(),"cdr_status"); m_queryCombined = s_cfg.getValue(name(),"cdr_combined"); m_query = s_cfg.getValue(name(),"cdr_finalize"); if (m_query.null()) m_query = s_cfg.getValue(name(),"query"); indirectQuery(m_queryInitialize); indirectQuery(m_queryUpdate); + indirectQuery(m_queryStatus); indirectQuery(m_queryCombined); indirectQuery(m_query); - return m_queryInitialize || m_queryUpdate || m_queryCombined || m_query; + return m_queryInitialize || m_queryUpdate || m_queryStatus || m_queryCombined || m_query; } bool CDRHandler::received(Message& msg) @@ -575,6 +578,8 @@ bool CDRHandler::received(Message& msg) query = m_queryInitialize; else if (query == YSTRING("update")) query = m_queryUpdate; + else if (query == YSTRING("status")) + query = m_queryStatus; else if (query == YSTRING("combined")) query = m_queryCombined; else if (query == YSTRING("finalize"))