首页 > 代码库 > sipML5聊天功能实现

sipML5聊天功能实现

一、环境说明:在阅读sipML5的API文档时,发现它具有聊天的功能,于是在sipML5的源码中进行设定,实现了注册之后可以英文聊天(中文聊天需要在FreeSWITCh中进行设定)。

二、具体配置:

  1. 在call.htm 的html  部分添加聊天的控件,如下:

  <div id="IM">

     <label>对方帐号</label><input id="accountNum" /><br/>

     <input id="mesaage"> 

    <input type="button" id="btnSend" value="http://www.mamicode.com/SendMessage" onclick="sendMessage();"/>

     <br/>

    <label id="messageBox"></label>

   </div>

  2、在call.htm 的Javascript代码中添加发送和接受消息的函数,如下:

  //发送和接受Message的函数

    var messageSession;

    function  sendMessage(){

        var accountNum=document.getElementById("accountNum");mesaage

        var message=document.getElementById("mesaage");

          //code

          messageSession = oSipStack.newSession(‘message‘, {

      // optional: ‘*‘ means all events

          events_listener: { events: ‘*‘, listener: onSipEventStack }

      });

          //alert(accountNum.value);

          messageSession.send("sip:"+accountNum.value+"@59.120.33.51", message.value, ‘text/plain;charset=utf-8‘);

          var lable=document.getElementById("messageBox");

          //lable.innerHTML+=‘SMS-content = ‘ + e.getContentString() + ‘ and SMS-content-type = ‘ + e.getContentType()+"<br/>";

          lable.innerHTML+="I    Say: "+message.value+"---------" +new Date().getHours()+":"+new Date().getMinutes()+"<br/>";

          message.value="";

    }

    var acceptMessage = function(e){

        e.newSession.accept(); // e.newSession.reject(); to reject the message

        var lable=document.getElementById("messageBox");

        //lable.innerHTML+=‘SMS-content = ‘ + e.getContentString() + ‘ and SMS-content-type = ‘ + e.getContentType()+"<br/>";

        var from=e.o_event.o_message.o_hdr_From.s_display_name;

        lable.innerHTML+=from+" Said: "+e.getContentString()+"---------" +new Date().getHours()+":"+new Date().getMinutes()+"<br/>";

     }

  3、在call.htm 的onSipEventStack(e) 函数中增加消息的侦听事件,并调用接受函数,如下:

  case ‘i_new_message‘:{

      acceptMessage(e);

  }

  至此,sipML5 就具有聊天的功能了,只不过目前测试只能支持英文聊天,中文暂时还没测成功,需要在Server进行设定。

注:本次修改是基于sipML5 新版(带桌面共享的一版),仅仅修改了call.htm 页面,其它的API接口以及底层的程式均没有改动。

sipML5聊天功能实现