
Hi folks... Finally I got my Jabber Notification module working as expected, and IMHO in a more interesting and correct way. Please find attached the .opm file. Is there any way to publish this package in otrs main repo? Please, feel free to give me any feedback. Daniel Santos daniel.santos@etice.ce.gov.br ETICE - Empresa de Tecnologia da Informação do Ceará www.etice.ce.gov.br +55 85 3101.6600 On 07/10/13 11:07, Daniel Santos wrote:
Nice Gerald!!
Now the Event flow got clear in my mind. I'll try to implement it and as soon I have it well tested I'll try to post it.
Thanks again. Daniel Santos daniel.santos@etice.ce.gov.br ETICE - Empresa de Tecnologia da Informação do Ceará www.etice.ce.gov.br +55 85 3101.6600 On 07/09/13 17:50, Gerald Young wrote:
heh. If you want "Best Practices" of OTRS development, I might not be the best source. I come from a JFDI background. :) :)
Assuming that GenericAgent.pm is calling Kernel/System/GenericAgent/NotifyAgentGroupOfCustomQueue.pm
It's calling TicketObject->SendAgentNotification and that's about it.
This is in Kernel/System/Ticket/Article.pm which ends in *ArticleAgentNotification *event.
"But this happens all the time!" yeah, pretty much. "How to test escalation response?" it's not the event that's EscalationxxxTimexxx. That latter is actually a Parameter attached to the result from TicketGet against the ticket object. Basicaly, upon ArticleAgentNotification Event, you'd check the TicketGet result's EscalationResponseTime (unix time stamp of response time escalation) EscalationUpdateTime (unix time stamp of update time escalation) EscalationSolutionTime (unix time stamp of solution time escalation) versus "now" and determine if now is > than escalation and check that other NotifyAgentGroupOfCustomQueue.pm for methods to check if it's sent but if you're already there, you might just copy that and modify the method of send to be jabber, then use it instead.
"What would you do?" That last. The code to send the message only once is already made. It's all about SendAgentNotification that's the meat of the difference between whether to send by email or send by Jabber anyway....
"So, now what?" Well, if I really wanted to, I'd determine if I'd plug ArticleAgentNotification Event directly to jabber anyway. What I mean is, the event of ArticleAgentNotification may trigger the send via Jabber event all the time. And why not? I think that's the point of your jabber interface anyway.
On Tue, Jul 9, 2013 at 3:51 PM, Daniel Santos
mailto:daniel.santos@etice.ce.gov.br> wrote: Hmm... got it!!!
For me, it's important to be in compliance with the 'best practices' of OTRS development... As I do not change anything in the ticket, like you said, its better to have a Ticket Event triggered when the GenericAgent sends the Escalation notification. I've tried it before, but I don't know which Event should I verify for a escalation notification sent by the Generic Agent... would it be something like this?
... if ( $Ticket{Event} eq "EscalationResponseTimeNotifyBefore" ) { ... } if ( $Ticket{Event} eq "EscalationUpdateTimeNotifyBefore" ) { ... } if ( $Ticket{Event} eq "EscalationSolutionTimeNotifyBefore" ) { ... }
?
Regards,
Daniel Santos daniel.santos@etice.ce.gov.br mailto:daniel.santos@etice.ce.gov.br ETICE - Empresa de Tecnologia da Informação do Ceará www.etice.ce.gov.br http://www.etice.ce.gov.br +55 85 3101.6600
On 07/09/13 16:30, Gerald Young wrote:
If the generic agent was able to change something (dynamic field, state, queue) that created an event, I'd use an event. If not, I'd add the check at the same time as the other GenericAgent that does that.
"Which is the best?" In my opinion, in theory, the thing that doesn't run code unnecessarily. In practice, the thing that works for your situation.
On Tue, Jul 9, 2013 at 3:10 PM, Daniel Santos
mailto:daniel.santos@etice.ce.gov.br> wrote: Gerald,
I used the same approach that GenericAgent uses to send escalated notifications, which is a cron scheduled job that runs bin/otrs.GenericAgent.pl http://otrs.GenericAgent.pl and send escalation notifications as necessary. The only difference on my module is that, instead of sending to e-mail, we are sending to jabber (xmpp).
In your opinion, which is the best? GenericAgent or Ticket Event? In the meantime, which Event should I listen to if using Ticket Event?
Daniel Santos daniel.santos@etice.ce.gov.br mailto:daniel.santos@etice.ce.gov.br ETICE - Empresa de Tecnologia da Informação do Ceará www.etice.ce.gov.br http://www.etice.ce.gov.br +55 85 3101.6600
On 07/09/13 16:01, Gerald Young wrote:
You could, but I don't understand why you want to use a scheduled job to do a notification when a ticket is escalated. It would appear to me you'd want that as an event upon occurrence, not a scheduled test if criteria has been met.
If you wish to do what you propose, how you've asked is the correct way to accomplish the goal.
On Tue, Jul 9, 2013 at 2:36 PM, Daniel Santos
mailto:daniel.santos@etice.ce.gov.br> wrote: Hi,
I've managed to get my module working... it was a typo in my Needed Modules. Sorry about that.
Now I'm wondering how can I add a new Generic Agent job in Kernel/Config/GenericAgentJabberNotification.pm and active it without touching Kernel/Config/GenericAgent.pm.
Do I need to setup a new cron entry passing -c "Kernel::Config::GenericAgentJabberNotification" ??
Thanks.
Daniel Santos daniel.santos@etice.ce.gov.br mailto:daniel.santos@etice.ce.gov.br ETICE - Empresa de Tecnologia da Informação do Ceará www.etice.ce.gov.br http://www.etice.ce.gov.br +55 85 3101.6600
On 07/09/13 09:24, Daniel Santos wrote:
Hi,
I'm setting up a Generic Agent to make some customization in my OTRS installation to send other notifications when a ticket is escalated. But when I try to use a Get from ConfigObject I'm always getting a: "Message: Can't call method "Get" on an undefined value". ConfigObject is already in the Needed objects 'qw', but still doesn't work.
How can I get my module configuration parameters from Config when using a Generic Agent?
Thanks.
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/otrs To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage:http://otrs.org/ Archive:http://lists.otrs.org/pipermail/otrs To unsubscribe:http://lists.otrs.org/cgi-bin/listinfo/otrs
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/otrs To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage:http://otrs.org/ Archive:http://lists.otrs.org/pipermail/otrs To unsubscribe:http://lists.otrs.org/cgi-bin/listinfo/otrs
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/otrs To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage:http://otrs.org/ Archive:http://lists.otrs.org/pipermail/otrs To unsubscribe:http://lists.otrs.org/cgi-bin/listinfo/otrs
--------------------------------------------------------------------- OTRS mailing list: otrs - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/otrs To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs