javax.servlet.sip
インタフェース SipServletMessage

既知のサブインタフェースの一覧:
SipServletRequest, SipServletResponse

public interface SipServletMessage

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)
          指定の名前と値を持つヘッダを設定します。
 

メソッドの詳細

addAcceptLanguage

public void addAcceptLanguage(java.util.Locale locale)
このユーザエージェントが受け入れ可能なLocaleを追加します。 Localeによって特定された言語は、既存のAccept-Language値より低いq-valueで、Accept-Languageヘッダに一覧表示されます。 これは、そのロケールがこのメッセージですでに特定されたロケールよりも優先度が低いことを意味します。

パラメータ:
locale - このユーザエージェントが受け入れ可能なロケール

addAddressHeader

public void addAddressHeader(java.lang.String name,
                             Address addr,
                             boolean first)
指定されたAddressを、名前を付けたヘッダフィールドの新しい値として追加します。 アドレスは、最後のヘッダフィールド値として追加されます。
このメソッドは、RFC3261に定義する(name-addr | addr-spec) *(SEMI generic-param)と一致する1つ以上のエントリ含むために定義されるヘッダと一緒に使用することができます。 これには、例えばContactやRouteが含まれます。

パラメータ:
name - 設定するヘッダの名前
addr - 追加のアドレス値
first - trueの場合、アドレスは指定されたヘッダフィールドの最初の値としてを追加されます。そうでない場合は、最後の値として追加します。
例外:
java.lang.IllegalArgumentException - 指定されたヘッダがアドレス値を保持するよう定義されない場合、または指定されたヘッダフィールドがシステムヘッダである場合には、java.lang.IllegalArgumentException をスローします。

addHeader

public void addHeader(java.lang.String name,
                      java.lang.String value)
任意の名前と値をもつヘッダを追加します。このメソッドにより、ヘッダは複数の値をもつことができます。
注意:アプリケーションはFrom、To、Call-ID、Cseq、Via、Record-Route、およびRouteの各ヘッダを設定してはなりません。 また、Contactヘッダの設定は、制限の対象です。

パラメータ:
name - ヘッダ名を指定するString
value - 追加のヘッダ値
例外:
java.lang.IllegalArgumentException - 指定されたヘッダフィールドがシステムヘッダである場合、java.lang.IllegalArgumentExceptionをスローします。

getAcceptLanguage

public java.util.Locale getAcceptLanguage()
このメッセージを送信するUAが内容を受け入れるAccept-Languageヘッダに基づく優先ロケールを返します。 このメッセージがAccept-Languageヘッダを含まない場合は、このメソッドはサーバに対するデフォルトのロケールを返します。

戻り値:
送信するユーザエージェントに対する優先ロケールを返します。

getAcceptLanguages

public java.util.Iterator getAcceptLanguages()
送信元UAが受け入れ可能な、Accept-Languageヘッダに基づくロケールを示すLocaleオブジェクトを、優先ロケールで始まり降順に、Iteratorのデータとして返します。
このメッセージがAccept-Languageヘッダを提供しない場合には、このメソッドは1つのLocale、サーバに対するデフォルトロケールを含むIteratorを返します。

戻り値:
このメッセージの送信元UAに対する優先ロケールをIteratorのデータとして返します。

getAddressHeader

public Address getAddressHeader(java.lang.String name)
                         throws ServletParseException
指定されたヘッダの値をAddressオブジェクトとして返します。 このメソッドは、RFC3261に定義する
(name-addr | addr-spec) *(SEMI generic-param)と一致する
1つ以上のエントリ含むために定義されるヘッダと一緒に使用することができます。 これには、例えばContactやRouteが含まれます。
複数のヘッダフィールド値がある場合には、最初のものが戻されます。

パラメータ:
name - ヘッダの名前を指定する、大文字小文字を区別しないString
戻り値:
ヘッダの値をAddressとして返します。
例外:
ServletParseException - 指定されたヘッダフィールドがSIPアドレスオブジェクトとして解析できない場合には、ServletParseExceptionをスローします。

