AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Пропущенные звонки на одном из номеров колцентра

Newbies/FAQ Forum 10 сообщений -
#1

Добрый день.
Про просмотре статистики пропущенных звонков колцентра видим что больше всего пропущенный на номере 1039.
Хотя оператор закрепленный за этим номером не был на работе в течении нескольких дней.

Смотрю sip show peers
Name/username Host Dyn Forcerport ACL Port Status
1007/1007 (Unspecified) D N 0 UNKNOWN
1011/1011 (Unspecified) D N 0 UNKNOWN
1012/1012 (Unspecified) D N 0 UNKNOWN
1013/1013 (Unspecified) D N 0 UNKNOWN
1014/1014 (Unspecified) D N 0 UNKNOWN
1016/1016 (Unspecified) D N 0 UNKNOWN
1019/1019 (Unspecified) D N 0 UNKNOWN
1020/1020 (Unspecified) D N 0 UNKNOWN
1022/1022 10.44.18.11 D N 5060 OK (1 ms)
1023/1023 10.44.20.28 D N 5060 OK (8 ms)
1025/1025 (Unspecified) D N 0 UNKNOWN
1026/1026 10.44.18.147 D N 5060 OK (10 ms)
1029/1029 (Unspecified) D N 0 UNKNOWN
1031/1031 (Unspecified) D N 0 UNKNOWN
1032/1032 (Unspecified) D N 0 UNKNOWN
1034/1034 10.44.19.15 D N 5060 OK (6 ms)
1037/1037 (Unspecified) D N 0 UNKNOWN
1039/1039 (Unspecified) D N 0 UNKNOWN


[managers]
exten => s,1,MYSQL(Connect connid ${MYSQL_HOST} ${MYSQL_USER} ${MYSQL_PASS} ${MYSQL_BASE})
exten => s,n,MYSQL(Query resultid ${connid} SELECT uid, MAX(dt) AS mdt FROM calls WHERE uid IN (1011, 1012, 1013, 1022, 1023, 1026, 1031, 1034, 1037, 1039, 1041, 1043, 1044, 1053, 1056, 1058, 1025) GROUP BY uid ORDER by mdt)
#2

Мало данных.
Каков результат работы этой команды:
exten => s,n,MYSQL(Query resultid ${connid} SELECT uid, MAX(dt) AS mdt FROM calls WHERE uid IN (1011, 1012, 1013, 1022, 1023, 1026, 1031, 1034, 1037, 1039, 1041, 1043, 1044, 1053, 1056, 1058, 1025) GROUP BY uid ORDER by mdt)

_________________
http://www.myipats.ru
#3

