Author Message
Json
Joined: May 22, 2018
Messages: 38
Offline
Is there a plan to add speech to text to breeze. I would like to be able to take transcribed text, send it to an api that will process the text and return a json response and based on that I can announce the text from the response to the caller.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi, at the moment there are no plans to add full speech transcription capabilitites to Breeze. Sorry.
Json
Joined: May 22, 2018
Messages: 38
Offline
JoelEzell wrote:Hi, at the moment there are no plans to add full speech transcription capabilitites to Breeze. Sorry.


is it possible to capture part of the speech then forward it to a service that would do that? or is breeze limited to sending string & Json data?
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Yes, you can record snippets of one participant's audio using the Record API. The Callable Application sample app demonstrates how to do this.
Json
Joined: May 22, 2018
Messages: 38
Offline
JoelEzell wrote:Yes, you can record snippets of one participant's audio using the Record API. The Callable Application sample app demonstrates how to do this.


ok thanks. I will test it out with a call intercept and see how well it works.
Json
Joined: May 22, 2018
Messages: 38
Offline
JoelEzell wrote:Yes, you can record snippets of one participant's audio using the Record API. The Callable Application sample app demonstrates how to do this.


I tested out the callable service but I am coming across a problem. While going through the Administering Avaya Breeze document , Callable snap-in deployment checklist

step 5 states to determine the dial string of the callable snap-in. Is that a number we assign to the snap in, if so, where?

I completed all the other setups. Also, when adding the sample callableservice to a service profile, it gets listed under Called Service Invocation Order.

when I call the number I setup in the pattern and routing policy , the callIntercepted method in the callableservicecalllistener class is called, the call.wasServiceCalled is false and the logger message is returned
"The CallableService sample snap-in can only be invoked as a CallableService, not a sequenced service"

can you please help me with some clarification on assigning a number to callable service. I followed these instructions here as well
https://www.devconnectprogram.com/forums/posts/list/22026.page

and why does the sample callable service is listed under the Called Service Invocation Order when added to a service profile?
  • [Thumb - callable.png]
[Disk] Download
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
It is expected that the Callable Service would show up in the Called Service list. Callable services are similar in many ways to a Called Party Call Intercept Service, with the main difference being that the called number is associated with the snap-in rather than a user.

As far as how to associate a number with your application, what you need to do is to configure a Session Manager Route to tell SM to route the call to Breeze as its final destination rather than as an intermediate point on its way to its final destination.

HOWEVER, it sounds like your ultimate goal is to do this in a Call Intercept scenario. Given that, you can take advantage of the fact that Call Intercept and Callable are very similar. Find the code that is checking the wasServiceCalled property on the call and remove it or change it to "isCalledPhase". The snap-in should then work just fine.
Json
Joined: May 22, 2018
Messages: 38
Offline
JoelEzell wrote:It is expected that the Callable Service would show up in the Called Service list. Callable services are similar in many ways to a Called Party Call Intercept Service, with the main difference being that the called number is associated with the snap-in rather than a user.

As far as how to associate a number with your application, what you need to do is to configure a Session Manager Route to tell SM to route the call to Breeze as its final destination rather than as an intermediate point on its way to its final destination.

HOWEVER, it sounds like your ultimate goal is to do this in a Call Intercept scenario. Given that, you can take advantage of the fact that Call Intercept and Callable are very similar. Find the code that is checking the wasServiceCalled property on the call and remove it or change it to "isCalledPhase". The snap-in should then work just fine.


thanks for the quick response.

I figured that much, that removing the if statement will get what I need. But I am also interested in figuring out how to make it a callable service while I am doing this work.

I followed the insutructions here,
https://www.devconnectprogram.com/forums/posts/list/22026.page
but the sample callable service is showing up under" Called Service Invocation Order", why is that?

I am using breeze 3.4.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
It's expected that the Callable service would show up in the Called execution order. The key thing is that the Callable service for a given number must be the LAST service in the Called execution order.
Json
Joined: May 22, 2018
Messages: 38
Offline
JoelEzell wrote:It's expected that the Callable service would show up in the Called execution order. The key thing is that the Callable service for a given number must be the LAST service in the Called execution order.

Thanks for the explanation. I was able to get the service to work as a callable service, but I ran into an issue. I read through the code and I understand how it is setup but I am having an issue with the play back of the recording.

I modified the code to save the recorded file name as mycustomrecording.wav but when I select the option to play prev recording, the service finds the .wav recorded file, but nothing plays.

To test that the code is working, When the option to play a prev recorded message is selected, I set it to manually play the gretting.wav instead of the recorded message file and the greetings plays fine.

so there is an issue with the recorded file. It looks like the recorded file exists in
http:/serverip/services/CallableService/CallableServiceServlet/mycustomrecording.wav

