codecs need more work...
Expose events into javascript so you can create and fire events and
and pick up chat events with chat-enabled clients like googletalk
EXAMPLE:
session.answer();
e = new Event("custom", "JS::Custom");
e.addHeader("subject", "cool");
e.addBody("hello this is a test");
e.fire;
while(session.ready()) {
session.execute("sleep", "1000");
event = session.getEvent();
if (event) {
str = event.serialize(); // or ("xml")
console_log("debug", "Dump Event:\n" + str + "\n");
e = new Event("custom", "JS::Chat");
e.addHeader("works", "yes");
e.addBody("you said: " + event.getBody());
session.sendEvent(e);
event.destroy();
}
}
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2323 d0543943-73ff-0310-b7d9-9358b9ac24b2
To Test:
uncomment or add from modules.conf
make installall again to compile it
uncomment the load line from freeswitch.xml
the default values are to bind to 127.0.0.1 port 8021
telnet to port 8021
enter "auth ClueCon" to authenticate
from here you can do the following:
*) events [xml|plain] <list of events to log or all for all>
*) noevents
*) log <level> // same as the console.conf values
*) nolog
*) api <command> <arg>
*) exit
there is a perl client in scripts/socket called fs.pl
with the module up and loaded:
cd scripts/socket
perl fs.pl <optional log level>
you can enter a few api commands like "show or status"
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2047 d0543943-73ff-0310-b7d9-9358b9ac24b2
you should now be able to bind an event handler to a
paticiular file or function not just a paticular event
when using the custom event
like "file:somefile.c"
or "func:somefunc"
also events now have headers which can be added
with varargs and should be created and delivered with api calls
switch_event *event;
regular event:
if (switch_event_create(&event, SWITCH_EVENT_STARTUP) == SWITCH_STATUS_SUCCESS) {
switch_event_add_header(event, "event_info", "System Ready");
switch_event_fire(&event);
}
custom event:
if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, "some_subclass_string") == SWITCH_STATUS_SUCCESS) {
switch_event_add_header(event, "event_info", "hello world %d", 42);
switch_event_fire(&event);
}
switch_event_add_header(event, "test %d", 42);
also you can serialize and event into a buffer in
a printable/transferrable format with optional body
char buf[1024];
with body:
switch_event_serialize(event, buf, sizeof(buf), "This is a body my favorite number is %d", 42);
no body:
switch_event_serialize(event, buf, sizeof(buf), NULL);
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@173 d0543943-73ff-0310-b7d9-9358b9ac24b2