NTT DOCOMO and Hitachi Kokusai Electric Know-how & Confidential

com.docomo_um.module.net
クラス VoiceSession

java.lang.Object
  上位を拡張 com.docomo_um.module.net.Session
      上位を拡張 com.docomo_um.module.net.VoiceSession
すべての実装されたインタフェース:
VoiceExtensible

public final class VoiceSession
extends Session
implements VoiceExtensible

音声通話の接続を表すクラスです。

音声発信時は、VoiceController.createSession(String) の引数に電話番号を設定して本クラスのインスタンスを生成し、send() をコールします。
音声着信時は、ModemControllerListener.onReceived(ModemController, Session)の第2引数に 本クラスのインスタンスが渡されるので、receive() をコールします。
接続を切断する場合は、disconnect() をコールします。

関連項目:
Session, VoiceController

フィールドの概要
static int MANNER_MODE_TYPE_DRIVE
          マナーモード種別の一つで、公共モード(ドライブモード)を表します。
static int MANNER_MODE_TYPE_NONE
          マナーモード種別の一つで、何も設定されていない状態を表します。
static int STATUS_HOLD
          音声通話の状態の一つで、保留中を表します。
static int STATUS_IDLE
          音声通話の状態の一つで、アイドルを表します(初期値)。
static int STATUS_TALKING
          音声通話の状態の一つで、通話中を表します。
 
クラス com.docomo_um.module.net.Session から継承されたフィールド
CONNECTION_STATUS_CONNECT, CONNECTION_STATUS_DISCONNECT, CONNECTION_STATUS_INCOMING_CALL, CONNECTION_STATUS_OUTGOING_CALL
 
メソッドの概要
 void disconnect()
           切断します。
 int getCallStatus()
          音声通話の通話状態を取得します。
 java.lang.String getDestination()
          接続先を取得します。
 int getMannerModeType()
          マナーモード種別を取得します。
 void hold()
          通話呼を保留呼に設定します。
 void receive()
          着信時に接続します。
 void redirect()
          着信時に音声着信のセッションを転送先電話番号に転送します。
 void reject()
          着信時に音声着信を拒否します。
 void send()
          発信します。
 void sendAnswering()
          着信時に音声着信のセッションを留守番電話サービスに転送します。
 void sendDTMF(java.lang.String message)
          DTMFを送信します。
 
クラス com.docomo_um.module.net.Session から継承されたメソッド
getConnectedStatus
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait
 

フィールドの詳細

STATUS_TALKING

public static final int STATUS_TALKING
音声通話の状態の一つで、通話中を表します。

関連項目:
getCallStatus(), 定数フィールド値

STATUS_HOLD

public static final int STATUS_HOLD
音声通話の状態の一つで、保留中を表します。

関連項目:
getCallStatus(), 定数フィールド値

STATUS_IDLE

public static final int STATUS_IDLE
音声通話の状態の一つで、アイドルを表します(初期値)。

関連項目:
getCallStatus(), 定数フィールド値

MANNER_MODE_TYPE_NONE

public static final int MANNER_MODE_TYPE_NONE
マナーモード種別の一つで、何も設定されていない状態を表します。

関連項目:
定数フィールド値

MANNER_MODE_TYPE_DRIVE

public static final int MANNER_MODE_TYPE_DRIVE
マナーモード種別の一つで、公共モード(ドライブモード)を表します。

関連項目:
定数フィールド値
メソッドの詳細

getDestination

public java.lang.String getDestination()
接続先を取得します。

着信時において、接続先電話番号が公衆電話、非通知設定、通知不可能の場合、本メソッドはnullを返します。

転送でんわによって接続先が転送された場合、本メソッドはこのモジュールと直接発着信を行っているモジュールの接続先を返します。 具体的には、以下の振る舞いとなります。

オーバーライド:
クラス Session 内の getDestination
戻り値:
接続先電話番号を返します。

getCallStatus

