Message |
[+]
Avaya ACE Custom Application Development (Archive - Oct 2013 and earlier)
» Problem with proxy method, 26/07/2012 09:11:15
» Go to message
|
|
Hi John,
Thanks for the response.
The problem was the TLS port I was using for the entity link in Session Manager. I was using 5061 and apparently it allows the use of any TLS port other than 5061.
|
 |
[+]
Avaya ACE Custom Application Development (Archive - Oct 2013 and earlier)
» Problem with proxy method, 16/07/2012 15:39:27
» Go to message
|
|
Hi John,
Thank you very much for taking the time to respond. As far as the sample apps, I haven't yet tried to use them. I have however been able to implement a number of the methods in the api without problems. I have been following traces from both the logs on the AAFT server as well as tracesm on SM.
I have found that the SIP INVITE gets sent to the AAFT server properly. The application handle is showing up correctly. I get a 100 trying back from the AAFT server and after x number of seconds I get a response timed out.
The logs on the AAFT server show the invite coming and it looks right but after that it's difficult to parse through all of the debug messages.
I have this set up as an originating sequenced app. I am researching and analyzing the proxy method calls in the sample apps but don't see anything different than what I've done. I will continue to research.
Again, many thanks.
|
 |
[+]
Avaya ACE Custom Application Development (Archive - Oct 2013 and earlier)
» Problem with proxy method, 15/07/2012 13:30:55
» Go to message
|
|
Hi
I am new to developing custom apps with the foundation toolkit. I am trying to explore the ProxyRoutingService Interface to see what it can do.
I have been able to successfully block calls using the reject method, redirect calls with the redirect method but I can't seem to get the proxy method to work. All I'm trying to do is simply connect the call to the dialed endpoint. I get a 100 trying back from the ace server which ultimately leads to a 408 Request Timed Out.
Currently I am functioning without an AMS server on the network. I installed the AAFT with an IP address for the AMS server which doesn't actually exist yet. I don't think that this should matter in regards to the proxy interface. Maybe I'm wrong? I am under the impression unless I'm using the MediaServer Interface I shouldn't need the AMS server.
My code seems to be right and My Session Manager config looks accurate as well.
Any insight would be greatly appreciated.
Here's my code...
package com.m3freelance.ace.training;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.EnumSet;
import java.util.Properties;
import java.util.UUID;
import java.util.regex.Pattern;
import com.avaya.service.client.ServiceFactory;
import com.avaya.service.client.appbinding.AppBindingProperties;
import com.avaya.service.client.appbinding.AppBindingService;
import com.avaya.service.client.appbinding.AppBindingStatusListener;
import com.avaya.service.client.appbinding.BindId;
import com.avaya.service.client.call.CallPhase;
import com.avaya.service.client.call.Dialog;
import com.avaya.service.client.call.DialogState;
import com.avaya.service.client.call.ProxyDialogTerminationCause;
import com.avaya.service.client.call.inbound.EndpointDialogListener;
import com.avaya.service.client.call.inbound.InboundDialogService;
import com.avaya.service.client.call.inbound.SequencedDialogListener;
import com.avaya.service.client.call.routing.ProxyListener;
import com.avaya.service.client.call.routing.ProxyNotification;
import com.avaya.service.client.call.routing.ProxyRoutingService;
import com.avaya.service.client.call.routing.Target;
import com.avaya.service.client.message.RequestContent;
import com.avaya.service.client.message.ResponseContent;
import com.avaya.service.client.message.SipRequest;
import com.avaya.service.client.message.SipResponse;
public class CallScreening implements SequencedDialogListener, ProxyListener{
private AppBindingService m_abs;
private BindId m_bindId;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
CallScreening callScreening = new CallScreening();
while(true){}
}
public CallScreening () {
// bind to the AAFT server when constructed
Properties properties = new Properties();
properties.put(AppBindingProperties.APPLICATION_NAME, "callscreening");
try {
URL aaftURL = new URL("http://172.27.1.44:8080/foundation/cometd/");
this.m_abs = ServiceFactory.getAppBindingService();
this.m_bindId = this.m_abs.createBinding(aaftURL, properties);
System.out.println("Binding successful");
} catch (MalformedURLException e) {
e.printStackTrace();
}
// add sequenced dialog listener
InboundDialogService ids = ServiceFactory.getInboundDialogService(m_bindId);
ids.setSequencedDialogListener(this, "callscreening");
System.out.println("Sequenced dialog listener set succesfully");
}
/*
@Override
public void newInboundDialog(Dialog dialog, String callingParty,
String calledParty, CallPhase callPhase, SipRequest request) {
System.out.println("Recieved new inbound dialog");
System.out.println("Calling Party: " + callingParty);
System.out.println("Called Party: " + calledParty);
//ProxyRoutingService prs = ServiceFactory.getProxyRoutingService(this.m_bindId);
//ResponseContent rc = new ResponseContent(499, "GoAway");
//rc.addHeader("Day Of The Week", "Saturday");
//prs.reject(dialog, rc);
//System.out.println("Rejected the call");
//ProxyRoutingService prs = ServiceFactory.getProxyRoutingService(this.m_bindId);
//prs.redirect(dialog, 302, "sip:8002@macsourceinc.com");
//System.out.println("Redirected the call to extension 8002");
ProxyRoutingService prs = ServiceFactory.getProxyRoutingService(m_bindId);
prs.proxy(dialog, this, EnumSet.noneOf(ProxyNotification.class), RequestContent.NO_ALTERATION);
System.out.println("Proxying the dialog to the intended destination");
} */
@Override
public void newInboundDialog(Dialog dialog, String caller, String callee,
CallPhase callPhase, SipRequest siprequest) {
System.out.println("Received new inbound dialog");
System.out.println("Caller: " + caller);
System.out.println("Callee: " + callee);
// get a proxy routing service and use it to proxy the inbound dialog to the intended destination
ProxyRoutingService prs = ServiceFactory.getProxyRoutingService(m_bindId);
prs.proxy(dialog, this, EnumSet.noneOf(ProxyNotification.class), RequestContent.NO_ALTERATION);
System.out.println("Proxying the dialog to the intended destination");
}
@Override
public void dialogConfirmed(Dialog dialog, SipResponse response) {
System.out.println("Answered");
}
@Override
public void dialogEarly(Dialog dialog, SipResponse response) {
System.out.println("Ringing");
}
@Override
public void dialogForked(Dialog original, Dialog forked,
DialogState forkedDialogState) {
System.out.println("Forked");
}
@Override
public void dialogTerminated(Dialog dialog,
ProxyDialogTerminationCause terminationCause, SipResponse response) {
System.out.println("Bye");
}
}
|
 |
