siproc

A primitive SIP client that spawns processes for each call
git clone git://xatko.vsos.ethz.ch/siproc.git
Log | Files | Refs | README | LICENSE

README.md (1987B)


      1 siproc
      2 ======
      3 
      4 siproc is a primitive SIP Client used for call automatization by
      5 spawning a given process for each call. These processes can then
      6 control the call via standard output and receive events via standard
      7 input. siproc uses the [pjsip](http://www.pjsip.org/) library as a
      8 backend.
      9 
     10 See the man-page siproc(1) for usage details. There are some
     11 illustrative examples in the examples/-directory as well.
     12 
     13 Application Examples
     14 --------------------
     15 
     16 The software can be used to spam filter calls based on their phone
     17 number or SIP URI. Consider a program `./filter` that executes its
     18 command line arguments if and only if it deems the caller to be spam.
     19 The chained executable can then pick up the phone, play a message and
     20 hang up again.
     21 
     22 Compatibility
     23 -------------
     24 
     25 siproc is compatible to Linux only, since it relies on epoll for
     26 polling subprocess activity. It should be straight forward to make it
     27 cross-platform using [libev](http://software.schmorp.de/pkg/libev.html)
     28 or similar.
     29 
     30 Building
     31 --------
     32 
     33 First, install the pjsip-library, which goes by many names in different
     34 distributions:
     35 
     36 	apt-get install libpjproject-dev
     37 
     38 for Debian, or:
     39 
     40 	emerge -av net-libs/pjproject
     41 
     42 for Gentoo. Afterwords, a simple:
     43 
     44 	make && make install
     45 
     46 should do.
     47 
     48 To-Do
     49 -----
     50 
     51 * [ ] Expose more of pjsips features to the process!
     52 * [ ] Accomodate alsa virtual microphones with `snd_pcm_file_open()`
     53 	without touching asoundrcs. If this can be accomplished without
     54 	modifying pjsip, it must be done via making alsa report
     55 	`"file:'blafoo.wav'"` in a call to `snd_device_name_hint(-1, "pcm", ...)`,
     56 	and calling `pjmedia_aud_dev_refresh()`, after which the file should
     57 	become available via `AudioDevManager`
     58 * Make siproc report errors to the child processes
     59 
     60 Contributing
     61 ------------
     62 
     63 Drop me an E-Mail at dominik@schm1dt.ch and if you have patches, either
     64 send them as attachments or use the well-established git send-email
     65 method:
     66 
     67 	git send-email origin/master..master --to dominik@schm1dt.ch