キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
1393
閲覧回数
0
いいね!
2
返信

shared line(パーティションは別)時のprovider.getAddress()APIについて

いつもお世話になっております。
shared line(パーティションは別)時のprovider.getAddress挙動についてご教授ください。
CUCM11.5に下記デバイスA、Bが存在していて両デバイスともアプリケーションユーザに追加されている状況の中で、
provider.getAddress(内線)を呼び出すと複数のアドレスオブジェクト配列が返ってくると思うのですが、
その配列順番に法則性はあるのでしょうか(デバイス→電話で作成した順番、アプリケーションユーザに追加した順番等)


<デバイスA> ※SEPデバイス
  内線:1000
  パーティション:P1
<デバイスB> ※CTIデバイス
  内線:1000
  パーティション:P2

 

<背景>
provider.getAddress(内線)で返ってきた値で、配列indexが0のものを使用しているJTAPIアプリケーションがあり
アプリケーションの改修ができない為、返り値の配列順番を意図的に操作したいです。


勉強不足で説明になっているかわかりませんがよろしくお願い致します。

 

1 件の受理された解決策

受理された解決策

Tohru Ohzono
Cisco Employee
Cisco Employee

Provider.getAddresses("電話番号")に関してですが、
返ってくるAddressの配列内のAddressオブジェクトの順序は、
仕様的に保証されません。

 

同じ電話番号文字列であっても、区別したい場合は、

アプリケーション側で、パーティション情報、デバイス情報、回線の位置情報などを
活用する以外に適切な方法はありません。

 

実装上は、"アプリケーション起動後で、すべての回線情報をJTAPI側が受信した後に"、
CTIPortを関連付けするか、いったん関連付け外して再度関連付ければ、
順序が制御できるはずですが、
仕様上規定されている動作でもないので、推奨できる方法ではありません。
仕様上公開されているものでもないので、予告なしに動作が変わる場合があります。
また、この方法の場合、アプリケーション側の処理によっては、
CTIPortが動作しなくなるなどの別の問題が発生する可能性もあります。

 

Unified CM側の設定順序に関しては、
仕様上も実装上も、順序が制御できる方法はありません。

様々な要因により、順序が変わる場合があります。

元の投稿で解決策を見る

2件の返信2

Tohru Ohzono
Cisco Employee
Cisco Employee

Provider.getAddresses("電話番号")に関してですが、
返ってくるAddressの配列内のAddressオブジェクトの順序は、
仕様的に保証されません。

 

同じ電話番号文字列であっても、区別したい場合は、

アプリケーション側で、パーティション情報、デバイス情報、回線の位置情報などを
活用する以外に適切な方法はありません。

 

実装上は、"アプリケーション起動後で、すべての回線情報をJTAPI側が受信した後に"、
CTIPortを関連付けするか、いったん関連付け外して再度関連付ければ、
順序が制御できるはずですが、
仕様上規定されている動作でもないので、推奨できる方法ではありません。
仕様上公開されているものでもないので、予告なしに動作が変わる場合があります。
また、この方法の場合、アプリケーション側の処理によっては、
CTIPortが動作しなくなるなどの別の問題が発生する可能性もあります。

 

Unified CM側の設定順序に関しては、
仕様上も実装上も、順序が制御できる方法はありません。

様々な要因により、順序が変わる場合があります。

Thoru様

ご回答ありがとうございます。
仕様的に保障されておらず公開もされていない旨、承知致しました。
また何かありまあしたら、よろしくお願い致します。