Version 16 (modified by 14 years ago) (diff) | ,
---|
Synapse
“Synapses are the connections between neurons in the brain through which nervous impulses pass.”
Introduction
Synapse is an advanced event framework in C++:
- Modulair plugin system
- Easy to write modules
- Easy to send and receive message, while maintaining code readability
- Session management
- Build in authentication
- Fine grained access control on sending and receiving of events
- Events can be handled by multiple threads if desired (max-threads is adjustable per session and per module)
Architecture diagram
On a abtract level, Synapse tries to split up the Internet application layers in to OSI model layers:
- Modules don't need to be aware of the node they run on.
- A module can have 1 or more sessions.
- The C++ API is very simple: Just a way to send and receive messages.
- The core keeps track of sessions and knows which module(s) to deliver the message to.
- tcp/json connector:
- A special module to transparently transport messages to other modules.
- Incoming message src is mapped to local session.
- http/json connector:
- A special module to allow javascript instances in browsers to connect and communicate with each other.
Other documentation
Whitepaper/notes (still dutch and messy, but nice drawings ;): http://open.syn3.nl/syn3/trac/default/export/latest/trunk/projects/synapse/docs/synapse.odt
Module documentation: http://open.syn3.nl/syn3/trac/default/browser/trunk/projects/synapse/modules/docs/html
Download
Download:
psy@r3m0t3h0st ~/test $ svn co --username=anonymous --password=anonymous http://open.syn3.nl/syn3/svndav/default/trunk/projects/synapse ... Checked out revision 311.
Configure/compile:
psy@r3m0t3h0st ~/test $ cd synapse/ psy@r3m0t3h0st ~/test/synapse $ cmake . ... psy@r3m0t3h0st ~/test/synapse $ make ...
Run a module:
psy@r3m0t3h0st ~/test/synapse $ ./synapse modules/test.module/libtest.so ...
Automatic asterisk operator panel
This is the first serious project built on top of the synapse platform.
- Multi server
- Multi tennant
- Minimal configuration
- Auto detection of SIP devices
- Web based
- Login is done by calling a special number, so no additional password and user management is neccesary.
- Tested with configurations generated by:
- Asterisk_GUI
- Thirdlane.
- FreePBX (use AMPEXTENSIONS=deviceanduser in /etc/amportal.conf to be able to set the description)
Used synapse modules:
- asterisk_ami: Connects to a asterisk management interface
- http_json: Build-in webserver for full-duplex events. (used in combination with asterisk.html.)
- timer module
- asterisk: this is the project module that mainly talks with the asterisk_ami module. its responsible for collecting and tracking all relevant asterisk data.
- marquee: Module to control our marquee
- asterisk_marquee: Module to couple asterisk module with multiple remote marquees.
Roadmap
Current version:
- Tracking of all calls, channels and sip devices.
- Html panel that shows all sip devices and channels in realtime.
- Still read-only
- Authentication by calling a special number from your sip-device
- Multi tennant support.
- Better user interface.
Next version:
- Multiple marquee support.
Future versions:
- Transfer calls
- Make calls
- etc.
Media player
- Based on libvlc
- Like Media Player Deamon (MPD) but also for videos.
- Realtime web interface
- Easy programmable for remote control via synapse event mapper.
- Control output on marquee
- MPD compatible so you can use your favorite MPD client.
Attachments (7)
- synapse.png (38.2 KB) - added by 15 years ago.
- connectors.png (26.8 KB) - added by 14 years ago.
- asterisk.png (78.2 KB) - added by 14 years ago.
- layers.png (61.0 KB) - added by 14 years ago.
- mediazapper.png (81.7 KB) - added by 12 years ago.
- zapper.png (103.3 KB) - added by 12 years ago.
- zappermobile.png (61.5 KB) - added by 12 years ago.
Download all attachments as: .zip