我们有2个cisco手机:一个用于呼叫管理员,另一个用于他的主管.
当经理回答并将主管的电话置于静音状态时,我们需要创建一个会议.我们正在尝试使用JTApi实现它:等待事件TermConnActiveEv,然后尝试创建会议.
这是代码示例.
if (callEv instanceof TermConnActiveEv) {
CiscoCall thisCall = (CiscoCall) callEv.getCall();
TerminalConnection connection = ((TermConnActiveEv) callEv).getTerminalConnection();
if (thisCall.getState() != Call.ACTIVE)
{
System.out.println("call is not active");
return;
}
try {
CiscoCall newCall = (CiscoCall) provider.createCall();
newCall.consult(connection);
newCall.conference(thisCall);
....
Run Code Online (Sandbox Code Playgroud)
然而,PreConditionException被抛出.我们做错了什么?
我正在使用EWS Java API 1.1.5 ,我试图将服务绑定到收件箱文件夹,如下所示:
ExchangeService service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials(email, password);
service.setCredentials(credentials);
service.setUrl(new java.net.URI("https://" + host
+ "/EWS/Exchange.asmx"));
Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);
Run Code Online (Sandbox Code Playgroud)
我从jsp页面调用上面的代码.
但我得到NullPointerException:
java.lang.NullPointerException
at org.apache.commons.httpclient.HttpMethodBase.getStatusCode(HttpMethodBase.java:570)
at microsoft.exchange.webservices.data.HttpClientWebRequest.getResponseCode(Unknown Source)
at microsoft.exchange.webservices.data.ServiceRequestBase.validateAndEmitRequest(Unknown Source)
at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(Unknown Source)
at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(Unknown Source)
at microsoft.exchange.webservices.data.ExchangeService.bindToFolder(Unknown Source)
at microsoft.exchange.webservices.data.ExchangeService.bindToFolder(Unknown Source)
at microsoft.exchange.webservices.data.Folder.bind(Unknown Source)
at microsoft.exchange.webservices.data.Folder.bind(Unknown Source)
at com.xeno.phonesuite.web.Mail.Mail.readInbox(Mail.java:49)
at org.apache.jsp.mail.inbox_jsp._jspService(inbox_jsp.java:79)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) …Run Code Online (Sandbox Code Playgroud) web-services jtapi exchangewebservices ewsjavaapi cisco-jtapi
我将使用Java(不带PBX)开发一个在线IVR应用程序.在软件需求中,我更喜欢在Java端实现一些数学计算和数据库通信.
如您所知,不同的技术已经准备好与Java集成,例如JTAPI,Zanzibar OpenIVR,Moho,VoiceXML,CCXML,Jive,Prophecy,Voicent,Voxeo等.
现在的问题是:什么是最好的解决方案?哪一个最容易达到?哪一个效率最高?你推荐开源框架吗?是否有用于处理IVR系统的Windows API?
我工作的公司正在寻找与任何潜在的PBX/IVR或PBX组合高度兼容的IVR实施,或者提供我们自己的托管解决方案.
因此,我们的想法是创建一个与任何潜在平台接口的应用程序,并为IVR提供呼叫控制和语音对话/交互.
我到目前为止看过的技术(我们想使用Java)是Java Telephony API(JTAPI)JAIN-JCC(Java Call Control)API等.这些API的基本要点对我来说很有意义,但我不能把它放在一起的是我为呼叫控制和语音IVR/VXML创建的应用程序将如何以独立于平台的方式连接到电话系统.我是怎么接听电话系统的电话的?
这些API和库似乎没有回答这个问题,这让我相信独立于平台的解决方案是不可能的,而且它始终是特定于实现的.还有JAIN-SIP,如果我可以将所有呼叫转换为SIP,那么也许我可以通过这种方式创建通用呼叫控制/ IVR应用程序.
如果我在这里发出任何无知或误解,请原谅我,我对任何一种电信技术都是全新的 - 任何想要让我直截了当的人?我非常感激,在这一点上,细节实现层面上的联系非常模糊,有时候我需要一点手握.任何帮助或推动正确的方向都会有所帮助.
上周我一直在倾注规格和API.:)
编辑 - 我忘了提到我们更愿意在内部开发这个,如果可能的话,在成本/收益方面很聪明 - 如果可能的话,不是真的想在集成平台上花钱 - 这就是我的工作:)
jtapi ×4
cisco-jtapi ×2
ivr ×2
java ×2
api ×1
ccxml ×1
cisco ×1
conference ×1
ewsjavaapi ×1
jain-sip ×1
telephony ×1
voicexml ×1
web-services ×1