getAddressHeaders

public java.util.ListIterator getAddressHeaders(java.lang.String name)
                                         throws ServletParseException
指定されたヘッダのAddressヘッダフィールド値すべてを、ListIteratorのデータとして返します。 このメソッドは、RFC3261に定義する(name-addr | addr-spec) *(SEMI generic-param)と一致する1つ以上のエントリ含むために定義されるヘッダと一緒に使用することができます。 これには、例えばContactやRouteが含まれます。
戻されたリストiteratorから指定のヘッダフィールドを修正しようとすると、ヘッダフィールドがシステムヘッダである場合にはIllegalStateExceptionで失敗します。 システムヘッダでない場合には、getAddressHeadersによって戻されたiteratorのaddおよびsetメソッドへの引数は、Addressオブジェクトでなければなりません。

パラメータ:
name - ヘッダフィールドの名前を指定する、大文字小文字を区別しないString
戻り値:
指定されたヘッダフィールドのAddress値をListIteratorのデータとして返します。
例外:
ServletParseException - 指定されたヘッダフィールドがSIPアドレスオブジェクトとして解析できない場合には、ServletParseExceptionをスローします。

getApplicationSession

public SipApplicationSession getApplicationSession()
このメッセージが属するアプリケーションセッションを返します。セッションがまだ存在しない場合は、作成されます。

戻り値:
このSipServletMessageが属するアプリケーションセッションを返します。

getApplicationSession

public SipApplicationSession getApplicationSession(boolean create)
このメッセージが属するappセッションを返します。

パラメータ:
create - trueの場合、セッションがまだ存在しなければ作成されます。そうでない場合は、nullが戻されます。
戻り値:
このメッセージが属するappセッションを返します。

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
名前を付けられた属性の値をObjectとして返します。所定の名前の属性が存在しない場合にはnullを返します。 属性は2通りに設定可能です。 サーブレットコンテナはリクエストまたは応答に関するカスタム情報を利用可能にするために属性を設定する場合があります。 例えば、HTTPSを使って行われたリクエストについて、属性 javax.servlet.request.X509Certificateを使って、 クライアントの証明書に関する情報を取り出すことができます。 属性はまたsetAttribute(String, Object)を使ってプログラムに従って設定することができます。 これにより情報は、RequestDispatcherが呼び出す前にリクエストまたは応答に組み込まれることが可能になります。
属性の名前は、パッケージ名と同じ方法を用いらなければなりません。javax.servlet.sip.で始まる名前は、SIPサーブレットAPIによる定義のために予約されている。

パラメータ:
name - 属性の名前を指定するString
戻り値:
属性の値を含むObjectを返します。属性が存在しない場合は、nullを返します。

getAttributeNames

public java.util.Enumeration getAttributeNames()
このメッセージオブジェクトが利用可能な属性の名前を含むEnumerationを返します。 このメソッドは、リクエストに利用可能な属性がない場合には、空のEnumerationを返します。

戻り値:
リクエストの属性の名前を含む文字列のEnumerationを返します。

getCallId

public java.lang.String getCallId()
このSipServletMessageのCall-IDヘッダの値を返します。

戻り値:
このSipServletMessageのCall-ID値を返します。

getCharacterEncoding

