java - 思科 JTAPI 到 CUCM

标签 java telephony cisco jtapi cisco-jtapi

我的任务是编写一个应用程序,让用户可以向 Cisco Unified Callmanager 8.6 发出调用。 UCM 不会提供联系人列表。它将在别处提供。

我发现 Cisco 提供的文档和示例既缺乏又不受欢迎。我还发现缺乏来自第三方的工作示例。

我希望有人在我之前做过类似的事情。

该应用程序从数据库中获取要调用的号码,然后让用户单击他或她想要调用的联系人。然后应将目的地号码发送到电话。基本上,应用程序无需调用号码,而是将目的地发送到电话或 UCM,此时用户接管。

查看 Cisco 的 makecall.java 并使用它,使用此 API 实际发出调用似乎很简单。

我已经开始使用在 http://blog.nominet.org.uk/tech/2008/01/25/experiments-with-jtapi-part-1-making-a-call/ 中找到的示例但我相信这段代码不足以调用电话。然而,我可能是错的。

任何人都可以在这里指出正确的方向,因为我相信我的规范很简单并且应该易于实现。如果需要更多信息,我很乐意提供。

最佳答案

这是几个月前的事了,但它仍然可能对您有所帮助。我能够创建一个测试场景:

protected CiscoJtapiPeer peer;
protected CiscoProvider provider;
// ...

peer = (CiscoJtapiPeer) JtapiPeerFactory.getJtapiPeer(null);
provider = (CiscoProvider) peer.getProvider(cucmURL);

/* cucmURL has the format:
    "192.168.0.20;login=myuser;passwd=mypasswd"
whereas the username is an Application User in Cisco Unified Communications
Manager. On my system, it has the following permissions. I don't know whether all
of them are required:

Standard AXL Users
Standard Audit Users
Standard CCM End Users
Standard CCM Phone Administration
Standard CCM Phone and Users Administration
Standard CCM Read Only
Standard CCM Super Users
Standard CTI Allow Call Monitoring
Standard CTI Allow Call Park Monitoring
Standard CTI Allow Control of All Devices
Standard CTI Allow Control of Phone supporting Connected Xfer and...
Standard CTI Enabled
Standard CTI Secure Connection
Standard RealtimeAndTraceCollection
Standard TabSyncUser

You then add an observer to the provider in order to know when the provider 
object is read for further interaction. You'll receive a "ProvInServiceEv" Event in the event list.
*/

provider.addObserver(providerObserver);
/* Wait until the event has come up */
// Create a sample call:
CiscoTerminal term = provider.createTerminal("your_sep_id_here");
Call call = provider.createCall();
call.connect(term, term.getAddresses()[0], "your_phone_number_to_call");

term 用作开始调用的“来源”。 term.getAddresses()[0] 只是获取与“源”电话关联的第一个电话号码。然后调用 "your_phone_number_to_call"

另一个信息:它不能反过来工作:你不能先调用 provider.getAddress("phonenumber"),因为不知何故,提供者类不会在任何之前加载电话号码终端连接到它。

这是在 CUCM 8.6.2 和 Java 7 上测试的。

关于java - 思科 JTAPI 到 CUCM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14216355/

相关文章:

android - 将 google-api-java-client 库与 android 一起使用时,转换为 Dalvik 格式失败并出现错误 1

android - 如何在拨出电话时添加选项?

python - SSL.SSLError : tlsv1 alert protocol version

java - 如何为 Ant 任务创建嵌套元素?

java - 方法从类变量返回类型

java - MigLayout:如何*垂直*对齐扩展坞内的多个组件?

java - 如何调用 SIP 电话

c++ - 与 *nix 的电话系统接口(interface)

shell - 如何从 CLI 控制 Cisco IP-Phone?