[Home]

Summary:ASTERISK-11904: Behavior difference between commands JACK() and Set(Manipulate()=on).
Reporter:James Yu (xianghaiyu)Labels:
Date Opened:2008-04-23 15:45:06Date Closed:2011-06-07 14:03:13
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Applications/NewFeature
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I am currently working with your JACK application code app_jack.c  from asterisk-1.6.0-Beta. I found there is a behavior difference between commands JACK() and Set(Manipulate()=on).

Problem:
Using JACK(), sip phone can here sounds from alsa sounds input from  system:capture_1, but not with Set(Manipulate()=on).

How to reproduce:
-SIP phone 1000
-.JACKD running /jackd -R -dalsa -r44100 -p1024 -S

Run dial from 1000 to 700 through following dial plan

exten => 700, 1, Answer()
enten => 700, 2, JACK

then  run
./jack_connect system:capture_1 SIP/1000-0823ab58:input
SIP phone CAN hear sound from mic input.

But if run
exten => 700, 1, Answer()
enten => 700, 2, Set(Manipulate()=on)

then
./jack_connect system:capture_1 SIP/1000-0823ab58:input
SIP phone CAN NOT here sound from mic input.

Check with the code  difference seen from
jack_hook_callback() and
jack_exec()
in how to handle  handle_jack_audio(chan, jack_data, frame);

Comments:By: Russell Bryant (russell) 2008-05-28 12:55:53

This is actually not a bug.  It is a misunderstanding of what these two features do.


When using the Jack application, the audio sent to the input jack port is sent _to_ the channel.

When using the Jack audiohook, the flow is different.  You are hooking into the audio path coming _from_ the channel, not the audio being sent to the channel.  When you write to the jack input port for that channel, you are providing the audio that Asterisk is going to read as coming from that channel.

Hopefully that clears things up a bit ...