Author Message
Swapnil_Bhosale
Joined: May 18, 2015
Messages: 88
Offline
Hi All,

I am doing a two party call.
In CallOriginated callbaack i am suspending the call and playing the media.
And waiting for user to enter the option . If user press "1" then i am doing call.allow() and allowing call to the second party.


However, in MediaListner nothing is happening. I am not getting digits entered by user.

What is the issue?

Following code was working in EDP version 3.0.1 But, as i updated my EDP SDK version same code is not working.
Need help on urgent basis.

Please find below the code snippets:
[/b]
MyServlet.java
String extention1 = request.getParameter("extention1");

String extention2 = request.getParameter("extention2");
CreateCall createCall = new CreateCall(extention1,extention2);
createCall.makeCall();
PrintWriter pw = response.getWriter();
pw.write("Calls Created ");

CreateCall.java

public CreateCall(String user1, String user2) {

super();
this.user1 = user1;
this.user2 = user2;
}

public void makeCall() {
Identity identity = IdentityFactory.create("Conference Call",
"Conference Call");
String destination = "3020";
Call[] call = new Call[2];
call[0] = CallFactory.create(user1, destination, identity);
call[0].initiate();
call[1] = CallFactory.create(user2, destination, identity);
call[1].initiate();
logger.error("Calls has been created....");

}


MyCallListner.java
public void callOriginated(Call call) {

logger.error("Call Originated By : "+call.getCallingParty().getHandle());
call.suspend();
final DigitOptions digitoptions=MediaFactory.createDigitOptions().setNumberOfDigits(1).setTimeout(20000);
final com.gslab.TwoParty.MyListner mediaListener = new com.gslab.TwoParty.MyListner(call);
final MediaService mediaService = MediaFactory.createMediaService();
final PlayItem playItem=MediaFactory.createPlayItem();
playItem.setInterruptible(true);
playItem.setIterateCount(1);

try {
playItem.setSource("file://startMedia14092.wav");
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
final UUID requestId=mediaService.promptAndCollect(call.getCallingParty(), playItem, digitoptions, mediaListener);
logger.error("Media Played");
}



MyListner.java

public MyListner(Call call) {

super();
this.call = call;
}

@Override
public void digitsCollected(UUID arg0, String digit,
DigitCollectorOperationCause cause) {
// TODO Auto-generated method stub

logger.error("Inside Digit Collected : "+digit);
if("1".equalsIgnoreCase(digit)) {
call.allow();
}

}
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Swapnil, which EDP version are you on now?
Swapnil_Bhosale
Joined: May 18, 2015
Messages: 88
Offline
Hi Joel,

Thank you for your earlier reaponse.
I am using EDP SDK version 3.1.1..

I also would like to know if i am suspending call in callOriginated callback and playing tts then allowing call to Scopia Bridge once digit is entered after playing tts .
After digit collection and allowing call , What is the callback to put send digit programmatically, and also won't allow user to hear scopia bridge tts played by scopia i.e "enter your meeting id followed by #"..
I don't want user to hear that tts instead i should be able to programmatically send meeting id to bridge after digit collection from the user..
i.e i am just collection the action 1/0 is user presses one(1) then i want person to go into scopia bridge and send conference id digits programmatically..

Please let me know the place(callbacks) where i can put all this logic also digit collection is not working please look into this.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Did you upgrade your server too or only your SDK? I'll answer your other questions in a bit.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Swapnil, I came to learn that there's a patch available for EDP 3.1.1 that might help with this issue. Did you apply a patch or just install the GA load?

Regarding your other questions: the best way to keep the caller from hearing the announcement from Scopia is to play an announcement of your own back towards the caller. This could even be a "silence" announcement. The API to send DTMF digits is MediaService.sendDigits().

The current placement of your logic should work. Check on that patch; if you don't have it already, you can open a DevConnect ticket to find out how to get it. If you're still having problems after applying the patch, we may have to ask you to open a second DevConnect ticket to analyze the issue.
Swapnil_Bhosale
Joined: May 18, 2015
Messages: 88
Offline
Hi joel,

Thank you for your earlier response.
Playing own own tts sounds great idea.
I was afraid it will play both so didn't tried that.
Actually we have got fresh EDP access with lab20.
I am working on some conference use-case.
I want the place where i can put sendDigit function..
Call originate gets calked after call picked by first party and i am allowing suspended call after collecting digits..
It would have been possible to verify the correct callback as soon as call gets connected to bridge..
It would be great if you know the callback name which will be called after call got connected to bridge, so that sendDigit can be added there.

Do you have any link which can give more view on patch you mentioned?
If it would not aolve at my end i will sureply open up the ticket.


Thanks and regards,
Swapnil Bhosale.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Swapnil, if this is a Collaboratory, it has almost certainly been patched.

The callback that you'll get after the call is answered by Scopia is callAnswered.

I'm not quite clear on your current status. Can you please confirm that you are still experiencing this problem with your snap-in deployed on lab 20?
Swapnil_Bhosale
Joined: May 18, 2015
Messages: 88
Offline
Joel,

I am still facing problem with Digit Collection. I am able to play TTS but not able to collect digit.
I also tried to use only Play method of MediaFactory and invoked Collect method of MediaFactory in PlayCompleted callback . But, it didn't helped.
More specifically i am doing a Two Party Call where TTS will be played for first party and after collecting digits i want to allow call to second party !!
Can you please verify if it works to collect the digit in two party call and digits are supposed to be collected from first party after playing TTS in my Collaboratory (Lab20).

If its possible for you can you please verify any sample two party calling with collect digit functionality on [i]LAB20
[/i]

If any other solution strikes your mind will also help. i will try to implement that at my end.


Please reply at earliest as possible.

Thanks and regards,
Swapnil.
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
Hi Swapnil,

I apologize for not thinking of this yesterday, but the best path to resolving this issue is going to be to open a ticket with the Collaboratory support team. Please follow the instructions in this document:
https://dev020.collaboratory.avaya.com/lib/exe/fetch.php?media=free:clab-user-guide.pdf.

The dedicated support staff there will be able to help you diagnose and resolve this more efficiently than I can. Please include a link referencing this thread.
Swapnil_B
Joined: Jun 9, 2015
Messages: 5
Offline
Hi Joel,

Issue regarding DTMF not getting collected solved after doing following setting change on CM.
1) In Signaling Group change DTMF over IP: in-band
Initially it was having setting as DTMF over IP: rtp-payload



