Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - jucha

Pages: [1] 2
2
Problems / How i to post an image
« on: April 21, 2012, 18:57:51 »

How i put an image to upload.

4
How i do to remove defualt item on all combox list. item "-".
My agents by mistake clicking this item.


5
QueueMetrics installation / Re: QM 12 issues
« on: February 02, 2012, 17:57:28 »
Hi.

I can not use vr 12, because its a problem the Queue name presentation.
vr 12 show 'qTest'  and vr. 1.7 show 'qTest-2904'.

I am working with 1.7.0.2 good.

6
QueueMetrics installation / Re: Call talking more 30 minutes.
« on: February 02, 2012, 17:53:56 »
ok

7
Scripting QueueMetrics / XmlRPC Auth
« on: February 02, 2012, 17:06:40 »
Hi.
I have an c# program that validate agent on QM.
This works very good with qm 1.7 and tomcat5.5 instaled on windows 2003.
But i update tomcat 5.5 to tomcat7, and xmlrpc returns sometimes "Response contains invalid XML".
The first time validate ok.
Shutdown application c#
Start again and login fail.


I have to restart c# program.

Tomcat7 has better performance. but i have this xmrpc problem.

This is my short code C#.

using CookComputing.XmlRpc;
namespace PSI.XPHONE
{
    [XmlRpcUrl("http://192.168.1.11:8080/queuemetrics/xmlrpc.do")]
    public interface IStateName : IXmlRpcProxy
    {
        [XmlRpcMethod("QM.auth")]
        AuthResult QmAuth(string user, string pwd);
    }

    public class AuthResult
    {
        [XmlRpcMember("auth")]
        public Array Auth { get; set; }
    }

    public partial class AsteriskProfile : Form
    {
       ...
       ...
       private void LoginButton_Click(object sender, EventArgs e)
      {
         /* xmlrpc */
            try
            {
                IStateName proxy = XmlRpcProxyGen.Create<IStateName>();
                proxy.Timeout = 5000;
                //proxy.KeepAlive = false;
                AuthResult qmret = proxy.QmAuth("Agent/" + num, pass); //fail sometimes
               ...
               ...
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); return; } //Response contains invalid XML
      }

  }

}

8
QueueMetrics installation / Re: QM 12 issues
« on: January 26, 2012, 16:30:25 »
i have subqueue.
in realtime vr 12 show queue 'qTest'  and vr. 1.7 show 'qTest-2904'.

I have 70 agents, and vr 12 failed to show agents detail report. index out. vr. 1.7 works good.
I back to vr .1.7 so i do not have imagen of error. I can to stop callcenter activity.

9
QueueMetrics installation / QM 12 issues
« on: January 26, 2012, 15:47:34 »
Hi.
1. subques altered in name of Queue (queue alias name)


Vr 12
Cola   Llamante   Ingresado   Esperando   DuraciĆ³n Agente   Server   
  qTest  2172 09:29:17  0:21 14:34 Carlos Tejada Martinez (103)     

Vr 1.7
Cola   Llamante   Ingresado   Esperando   DuraciĆ³n Agente   Server   
  qTest-2104  2172 09:29:17  0:21 14:34 Carlos Tejada Martinez (103)     

2. Agents report java error out index.


10
QueueMetrics installation / Call talking more 30 minutes.
« on: January 25, 2012, 15:23:59 »
Hi.

In my callcenter, there are agents that speaks more 30 minute.
I note that QM start reporting in use, orange Color, but at 33 minutes, QM report agent idle, Green Color.
Way? Agent is busy with same call id.


11
General Asterisk configuration / Re: Queuemetrics and Asterisk 1.8
« on: December 19, 2011, 03:34:26 »
Asterisk 1.8.8.0 released at Dic 16 2011
I saw that /usr/src/asterisk/main/logger.c has changed, and do not needs to modify the line qlog.

