Sending Vendor Specific Parameters to ASR server from Adhearsion?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Sending Vendor Specific Parameters to ASR server from Adhearsion?

Eric Ravelo
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Christopher Rienzo
Support for accepting MRCP headers from Adhearsion was added to FreeSWITCH on Dec 10th.  If you specify an MRCP header that is not defined in the MRCP RFC, it is assumed to be a vendor-specific parameter.

I'm not sure how Adhearsion was modified to support this, but it should be possible to do.

On Tue, Feb 10, 2015 at 4:55 AM, Eric Ravelo <[hidden email]> wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Eric Ravelo
Hello Christopher,

Thanks for the reply.

If a write so in Adhearsion:

result = ask("say something", grammar: my_grammar,
  input_options
: { mode: :voice, min_confidence: 0.78 })


It is passed by FreeSWITCH as:

MRCP/2.0 361 RECOGNIZE 2
Channel-Identifier: 90f052b0b13e11e4@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Sensitivity-Level: 0.5
Confidence-Threshold: 0.78
Start-Input-Timers: false
Speech-Language: fr-FR
No-Input-Timeout: 5000
Speech-Incomplete-Timeout: 5000
Speech-Complete-Timeout: 5000
Content-Length: 19


where we can see that "min_confidence" is not defined by the MRCP RCF, but it is passed as the RFC defined "Confidence-Threshold" parameter.
So there must be a mapping between Adhearsion parameter names and RFC, hence my question.

Or maybe I missed something.

Eric


On Tuesday, February 10, 2015 at 4:35:22 PM UTC+1, Christopher Rienzo wrote:
Support for accepting MRCP headers from Adhearsion was added to FreeSWITCH on Dec 10th.  If you specify an MRCP header that is not defined in the MRCP RFC, it is assumed to be a vendor-specific parameter.

I'm not sure how Adhearsion was modified to support this, but it should be possible to do.

On Tue, Feb 10, 2015 at 4:55 AM, Eric Ravelo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="_YS92b6hS10J" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">era...@...> wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (<a href="http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.llaisdy.com%2Fstatic%2Ftech%2Fmrcp%2Fmrcpv2-10_annotated.html%23page-37\46sa\75D\46sntz\0751\46usg\75AFQjCNHrze4uDa22Y5ZfbwTfSn98y8-2JQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.llaisdy.com%2Fstatic%2Ftech%2Fmrcp%2Fmrcpv2-10_annotated.html%23page-37\46sa\75D\46sntz\0751\46usg\75AFQjCNHrze4uDa22Y5ZfbwTfSn98y8-2JQ';return true;">http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="_YS92b6hS10J" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Dave Dolan
I searched the codebase on punchblock and adhearsion for 'Confidence-Threshold' and found this: https://github.com/adhearsion/punchblock/blob/5e684ccaa31089019e556b481f87eff545e1c682/spec/punchblock/component/input_spec.rb

Perhaps it's a clue for you?

On Tue, Feb 10, 2015 at 11:12 AM, Eric Ravelo <[hidden email]> wrote:
Hello Christopher,

Thanks for the reply.

If a write so in Adhearsion:

result = ask("say something", grammar: my_grammar,
  input_options
: { mode: :voice, min_confidence: 0.78 })


It is passed by FreeSWITCH as:

MRCP/2.0 361 RECOGNIZE 2
Channel-Identifier: 90f052b0b13e11e4@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Sensitivity-Level: 0.5
Confidence-Threshold: 0.78
Start-Input-Timers: false
Speech-Language: fr-FR
No-Input-Timeout: 5000
Speech-Incomplete-Timeout: 5000
Speech-Complete-Timeout: 5000
Content-Length: 19


where we can see that "min_confidence" is not defined by the MRCP RCF, but it is passed as the RFC defined "Confidence-Threshold" parameter.
So there must be a mapping between Adhearsion parameter names and RFC, hence my question.

Or maybe I missed something.

Eric


On Tuesday, February 10, 2015 at 4:35:22 PM UTC+1, Christopher Rienzo wrote:
Support for accepting MRCP headers from Adhearsion was added to FreeSWITCH on Dec 10th.  If you specify an MRCP header that is not defined in the MRCP RFC, it is assumed to be a vendor-specific parameter.

I'm not sure how Adhearsion was modified to support this, but it should be possible to do.

On Tue, Feb 10, 2015 at 4:55 AM, Eric Ravelo <[hidden email]> wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.



--
---------------------------------------------------------------
Dave Dolan
http://davedolan.com/blog

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Christopher Rienzo
There are Adhearsion input parameters that are already mapped to MRCP headers (like min_confidence, max_silence, etc).  However, a set of "header" elements is now accepted in the input component that allows you to define the exact MRCP headers you wish to set.

Again, I don't know how this feature was exposed in Adhearsion, but it's in there somewhere.

