Added counter for calls ended due to nomedia reason. Fixed access level for ASR/NER alarms.

git-svn-id: http://yate.null.ro/svn/yate/trunk@4399 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
oana 2011-05-19 15:38:30 +00:00
parent 5b3ca10782
commit 0ee766bacf
2 changed files with 67 additions and 37 deletions

View File

@ -734,27 +734,29 @@ public:
HIGH_ASR_ALL_COUNT = 17, HIGH_ASR_ALL_COUNT = 17,
LOW_NER_COUNT = 18, LOW_NER_COUNT = 18,
LOW_NER_ALL_COUNT = 19, LOW_NER_ALL_COUNT = 19,
HANGUP = 20, HANGUP = 40,
REJECT = 21, REJECT = 41,
BUSY = 22, BUSY = 42,
CANCELLED = 23, CANCELLED = 43,
NO_ANSWER = 24, NO_ANSWER = 44,
NO_ROUTE = 25, NO_ROUTE = 45,
NO_CONN = 26, NO_CONN = 46,
NO_AUTH = 27, NO_AUTH = 47,
CONGESTION = 28, CONGESTION = 48,
NO_CAUSE = 29, NO_MEDIA = 49,
HANGUP_ALL = 30, NO_CAUSE = 50,
REJECT_ALL = 31, HANGUP_ALL = 60,
BUSY_ALL = 32, REJECT_ALL = 61,
CANCELLED_ALL = 33, BUSY_ALL = 62,
NO_ANSWER_ALL = 34, CANCELLED_ALL = 63,
NO_ROUTE_ALL = 35, NO_ANSWER_ALL = 64,
NO_CONN_ALL = 36, NO_ROUTE_ALL = 65,
NO_AUTH_ALL = 37, NO_CONN_ALL = 66,
CONGESTION_ALL = 38, NO_AUTH_ALL = 67,
NAME = 39, CONGESTION_ALL = 68,
INDEX = 40, NO_MEDIA_ALL = 69,
NAME = 80,
INDEX = 81,
}; };
// Constructor // Constructor
CallRouteQoS(const String direction, const NamedList* cfg = 0); CallRouteQoS(const String direction, const NamedList* cfg = 0);
@ -1083,6 +1085,7 @@ static TokenDict s_categories[] = {
{"currentNoConnectionEndCause", Monitor::CALL_MONITOR}, {"currentNoConnectionEndCause", Monitor::CALL_MONITOR},
{"currentNoAuthEndCause", Monitor::CALL_MONITOR}, {"currentNoAuthEndCause", Monitor::CALL_MONITOR},
{"currentCongestionEndCause", Monitor::CALL_MONITOR}, {"currentCongestionEndCause", Monitor::CALL_MONITOR},
{"currentNoMediaEndCause", Monitor::CALL_MONITOR},
{"overallHangupEndCause", Monitor::CALL_MONITOR}, {"overallHangupEndCause", Monitor::CALL_MONITOR},
{"overallBusyEndCause", Monitor::CALL_MONITOR}, {"overallBusyEndCause", Monitor::CALL_MONITOR},
@ -1093,6 +1096,7 @@ static TokenDict s_categories[] = {
{"overallNoConnectionEndCause", Monitor::CALL_MONITOR}, {"overallNoConnectionEndCause", Monitor::CALL_MONITOR},
{"overallNoAuthEndCause", Monitor::CALL_MONITOR}, {"overallNoAuthEndCause", Monitor::CALL_MONITOR},
{"overallCongestionEndCause", Monitor::CALL_MONITOR}, {"overallCongestionEndCause", Monitor::CALL_MONITOR},
{"overallNoMediaEndCause", Monitor::CALL_MONITOR},
// connections info // connections info
// linksets // linksets
@ -1210,6 +1214,7 @@ static TokenDict s_callQualityQueries[] = {
{"currentNoConnectionEndCause", CallRouteQoS::NO_CONN}, {"currentNoConnectionEndCause", CallRouteQoS::NO_CONN},
{"currentNoAuthEndCause", CallRouteQoS::NO_AUTH}, {"currentNoAuthEndCause", CallRouteQoS::NO_AUTH},
{"currentCongestionEndCause", CallRouteQoS::CONGESTION}, {"currentCongestionEndCause", CallRouteQoS::CONGESTION},
{"currentNoMediaEndCause", CallRouteQoS::NO_MEDIA},
{"overallHangupEndCause", CallRouteQoS::HANGUP_ALL}, {"overallHangupEndCause", CallRouteQoS::HANGUP_ALL},
{"overallBusyEndCause", CallRouteQoS::BUSY_ALL}, {"overallBusyEndCause", CallRouteQoS::BUSY_ALL},
@ -1220,6 +1225,7 @@ static TokenDict s_callQualityQueries[] = {
{"overallNoConnectionEndCause", CallRouteQoS::NO_CONN_ALL}, {"overallNoConnectionEndCause", CallRouteQoS::NO_CONN_ALL},
{"overallNoAuthEndCause", CallRouteQoS::NO_AUTH_ALL}, {"overallNoAuthEndCause", CallRouteQoS::NO_AUTH_ALL},
{"overallCongestionEndCause", CallRouteQoS::CONGESTION_ALL}, {"overallCongestionEndCause", CallRouteQoS::CONGESTION_ALL},
{"overallNoMediaEndCause", CallRouteQoS::NO_MEDIA_ALL},
// thresholds // thresholds
{"lowASRThreshold", CallRouteQoS::MIN_ASR}, {"lowASRThreshold", CallRouteQoS::MIN_ASR},
{"highASRThreshold", CallRouteQoS::MAX_ASR}, {"highASRThreshold", CallRouteQoS::MAX_ASR},
@ -1235,15 +1241,25 @@ static TokenDict s_callQualityQueries[] = {
}; };
// call end reasons // call end reasons
static TokenDict s_endReasons[] = { static TokenDict s_endReasons[] = {
{"User hangup", CallRouteQoS::HANGUP}, {"User hangup", CallRouteQoS::HANGUP},
{"Rejected", CallRouteQoS::REJECT}, {"Rejected", CallRouteQoS::REJECT},
{"User busy", CallRouteQoS::BUSY}, {"rejected", CallRouteQoS::REJECT},
{"Request Terminated", CallRouteQoS::NO_ANSWER}, {"User busy", CallRouteQoS::BUSY},
{"No route to call target", CallRouteQoS::NO_ROUTE}, {"busy", CallRouteQoS::BUSY},
{"Service Unavailable", CallRouteQoS::NO_CONN}, {"Request Terminated", CallRouteQoS::NO_ANSWER},
{"Unauthorized", CallRouteQoS::NO_AUTH}, {"noanswer", CallRouteQoS::NO_ANSWER},
{"Cancelled", CallRouteQoS::CANCELLED}, {"No route to call target", CallRouteQoS::NO_ROUTE},
{"Congestion", CallRouteQoS::CONGESTION}, {"noroute", CallRouteQoS::NO_ROUTE},
{"Service Unavailable", CallRouteQoS::NO_CONN},
{"noconn", CallRouteQoS::NO_CONN},
{"service-unavailable", CallRouteQoS::NO_CONN},
{"Unauthorized", CallRouteQoS::NO_AUTH},
{"noauth", CallRouteQoS::NO_AUTH},
{"Cancelled", CallRouteQoS::CANCELLED},
{"Congestion", CallRouteQoS::CONGESTION},
{"congestion", CallRouteQoS::CONGESTION},
{"Unsupported Media Type", CallRouteQoS::NO_MEDIA},
{"nomedia", CallRouteQoS::NO_MEDIA},
{0,0} {0,0}
}; };
@ -3081,6 +3097,7 @@ bool CallRouteQoS::get(int query, String& result)
case NO_CONN: case NO_CONN:
case NO_AUTH: case NO_AUTH:
case CONGESTION: case CONGESTION:
case NO_MEDIA:
result << m_callCounters[query - HANGUP]; result << m_callCounters[query - HANGUP];
return true; return true;
case HANGUP_ALL: case HANGUP_ALL:
@ -3092,6 +3109,7 @@ bool CallRouteQoS::get(int query, String& result)
case NO_CONN_ALL: case NO_CONN_ALL:
case NO_AUTH_ALL: case NO_AUTH_ALL:
case CONGESTION_ALL: case CONGESTION_ALL:
case NO_MEDIA_ALL:
result << m_callCountersAll[query - HANGUP_ALL]; result << m_callCountersAll[query - HANGUP_ALL];
return true; return true;
case NAME: case NAME:
@ -3264,8 +3282,10 @@ bool CallMonitor::received(Message& msg)
} }
String reason = msg.getValue("reason",""); String reason = msg.getValue("reason","");
int type = lookup(reason,s_endReasons,0); int type = lookup(reason,s_endReasons,CallRouteQoS::HANGUP);
int reasonEnd = -1; int reasonEnd = CallRouteQoS::HANGUP;
if (type == CallRouteQoS::HANGUP && code == CallRouteQoS::DELIVERED && direction == "outgoing")
type = CallRouteQoS::CANCELLED;
if (type <= CallRouteQoS::NO_ANSWER) { if (type <= CallRouteQoS::NO_ANSWER) {
if (direction == "outgoing") if (direction == "outgoing")
reasonEnd = type; reasonEnd = type;

View File

@ -896,6 +896,16 @@ name=overallCongestionEndCause
access=read-only access=read-only
type=Counter32 type=Counter32
[1.3.6.1.4.1.34501.1.7.1.2.2.1.5.19]
name=currentNoMediaEndCause
access=read-only
type=Counter32
[1.3.6.1.4.1.34501.1.7.1.2.2.1.5.20]
name=overallNoMediaEndCause
access=read-only
type=Counter32
[1.3.6.1.4.1.34501.1.7.2] [1.3.6.1.4.1.34501.1.7.2]
name=database name=database
@ -1116,7 +1126,7 @@ type=DisplayString
[1.3.6.1.4.1.34501.1.8.2.1.1.2] [1.3.6.1.4.1.34501.1.8.2.1.1.2]
name=overallLowASR name=overallLowASR
access=read-only access=accessible-for-notify
type=DisplayString type=DisplayString
[1.3.6.1.4.1.34501.1.8.2.1.2] [1.3.6.1.4.1.34501.1.8.2.1.2]
@ -1124,12 +1134,12 @@ name=highASRAlarms
[1.3.6.1.4.1.34501.1.8.2.1.2.1] [1.3.6.1.4.1.34501.1.8.2.1.2.1]
name=currentHighASR name=currentHighASR
access=read-only access=accessible-for-notify
type=DisplayString type=DisplayString
[1.3.6.1.4.1.34501.1.8.2.1.2.2] [1.3.6.1.4.1.34501.1.8.2.1.2.2]
name=overallHighASR name=overallHighASR
access=read-only access=accessible-for-notify
type=DisplayString type=DisplayString
[1.3.6.1.4.1.34501.1.8.2.2] [1.3.6.1.4.1.34501.1.8.2.2]
@ -1137,12 +1147,12 @@ name=lowNERAlarms
[1.3.6.1.4.1.34501.1.8.2.2.1] [1.3.6.1.4.1.34501.1.8.2.2.1]
name=currentLowNER name=currentLowNER
access=read-only access=accessible-for-notify
type=DisplayString type=DisplayString
[1.3.6.1.4.1.34501.1.8.2.2.2] [1.3.6.1.4.1.34501.1.8.2.2.2]
name=overallLowNER name=overallLowNER
access=read-only access=accessible-for-notify
type=DisplayString type=DisplayString
[1.3.6.1.4.1.34501.1.8.3] [1.3.6.1.4.1.34501.1.8.3]