|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
SIPリクエストおよび応答の共通アスペクトを定義します。
Servlet APIは、サーブレットがクライアントからリクエストを受け取り、対応するServletRequestオブジェクトのさまざまなアスペクトを調査し、
そしてServletResponseオブジェクトのさまざまな属性を設定することにより応答を生成するという、暗黙の前提で定義されます。
このモデルは、HTTPに非常によく適合します。というのは、HTTPサーブレットは常にorigin serverを実行し、また受信リクエストを処理するためだけに実行し、
決して自らのHTTPリクエストを開始しないからです。
一方SIPサービスは、自らのリクエストを開始できる必要はありません。
これは、SIPリクエストおよび応答のクラスが対称性をもつ、つまり、リクエストは読み取り可能であるだけでなく書き込み可能でなければならず、
また同様に応答も書き込み可能であるだけでなく読み取り可能でなければならないことを暗示します。
SipServletMessageインターフェースは、SipServletRequestおよびSipServletResponseに共通する多数のメソッド、
例えばメッセージヘッダおよびコンテントに対するセッタおよびゲッタなどを定義します。
アプリケーションは、いわゆる"システムヘッダ"を追加、削除または修正してはなりません。 これらは、サーブレットコンテナが管理する以下のヘッダフィールドです。 :From, To, Call-ID, CSeq, Via, Route ( pushRouteからを除く), Record-Route) Contactは、3xxや485応答だけでなく、 REGISTERリクエストや応答以外のメッセージのシステムヘッダフィールドです。 さらに、信頼できる暫定応答拡張を実装するコンテナについては、RAckおよびRseqもシステムヘッダとみなされます。
SipServletMessageオブジェクトは常に、暗示的にSIPトランザクションに属し、 またトランザクションステートマシン(SIP仕様書で定義するとおり)は、処理のさまざまなポイントで何のメッセージをリーガルに送ることができるかを制限します。 サーブレットがSIP仕様に違反するメッセージを送ろうとすると(例えばトランザクションステートマシン)、コンテナは IllegalStateExceptionをスローします。
| メソッドの概要 | |
void |
addAcceptLanguage(java.util.Locale locale)
このユーザエージェントが受け入れ可能なLocaleを追加します。 |
void |
addAddressHeader(java.lang.String name,
Address addr,
boolean first)
指定されたAddressを、名前を付けたヘッダフィールドの新しい値として追加します。 |
void |
addHeader(java.lang.String name,
java.lang.String value)
任意の名前と値をもつヘッダを追加します。 |
java.util.Locale |
getAcceptLanguage()
このメッセージを送信するUAが内容を受け入れるAccept-Languageヘッダに基づく優先ロケールを返します。 |
java.util.Iterator |
getAcceptLanguages()
送信元UAが受け入れ可能な、Accept-Languageヘッダに基づくロケールを示すLocaleオブジェクトを、優先ロケールで始まり降順に、Iteratorのデータとして返します。 |
Address |
getAddressHeader(java.lang.String name)
指定されたヘッダの値をAddressオブジェクトとして返します。 |
java.util.ListIterator |
getAddressHeaders(java.lang.String name)
指定されたヘッダのAddressヘッダフィールド値すべてを、ListIteratorのデータとして返します。 |
SipApplicationSession |
getApplicationSession()
このメッセージが属するアプリケーションセッションを返します。 |
SipApplicationSession |
getApplicationSession(boolean create)
このメッセージが属するappセッションを返します。 |
java.lang.Object |
getAttribute(java.lang.String name)
名前を付けられた属性の値をObjectとして返します。 |
java.util.Enumeration |
getAttributeNames()
このメッセージオブジェクトが利用可能な属性の名前を含むEnumerationを返します。 |
java.lang.String |
getCallId()
このSipServletMessageのCall-IDヘッダの値を返します。 |
java.lang.String |
getCharacterEncoding()
このメッセージで送られたMIMEボディに使用された文字セットの名前を返します。 |
java.lang.Object |
getContent()
Javaオブジェクトとして内容を返します。 |
java.util.Locale |
getContentLanguage()
このメッセージのロケールを返します。 |
int |
getContentLength()
このメッセージの内容部分の長さをバイト数で返します。 |
java.lang.String |
getContentType()
Content-Typeヘッダフィールドの値を返します。 |
int |
getExpires()
Expiresヘッダの値を返します。 |
Address |
getFrom()
Fromヘッダの値を返します。 |
java.lang.String |
getHeader(java.lang.String name)
指定されたリクエストのヘッダの値をStringとして返します。 |
java.util.Iterator |
getHeaderNames()
このリクエストが含むすべてのヘッダ名を、Iteratorのデータとして返します。 |
java.util.ListIterator |
getHeaders(java.lang.String name)
指定されたリクエストヘッダのすべての値を、複数のStringオブジェクトのIteratorのデータとして返します。 |
java.lang.String |
getLocalAddr()
このメッセージが受信されたインターフェースのドメイン名またはIPアドレスを返します。 |
int |
getLocalPort()
このメッセージが受信されたローカルポートを返します。 |
java.lang.String |
getMethod()
このメッセージのSIPメソッドを返します。 |
java.lang.String |
getProtocol()
このメッセージのプロトコルの名前とバージョンを返します。 |
byte[] |
getRawContent()
メッセージ内容をバイト配列として返します。 |
java.lang.String |
getRemoteAddr()
このメッセージの送信元のIPアドレスを返します。 |
int |
getRemotePort()
このメッセージの送信元のポート番号を返します。 |
java.lang.String |
getRemoteUser()
このメッセージを送信するユーザが認証されていればそのログインを戻し、認証されていなければnullを返します。 |
SipSession |
getSession()
このメッセージが属するSipSessionを返します。 |
SipSession |
getSession(boolean create)
このメッセージが属するSipSessionを返します。 |
Address |
getTo()
Toヘッダの値を返します。 |
java.lang.String |
getTransport()
このメッセージが受信されたプロトコルの名前を返します。 |
java.security.Principal |
getUserPrincipal()
このメッセージを送る認証されたユーザエージェントの名前を含むSipURIのjava.security.Principalオブジェクトを返します。 |
boolean |
isCommitted()
このメッセージがcommitされる場合、つまり、以下の条件の一つがtrueである場合にtrueを返します。 |
boolean |
isSecure()
このメッセージが安全なチャンネル(TLSなど)で受信されたかどうかを示すbooleanを返します。 |
boolean |
isUserInRole(java.lang.String role)
認証ユーザが指定された論理"role"に含まれるかを示すbooleanを返します。 |
void |
removeHeader(java.lang.String name)
指定されたヘッダを削除します。 |
void |
send()
このSipServletMessage を送ります。 |
void |
setAcceptLanguage(java.util.Locale locale)
このユーザエージェントが内容、理由フレーズ、警告などを受け入れる優先ロケールを設定します。 |
void |
setAddressHeader(java.lang.String name,
Address addr)
指定された名前のヘッダを、アドレス引数によって指定された値を持つように設定します。 |
void |
setAttribute(java.lang.String name,
java.lang.Object o)
このメッセージの属性を保存します。 |
void |
setCharacterEncoding(java.lang.String enc)
このメッセージのボディを変換するために使用される文字コード化の名前を、バイトから文字に(またはその逆)上書きします。 |
void |
setContent(java.lang.Object content,
java.lang.String contentType)
このメッセージの内容を、指定されたオブジェクトに設定します。 |
void |
setContentLanguage(java.util.Locale locale)
適宜ヘッダ(Content-Languageおよび Content-Typeの文字セット)を設定しながら、このメッセージのロケールを設定します。 |
void |
setContentLength(int len)
Content-Lengthヘッダの値を設定します。 |
void |
setContentType(java.lang.String type)
クライアントに送られる応答の内容タイプを設定します。 |
void |
setExpires(int seconds)
このメッセージのExpiresヘッダの値を設定します。 |
void |
setHeader(java.lang.String name,
java.lang.String value)
指定の名前と値を持つヘッダを設定します。 |
| メソッドの詳細 |
public void addAcceptLanguage(java.util.Locale locale)
locale - このユーザエージェントが受け入れ可能なロケール
public void addAddressHeader(java.lang.String name,
Address addr,
boolean first)
name - 設定するヘッダの名前addr - 追加のアドレス値first - trueの場合、アドレスは指定されたヘッダフィールドの最初の値としてを追加されます。そうでない場合は、最後の値として追加します。
java.lang.IllegalArgumentException - 指定されたヘッダがアドレス値を保持するよう定義されない場合、または指定されたヘッダフィールドがシステムヘッダである場合には、java.lang.IllegalArgumentException をスローします。
public void addHeader(java.lang.String name,
java.lang.String value)
name - ヘッダ名を指定するStringvalue - 追加のヘッダ値
java.lang.IllegalArgumentException - 指定されたヘッダフィールドがシステムヘッダである場合、java.lang.IllegalArgumentExceptionをスローします。public java.util.Locale getAcceptLanguage()
public java.util.Iterator getAcceptLanguages()
public Address getAddressHeader(java.lang.String name)
throws ServletParseException
(name-addr | addr-spec) *(SEMI generic-param)と一致する
name - ヘッダの名前を指定する、大文字小文字を区別しないString
ServletParseException - 指定されたヘッダフィールドがSIPアドレスオブジェクトとして解析できない場合には、ServletParseExceptionをスローします。
public java.util.ListIterator getAddressHeaders(java.lang.String name)
throws ServletParseException
name - ヘッダフィールドの名前を指定する、大文字小文字を区別しないString
ServletParseException - 指定されたヘッダフィールドがSIPアドレスオブジェクトとして解析できない場合には、ServletParseExceptionをスローします。public SipApplicationSession getApplicationSession()
public SipApplicationSession getApplicationSession(boolean create)
create - trueの場合、セッションがまだ存在しなければ作成されます。そうでない場合は、nullが戻されます。
public java.lang.Object getAttribute(java.lang.String name)
name - 属性の名前を指定するString
public java.util.Enumeration getAttributeNames()
public java.lang.String getCallId()
public java.lang.String getCharacterEncoding()
public java.lang.Object getContent()
throws java.io.IOException,
java.io.UnsupportedEncodingException
java.io.IOException - IOExceptionが発生した場合は、java.io.IOExceptionをスローします。
java.io.UnsupportedEncodingException - 内容はテキスト文字であるが、しかしプラットフォームがこのメッセージ文字のコード化をサポートしない場合には、java.io.UnsupportedEncodingExceptionをスローします。public java.util.Locale getContentLanguage()
public int getContentLength()
public java.lang.String getContentType()
public int getExpires()
public Address getFrom()
public java.lang.String getHeader(java.lang.String name)
name - ヘッダの名前を指定するString。
public java.util.Iterator getHeaderNames()
public java.util.ListIterator getHeaders(java.lang.String name)
name - ヘッダの名前を指定するString。
public java.lang.String getLocalAddr()
public int getLocalPort()
public java.lang.String getMethod()
public java.lang.String getProtocol()
public byte[] getRawContent()
throws java.io.IOException
java.io.IOException - IOExceptionが発生した場合、java.io.IOException をスローします。public java.lang.String getRemoteAddr()
public int getRemotePort()
public java.lang.String getRemoteUser()
public SipSession getSession()
public SipSession getSession(boolean create)
create - セッションがまだ存在していない場合に、作成されるかどうかを示します。
public Address getTo()
public java.lang.String getTransport()
public java.security.Principal getUserPrincipal()
public boolean isCommitted()
public boolean isSecure()
public boolean isUserInRole(java.lang.String role)
role - roleの名前を指定するString
public void removeHeader(java.lang.String name)
name - ヘッダ名を指定するString
java.lang.IllegalArgumentException - 指定されたヘッダフィールドがシステムヘッダである場合、java.lang.IllegalArgumentExceptionをスローします。
public void send()
throws java.io.IOException
java.io.IOException - このリクエストを送ろうとして転送エラーが発生すると、java.io.IOExceptionをスローします。public void setAcceptLanguage(java.util.Locale locale)
public void setAddressHeader(java.lang.String name,
Address addr)
name - 設定するヘッダの名前addr - 割り当てられたアドレス値
java.lang.IllegalArgumentException - 指定されたヘッダがアドレス値を保持するよう定義されない場合、または指定されたヘッダフィールドがシステムヘッダである場合には、java.lang.IllegalArgumentException をスローします。
public void setAttribute(java.lang.String name,
java.lang.Object o)
name - 属性の名前を指定するStringo - 保存されるObject
public void setCharacterEncoding(java.lang.String enc)
throws java.io.UnsupportedEncodingException
enc - 文字コード化の名前
java.io.UnsupportedEncodingException - これが有効なコード化でない場合は、java.io.UnsupportedEncodingExceptionをスローします。
public void setContent(java.lang.Object content,
java.lang.String contentType)
throws java.io.UnsupportedEncodingException
content - メッセージ内容を表すオブジェクトcontentType - オブジェクトのMIMEタイプ
java.io.UnsupportedEncodingException - 内容が本来テキストで、またサーバがこのメッセージの文字コード化をサポートしていない場合は、java.io.UnsupportedEncodingException をスローします。
java.lang.IllegalStateException - メッセージがすでに送られているか、またはread-onlyの場合には、java.lang.IllegalStateExceptionを投入するpublic void setContentLanguage(java.util.Locale locale)
locale - このメッセージのロケールpublic void setContentLength(int len)
len - ピアに送られる内容の長さを指定する整数。Content-Lengthヘッダを設定します。
java.lang.IllegalStateException - これが受信メッセージである場合、またはすでに送られている場合には、java.lang.IllegalStateException をスローします。public void setContentType(java.lang.String type)
type - 内容のMIMEタイプを指定するStringpublic void setExpires(int seconds)
setHeader("Expires", String.valueOf(seconds));
seconds - 秒で測られたExpiresヘッダの値
public void setHeader(java.lang.String name,
java.lang.String value)
name - ヘッダ名を指定するStringvalue - ヘッダ値
java.lang.IllegalArgumentException - 指定されたヘッダフィールドがシステムヘッダである場合、java.lang.IllegalArgumentExceptionをスローします。
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||