posts - 32,comments - 8,trackbacks - 0
           

          Oops! Bea Sip Server Quick Start Part 2

          Purpose

          掌握由網(wǎng)頁(yè)發(fā)出sipinvite請(qǐng)求。

          Precondition:

          http://www.aygfsteel.com/pixysoft/archive/2007/09/11/144131.html

          Quick Start

          在上一章,掌握了安裝sip serverkapanga,然后寫(xiě)了一個(gè)注冊(cè)的機(jī)制。這張寫(xiě)一個(gè)網(wǎng)頁(yè)觸發(fā)invite的事件,呼叫客戶(hù)端。

          首先建一個(gè)dynamic web project,叫做Oops_Sip_02,然后修改WebContent,改為invite,修改properties,把Default output folder改為:Oops_Sip_02/invite/WEB-INF/classes,刪除build目錄,最后整個(gè)項(xiàng)目為:





          修改
          .classpath文件,增加3個(gè)引用:注意這3個(gè)引用是你安裝目錄下的。

          <?xml version="1.0" encoding="UTF-8"?>

          <classpath>

              
          <classpathentry kind="src" path="src"/>

              
          <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk150_06"/>

              
          <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>

              
          <classpathentry kind="lib" path="C:/bea/sipserver30/server/lib/wlss/wlss.jar"/>

              
          <classpathentry kind="lib" path="C:/bea/sipserver30/server/lib/wlss/sipservlet.jar" sourcepath="C:/bea/sipserver30/server/lib/wlss/sipservlet.jar"/>

              
          <classpathentry kind="lib" path="C:/bea/sipserver30/server/lib/weblogic.jar"/>

              
          <classpathentry kind="output" path="invite/WEB-INF/classes"/>

          </classpath>

          src目錄下面增加2個(gè)文件

          httpControlServlet

           

          import java.io.IOException;

          import javax.servlet.RequestDispatcher;

          import javax.servlet.ServletException;

          import javax.servlet.http.HttpServlet;

          import javax.servlet.http.HttpServletRequest;

          import javax.servlet.http.HttpServletResponse;

          public class httpControlServlet extends HttpServlet

          {

                 
          public void doGet(HttpServletRequest request, HttpServletResponse response)

                               
          throws ServletException, IOException

                 {

                        doAction(request, response);

                 }

                 
          public void doPost(HttpServletRequest request, HttpServletResponse response)

                               
          throws ServletException, IOException

                 {

                        doAction(request, response);

                 }

                 
          private void doAction(HttpServletRequest request,

                               HttpServletResponse response) 
          throws ServletException, IOException

                 {

                        String sip 
          = request.getParameter("sip");

                        sipControlServlet.DoConnection(sip);

                        RequestDispatcher rds;

                        rds 
          = getServletContext().getRequestDispatcher("/index.jsp");

                        rds.forward(request, response);

                        
          return;

                 }

          }

          sipControlServlet

          import java.io.IOException;

          import javax.servlet.*;

          import javax.servlet.sip.*;

          import com.bea.wcp.sip.util.TransportUtil;

          public class sipControlServlet extends SipServlet

          {

              
          private static Address myAddress;

              
          private static SipFactory factory;

              
          public void init(ServletConfig cfg) throws ServletException

              {

                  
          super.init(cfg);

                  factory 
          = (SipFactory) getServletContext().getAttribute(

                          SipServlet.SIP_FACTORY);

                  String uri 
          = "sip:oops@localhost:5062";

                  myAddress 
          = factory.createAddress(uri);

                  System.out.println(
          "Oops! Sip Server Demo 2");

              }

              
          public static void DoConnection(String sip) throws ServletException,

                      IOException

              {

                  SipApplicationSession appSession 
          = factory.createApplicationSession();

                  Address to 
          = factory.createAddress("sip:" + sip);

                  SipServletRequest invite 
          = factory.createRequest(appSession, "INVITE",

                          myAddress, to);

                  invite.send();

                  System.out.println(
          "Connection successful!");

              }

              
          protected void doResponse(SipServletResponse resp) throws ServletException,

                      IOException

              {

                  resp.createAck().send();

              }

          }

          在invite/WEB-INF下面建2個(gè)文件:

          sip.xml

          <?xml version="1.0" encoding="UTF-8"?>

          <!DOCTYPE sip-app

             PUBLIC "-//Java Community Process//DTD SIP Application 1.0//EN"

             "http://www.jcp.org/dtd/sip-app_1_0.dtd"
          >

          <sip-app>

              
          <display-name>Oops Sip Server Quick Start 2</display-name>

              
          <distributable />

              
          <servlet>

                 
          <servlet-name>sipControlServlet</servlet-name>

                 
          <servlet-class>sipControlServlet</servlet-class>

                 
          <load-on-startup>1</load-on-startup>

              
          </servlet>

              
          <!-- system user for the run-as element for Registrar -->

              
          <security-role>

                 
          <role-name>system-user</role-name>

              
          </security-role>

          </sip-app>

          web.xml

          <?xml version="1.0" encoding="UTF-8"?>

          <web-app id="WebApp_ID" version="2.4"

              xmlns
          ="http://java.sun.com/xml/ns/j2ee"

              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"

              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

              
          <display-name>testsender</display-name>

              
          <welcome-file-list>

                 
          <welcome-file>index.html</welcome-file>

                 
          <welcome-file>index.htm</welcome-file>

                 
          <welcome-file>index.jsp</welcome-file>

                 
          <welcome-file>default.html</welcome-file>

                 
          <welcome-file>default.htm</welcome-file>

                 
          <welcome-file>default.jsp</welcome-file>

              
          </welcome-file-list>

              
          <servlet>

                 
          <servlet-name>httpControlServlet</servlet-name>

                 
          <servlet-class>httpControlServlet</servlet-class>

              
          </servlet>

              
          <servlet-mapping>

                 
          <servlet-name>httpControlServlet</servlet-name>

                 
          <url-pattern>/http.oops</url-pattern>

              
          </servlet-mapping>

          </web-app>

          invite目錄下添加index.jsp

          <html>

          <body>

          <form name="form_sip" action="http.oops"

              method
          ="post"><input name="sip" value="user1@192.168.0.130:5061"

              type
          ="text" style="width: 240px"><input type="submit"></form>

          </body>

          </html>

          最后整個(gè)目錄變?yōu)椋?br />



          大概解說(shuō)一下:用戶(hù)網(wǎng)頁(yè)輸入
          sip,傳遞給后臺(tái)httpservlet,其調(diào)用sipservlet的靜態(tài)方法,創(chuàng)建一個(gè)會(huì)話到用戶(hù)。

          現(xiàn)在吧項(xiàng)目部署在bea sip server上面,方法參考前面的文章。然后在瀏覽器輸入:

          http://localhost:7001/invite



          之后打開(kāi)
          kapanga,在點(diǎn)擊網(wǎng)頁(yè)



          完成!

          posted on 2007-09-13 08:18 張辰 閱讀(784) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Dr. Oops

          FeedBack:
          # re: Oops! Bea Sip Server Quick Start Part 2
          2008-04-23 06:33 | Guest
          Hi,

          This article is cool but I can't see the pictures? Can you double check?  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 张家口市| 禄丰县| 泾阳县| 莒南县| 肇州县| 潮安县| 长乐市| 自贡市| 长阳| 邵阳县| 永川市| 固原市| 依兰县| 巴林右旗| 江源县| 长海县| 大连市| 康保县| 霍城县| 互助| 贞丰县| 黄梅县| 新乡县| 鹤岗市| 富平县| 栖霞市| 澎湖县| 左云县| 鹤山市| 兴隆县| 平江县| 泾川县| 高安市| 平果县| 漾濞| 大丰市| 江门市| 木里| 吴忠市| 原平市| 怀安县|