[asterisk-dev] [Code Review] Fax Gateway Implementation T30<->T38
Russell Bryant
reviewboard at asterisk.org
Tue Mar 8 17:57:58 CST 2011
> On 2011-03-04 09:51:54, Russell Bryant wrote:
> > It's very nice to see some additional work on this functionality. I like the direction this patch is going right now. Specifically, I like that it no longer requires a specific endpoint application to run anymore. That was one of the key things that I wanted to see different.
> >
> > There are still some things that I would like to see a bit different from how it works right now. Even though it doesn't require running a T38Gateway() application directly, it still completely hijacks the core channel bridging loop and runs its own bridging loop. I would like to see this implemented in such a way that it still uses the core channel bridging loop. We started making some notes about this on this wiki page a while back:
> >
> > https://wiki.asterisk.org/wiki/display/AST/T.38+Gateway
> >
> > In general, what I would like to see is a way to enable this functionality from the dialplan on any channel type.
> >
> > ; not necessarily exactly this, but you get the idea ...
> > exten => foo,1,Set(T38_GATEWAY()=on)
> >
> > The dialplan function should create a T.38 gateway object and store it on a channel datastore. This gateway object should take advantage of the frame hook API to intercept all audio, udptl, and control frames (see include/asterisk/framehook.h). ast_queue_frame() and ast_write() can be used to write back out what comes out of the gateway.
> >
> > This code is a great start toward getting to where we need to go with this.
>
> irroot wrote:
> Update
>
> The pesky hijacking of the bridge loop is busy been eradicated.
>
> FAXOPT has now got a new option t38gateway that enables or disables the negotiation of gateway mode FAXOPT(t38gateway)=yes/no
> this option can be set in res_fax.conf.
>
> im using a ast_generator to write T30 frames to the channel this will allow using frame hooks properly at the moment
> it reads a packet on c0 and writes it to c0 the bridge loop actually does not do what is expected and passes traffic
> from c0 -> c1.
>
> frame hooks should not call a ast_write(chan...) from within __ast_read(chan...) use of a generator is more correct for this.
>
> the faxopt function already stores a object on the channel that is been used.
>
>
Awesome! I'm amazed at the turnaround time on this. I'll see what I can do to get someone from Digium to get involved with helping to review and test this as soon as I can. It may be a couple of weeks, though.
In the meantime, testing of this patch from anyone would be incredibly helpful.
- Russell
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1116/#review3227
-----------------------------------------------------------
On 2011-03-05 09:14:13, irroot wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1116/
> -----------------------------------------------------------
>
> (Updated 2011-03-05 09:14:13)
>
>
> Review request for Asterisk Developers, Russell Bryant, dimas, Leif Madsen, and dafe_von_cetin.
>
>
> Summary
> -------
>
> Hi there the patch that was going around circa 2008 to implement this in 1.4/1.6 app_fax has been moved to trunk [1.10]
> ive made some cleanups and moved it into res_fax res_fax_spandsp this is the framework and not production code
> unfortunately i have no means of testing it at the moment and require help.
>
> i have cleaned the code up substantially it is related to R459
>
> hope this is found useful and aids in the goal to get it in 1.10.
>
> Adds application FaxGateway / FaxDetect
> Adds alternate bridge to Dial with new option.
>
>
> This addresses bug 13405.
> https://issues.asterisk.org/view.php?id=13405
>
>
> Diffs
> -----
>
> /trunk/channels/chan_sip.c 309340
> /trunk/channels/sip/include/sip.h 309340
> /trunk/configs/sip.conf.sample 309340
> /trunk/include/asterisk/channel.h 309340
> /trunk/include/asterisk/res_fax.h 309340
> /trunk/main/channel.c 309340
> /trunk/res/res_fax.c 309340
> /trunk/res/res_fax_spandsp.c 309340
>
> Diff: https://reviewboard.asterisk.org/r/1116/diff
>
>
> Testing
> -------
>
>
> Thanks,
>
> irroot
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110308/0fedcb45/attachment.htm>
More information about the asterisk-dev
mailing list