You can send arbitrary user events via the UserEvent application provided with asterisk. A user event by default has the attributes channel and uniqueId but you can add custom attributes by specifying an event body.
To add your own user events you must subclass this class and name it corresponding to your event. If you plan to send an event by UserEvent(VIPCall)
you will create a new class called VIPCallEvent that extends UserEvent. The name of this class is important: Just use the name of the event you will send (VIPCall in this example) and append "Event".
To pass additional data create appropriate attributes with getter and setter methods in your new class.
Example:
public class VIPCallEvent extends UserEvent { private String firstName; public VIPCallEvent(Object source) { super(source); } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } }To send this event use
UserEvent(VIPCall|firstName: Jon)
in your dialplan. Asterisk up to 1.2 (including) does only support one property in the UserEvent so something like UserEvent(VIPCall|firstName: Jon|lastName: Doe)
will not work as expected. The UserEvent is implemented in apps/app_userevent.c
.
Note that you must register your UserEvent with the ManagerConnection you are using in order to be recognized. @see org.asteriskjava.manager.ManagerConnection#registerUserEventClass(Class) @author srt @version $Id$
|
|
|
|