On Tue, Feb 10, 2015 at 11:15 AM, Dave Dolan <[hidden email]> wrote:
I searched the codebase on punchblock and adhearsion for 'Confidence-Threshold' and found this: https://github.com/adhearsion/punchblock/blob/5e684ccaa31089019e556b481f87eff545e1c682/spec/punchblock/component/input_spec.rb

Perhaps it's a clue for you?

On Tue, Feb 10, 2015 at 11:12 AM, Eric Ravelo <[hidden email]> wrote:
Hello Christopher,

Thanks for the reply.

If a write so in Adhearsion:

result = ask("say something", grammar: my_grammar,
  input_options
: { mode: :voice, min_confidence: 0.78 })


It is passed by FreeSWITCH as:

MRCP/2.0 361 RECOGNIZE 2
Channel-Identifier: 90f052b0b13e11e4@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Sensitivity-Level: 0.5
Confidence-Threshold: 0.78
Start-Input-Timers: false
Speech-Language: fr-FR
No-Input-Timeout: 5000
Speech-Incomplete-Timeout: 5000
Speech-Complete-Timeout: 5000
Content-Length: 19


where we can see that "min_confidence" is not defined by the MRCP RCF, but it is passed as the RFC defined "Confidence-Threshold" parameter.
So there must be a mapping between Adhearsion parameter names and RFC, hence my question.

Or maybe I missed something.

Eric


On Tuesday, February 10, 2015 at 4:35:22 PM UTC+1, Christopher Rienzo wrote:
Support for accepting MRCP headers from Adhearsion was added to FreeSWITCH on Dec 10th.  If you specify an MRCP header that is not defined in the MRCP RFC, it is assumed to be a vendor-specific parameter.

I'm not sure how Adhearsion was modified to support this, but it should be possible to do.

On Tue, Feb 10, 2015 at 4:55 AM, Eric Ravelo <[hidden email]> wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.



--
---------------------------------------------------------------
Dave Dolan
http://davedolan.com/blog

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Eric Ravelo
In reply to this post by Dave Dolan
Yeah, thanks Dave.

I Should definitely upgrade to 2.6.0 and try this.

On Tuesday, February 10, 2015 at 5:15:37 PM UTC+1, Dave Dolan wrote:
I searched the codebase on punchblock and adhearsion for 'Confidence-Threshold' and found this: <a href="https://github.com/adhearsion/punchblock/blob/5e684ccaa31089019e556b481f87eff545e1c682/spec/punchblock/component/input_spec.rb" target="_blank" rel="nofollow" onmousedown="this.href='https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2Fadhearsion%2Fpunchblock%2Fblob%2F5e684ccaa31089019e556b481f87eff545e1c682%2Fspec%2Fpunchblock%2Fcomponent%2Finput_spec.rb\46sa\75D\46sntz\0751\46usg\75AFQjCNESfOw3AkYxn3kMEYiTGD1yBioFJw';return true;" onclick="this.href='https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2Fadhearsion%2Fpunchblock%2Fblob%2F5e684ccaa31089019e556b481f87eff545e1c682%2Fspec%2Fpunchblock%2Fcomponent%2Finput_spec.rb\46sa\75D\46sntz\0751\46usg\75AFQjCNESfOw3AkYxn3kMEYiTGD1yBioFJw';return true;">https://github.com/adhearsion/punchblock/blob/5e684ccaa31089019e556b481f87eff545e1c682/spec/punchblock/component/input_spec.rb

Perhaps it's a clue for you?

On Tue, Feb 10, 2015 at 11:12 AM, Eric Ravelo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="zEeVtKsGoxkJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">era...@...> wrote:
Hello Christopher,

Thanks for the reply.

If a write so in Adhearsion:

result = ask("say something", grammar: my_grammar,
  input_options
: { mode: :voice, min_confidence: 0.78 })


It is passed by FreeSWITCH as:

MRCP/2.0 361 RECOGNIZE 2
Channel-Identifier: 90f052b0b13e11e4@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Sensitivity-Level: 0.5
Confidence-Threshold: 0.78
Start-Input-Timers: false
Speech-Language: fr-FR
No-Input-Timeout: 5000
Speech-Incomplete-Timeout: 5000
Speech-Complete-Timeout: 5000
Content-Length: 19


where we can see that "min_confidence" is not defined by the MRCP RCF, but it is passed as the RFC defined "Confidence-Threshold" parameter.
So there must be a mapping between Adhearsion parameter names and RFC, hence my question.

Or maybe I missed something.

Eric


On Tuesday, February 10, 2015 at 4:35:22 PM UTC+1, Christopher Rienzo wrote:
Support for accepting MRCP headers from Adhearsion was added to FreeSWITCH on Dec 10th.  If you specify an MRCP header that is not defined in the MRCP RFC, it is assumed to be a vendor-specific parameter.

I'm not sure how Adhearsion was modified to support this, but it should be possible to do.