public java.lang.String getCharacterEncoding()
このメッセージで送られたMIMEボディに使用された文字セットの名前を返します。 このメソッドは、メッセージが文字コード化を指定しない場合はnullを返します。
メッセージ文字コード化は、バイトと文字の間で変換が行われる場合に使用されます。 文字コード化が明示的に設定されていない場合は、UTF-8がこの目的のために使用されます。
文字コード化およびMIMEの詳細については、RFC2045 (http://www.ietf.org/rfc/rfc2045.txt)を参照のこと。

戻り値:
文字セットの名前を指定するString。例えばUTF-8

getContent

public java.lang.Object getContent()
                            throws java.io.IOException,
                                   java.io.UnsupportedEncodingException
Javaオブジェクトとして内容を返します。戻されたオブジェクトの実際のタイプは、内容自体のMIMEタイプ(Content-Type)によって決まります。
コンテナは、特定のナレッジを持っていない他のMIMEタイプtext/*について、MIMEタイプtext/plainに対するStringを戻すよう求められます。
"multipart"MIME内容に対して戻されるオブジェクトは、 javax.mail.Multiparオブジェクトであるように促されます。 バイト配列は、コンテナには不明のcontent-typeのために戻されます。
メッセージの文字コード化は、MIMEタイプが、内容が文字データで構成されていることを示す場合に使用されます。
注意:このメソッドは、setContentと共に、JavaMail APIの同様のメソッドをモデルに作られています。 JavaMail APIは、根幹のデータ処理システムとしてJava Activation Framework(JAF)の使用を義務づけているが、 SIPサーブレットAPIは現在のところJAFを必要としません。

戻り値:
解析された内容を表すオブジェクトを返します。MIMEタイプがプラットフォームに不明である場合には、raw内容を含むbyte[ ]オブジェクトを返します。
例外:
java.io.IOException - IOExceptionが発生した場合は、java.io.IOExceptionをスローします。
java.io.UnsupportedEncodingException - 内容はテキスト文字であるが、しかしプラットフォームがこのメッセージ文字のコード化をサポートしない場合には、java.io.UnsupportedEncodingExceptionをスローします。

getContentLanguage

public java.util.Locale getContentLanguage()
このメッセージのロケールを返します。このメソッドは、メッセージのContent-Languageヘッダによって特定されたロケールを返します。 または、これが存在しない場合には、Content-Typeヘッダのcharsetパラメータによって特定されたロケールを返します。

戻り値:
このメッセージのロケール

getContentLength

public int getContentLength()
このメッセージの内容部分の長さをバイト数で返します。これはContent-Lenghヘッダフィールドの値を直接反映します。

戻り値:
リクエストボディの長さを含む整数を返します。

getContentType

public java.lang.String getContentType()
Content-Typeヘッダフィールドの値を返します。

戻り値:
このメッセージのMIMEタイプの名前を含むStringを返します。ボディが空の場合はnullを返します。

getExpires

public int getExpires()
Expiresヘッダの値を返します。 Expireヘッダフィールドは、メッセージ(または内容)が期限切れになった後の相対時間を提供します。測定の単位は秒です。

戻り値:
Expireヘッダの値を返します。ヘッダが存在しない場合は、-1を返します。

getFrom

public Address getFrom()
Fromヘッダの値を返します。

戻り値:
Fromヘッダの内部表示を返します。

getHeader

public java.lang.String getHeader(java.lang.String name)
指定されたリクエストのヘッダの値をStringとして返します。 指定された名前のヘッダがリクエストにない場合は、このメソッドはnullを返します。 複数のヘッダが存在する場合は、最初のヘッダが戻されます。ヘッダの名前は大文字小文字を区別しません。

パラメータ:
name - ヘッダの名前を指定するString。
戻り値:
リクエストヘッダの値を含むStringを返します。リクエストにその名前のヘッダがない場合にはnullを返します。

getHeaderNames

public java.util.Iterator getHeaderNames()
このリクエストが含むすべてのヘッダ名を、Iteratorのデータとして返します。ヘッダがリクエストにない場合には、このメソッドは空のIteratorを返します。
サーブレットコンテナによっては、このメソッドを使用してヘッダにアクセスすることを許可しないものもあります。その場合このメソッドはnullを返します。

戻り値:
このリクエストに存在するすべてのヘッダフィールドの名前をIteratorのデータとして返します。 ヘッダがリクエストにない場合には、このメソッドは空のenumerationを返します。 サーブレットコンテナが、サーブレットにこのメソッドの使用を許可しない場合は、nullを返します。

getHeaders

public java.util.ListIterator getHeaders(java.lang.String name)
指定されたリクエストヘッダのすべての値を、複数のStringオブジェクトのIteratorのデータとして返します。
Accept-Languageのようなヘッダは、コンマで区切られるリストとして送られるのではなく、異なる値をもつヘッダごとにクライアントによって送られることが可能です。
指定された名前のヘッダがリクエストに含まれない場合には、このメソッドは空のIteratorを返します。ヘッダの名前は大文字小文字を区別しません。

パラメータ:
name - ヘッダの名前を指定するString。
戻り値:
指定されたヘッダフィールドのString値をListIteratorのデータとして返します。

getLocalAddr

public java.lang.String getLocalAddr()
このメッセージが受信されたインターフェースのドメイン名またはIPアドレスを返します。

戻り値:
このメッセージが受信されたローカルインターフェースの名前を返します。 ローカルに生成された場合は、nullを返します。

getLocalPort

public int getLocalPort()
このメッセージが受信されたローカルポートを返します。

戻り値:
このメッセージが受信されたローカルポートを返します。 ローカルに生成された場合は、-1を返します。

getMethod

public java.lang.String getMethod()
このメッセージのSIPメソッドを返します。 これは、すべて大文字からなるトークンです。
例:INVITE リクエストについては、SIPメソッドは、リクエストラインにあるが、応答についてはCSeqヘッダから抽出されるかもしれません。

戻り値:
このSipServletMessageのSIPメソッドを返します。

getProtocol

public java.lang.String getProtocol()
このメッセージのプロトコルの名前とバージョンを返します。 これは、 <protocol> "/" <major-version-number> "."<minor-version-number>の形式です。 例:"SIP/2.0"
SIP Servlet APIのこのバージョンについては、つねに"SIP/2.0"です。

戻り値:
プロトコル名およびバージョン番号を含むStringを返します。

getRawContent

public byte[] getRawContent()
                     throws java.io.IOException
メッセージ内容をバイト配列として返します。

戻り値:
rawバイト配列としてメッセージ内容を返します。内容が設定されていない場合はnullを返します。
例外:
java.io.IOException - IOExceptionが発生した場合、java.io.IOException をスローします。

getRemoteAddr

public java.lang.String getRemoteAddr()
このメッセージの送信元のIPアドレスを返します。

戻り値:
このメッセージの送信元のIPアドレスを含むStringを返します。 ローカルに生成された場合は、nullを返します。

getRemotePort

public int getRemotePort()
このメッセージの送信元のポート番号を返します。

戻り値:
このメッセージの送信元のポート番号を返します。 ローカルに生成された場合は、-1を返します。

getRemoteUser

public java.lang.String getRemoteUser()
このメッセージを送信するユーザが認証されていればそのログインを戻し、認証されていなければnullを返します。

戻り値:
このリクエストを行うユーザのログインを指定するStringを返します。ユーザが認証されていなければnullを返します。

getSession

public SipSession getSession()
このメッセージが属するSipSessionを返します。セッションがまだ存在していなければ作成されます。このメソッドは、getSession(true)を呼び出すことに相当します。

戻り値:
このSipServletMessageが属するSipSessionを返します。

getSession

public SipSession getSession(boolean create)
このメッセージが属するSipSessionを返します。

パラメータ:
create - セッションがまだ存在していない場合に、作成されるかどうかを示します。
戻り値:
このSipServletMessageが属するSipSessionを返します。まだ作成されていない場合は、nullを返します。

getTo

public Address getTo()
Toヘッダの値を返します。

戻り値:
Toヘッダの内部表示を返します。

getTransport

public java.lang.String getTransport()
このメッセージが受信されたプロトコルの名前を返します。例えば、"UDP", "TCP", "TLS"または "SCTP"

戻り値:
このメッセージが受信されたプロトコルの名前を返します。 ローカルに生成された場合は、nullを返します。

getUserPrincipal

public java.security.Principal getUserPrincipal()
このメッセージを送る認証されたユーザエージェントの名前を含むSipURIのjava.security.Principalオブジェクトを返します。 ユーザが認証されていなければ、メソッドはnullを返します。

戻り値:
送信ユーザを表す java.security.Principalを返します。ユーザが認証されていなければ、メソッドはnullを返します。

isCommitted

public boolean isCommitted()
このメッセージがcommitされる場合、つまり、以下の条件の一つがtrueである場合にtrueを返します。

戻り値:
このメッセージがコミットされる場合はtrueを返します。そうでない場合はfalseを返します。

isSecure

public boolean isSecure()
このメッセージが安全なチャンネル(TLSなど)で受信されたかどうかを示すbooleanを返します。

戻り値:
このメッセージが安全なチャンネルで受信されたかを示すbooleanを返します。

isUserInRole

public boolean isUserInRole(java.lang.String role)
認証ユーザが指定された論理"role"に含まれるかを示すbooleanを返します。 Rolesおよびroleの所属は、配備記述子を使って定義できます。ユーザが認証されていなければ、メソッドはfalseを返します。

パラメータ:
role - roleの名前を指定するString
戻り値:
このメッセージを送るユーザが指定された"role"に属するかどうかを示すbooleanを返します。ユーザが認証されていなければ、falseを返します。

removeHeader

public void removeHeader(java.lang.String name)
指定されたヘッダを削除します。特定の名前の複数のヘッダが存在する場合は、それらすべて削除されます。

パラメータ:
name - ヘッダ名を指定するString
例外:
java.lang.IllegalArgumentException - 指定されたヘッダフィールドがシステムヘッダである場合、java.lang.IllegalArgumentExceptionをスローします。

send

public void send()
          throws java.io.IOException
このSipServletMessage を送ります。

例外:
java.io.IOException - このリクエストを送ろうとして転送エラーが発生すると、java.io.IOExceptionをスローします。

setAcceptLanguage

public void setAcceptLanguage(java.util.Locale locale)
このユーザエージェントが内容、理由フレーズ、警告などを受け入れる優先ロケールを設定します。 Localeによって定義された言語は、Accept-Languageヘッダに一覧表示されます。
null引数が有効な場合、既存のAccept-Languageヘッダを削除します。

戻り値:
このユーザエージェントの優先ロケール

setAddressHeader

public void setAddressHeader(java.lang.String name,
                             Address addr)
指定された名前のヘッダを、アドレス引数によって指定された値を持つように設定します。
このメソッドは、RFC3261に定義する(name-addr | addr-spec) *(SEMI generic-param)と一致する1つ以上のエントリ含むために定義されるヘッダと一緒に使用することができます。 これには、例えばContactやRouteが含まれます。

パラメータ:
name - 設定するヘッダの名前
addr - 割り当てられたアドレス値
例外:
java.lang.IllegalArgumentException - 指定されたヘッダがアドレス値を保持するよう定義されない場合、または指定されたヘッダフィールドがシステムヘッダである場合には、java.lang.IllegalArgumentException をスローします。

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object o)
このメッセージの属性を保存します。 属性はメッセージ間でリセットされます。このメソッドはRequestDispatcherと連携して使用されることがもっとも多いです。
属性の名前は、パッケージ名と同じ方法を用いなければなりません。 javax.servlet.sip.で始まる名前は、SIPサーブレットAPIによる定義のために予約されています。

パラメータ:
name - 属性の名前を指定するString
o - 保存されるObject

setCharacterEncoding

public void setCharacterEncoding(java.lang.String enc)
                          throws java.io.UnsupportedEncodingException
このメッセージのボディを変換するために使用される文字コード化の名前を、バイトから文字に(またはその逆)上書きします。
メッセージの文字コード化を明示的に設定することは、 getContent() および setContent(java.lang.Object, java.lang.String)への後続の呼の動作に影響をおよぼす可能性があります。 このメソッドは、それらメソッドの何れかを呼び出す前に呼び出されなければなりません。

パラメータ:
enc - 文字コード化の名前
例外:
java.io.UnsupportedEncodingException - これが有効なコード化でない場合は、java.io.UnsupportedEncodingExceptionをスローします。

setContent

public void setContent(java.lang.Object content,
                       java.lang.String contentType)
                throws java.io.UnsupportedEncodingException
このメッセージの内容を、指定されたオブジェクトに設定します。
このメソッドは、実装が指定されたオブジェクトおよびMIMEタイプについて知っている場合にのみ機能します。コンテナは、いずれかのMIMEタイプでbyte[ ]内容を処理するよう求められます。
さらにコンテナは、text/*内容タイプと一緒に使用される場合にString内容を処理するよう求められます。 非Stringオブジェクトおよびtext/*内容タイプと一緒に呼び出され場合には、 コンテナは、ボディの文字データを入手するために内容オブジェクトでtoString( )を呼び出すかもしれません。 また実装は、 "multipart"と一緒に使用される場合に、 javax.mail.Multipart内容を処理する方法を知っていることが推奨されます。
String内容を変換する時に、このメソッドは、Stringをバイト配列にマップするため、メッセージの文字コード化(setCharacterEncoding(java.lang.String)、 setContentType(java.lang.String)または setContentLanguage(java.util.Localeによって設定される)を使用するかもしれません。
注意:このメソッドは、getContent( )と共に、JavaMail APIの同様のメソッド をモデルに作られています。
JavaMail APIは、根幹のデータ処理システムとしてJava Activation Framework(JAF)の使用を義務づけているが、SIPサーブレットAPIは現在のところJAFを必要としません。

パラメータ:
content - メッセージ内容を表すオブジェクト
contentType - オブジェクトのMIMEタイプ
例外:
java.io.UnsupportedEncodingException - 内容が本来テキストで、またサーバがこのメッセージの文字コード化をサポートしていない場合は、java.io.UnsupportedEncodingException をスローします。
java.lang.IllegalStateException - メッセージがすでに送られているか、またはread-onlyの場合には、java.lang.IllegalStateExceptionを投入する

setContentLanguage

public void setContentLanguage(java.util.Locale locale)
適宜ヘッダ(Content-Languageおよび Content-Typeの文字セット)を設定しながら、このメッセージのロケールを設定します。 このメソッドは、setContentへの呼の前に呼び出されなければなりません。

パラメータ:
locale - このメッセージのロケール

setContentLength

public void setContentLength(int len)
Content-Lengthヘッダの値を設定します。
アプリケーションはこのメソッドを使用して直接Content-Lengthを設定することを抑制されます。 代わりにアプリケーションは、Content-Lengthが計算され正しく設定されることを保証するsetContentメソッドを使うべきです。

パラメータ:
len - ピアに送られる内容の長さを指定する整数。Content-Lengthヘッダを設定します。
例外:
java.lang.IllegalStateException - これが受信メッセージである場合、またはすでに送られている場合には、java.lang.IllegalStateException をスローします。

setContentType

public void setContentType(java.lang.String type)
クライアントに送られる応答の内容タイプを設定します。 内容タイプには、使用された文字コード化のタイプが含まれるかもしれません。例えば、 text/html; charset=UTF-8。 これにより、メッセージの現在の文字コード化が設定されます。
PrintWriterを入手する、またはsetContentを呼び出す場合には、最初にこのメソッドが呼び出されます。

パラメータ:
type - 内容のMIMEタイプを指定するString

setExpires

public void setExpires(int seconds)
このメッセージのExpiresヘッダの値を設定します。 このメソッドは以下に相当します。
setHeader("Expires", String.valueOf(seconds));

パラメータ:
seconds - 秒で測られたExpiresヘッダの値

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
指定の名前と値を持つヘッダを設定します。ヘッダがすでに設定されている場合は、新しい値が前の値を上書きします。
注意:アプリケーションはFrom、To、Call-ID、Cseq、Via、Record-Route、およびRouteの各ヘッダを設定してはなりません。また、Contactヘッダの設定は、制限の対象です。

パラメータ:
name - ヘッダ名を指定するString
value - ヘッダ値
例外:
java.lang.IllegalArgumentException - 指定されたヘッダフィールドがシステムヘッダである場合、java.lang.IllegalArgumentExceptionをスローします。