[+]
AE Services: JTAPI (Archive - Oct 2013 and earlier)
» Provider.getState() returning Provider.OUT_OF_SERVICE, 08/07/2011 16:26:27
» Go to message
|
|
Looks like my user wasn't granted unrestricted access. My issue is resolved and my program is now getting a value of 16 for the state.
Thanks again for you help.
|
 |
[+]
AE Services: JTAPI (Archive - Oct 2013 and earlier)
» Provider.getState() returning Provider.OUT_OF_SERVICE, 08/07/2011 16:16:27
» Go to message
|
|
Thanks for the response John. As it appears, I missed a few steps.
TSAPI Test Result
cstaMakeCall() failed with ACS Universal Failure Error 63:
Device list is empty.
Back to the beginning.
|
 |
[+]
AE Services: JTAPI (Archive - Oct 2013 and earlier)
» Provider.getState() returning Provider.OUT_OF_SERVICE, 08/07/2011 14:42:46
» Go to message
|
|
Hello, I have been trying to use JTAPI to program against my AES server. I'm just getting started with the API and am trying to develop an extremely basic app that gets caller id information and displays it on the screen. Unfortunately, I haven't been able to get this to work.
So what I did was strip out all of my code and start from scratch. I successfully got a return on getProvider(); but I tried to use the Provider.getState(); to try to make sure it was in service however, it returned a value of 17 which, from what I read indicates that the provider is out of service.
I'm looking to see if anyone has dealt with this and what the resolution might be.
Thanks in advance for any advice.
|
 |