12
Outbound and QueueMetrics / Re: Playtones(busy) on qm-queuedial
« on: September 22, 2011, 03:35:03 »
The agents needs to listen the audio when make out calls, but i want to play a message for each isdn cause code (http://www.voip-info.org/wiki/view/Asterisk+variable+hangupcause)
I do not know where put this lines. like s or h
No using the context qm-queudial, asterisk returns the correct audio for busy, or phone bad, etc.

13
Outbound and QueueMetrics / Playtones(busy) on qm-queuedial
« on: September 15, 2011, 20:04:16 »
Hi,

I want to playtones to UA based on DIALSTATUS and HANGUPCAUSE, but i do not listen any. Please Help.
Please see line jucha, below.

[qm-queuedial]
; We use a global variable to pass values back from the answer-detect macro.
; STATUS = U unanswered
;        = A answered    (plus CAUSECOMPLETE=C when callee hung up)
; The 'g' dial parameter must be used in order to track callee disconnecting.
; Note that we'll be using the 'h' hook in any case to do the logging when channels go down.
; We set the CDR(accountcode) for live monitoring by QM.
;
exten => s,1,NoOp( "Outbound call - A:${QDIALER_AGENT} N:${QDIALER_NUMBER} Q:${QDIALER_QUEUE} Ch:${QDIALER_CHANNEL}" )
exten => s,n,Set(CDR(accountcode)=QDIALAGI)
exten => s,n,Set(ST=${EPOCH})
exten => s,n,Set(GM=QDV-${QDIALER_AGENT})
exten => s,n,Set(GLOBAL(${GM})=U)
exten => s,n,Set(GLOBAL(${GM}ans)=0)
exten => s,n,Macro(queuelog,${ST},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},CALLOUTBOUND,,${QDIALER_NUMBER})
exten => s,n,Dial(${QDIALER_CHANNEL},300,gM(queuedial-answer^${UNIQUEID}^${GM}^${QDIALER_QUEUE}^${QDIALER_AGENT}^${ST}))
exten => s,n,Set(CAUSECOMPLETE=${IF($["${DIALSTATUS}" = "ANSWER"]?C)})

;jucha
exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-BUSY,1,Noop(Dial failed due to trunk reporting BUSY - giving up)
exten => s-BUSY,n,Playtones(busy)
exten => s-BUSY,n,Busy(20)

; Trapping call termination here
exten => h,1,NoOp( "Call exiting: status ${GLOBAL(${GM})} answered at: ${GLOBAL(${GM}ans)} DS: ${DIALSTATUS} HC: ${HANGUPCAUSE}" )
exten => h,n,Goto(case-${GLOBAL(${GM})})
exten => h,n,Hangup()

; Call unanswered
exten => h,n(case-U),Set(WT=$[${EPOCH} - ${ST}])
exten => h,n,Macro(queuelog,${EPOCH},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},ABANDON,1,1,${WT})
exten => h,n,Hangup()

; call answered: agent/callee hung
exten => h,n(case-A)i,Set(COMPLETE=${IF($["${CAUSECOMPLETE}" = "C"]?COMPLETECALLER:COMPLETEAGENT)})
exten => h,n,Set(WT=$[${GLOBAL(${GM}ans)} - ${ST}])
exten => h,n,Set(CT=$[${EPOCH} - ${GLOBAL(${GM}ans)}])
exten => h,n,Macro(queuelog,${EPOCH},${UNIQUEID},${QDIALER_QUEUE},${QDIALER_AGENT},${COMPLETE},${WT},${CT})
exten => h,n,Hangup()


14
General Asterisk configuration / Re: TRACE CALLS FROM NON QUEUE
« on: September 08, 2011, 00:08:36 »
Hello.

Using asterisk built in function for transfer works better and i can to see the state of agents.

15
General Asterisk configuration / TRACE CALLS FROM NON QUEUE
« on: September 02, 2011, 17:44:17 »
Hello
As everyone knows, asterisk does not report calls that are not of a queue.
For supervisors is annoying, that they are available, when in reality this agents busy with a call received by transfer.

I have this approach taken from qdial.

This works well only if the calls are not transferred.
I need help to detect trasnferidas and calls when you are hanging.

extensions_custom.conf
#include extensions_queuemetrics_18.conf

[from-internal-custom]
include => queuemetrics


