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