public int getCallStatus()
音声通話の通話状態を取得します。

戻り値:
音声通話の通話状態を返します。
関連項目:
STATUS_TALKING, STATUS_HOLD, STATUS_IDLE

getMannerModeType

public int getMannerModeType()
マナーモード種別を取得します。

公共モード(ドライブモード)設定中の着信により生成されたセッションではMANNER_MODE_TYPE_DRIVEを返します。

戻り値:
マナーモード種別を返します。
関連項目:
MANNER_MODE_TYPE_NONE, MANNER_MODE_TYPE_DRIVE

send

public void send()
          throws SessionException,
                 RegulationException,
                 ExternalStatusException,
                 DeviceException
発信します。

同じ接続先に対して本メソッドを連続して発信した場合、3GPP標準仕様の再発信規制により、SessionExceptionが発生します。
CS規制中に本メソッドをコールした場合、RegulationExceptionが発生します。 ただし、緊急呼の場合は例外は発生せずに発信を行います。

本セッションが切断状態(Session.CONNECTION_STATUS_DISCONNECT)以外の状態で本メソッドをコールした場合、何もしません。
本セッション以外のセッションにおいて、既に発信中(Session.CONNECTION_STATUS_OUTGOING_CALL)、着信中(Session.CONNECTION_STATUS_INCOMING_CALL)、 通話中(STATUS_TALKING)の音声回線がある場合に本メソッドをコールすると、IllegalStateExceptionが発生します。 本セッション以外のセッションにおいて、保留中(STATUS_HOLD)の音声回線がある場合は、正常に発信処理を行うことが可能です。
但し、緊急呼の場合はこの限りではなく、緊急呼の発信時は、本セッション以外のセッションを切断して緊急呼の発信を行います。

本メソッドにて発信処理後、接続先が応答することで接続状態に遷移します。

定義:
クラス Session 内の send
例外:
java.lang.IllegalStateException - 発信が行えない状態で本メソッドをコールした場合に発生します。
SessionException - 再発信規制など、正常に処理できなかった場合に発生します。
RegulationException - 規制による通信失敗の場合に発生します。
ExternalStatusException - UIMが挿入されていない場合など、発信に失敗した場合に発生します。
DeviceException - デバイスの故障により、通信に失敗した場合に発生します。

receive

public void receive()
             throws SessionException
着信時に接続します。

本セッションが着信中(Session.CONNECTION_STATUS_INCOMING_CALL)以外の状態で本メソッドをコールした場合、何もしません。 本セッション以外のセッションにおいて、既に通話中(STATUS_TALKING)の音声回線がある場合に本メソッドをコールすると、IllegalStateExceptionが発生します。
他に通話中の音声回線があり、本セッションを通話中(STATUS_TALKING)にする場合は、 通話中の音声回線を切断してから本メソッドをコールするか、VoiceController.changeHoldStatus()をコールしてください。

本セッションにMANNER_MODE_TYPE_DRIVEが設定されている場合に本メソッドをコールするとIllegalStateExceptionが発生します。

定義:
クラス Session 内の receive
例外:
java.lang.IllegalStateException - 着信を受けられない状態で本メソッドをコールした場合に発生します。
SessionException - 内部エラーにより処理が中断した場合に発生します。
関連項目:
VoiceController.changeHoldStatus()

disconnect

public void disconnect()
                throws SessionException

切断します。
本セッションが切断状態(Session.CONNECTION_STATUS_DISCONNECT)で本メソッドを呼び出した場合は何もしません。

オーバーライド:
クラス Session 内の disconnect
例外:
SessionException - 内部エラーにより処理が中断した場合に発生します。

hold

public void hold()
          throws SessionException,
                 CommunicationFailureException
通話呼を保留呼に設定します。

本セッションが通話中(STATUS_TALKING)以外の状態で本メソッドをコールした場合、何もしません。