On Tue, Feb 10, 2015 at 4:55 AM, Eric Ravelo <[hidden email]> wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (<a href="http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37" rel="nofollow" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.llaisdy.com%2Fstatic%2Ftech%2Fmrcp%2Fmrcpv2-10_annotated.html%23page-37\46sa\75D\46sntz\0751\46usg\75AFQjCNHrze4uDa22Y5ZfbwTfSn98y8-2JQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.llaisdy.com%2Fstatic%2Ftech%2Fmrcp%2Fmrcpv2-10_annotated.html%23page-37\46sa\75D\46sntz\0751\46usg\75AFQjCNHrze4uDa22Y5ZfbwTfSn98y8-2JQ';return true;">http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="javascript:" target="_blank" gdf-obfuscated-mailto="zEeVtKsGoxkJ" rel="nofollow" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">adhearsion+...@googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" rel="nofollow" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.



--
---------------------------------------------------------------
Dave Dolan
<a href="http://davedolan.com/blog" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fdavedolan.com%2Fblog\46sa\75D\46sntz\0751\46usg\75AFQjCNHBkBzHyNo8FDPRc3jRjLZ_Umk41A';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fdavedolan.com%2Fblog\46sa\75D\46sntz\0751\46usg\75AFQjCNHBkBzHyNo8FDPRc3jRjLZ_Umk41A';return true;">http://davedolan.com/blog

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Ben Langfeld-2
In reply to this post by Eric Ravelo
On 10 February 2015 at 14:12, Eric Ravelo <[hidden email]> wrote:
Hello Christopher,

Thanks for the reply.

If a write so in Adhearsion:

result = ask("say something", grammar: my_grammar,
  input_options
: { mode: :voice, min_confidence: 0.78 })


It is passed by FreeSWITCH as:

MRCP/2.0 361 RECOGNIZE 2
Channel-Identifier: 90f052b0b13e11e4@speechrecog
Content-Type: text/uri-list
Cancel-If-Queue: false
Sensitivity-Level: 0.5
Confidence-Threshold: 0.78
Start-Input-Timers: false
Speech-Language: fr-FR
No-Input-Timeout: 5000
Speech-Incomplete-Timeout: 5000
Speech-Complete-Timeout: 5000
Content-Length: 19


where we can see that "min_confidence" is not defined by the MRCP RCF, but it is passed as the RFC defined "Confidence-Threshold" parameter.
So there must be a mapping between Adhearsion parameter names and RFC, hence my question.

min_confidence here is a parameter mapped to min-confidence in the Rayo spec. You can see it in the Punchblock API documentation referred to here: http://www.rubydoc.info/gems/adhearsion-asr/AdhearsionASR/ControllerMethods:ask. We recently added the ability to pass arbitrary headers in https://github.com/adhearsion/punchblock/pull/237, thus if you wanted to include X-Foo-Bar: 10 in your RECOGNIZE request, you would do:

result = ask("say something", grammar: my_grammar,
  input_options: { mode: :voice, min_confidence: 0.78, headers: { 'X-Foo-Bar' => 10} })

Or maybe I missed something.

Eric


On Tuesday, February 10, 2015 at 4:35:22 PM UTC+1, Christopher Rienzo wrote:
Support for accepting MRCP headers from Adhearsion was added to FreeSWITCH on Dec 10th.  If you specify an MRCP header that is not defined in the MRCP RFC, it is assumed to be a vendor-specific parameter.

I'm not sure how Adhearsion was modified to support this, but it should be possible to do.

On Tue, Feb 10, 2015 at 4:55 AM, Eric Ravelo <[hidden email]> wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adhearsion+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Sending Vendor Specific Parameters to ASR server from Adhearsion?

Eric Ravelo
In reply to this post by Eric Ravelo
Hello Ben, it's nice to hear from you.

Thanks again for the details, and yes, your suggestion works as expected.

Great framework!

Thanks again to the community.

On Tuesday, February 10, 2015 at 10:55:41 AM UTC+1, Eric Ravelo wrote:
Hello all,

Is it possible to send MRCP V2 Vendor Specific Parameters (<a href="http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37" target="_blank" rel="nofollow" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.llaisdy.com%2Fstatic%2Ftech%2Fmrcp%2Fmrcpv2-10_annotated.html%23page-37\46sa\75D\46sntz\0751\46usg\75AFQjCNHrze4uDa22Y5ZfbwTfSn98y8-2JQ';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fwww.llaisdy.com%2Fstatic%2Ftech%2Fmrcp%2Fmrcpv2-10_annotated.html%23page-37\46sa\75D\46sntz\0751\46usg\75AFQjCNHrze4uDa22Y5ZfbwTfSn98y8-2JQ';return true;">http://www.llaisdy.com/static/tech/mrcp/mrcpv2-10_annotated.html#page-37) to the ASR engine, from an Adhearsion App using Adhearsion::CallController#ask ?

I looked into Punchblock::Component::Input (version 2.6.0) but I didn't see how to pass such vendor-specific-parameters

My setup is AHN + FreeSWITCH.

Thanks for this great software.

Eric

--
You received this message because you are subscribed to the Google Groups "Adhearsion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.