`

Sailfin自带的例子CallSetup的实现过程

    博客分类:
  • SIP
阅读更多
1. 首先,UAC(可以是X-lite等)向RegistrarServlet注册,RegistrarServlet继承SipServlet,doRegister(SipServletRequest request)对注册请求进行出来,其间,会对expires头进行判断请求是否过期,如果获得contact头,则response会发送200 ok给contact头,否则会发给from头,最后持久化to ,contact, expires到Registration。

2. 注册完后,用户通过浏览器即可浏览已经注册的信息,ListWebServlet负责显示所有注册的用户信息,它继承自HttpServlet,通过持久层获得所有注册信息然后现实在页面上。

3. 任意选择两个注册的用户来作为呼叫双方,发送请求消息,B2BCallServlet处理请求,进行双方的呼叫建立。方法如下,此处sip结合在httpservlet里了:
SipApplicationSession as = sf.createApplicationSession();
          //Just to make it simpler to understand 0 will be called A 1 B
          String callA = registrations.get(0).getContact();
          String callB = registrations.get(1).getContact();
         
          Address to = sf.createAddress(callB);
          Address from = sf.createAddress(callA);
         
          SipServletRequest sipReq = sf.createRequest(as, "INVITE", from, to);

         logger.log(Level.FINE, "ListWebServlet sipRequest = " + sipReq.toString());
         sipReq.setAttribute("CALL","INITIAL");
        
         // set servlet to invoke by reponse
         SipSession s = sipReq.getSession();
         s.setHandler("b2b");

4. B2BCallServlet的doRequest(SipServletRequest req)处理接收到的请求
分享到:
评论

相关推荐

    sipservlet undersatnd

    英文版的sipservlet,对APi详解sipservlet undersatnd

    Sailfin-Extruder:轻巧紧凑的5头挤出机

    1个M3x25 BHCS(SHCS也可用于所有BHCS) 2个M3x14 BHCS 2个M3x10 BHCS 5x M3加热器没事吧部件工具头很快将有一个用于CroXY的Sailfin工具头。这里提供了使用Dragon修补程序的Tiny-M工具头。如果您问的很好,我会为...

    AVJukeBox_OnIMS_Network:AVJukeBox_OnIMS_Network-开源

    我们的目标是设计一个系统,该系统可以自动“标记”具有相应元数据的音频/视频数据,以使用SIP通过IMS网络获得该音频/视频... 该系统是使用sphinx工具包,sailfin应用服务器,OpenIMS核心和myMonster SIP客户端设计的。

    论文研究 -

    本研究描述了电钓鱼的染色体畸变效应,该效应在位于伊拉克南部阿尔加尔马市的Shat Al-Arab河上的Poecilia latipinna上进行了评估。 将工作中使用的电子钓鱼衍生工具模拟为商业捕鱼中使用的电子钓鱼衍生工具。...

    人工智能导论大学生期末复习测试题

    人工智能导论大学生期末复习测试题

    debugpy-1.6.7-cp38-cp38-macosx_10_15_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    wx_camera_1717740438095.jpg

    wx_camera_1717740438095.jpg

    widgetsnbextension-3.0.0a13-py2.py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    计算机二级考试简单试题

    计算机二级考试是中国计算机技术职业资格(水平)考试中的一个级别,主要面向具备一定计算机应用能力的人员。考试内容通常包括理论知识和实践技能两个部分,旨在评估考生在计算机操作、编程、数据库管理等方面的综合能力。以下是对计算机二级考试的简介: - **考试目的**: 验证考生是否具备计算机应用的基本技能和一定的专业水平。 - **考试科目**: 考试科目多样,可能包括但不限于C语言程序设计、Java语言程序设计、数据库技术、办公软件应用、计算机网络基础等。 - **考试形式**: 包括笔试(理论知识测试)和上机考试(实践技能测试)。 - **考试题型**: 题型可能包括选择题、填空题、简答题、应用题和操作题等。 - **适用人群**: 适用于希望提升计算机应用能力的学生、职场人士以及对计算机技术感兴趣的自学者。 - **学习价值**: 通过考试可以系统学习计算机相关知识,提高个人计算机操作和编程能力。 - **考试准备**: 考生需要根据考试大纲进行复习,掌握必要的理论知识和实践技能。 - **考试认证**: 考试合格者将获得由考试机构颁发的计算机二级证书,证明其计算机应用能

    grpcio-1.24.0-cp37-cp37m-win_amd64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.23.1-cp34-cp34m-win32.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Ruby语言简单的案例

    Ruby语言案例简介: 本案例提供了一个使用Ruby语言编写的简单程序,目的是展示如何在控制台输出"Hello, World!"。这个程序是一个入门级的示例,适合初学者用来了解Ruby的基本语法和运行机制。 - **语言特性**: Ruby是一种简单而强大的编程语言,以其优雅的语法和灵活的编程范式而著称。 - **程序结构**: 程序包括了Ruby的基本组成部分,如`puts`函数,用于在控制台输出文本。 - **输出**: 使用`puts`函数输出"Hello, World!"到控制台,这是Ruby中的标准输出方法。 - **编译运行**: Ruby是一种解释型语言,通常不需要编译,可以直接运行。 - **适用人群**: 适合对Ruby感兴趣的初学者,以及希望快速了解Ruby编程基础的开发者。 - **学习价值**: 通过这个案例,学习者可以学习到Ruby的基本语法、程序结构、控制台输出,以及如何运行一个简单的Ruby程序。 这个案例是进入Ruby编程世界的第一步,为进一步探索Ruby的高级特性如面向对象编程、模块化、元编程等打下基础。随着学习的深入,开发者将能够利用

    基于ssm框架简易版营业厅宽带系统毕业论文

    摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本营业厅宽带系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此营业厅宽带系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了健身房基础数据的管理,员工的管理,公告信息的发布等功能。营业厅宽带系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:营业厅宽带系统;SSM框架;Mysql;自动化

    03墙面抹灰工程.doc

    03墙面抹灰工程

    E350系列电批与PLC接线示意图

    E350系列电批与PLC接线示意图

    pyzmq-23.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.10.1-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    cryptography-3.4.6-cp36-abi3-macosx_11_0_arm64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于Python+Vue汽车数据分析大屏可视化系统

    数据存储功能csv,爬取懂车帝的基本信息,echart左上玫瑰饼图前端渲染,后端数据传递,js动画效果,生成汽车数据分析大屏。

    基于Unity的射击类游戏开发pdf

    随着虚拟现实和游戏事业的快速发展,unity3D作为一款能够快速开发和应用的3D虚拟现实开发软在市场上正在逐步升温。文本的主要内容是介绍用unity3D软件做一款简单的射击类游戏。本文从前期的相关技术介绍、开发软件系统以及环境的介绍、项目的功能需求分析和详细设计、系统的运行、成品的打包等方面介绍了系统的开发过程。本设计主要为坦克类的射击游戏,设计平台为unity3D 3.5.5版本,系统中还用到了3dsMAX软件,photoshop软件中的一些相关技术,设计语言使用的是C#语言,系统主要实现一些模型移动、开火等基本的相关操作并在此基础上能够充分发挥开发者的能力进行更多复杂的逻辑设计。

Global site tag (gtag.js) - Google Analytics