3

私は、ユーザが Cisco Unified Callmanager 8.6 にコールできるようにするアプリケーションを作成する任務を負っています。連絡先リストは、UCM によって提供されません。他の場所で提供されます。

シスコが提供するドキュメントと例の両方が不足しており、望ましくないと思います。また、サードパーティからの実例が不足していることもわかりました。

私の希望は、他の誰かが私の前にこれと同様のことをしたことです。

アプリケーションは、データベースから発信する番号を取得し、ユーザーが発信したい連絡先をクリックできるようにします。次に、宛先の番号が電話に送信されます。基本的に、番号をダイヤルする代わりに、アプリケーションが宛先を電話または UCM に送信し、ユーザーがこの時点で引き継ぎます。

Cisco の makecall.java を見て使ってみると、この API を使って実際に電話をかけるのは簡単なようです。

http://blog.nominet.org.uk/tech/2008/01/25/experiments-with-jtapi-part-1-making-a-call/にある例を使用して開始しましたが、これを信じています電話をかけるには不十分なコードです。しかし、私は間違っているかもしれません。

私の仕様はシンプルで、実装が簡単であると信じているので、誰かがここで正しい方向に私を向けることができますか. さらに情報が必要な場合は、喜んで提供いたします。

4

2 に答える 2

4

これは数か月前のことですが、まだいくらか役立つかもしれません。テストシナリオを作成できました:

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 でテストされました。

于 2013-05-10T10:00:19.310 に答える