IN-Dialog REFER シナリオ
次の IN-Dialog REFER に関する各セクションでは、11 のシナリオ(A ~ K)を説明します。
シナリオ 1
A(クラスタ内または制御内の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C が呼び出し中になる。
JTAPI が A の Connect/CallControlConnection/TerminalConnection/
CallControlTerminalConnection を「UNKNOWN」状態にする。
提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。
C には、新しい Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection が作成される。
B および C の CallInfo は次のようになる。
B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
B を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = C
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
シナリオ 2
A(クラスタ内または制御内の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C がコールに応答する。
JTAPI は A の Connect/CallControlConnection/TerminalConnection/
CallControlTerminalConnection を接続解除またはドロップする。提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。
C では、Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection が、Connected/Established/Active/Talking 状態に移行する。
B および C の CallInfo は次のようになる。
B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
B を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = C
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
シナリオ 3
A(クラスタ内の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C が呼び出し中になるが、C はコールに応答せず、転送設定も行われていない。参照は失敗し、A と B 間の元のコールが再開される。
JTAPI は C の Connection/CallControlConnection/TerminalConnection/
CallControlTerminalConnection を接続解除またはドロップする。提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供し、A の Connection/CallControlConnection/
TerminalConnection/CallControlTerminalConnection を「Unknown」状態から
Connected/Established/Active/Talking 状態に移行させる。
A および B の CallInfo は次のようになる。
A: Cgpn=A, Cdpn=B, Lrp= OCdpn=B
B: Cgpn=A, Cdpn=B, Lrp= OCdpn=B
A を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=A
getCurrentCalledParty()=B
getLastRedirecting()= NULL
B を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=A
getCurrentCalledParty()=B
getLastRedirecting()=NULL
シナリオ 4
A(クラスタ外の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C が呼び出し中になる。
JTAPI は C の Connection/CallControlConnection/TerminalConnection/
CallControlTerminalConnection を作成し、B で CPIC を取得する際に A の Connection/CallControlConnection をドロップする。提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。
B および C の CallInfo は次のようになる。
B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
B を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = C
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
シナリオ 5
A(クラスタ外の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C が呼び出し中になるが、C はコールに応答せず、転送設定も行われていない。参照は失敗し、A と B 間の元のコールが再開される。
JTAPI は再度 A の Connection/CallControlConnection を作成し、C の Connection/
CallControlConnection/TerminalConnection/CallControlTerminalConnection をドロップする。
提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。
A および B の CallInfo は次のようになる。
A: Cgpn=A, Cdpn=B, Lrp= OCdpn=B
B: Cgpn=A, Cdpn=B, Lrp= OCdpn=B
A を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=A
getCurrentCalledParty()=B
getLastRedirecting()=NULL
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=A
getCurrentCalledParty()=B
getLastRedirecting()=NULL
シナリオ 6
A(クラスタ内または制御内の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C がコールに応答する。
JTAPI は C の Connection/CallControlConnection/TerminalConnection/CallControlTerminalConnection を、Connected/Established/Active/Talking 状態に移行させる。提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。
B および C の CallInfo は次のようになる。
B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
B を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = C
getCurrentCallingParty()=B
getCurrentCalledParty()=C
getLastRedirecting()=A
シナリオ 7
A(クラスタ内または制御内の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C は D への forwardAll を実行して、D が呼び出し中になる。
JTAPI は D の Connection/CallControlConnection/TerminalConnection/CallControlTerminalConnection を作成する。提供される CAUSE_CODE は CAUSE_REDIRECT で、CTI から受信される原因は ForwardAll になる。
B および D の CallInfo は次のようになる。
B: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C
D: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C
B を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=B
getCurrentCalledParty()=D
getLastRedirecting()=C
D を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = D
getCurrentCallingParty()=B
getCurrentCalledParty()=D
getLastRedirecting()=C
シナリオ 8
A(クラスタ内または制御内の SIP UA)は B とのコール中。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C は D へのリダイレクトを実行し、D が呼び出し中になる。
JTAPI は D の Connection/CallControlConnection/TerminalConnection/CallControlTerminalConnection を作成する。提供される CAUSE_CODE は CAUSE_REDIRECT で、D の NewCallEvent で CTI から受信される原因は Redirect になる。
C にコールが提供されたときの Callinfo:
B: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
C: Cgpn=B, Cdpn=C, Lrp=A OCdpn=C
最後のコールの CallInfo:
B: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C
D: Cgpn=B, Cdpn=D, Lrp=C OCdpn=C
B を監視している JTAPI アプリケーションに最後のコールで示される内容:
getCallingParty() = A
getCalledParty() = B
getCurrentCallingParty()=B
getCurrentCalledParty()=D
getLastRedirecting()=C
D を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = D
getCurrentCallingParty()=B
getCurrentCalledParty()=D
getLastRedirecting()=C
シナリオ 9
A(クラスタ内または制御内の SIP UA)は B とのコール中。
B が D へのコンサルト転送を行い、A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C が呼び出し中になって、B による転送が成立する。C の呼び出し中は、転送が失敗する。
シナリオ 10
A(クラスタ内または制御内の SIP UA)は B とのコール中。
B が D へのコンサルト転送を行い、A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C がコールに応答する。
参照が成功する。B が転送を実行し、転送は成功して C と D がコール中になる。
JTAPI は A の Connect/CallControlConnection/TerminalConnection/
CallControlTerminalConnection を接続解除またはドロップする。提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。
C では、Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection が、Connected/Established/Active/Talking 状態に移行する。
D および C の CallInfo は次のようになる。
D: Cgpn= C, Cdpn=D, Lrp=B OCdpn=D
C: Cgpn=C, Cdpn=D, Lrp=B OCdpn=D
D を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = D
getCurrentCallingParty()=C
getCurrentCalledParty()=D
getLastRedirecting()=B
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = C
getCurrentCallingParty()=C
getCurrentCalledParty()=D
getLastRedirecting()=B
シナリオ 11
B は D とのコール中。B は A(クラスタ内または制御内の SIP UA)にコンサルト コールする。
A(Referrer)が B(Referee)に C(Refer To Target)を参照させ、C が呼び出し中になって、B による転送が成立する。
REFER は失敗する。A のコールはドロップされ、転送が成功し、D は RingBack を受け取って、C が呼び出し中になる。
JTAPI は A の Connect/CallControlConnection/TerminalConnection/
CallControlTerminalConnection を接続解除またはドロップする。提供される CAUSE_CODE は CAUSE_NORMAL で、新しい API が REASON_REFER を提供する。アプリケーションには、REFER が失敗したかどうかは知らされない。
C では、Connect/CallControlConnection/TerminalConnection/CallControlTerminalConnection が、Alerting/Alerting/Ringing/Ringing 状態に移行する。
D および C の CallInfo は次のようになる。
D: Cgpn= D, Cdpn=C, Lrp=B OCdpn=C
C: Cgpn=D, Cdpn=C, Lrp=B OCdpn=C
D を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = D
getCurrentCallingParty()=D
getCurrentCalledParty()=C
getLastRedirecting()=B
C を監視している JTAPI アプリケーションに示される内容:
getCallingParty() = B
getCalledParty() = C
getCurrentCallingParty()=D
getCurrentCalledParty()=C
getLastRedirecting()=B
SIP 3XX リダイレクション
3XX リダイレクション:302 Moved Temporarily
JTAPI アプリケーションが 1000@ccm.cisco.com を監視している。
Cisco Unified Communications Manager の user1000 が、 333555@aaa.com へのコールを開始する。
CTI が INVITE に基づいて NewCallNotify および CtiCallStateNotify(Dialtone/Dialing)を報告する。
JTAPI が、CallActiveEv、および 1000 の Connection イベントと CallCtlConnection イベントを報告する。
JTAPI が CallCtlConnEstablishedEv を報告する。
SIP プロキシが 333555@aaa.com の 302 を報告する。302 に基づいて、Cisco Unified Communications Manager が 333777@bbb.com への q 値に基づくターゲット リストに含まれる最初の接点へのコールを開始する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 333777@bbb.com への接続作成イベントを報告する。
CTI が CtiCallStateNotify(Ringback)および CtiCallStateNotify(Connected)を報告する。
JTAPI が遠端の ConnAlertingEv および ConnEstablishedEv を報告する。
3XX リダイレクション:Contact Busy
JTAPI CTI アプリケーションが 1000@ccm.cisco.com を監視している。
Cisco Unified Communications Manager の user1000 が、 333555@aaa.com へのコールを開始する。
CTI が INVITE に基づいて NewCallNotify および CtiCallStateNotify(Dialtone/Dialing)を報告する。
JTAPI が、CallActiveEv、および 1000 の Connection イベントと CallCtlConnection イベントを報告する。
CTI が CtiCallStateNotify(Proceeding)を報告する。
JTAPI が CallCtlConnEstablishedEv を報告する。
SIP プロキシが 333555@aaa.com の 302 を報告する。302 に基づいて、Cisco Unified Communications Manager が 333777@bbb.com への q 値に基づくターゲット リストに含まれる最初の接点へのコールを開始する。
333777@bbb.com から、486 ユーザ ビジー応答が報告される。この応答に基づいて、Cisco Unified Communications Manager が 555888@cisco.com へのコールを開始する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 555888@cisco.com への接続作成イベントを報告する。
CTI が、CtiCallStateNotify(Ringback)および CtiCallStateNotify(Connected)も報告する。
JTAPI が新しい通話者の CallCtlConnAlertingEv および CallCtlConnEstablishedEv を報告する。
3XX リダイレクション:Contact Does Not Answer
JTAPI アプリケーションが 1000@ccm.cisco.com を監視している。
Cisco Unified Communications Manager の user1000 が、 333555@aaa.com へのコールを開始する。
CTI が INVITE に基づいて NewCallNotify および CtiCallStateNotify(Dialtone/Dialing)を報告する。
JTAPI が、CallActiveEv、および 1000 の connection イベントと terminalConnection イベントを報告する。
CTI が CtiCallStateNotify(Proceeding)を報告する。
JTAPI が 1000 の CallCtlConnEstablishedEv を報告する。
SIP プロキシが 333555@aaa.com の 302 を報告する。302 に基づいて、Cisco Unified Communications Manager が 333777@bbb.com への q 値に基づくターゲット リストに含まれる最初の接点へのコールを開始する。Cisco Unified Communications Manager が RNAR タイマーを開始する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 333777 への接続作成イベントを報告する。
RNAR タイマーが満了し、これに基づいて Cisco Unified Communications Manager が 555888@cisco.com へのコールを開始する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd/CcNotifyReq に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 333777 への接続を削除し、555888 への接続を作成する。
CTI は CtiCallStateNotify(Connected)も報告する。
JTAPI が 555888 の CallCtlConnEstablishedEv を報告する。
3XX リダイレクション:Contact Within Cisco Unified Communications Manager Cluster Configured with Call Forward
JTAPI アプリケーションが 1000@ccm.cisco.com を監視している。
Cisco Unified Communications Manager の user1000 が、 333555@aaa.com へのコールを開始する。
CTI が INVITE に基づいて NewCallNotify および CtiCallStateNotify(Dialtone/Dialing)を報告する。
JTAPI が、CallActiveEv、および 1000 の connection イベントと terminalConnection イベントを報告する。
CTI が CtiCallStateNotify(Proceeding)を報告する。
JTAPI が 1000 の CallCtlConnEstablishedEv を報告する。
SIP プロキシが 333555@aaa.com の 302 を報告する。302 に基づいて、Cisco Unified Communications Manager が 2000@ccm.cisco.com への q 値に基づくターゲット リストに含まれる最初の接点へのコールを開始する。
2000@ccm.cisco.com から、486 ユーザ ビジー応答が報告される。2000 にはコール転送ビジーが設定されているため、Cisco Unified Communications Manager が 3000@ccm.cisco.com へのコールを開始する。Cisco Unified Communications Manager は RNAR タイマーも開始する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 3000 への接続作成イベントを報告する。
3000 は応答せず、RNAR タイマーが満了し、これに基づいて Cisco Unified Communications Manager が 555888@cisco.com へのコールを開始する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd/CcNotifyReq に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 3000 への接続を破棄し、555888 への接続を作成する。
CTI は CtiCallStateNotify(Connected)も報告する。
JTAPI が 555888 の CallCtlConnEstablishedEv を報告する。
3XX リダイレクション - Non-Available Target Member
JTAPI アプリケーションが 1000@ccm.cisco.com を監視している。
Cisco Unified Communications Manager の user1000 が、 333555@aaa.com へのコールを開始する。
CTI が INVITE に基づいて NewCallNotify および CtiCallStateNotify(Dialtone/Dialing)を報告する。
JTAPI が、CallActiveEv、および 1000 の connection イベントと terminalConnection イベントを報告する。
CTI が CtiCallStateNotify(Proceeding)を報告する。
JTAPI が 1000 の CallCtlConnEstablishedEv を報告する。
SIP プロキシが 333555@aaa.com の 302 を報告する。302 には、 1212@ccm.cisco.com および 2000@ccm.cisco.com のターゲット リストが含まれる。 1212@ccm.cisco.com は無効な DN。Cisco Unified Communications Manager はまず 1212@ccm.cisco.com へのコンタクトを試みるが、無効な DN が返されるため、 2000@ccm.cisco.com へのコールを実行する。
着信者情報が変更された場合、Cisco Unified Communications Manager からの SIPAlertInd に基づいてアプリケーションに CallPartyInfoChange イベントが報告される。
JTAPI が 2000 への接続作成イベントを報告する。
CTI は CtiCallStateNotify(Ringback/Connected)も報告する。
JTAPI が 2000 の CallCtlConnAlertingEv および CallCtlConnEstablishedEv を報告する。