The sample file seems to have a minor issue. I had to appened CallableServiceServlet/ to the path because the code was looking for the recorded message in this path
http:/serverip/services/CallableService/mycustomrecording.wav
it looks like the mycustomrecording.wav file is being created but the recording API is not recording anything to that file, but I am not sure where else to look.


am I able to access the service files to look at the recorded wav file ? what am i missing?

Also, when I try to access this link to get the recorded message
http://securityip/services/CallableService/CallableServiceServlet/mycustomrecording.wav
I get a 405 error method not allowed

but
http://securityip/services/CallableService/Greeting.wav and other wav files are accessible fine.


I hope someone who got this sample to work can help.
Filename callable.log [Disk] Download
RobertFavero
Joined: Mar 31, 2015
Messages: 27
Offline
There are a few interesting things about what you are encountering:

1. I installed the Callable Service sample snap-in in my lab, and the record and later play back of the recording worked without the need to modify the snap-in in any way. At this point it's not obvious to me what is different with what you are doing that would explain the behavior you are seeing.

2. You mention two URLs in your description. One of them is in the form http:/serverip/services/CallableService/CallableServiceServlet/mycustomrecording.wav
and the other is in the form http:/serverip/services/CallableService/mycustomrecording.wav. The difference, of course, is the presence/absence of "CallableServiceServlet" in the path. It turns out that the snap-in has been constructed in a way so that operations related to the management (creation and deletion) of the recording require use of the form that includes the "CallableServiceServlet". However, the play out of the recording does not require the "CallableServiceServlet" portion; in fact, it is not possible to invoke the play out of the recording using the form with "CallableServiceServlet".

So while it is admittedly inconsistent for using two different forms to reference the recording, it appears that the creator of the sample service did so by design. I'm speculating when I say that perhaps the creator wanted to show the flexibility available within a snap-in for resolving URL targets.

3. The physical location of the recording on disk is at /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/Node01Cell/CallableService-3.5.0.0.350007.ear/CallableService-war-3.5.0.0.350007.war/, where "3.5.0.0.350007" is the version of the snap-in. When you run the snap-in with your file name modification of "mycustomrecording.wav", you should find the file in this directory. Can you check if you find it there and if it has a size greater than 0?

4. Can you double check that you changed the wav file name in all places that it needs to be changed in the code? I found three places where it needed to be changed:

- 2 in CallableServiceMainMenuMediaListener
- 1 in RecordMessageOperationImpl

Can you also double check that you did not include the ".wav" extension in the file name in any of those locations?
Json
Joined: May 22, 2018
Messages: 38
Offline
RobertFavero wrote:There are a few interesting things about what you are encountering:

1. I installed the Callable Service sample snap-in in my lab, and the record and later play back of the recording worked without the need to modify the snap-in in any way. At this point it's not obvious to me what is different with what you are doing that would explain the behavior you are seeing.

2. You mention two URLs in your description. One of them is in the form http:/serverip/services/CallableService/CallableServiceServlet/mycustomrecording.wav
and the other is in the form http:/serverip/services/CallableService/mycustomrecording.wav. The difference, of course, is the presence/absence of "CallableServiceServlet" in the path. It turns out that the snap-in has been constructed in a way so that operations related to the management (creation and deletion) of the recording require use of the form that includes the "CallableServiceServlet". However, the play out of the recording does not require the "CallableServiceServlet" portion; in fact, it is not possible to invoke the play out of the recording using the form with "CallableServiceServlet".

So while it is admittedly inconsistent for using two different forms to reference the recording, it appears that the creator of the sample service did so by design. I'm speculating when I say that perhaps the creator wanted to show the flexibility available within a snap-in for resolving URL targets.

3. The physical location of the recording on disk is at /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/Node01Cell/CallableService-3.5.0.0.350007.ear/CallableService-war-3.5.0.0.350007.war/, where "3.5.0.0.350007" is the version of the snap-in. When you run the snap-in with your file name modification of "mycustomrecording.wav", you should find the file in this directory. Can you check if you find it there and if it has a size greater than 0?

4. Can you double check that you changed the wav file name in all places that it needs to be changed in the code? I found three places where it needed to be changed:

- 2 in CallableServiceMainMenuMediaListener
- 1 in RecordMessageOperationImpl

Can you also double check that you did not include the ".wav" extension in the file name in any of those locations?


we had upgraded breeze to 3.6.0.1 and tesitng with the callable service without any modification and the recorded audio file is typically empty and nothing is getting recorded. When I press a digit then some noise is caught and the file is no more than 2000 bytes. Any idea why is no audio getting recorded?

  • [Thumb - failed audio recording.png]
[Disk] Download
Amit.Mishra
Joined: Dec 19, 2013
Messages: 34
Offline
Hello Json, We are looking at this and get back to you soon on the analysis.

Thanks,
Amit.
Go to:   
Mobile view