Thanks and regards,
Swapnil Bhosale.
Mark.A.M
Joined: May 4, 2016
Messages: 1
Offline
Hello Swapnil,

We have a snap-in service called "ServionService" which has a similar functionality to that of your snapin. It is called "ServionService". It was tested on both our labs. One lab was on ED 3.1.1.1 and the other was on ED 3.1.0.1. We tested it with the signalling Group as both "rtp-payload" and "in-band". It worked in both of our labs. It was also loaded in Lab 20 as well. The "ServionService" was tested and it works fine in Lab20, using both "rtp-payload" and "in-band. Could you give us the name of the snap-in you are having DTMF over IP: rtp-payload issues with? We can go ahead and trouble shoot and try and determine why doesn't collect digits when using DTMF over IP: rtp-payload.
Swapnil_B
Joined: Jun 9, 2015
Messages: 5
Offline
Hi Mark,


We checked the Servion service and i guess its a called party service ..!!

Can you please verify if DTMF works if calls are initiated from the SNAP-IN itself.

https://10.130.244.207/services/singleparty-1.0.0.1.9/


You can use above url and enter the sip endpoint to be called. Media will be played but DTMF will not be collected until you change the signaling group to in-band.


Please let us know if you find anything more on this.


Regards,
Swapnil.
Go to:   
Mobile view