[managers]
exten => s,1,MYSQL(Connect connid ${MYSQL_HOST} ${MYSQL_USER} ${MYSQL_PASS} ${MYSQL_BASE})
;exten => s,n,MYSQL(Query resultid ${connid} SELECT c1.uid, (SELECT COUNT(*) FROM calls WHERE c1.uid=uid AND dt>=DATE_SUB(NOW(), INTERVAL 2 HOUR) AND t='I' AND status='ANSWERED') AS cnt FROM calls c1 WHERE c1.uid IN (1012, 1013, 1022, 1023, 1026, 1031, 1034, 1037, 1039, 1041, 1043, 1053, 1056, 1058, 1025) GROUP BY c1.uid ORDER BY cnt)
exten => s,n,MYSQL(Query resultid ${connid} SELECT uid, MAX(dt) AS mdt FROM calls WHERE uid IN (1011, 1012, 1013, 1022, 1023, 1026, 1031, 1034, 1037, 1039, 1041, 1043, 1044, 1053, 1056, 1058, 1025) GROUP BY uid ORDER by mdt)
exten => s,n,MYSQL(Fetch fetchid ${resultid} var1 var1_1)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var2 var2_2)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var3 var3_3)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var4 var4_4)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var5 var5_5)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var6 var6_6)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var7 var7_7)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var8 var8_8)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var9 var9_9)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var10 var10_10)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var11 var11_11)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var12 var12_12)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var13 var13_13)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var14 var14_14)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var15 var15_15)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var16 var16_16)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var17 var17_17)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var18 var18_18)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var19 var19_19)
exten => s,n,MYSQL(Nextresult resultid ${connid})
exten => s,n,MYSQL(Fetch fetchid ${resultid} var20 var20_20)
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,NoOp(var1 - ${var1} var1_1 - ${var1_1} var2 - ${var2} var2_2 - ${var2_2} var3 - ${var3} var3_3 - ${var3_3} var4 - ${var4} var4_4 - ${var4_4} var5 - ${var5} var5_5 - ${var5_5} var6 - ${var6} var6_6 - ${var6_6} var7 - ${var7} var7_7 - ${var7_7} var8 - ${var8} var8_8 - ${var8_8} var9 - ${var9} var9_9 - ${var9_9} var10 - ${var10} var10_10 - ${var10_10} var11 - ${var11} var11_11 - ${var11_11} var12 - ${var12} var12_12 - ${var12_12} var13 - ${var13} var13_13 - ${var13_13} var14 - ${var14} var14_14 - ${var14_14} var15 - ${var15} var15_15 - ${var15_15} var16 - ${var16} var16_16 - ${var16_16} var17 - ${var17} var17_17 - ${var17_17} var18 - ${var18} var18_18 - ${var18_18} var19 - ${var19} var19_19 - ${var19_19} )
exten => s,n,Set(chanstat=${DEVICE_STATE(SIP/${var1})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo:tonext)
exten => s,n(todo),Dial(SIP/${var1},15,mtT)
exten => s,n(tonext),Set(chanstat=${DEVICE_STATE(SIP/${var2})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo2:tonext2)
exten => s,n(todo2),Dial(SIP/${var2},15,mtT)
exten => s,n(tonext2),Set(chanstat=${DEVICE_STATE(SIP/${var3})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo3:tonext3)
exten => s,n(todo3),Dial(SIP/${var3},15,mtT)
exten => s,n(tonext3),Set(chanstat=${DEVICE_STATE(SIP/${var4})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo4:tonext4)
exten => s,n(todo4),Dial(SIP/${var4},15,mtT)
exten => s,n(tonext4),Set(chanstat=${DEVICE_STATE(SIP/${var5})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo5:tonext5)
exten => s,n(todo5),Dial(SIP/${var5},15,mtT)
exten => s,n(tonext5),Set(chanstat=${DEVICE_STATE(SIP/${var6})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo6:tonext6)
exten => s,n(todo6),Dial(SIP/${var6},15,mtT)
exten => s,n(tonext6),Set(chanstat=${DEVICE_STATE(SIP/${var7})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo7:tonext7)
exten => s,n(todo7),Dial(SIP/${var7},15,mtT)
exten => s,n(tonext7),Set(chanstat=${DEVICE_STATE(SIP/${var8})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo8:tonext8)
exten => s,n(todo8),Dial(SIP/${var8},15,mtT)
exten => s,n(tonext8),Set(chanstat=${DEVICE_STATE(SIP/${var9})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo9:tonext9)
exten => s,n(todo9),Dial(SIP/${var9},15,mtT)
exten => s,n(tonext9),Set(chanstat=${DEVICE_STATE(SIP/${var10})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo10:tonext10)
exten => s,n(todo10),Dial(SIP/${var10},15,mtT)
exten => s,n(tonext10),Set(chanstat=${DEVICE_STATE(SIP/${var11})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo11:tonext11)
exten => s,n(todo11),Dial(SIP/${var11},15,mtT)
exten => s,n(tonext11),Set(chanstat=${DEVICE_STATE(SIP/${var12})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo12:tonext12)
exten => s,n(todo12),Dial(SIP/${var12},15,mtT)
exten => s,n(tonext12),Set(chanstat=${DEVICE_STATE(SIP/${var13})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo13:tonext13)
exten => s,n(todo13),Dial(SIP/${var13},15,mtT)
exten => s,n(tonext13),Set(chanstat=${DEVICE_STATE(SIP/${var14})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo14:tonext14)
exten => s,n(todo14),Dial(SIP/${var14},15,mtT)
exten => s,n(tonext14),Set(chanstat=${DEVICE_STATE(SIP/${var15})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo15:tonext15)
exten => s,n(todo15),Dial(SIP/${var15},15,mtT)
exten => s,n(tonext15),Set(chanstat=${DEVICE_STATE(SIP/${var16})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo16:tonext16)
exten => s,n(todo16),Dial(SIP/${var16},15,mtT)
exten => s,n(tonext16),Set(chanstat=${DEVICE_STATE(SIP/${var17})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo17:tonext17)
exten => s,n(todo17),Dial(SIP/${var17},15,mtT)
exten => s,n(tonext17),Set(chanstat=${DEVICE_STATE(SIP/${var18})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo18:tonext18)
exten => s,n(todo18),Dial(SIP/${var18},15,mtT)
exten => s,n(tonext18),Set(chanstat=${DEVICE_STATE(SIP/${var19})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo19:tonext19)
exten => s,n(todo19),Dial(SIP/${var19},15,mtT)
exten => s,n(tonext19),Set(chanstat=${DEVICE_STATE(SIP/${var20})})
exten => s,n,GotoIf($["${chanstat}" = "NOT_INUSE"]?todo20:managers2,s,1)
exten => s,n(todo20),Dial(SIP/${var20},15,mtT)
exten => s,n,Goto(managers2,s,1)
exten => s,n,Hangup

exten => h,1,Goto(hangupincoming,s,1)
#4

Не вижу здесь проявления Вашей проблемы. хотя есть еще
exten => s,n,Goto(managers2,s,1)
что там может происходить?

По диалплану. Зачем нужно было городить такой огород с базой данных, если все равно номера Вы указываете явно в диалплане?
Ну, это так, вопрос риторический.

_________________
http://www.myipats.ru
#5

[managers2]
exten => s,1,Playback(/home/voipadmin/mk-ua/allbusy)
exten => s,n,Wait(5)
exten => s,n,Goto(managers,s,1)
exten => s,n,Hangup

exten => h,1,Goto(hangupincoming,s,1)
#6

Жесть какая. Уж лучше через AGI это реализовать, где можно и дебаг в файл соответствующий прикрутить.
_________________
mega-net.ru - IT аутсорсинг
#7

так что скажут гуру, из-за чего может быть такая проблема?
как решить, может asterisk не понимает что номер 1039 отключен?
и его стоит принудительно отключить? и как?
#8

1039/1039 (Unspecified) D N 0 UNKNOWN

Говорит, что он как раз отключен. А вот был ли он действительно отключен в тот период, за который подсчитывалась статистика - вопрос, Посмотрите логи.

_________________
http://www.myipats.ru
#9

1039/1039 (Unspecified) D N 0 UNKNOWN

несколько дней подряд проверял, всегда так писал

Подскажите где именно и как смотреть логи?
#10

Вообще-то здесь /var/log/asterisk/messeges , но там такие события не регистрируются по умолчанию.
Посмотрите в файлах статистики /var/log/cdr-scv либо в базе данных, если туда пишется.
Там есть три параметра duration, billsec и disposition. Первый общая продолжительность вызова, а второй время соединения. Так вот если первый 15 сек , второй 0, а третий "NO ANSWER" - то телефон не был отключен и звонки на него шли.
а если 0,0,"BUSY" или "FAILED" - значит отключен и надо разбираться с диалпланом.

_________________
http://www.myipats.ru