Greetings,
One of the things that I have been working with off and on is a new event API for Asterisk. Most of the current infrastructure was written almost a year ago. However, just recently, I extended this system to be able to allow device states to be shared within a cluster of Asterisk servers.
The current system for distributed events is designed for a high speed LAN. However, I also have plans to extend this to DUNDi so that it can be used withina DUNDi network, as well.
If you are interested in this work, I would appreciate any help with testing. I have documented how to set it up and how I used some custom states to verify the functionality.
To download the code:
$ svn co http://svn.digium.com/svn/asterisk/team/russell/events asterisk-events
For information on setup and testing, check out this document.
UPDATE
This functionality has been merged into Asterisk and will be available in Asterisk 1.6.1. Instead of testing this branch, please test 1.6.1.
To download the code:
$ svn co http://svn.digium.com/svn/asterisk/branches/1.6.1 asterisk-1.6.1
For information on setup and testing, check out this document.
Great idea,
i will go test! and give some feedback
thanks
Pingback: Asterisk 1.6, Now with Distributed Presence
hi,
I have just installed asterisk-events which i got from checkout (svn co http://svn.digium.com/svn/asterisk/team/russell/events).
But when i make asterisk error:
—–
…
[CC] res_agi.c -> res_agi.o
[LD] res_agi.o -> res_agi.so
[CC] res_ais.c -> res_ais.o
In file included from res_ais.c:47:
ais/ais.h:41: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ckpt_handle’
make[1]: *** [res_ais.o] Error 1
make[1]: Leaving directory `/usr/src/events/res’
make: *** [res] Error 2
…
—–
Could you tell me this problem, please,
Thank a lot.
Nguyen,
Nguyen,
Thanks for the comment. This functionality has actually been merged into Asterisk trunk, and will be released in Asterisk 1.6.1. So, instead of testing this branch, I would test 1.6.1. Check it out here:
$ svn co http://svn.digium.com/svn/asterisk/branches/1.6.1 asterisk-1.6.1
I will update the post with this information.
Thanks!
Thanks for reply, it works now,
hi Russel,
I have a problem which asterisk event following:
I have configured asterisk and openais (../doc/distributed_devstate.txt).
+ In ais.conf
…
[device_state]
type=event_channel
publish_event=device_state
subscribe_event=device_state
…
then i run asterisk -vvvc => asterisk return “Segmentation fault”, both configure file of asterisk i don’t change and set to default.
I have tried with gdb, i see:
gdb /usr/sbin/asterisk
(gdb) set args -vvvv
(gdb) run
……
Parsing ‘/etc/asterisk/dundi.conf’: == Found
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1215505520 (LWP 15895)]
0x003658a8 in saEvtDispatch () from /usr/lib/openais/libSaEvt.so.2
(gdb)
Please help me,
Thanks
The issue lies in the openais code. It tries to allocate over 1 MB of memory on the stack, while Asterisk creates threads with a much smaller stack size than that. So, it blows up. I submitted a patch to fix this a long time ago:
https://lists.linux-foundation.org/pipermail/openais/2007-August/009257.html
However, none of the releases listed in the “stable” section on openais.org include this fix. So, you’ll have to run a newer version.
Thanks Russell, I will check it and reply to you.
Nguyen Hung,
Since I saw a couple of good changes/features in Asterisk new version 1.6 here:
http://www.syednetworks.com/asterisk-1-6-features
And I upgraded to new version but I faced two different issues:
1. Since i’m using Digium telephony card TDM410 FXO, so after installation I tried to check zap status with “zap” commands on CLI but unfortunately i couldn’t get chan_zap.so module? what package provides me this?
2. My second problem is my zaptel hardwares are dropping some warnings for echo cancellation. I guess new version doesn’t support echo cancellation or what?
please someone guide me with this. Thanks
Haseeb, please read the following documents:
http://svn.digium.com/svn/asterisk/branches/1.6.0/UPGRADE-1.6.txt
http://svn.digium.com/svn/asterisk/branches/1.6.0/Zaptel-to-DAHDI.txt
http://svn.digium.com/svn/dahdi/tools/trunk/UPGRADE.txt
hi Russell its posible to shere device states across differents asterisk servers i mean , 4 or 5 boxes with res_corosync or this only work with 2 nodes or i have to do something else., thanks
Yes, this should work with 4 or 5 boxes, as well.