本セッション以外のセッションにおいて、既に保留呼がある場合や、 本セッションの通信が緊急呼である場合に、本メソッドをコールするとIllegalStateExceptionが発生します。

通話呼を保留呼に設定するにはキャッチホン契約が必要です。キャッチホン未契約で通話呼を保留呼に設定した場合はSessionExceptionが発生します。

例外:
java.lang.IllegalStateException - 本セッション以外のセッションにおいて、既に保留呼がある場合や、本セッションが緊急呼である場合に発生します。
SessionException - 通話呼を保留呼に設定する際にキャッチホン契約が未契約であった場合など、正常に処理できなかった場合に発生します。
CommunicationFailureException - 通信異常の場合に発生します。

sendDTMF

public void sendDTMF(java.lang.String message)
              throws SessionException,
                     CommunicationFailureException
DTMFを送信します。

送信可能な文字は{0-9、#、*、A-D、a-d}です。

本セッションが発信中(Session.CONNECTION_STATUS_OUTGOING_CALL)または、接続中(Session.CONNECTION_STATUS_CONNECT)かつ通話中(STATUS_TALKING)以外の状態で 本メソッドをコールした場合、何もしません。

定義:
インタフェース VoiceExtensible 内の sendDTMF
パラメータ:
message - 送信する文字列を指定します。
例外:
java.lang.NullPointerException - messageがnullの場合に発生します。
java.lang.IllegalArgumentException - messageにサポート外の文字が指定された場合に発生します。
SessionException - 内部エラーにより処理が中断した場合に発生します。
CommunicationFailureException - 通信異常の場合に発生します。

redirect

public void redirect()
              throws SessionException,
                     CommunicationFailureException
着信時に音声着信のセッションを転送先電話番号に転送します。

本セッションが着信中(Session.CONNECTION_STATUS_INCOMING_CALL)以外の状態で本メソッドをコールした場合、何もしません。
本セッションにMANNER_MODE_TYPE_DRIVEが設定されている場合に本メソッドをコールするとIllegalStateExceptionが発生します。

定義:
インタフェース VoiceExtensible 内の redirect
例外:
java.lang.IllegalStateException - 転送先電話番号に転送できない状態で本メソッドをコールした場合に発生します。
SessionException - 転送電話サービス未契約の場合や転送先不明の場合など、正常に処理できなかった場合に発生します。
CommunicationFailureException - 通信異常の場合に発生します。

sendAnswering

public void sendAnswering()
                   throws SessionException,
                          CommunicationFailureException
着信時に音声着信のセッションを留守番電話サービスに転送します。

本セッションが着信中(Session.CONNECTION_STATUS_INCOMING_CALL)以外の状態で本メソッドをコールした場合、何もしません。
本セッションにMANNER_MODE_TYPE_DRIVEが設定されている場合に本メソッドをコールするとIllegalStateExceptionが発生します。

定義:
インタフェース VoiceExtensible 内の sendAnswering
例外:
java.lang.IllegalStateException - 留守番電話サービスに転送できない状態で本メソッドをコールした場合に発生します。
SessionException - 留守番電話サービス未契約の場合など、正常に処理できなかった場合に発生します。
CommunicationFailureException - 通信異常の場合に発生します。

reject

public void reject()
            throws SessionException
着信時に音声着信を拒否します。

本セッションが着信中(Session.CONNECTION_STATUS_INCOMING_CALL)以外の状態で本メソッドをコールした場合、何もしません。
本セッションにMANNER_MODE_TYPE_DRIVEが設定されている場合に本メソッドをコールするとIllegalStateExceptionが発生します。

定義:
インタフェース VoiceExtensible 内の reject
例外:
java.lang.IllegalStateException - 着信拒否できない状態で本メソッドをコールした場合に発生します。
SessionException - 内部エラーにより処理が中断した場合に発生します。

Copyright © 2013 NTT DOCOMO, INC. and Hitachi Kokusai Electric Inc. All Rights Reserved.