siprequest.java

来自「jsr-180 (SIP) 实现源码。可以在真实手机上使用」· Java 代码 · 共 146 行

JAVA
146
字号
package com.micromethod.sipstack.ri;

import java.util.Vector;

import com.micromethod.sipstack.i.SipAddress;

/**
 * SipRequest
 */
public class SipRequest extends SipMessage {
  /**
   * m_hasRoute
   */
  boolean m_hasRoute = false;

  /**
   * m_sipAddress
   */
  SipAddress m_sipAddress = null;

  /**
   * m_method
   */
  String m_method = null;

  /**
   * SipRequest Constructor
   * 
   * @param requestLine
   * @param headers
   * @param content
   */
  public SipRequest(Vector requestLine, Vector headers, byte content[]) {
    super(requestLine, headers, content);
    m_hasRoute = false;
    m_sipAddress = null;
    m_method = null;
    m_method = ((String) requestLine.elementAt(0)).trim();
    m_sipAddress = new SipAddress((String) requestLine.elementAt(1));
  }

  /**
   * SipRequest Constructor
   * 
   * @param method
   * @param sipAddress
   * @param headers
   */
  public SipRequest(String method, SipAddress sipAddress, Vector headers) {
    m_hasRoute = false;
    m_sipAddress = null;
    m_method = null;
    getRequestLine(method, sipAddress, headers);
  }

  /**
   * getMethod
   * 
   * @return method
   */
  public String getMethod() {
    return m_method;
  }

  /**
   * setSipAddress
   * 
   * @param sipAddress
   */
  public void setSipAddress(SipAddress sipAddress) {
    m_sipAddress = sipAddress;
    getRequestLine(m_method, sipAddress, m_headers);
  }

  /**
   * getSipAddress
   * 
   * @return sipAddress
   */
  public SipAddress getSipAddress() {
    return m_sipAddress;
  }

  /**
   * setHasRoute
   * 
   * @param hasRoute
   */
  public void setHasRoute(boolean hasRoute) {
    m_hasRoute = hasRoute;
  }

  /**
   * hasRoute
   * 
   * @return hasRoute
   */
  public boolean hasRoute() {
    return m_hasRoute;
  }

  /**
   * getSipResponse
   * 
   * @return sipResponse
   */
  public SipResponse getSipResponse() {
    SipResponse c1 = new SipResponse();
    c1.addTopHeader("From", getHeaderValue("From"));
    c1.addTopHeader("To", getHeaderValue("To"));
    c1.addTopHeader("Call-ID", getHeaderValue("Call-ID"));
    c1.addTopHeader("CSeq", getHeaderValue("CSeq"));
    Vector vector = getHeaders("Via");
    if (vector.size() > 0) {
      for (int i = vector.size() - 1; i >= 0; i--)
        c1
            .addTopHeader("Via", ((PairStructure) vector.elementAt(i))
                .getValue());

    }
    return c1;
  }

  /**
   * getRequestLine
   * 
   * @param method
   * @param sipAddress
   * @param headers
   */
  private void getRequestLine(String method, SipAddress sipAddress,
      Vector headers) {
    Vector vector1 = new Vector(3);
    m_isRequest = true;
    m_isResponse = false;
    vector1.addElement(((Object) (method)));
    vector1.addElement(((Object) (sipAddress.toString())));
    vector1.addElement("SIP/2.0");
    m_sipAddress = sipAddress;
    m_method = method;
    m_firstLine = vector1;
    if (headers != null) {
      m_headers = headers;
    }
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?