extensions_queuemetrics_18.conf

; JUCHA:
exten => 2103,1,Gosub(qm-nonqueuecalls,s,1(${EXTEN},2901,${CALLERID(all)}))
exten => 2103,2,Hangup()
exten => 2101,1,Gosub(qm-nonqueuecalls,s,1(${EXTEN},2901,${CALLERID(all)}))
exten => 2101,2,Hangup()


; init JUCHA
[qm-nonqueuecalls]
;ARG1=EXT
;ARG2=QUEUE
;ARG3=CALLERID

exten => s,1,Answer
exten => s,n,NoOp("context qm-nonqueuecalls enter")
exten => s,n,Set(CDR(accountcode)=QDIALAGI)
exten => s,n,Set(ST=${EPOCH})
exten => s,n,Set(GLOBAL(${GM})=U)
exten => s,n,Set(GLOBAL(${GM}ans)=0)
;exten => s,n,Macro(queuelog,${ST},${UNIQUEID},${ARG2},,CALLINBOUND,,${ARG1})
exten => s,n,Dial(SIP/${ARG1},300,gM(qm-nonqueuecalls^${UNIQUEID}^SIP/${ARG1}^${ARG2}^${GM}^${ST}))
exten => s,n,Set(CAUSECOMPLETE=${IF($["${DIALSTATUS}" = "ANSWER"]?C)})

; Trapping call termination here
exten => h,1,Goto(case-${GLOBAL(${GM})})
exten => h,n,NoOp("JUCHA ARG2" ${ARG1} ${ARG2} )
exten => h,n,Hangup()

; Call unanswered
exten => h,n(case-U),Set(WT=$[${EPOCH} - ${ST}])
exten => h,n,Macro(queuelog,${EPOCH},${UNIQUEID},${ARG2},SIP/${ARG1},ABANDON,1,1,${WT})
exten => h,n,Hangup()

; call answered: agent/callee hung
exten => h,n(case-A)i,Set(COMPLETE=${IF($["${CAUSECOMPLETE}" = "C"]?COMPLETEAGENT:COMPLETECALLER)})
exten => h,n,Set(WT=$[${GLOBAL(${GM}ans)} - ${ST}])
exten => h,n,Set(CT=$[${EPOCH} - ${GLOBAL(${GM}ans)}])

exten => h,n,NoOp("JUCHA ARG1" ${ARG1} ${ARG2} ${EXTEN} ${CALLERID(num)} )

exten => h,n,Macro(queuelog,${EPOCH},${UNIQUEID},${ARG2},SIP/${ARG1},${COMPLETE},${WT},${CT})
exten => h,n,Hangup()


[macro-qm-nonqueuecalls]
;ARG1=UNIQUEID
;ARG2=EXT
;ARG3=QUEUE
;ARG4=GM
;ARG5=ST

exten => s,1,NoOp("Macro qm-nonqueuecalls enter")
exten => s,n,NoOp("JUCHA EXT" ${EXTEN}  ${CALLERID(num)} )
exten => s,n,Set(NOW=${EPOCH})
exten => s,n,Set(WD=$[${NOW} - ${ARG5}])
exten => s,n,Macro(queuelog,${NOW},${ARG1},${ARG3},${ARG2},CONNECT,${WD},${UNIQUEID})
exten => s,n,Set(GLOBAL(${ARG4})=A)
exten => s,n,Set(GLOBAL(${ARG4}ans)=${NOW})
exten => s,n,NoOp("Macro qm-nonqueuecalls exit")
; end JUCHA

call enter to queue
call conected
call transfered from 2101 to 2103
event from 2101
never event from 2103

tail -f /var/log/asterisk/queue_log
1314977786|1314977786.3584|2901|NONE|ENTERQUEUE||2010|1
1314977787|1314977786.3584|2901|SIP/2101|CONNECT|1|1314977786.3586|0
1314977817|1314977817.3588|2901|SIP/2103|CONNECT|0|1314977817.3589|
1314977818|1314977786.3584|2901|SIP/2101|TRANSFER|s|qm-nonqueuecalls|1|31|1


Pages: [1] 2