[PD] Pd + asterisk?

Hans-Christoph Steiner hans at eds.org
Sun Dec 23 03:46:42 CET 2007


On Dec 22, 2007, at 6:41 PM, Hans-Christoph Steiner wrote:

>
> On Dec 16, 2007, at 5:48 PM, Russell Bryant wrote:
>
>> Greetings,
>>
>> I have been working on Jack support in Asterisk this weekend and I  
>> have it
>> working, as far as I can tell.  I have a Jack Asterisk dialplan  
>> application
>> which when executed, creates two jack ports; one port is input and  
>> the other is
>> output.  These ports let you access the audio that comes from the  
>> caller, as
>> well as control what audio gets sent back to the caller.  Once I  
>> have this
>> working well, I will extend the Jack interface to allow you to do  
>> fancier
>> things.  Right now, the jack interface is the endpoint of the  
>> phone call, but it
>> would be even more interesting to be able to hook into the audio  
>> path of a phone
>> call to another destination.
>>
>> Anyway, the way that I have tested this is simply by using an  
>> application called
>> "Patchage".  It is a graphical jack port manager.  When I make a  
>> call, I see my
>> two jack ports appear.  I can connect them together and everything  
>> I say gets
>> sent back to me as expected.
>>
>> My next step is that I want to figure out how to hook up my ports  
>> to a Pd patch,
>> but I haven't quite figured out how to use Jack in Pd yet.  I'm  
>> going to keep
>> working on it, but I figured I would post what I have in case  
>> anyone else was
>> curious and interested in trying it out.
>>
>> Here is what I'm doing to test what I have ...
>>
>>
>> 1) Install my branch of Asterisk that contains app_jack.
>>
>> $ svn co http://svn.digium.com/svn/asterisk/team/russell/jack  
>> asterisk-jack
>> $ cd asterisk-jack
>> $ ./configure && make
>> $ sudo make install
>>
>> The jack interface is in apps/app_jack.c in case anyone cares.
>
> When building on Mac OS X/Intel 10.4.11, I got this:
>
>    [CC] app_jack.c -> app_jack.o
> app_jack.c:42:20: error: values.h: No such file or directory
> app_jack.c: In function 'handle_input':
> app_jack.c:217: error: 'FLT_MAX' undeclared (first use in this  
> function)
> app_jack.c:217: error: (Each undeclared identifier is reported only  
> once
> app_jack.c:217: error: for each function it appears in.)
> app_jack.c: In function 'queue_voice_frame':
> app_jack.c:407: error: 'FLT_MAX' undeclared (first use in this  
> function)
> make[1]: *** [app_jack.o] Error 1
> make: *** [apps] Error 2
>
>
> This made it build OK:
>
> Index: apps/app_jack.c
> ===================================================================
> --- apps/app_jack.c     (revision 94662)
> +++ apps/app_jack.c     (working copy)
> @@ -39,7 +39,11 @@
>
>  ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
>
> +#ifdef __APPLE__
> +#include <float.h>
> +#else
>  #include <values.h>
> +#endif
>
>  #include <jack/jack.h>
>  #include <jack/ringbuffer.h>
>
>
> Now it's time to make it run!


Hey,

I forgot to include this discussion of /usr/include/values.h on Mac  
OS X:

http://lists.apple.com/archives/scitech/2003/Nov/msg00191.html

.hc


>
> .hc
>
>
>
>>
>>
>> 2) Make an entry in /etc/asterisk/extensions.conf that looks like
>>
>> exten => 500,1,Answer()
>> exten => 500,n,Jack()
>>
>>
>> 3) Make sure jackd is running.  For the sake of efficiency,  
>> specify 8 kHz,
>> because for most codecs used for phone calls, that's all you get.   
>> Also, specify
>> 160 frames per period.  For 8 kHz audio, this comes out to 20 ms  
>> periods, which
>> is generally the packet size used for Voice over IP.
>>
>> $ sudo jackd -d dummy -r 8000 -p 160
>>
>>
>> 4) Make a call to the extension created in Asterisk in step 2.   
>> You should see
>> the two new jack ports become available.  In theory, they are  
>> available for
>> connection to any application that can use Jack.  The only thing I  
>> have done so
>> far is to use the "patchage" application to connect the ports  
>> directly together
>> to verify that the audio is flowing correctly.
>>
>>
>> Now, to figure out how to hook up arbitrary jack ports to Pd ...  
>> if anyone has
>> any pointers, it would be much appreciated.  I'm still very new to  
>> Pd.  :)
>>
>> --
>> Russell Bryant
>>
>> _______________________________________________
>> PD-list at iem.at mailing list
>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/ 
>> listinfo/pd-list
>
>
>
>
> ---------------------------------------------------------------------- 
> ------
>
> All mankind is of one author, and is one volume; when one man dies,  
> one chapter is not torn out of the book, but translated into a  
> better language; and every chapter must be so translated.... -John  
> Donne
>
>




------------------------------------------------------------------------ 
----

                             kill your television






More information about the Pd-list mailing list