CN100596146C - 会话发起协议呼叫方法、中间件及会话发起协议用户代理 - Google Patents

会话发起协议呼叫方法、中间件及会话发起协议用户代理 Download PDF

Info

Publication number
CN100596146C
CN100596146C CN200710106132A CN200710106132A CN100596146C CN 100596146 C CN100596146 C CN 100596146C CN 200710106132 A CN200710106132 A CN 200710106132A CN 200710106132 A CN200710106132 A CN 200710106132A CN 100596146 C CN100596146 C CN 100596146C
Authority
CN
China
Prior art keywords
sip
user
middleware
message
web browser
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200710106132A
Other languages
English (en)
Other versions
CN101052048A (zh
Inventor
陈小冲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN200710106132A priority Critical patent/CN100596146C/zh
Publication of CN101052048A publication Critical patent/CN101052048A/zh
Application granted granted Critical
Publication of CN100596146C publication Critical patent/CN100596146C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种SIP呼叫方法,包括:中间件检测到任意用户发起的SIP呼叫,对SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户;接收到目标SIP用户发来的SIP呼叫消息,对该SIP呼叫消息经SIP协议栈处理后提供给所述发起SIP呼叫的用户。本发明还公开了一种中间件,包括:消息处理器和SIP协议栈。本发明还公开了一种SIP-UA,包括:WEB浏览器、WEB服务器和中间件。本发明可对SIP呼叫和SIP-UA进行集中管理,同时由于企业级应用或网络游戏等应用可在中间件上实现,因此,本发明提供的SIP-UA可与其它企业级应用或网络游戏等实现无缝衔接。

Description

会话发起协议呼叫方法、中间件及会话发起协议用户代理
技术领域
本发明涉及会话发起协议(SIP)技术领域,具体涉及SIP呼叫方法、中间件及SIP-UA。
背景技术
当用户之间使用SIP进行通信时,用户必须有一个功能实体SIP-UA,用户通过自身的SIP-UA与其它用户的SIP-UA实现语音、视频数据的交互。
图1给出了用户之间通过SIP-UA进行通信的示意图,如图1所示,每个用户对应一个SIP-UA,每个SIP-UA上分别运行一个SIP协议栈以实现与其它SIP-UA之间的SIP报文的交互,SIP-UA之间交互的SIP报文要经过SIP服务器如:代理服务器、注册服务器或重定向服务器的转发,且每个SIP-UA要具有语音、视频数据的编解码功能,以实现与其它SIP-UA之间的语音、视频交互。另外,SIP-UA还需实现其它附带属性如:记录呼叫相关信息等,以方便用户查询呼叫记录。
图2给出了用户之间通过SIP-UA实现呼叫的典型消息流程示意图,如图2所示,其具体步骤如下:
步骤201:用户a确定要呼叫用户b,用户a的SIP-UA_a向用户b的SIP-UA_b发送SIP呼叫建立(INVITE)消息,该消息中的会话描述协议(SDP)域包含SIP-UA_a支持的所有编解码算法信息。
步骤202:SIP-UA_b收到该INVITE消息,向SIP-UA_a返回100尝试(100Trying)消息,以通知SIP-UA_a已收到但尚未处理该消息,请等待。
步骤203:SIP-UA_b处理INVITE消息,向用户b振铃,并向SIP-UA_a发送180振铃(Ringing)消息,以通知SIP-UA_a正在提示用户b,请等待。
步骤204:SIP-UA_b处理完该INVITE消息,向SIP-UA_a返回200响应(OK)消息,该消息的SDP域中包含SIP-UA_b和SIP-UA_a都支持的编解码算法信息。
步骤205:SIP-UA_a收到该200OK消息,向SIP-UA_b返回确认(ACK)消息。
步骤206:SIP-UA_a和SIP-UA_b使用200OK消息中指示的编解码算法,对要发送的语音或视频数据进行编码后,封装成RTP报文发送给对端;使用200OK消息中指示的编解码算法对对端发来的RTP报文中的语音或视频数据进行解码后,向用户播放解码后的语音数据或显示解码后的视频数据。
步骤207:SIP-UA_a或SIP-UA_b检测到用户挂断,向对端发送结束(BYE)消息。
步骤208:SIP-UA_b或SIP-UA_a收到对端发来的BYE消息,向对端返回200OK消息,呼叫断开。
SIP-UA功能实体既可以由硬终端的形式实现,例如:将SIP-UA的功能集成在移动终端上实现,也可以由软终端的形式实现,如:在PC机上安装可实现SIP-UA所有功能的程序。但不管是硬终端形式还是软终端形式的SIP-UA,每个SIP-UA都只与一个用户对应,在整个SIP系统中,所有的SIP-UA都是分散的个体,不利于对SIP呼叫和SIP-UA的集中管理;另外,在实际应用中,SIP-UA通常都要与一些企业级应用软件以及网络游戏软件等进行交互,以满足用户的企业级应用要求或娱乐要求,而企业级应用软件或网络游戏软件等通常都在运行在WEB服务器上的服务程序:中间件上实现,因此,SIP-UA无法与企业级应用或网络游戏等实现无缝衔接。
发明内容
本发明提供SIP呼叫方法、中间件及SIP-UA,以实现对SIP呼叫的集中管理。
本发明的技术方案是这样实现的:
一种SIP呼叫方法,包括:
中间件检测到任意用户发起SIP呼叫,对SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户;接收到目标SIP用户发来的SIP呼叫消息,对该SIP呼叫消息经SIP协议栈处理后提供给所述发起SIP呼叫的用户。
所述中间件检测到任意用户发起SIP呼叫之前进一步包括:
WEB浏览器与运行中间件的WEB服务器建立链接,链接成功,WEB服务器向WEB浏览器返回SIP会话页面;WEB浏览器检测到任意用户通过SIP会话页面发起SIP呼叫,向中间件发送SIP呼叫消息。
所述中间件对该SIP呼叫消息经SIP协议栈处理后提供给所述发起SIP呼叫的用户之后进一步包括:
WEB浏览器接收到所述发起SIP呼叫的用户发来的语音或视频数据,将该语音或视频数据封装成实时传输协议RTP报文后发送给目标SIP用户。
所述WEB浏览器将语音或视频数据封装成RTP报文后发送给目标SIP用户包括:WEB浏览器将语音或视频数据封装成RTP报文后发送给中间件,中间件收到该报文后,将该报文转发给目标SIP用户。
所述中间件收到该报文之后进一步包括:中间件将该报文携带的语音或视频数据存储在WEB服务器上;
WEB浏览器检测到用户点击语音或视频数据链接,向WEB服务器发送超文本传输协议(HTTP)请求,WEB服务器收到该HTTP请求,将存储的语音或视频数据通过HTTP响应返回给WEB浏览器,WEB浏览器将该语音或视频数据通过播放器播放给用户。
所述中间件对该SIP呼叫消息经SIP协议栈处理后提供给所述发起SIP呼叫的用户包括:中间件对该SIP呼叫消息经SIP协议栈处理后,将该消息发送给所述发起SIP呼叫的用户访问的WEB浏览器。
所述方法进一步包括:中间件将本次呼叫记录存储在数据库中;
WEB浏览器检测到用户点击呼叫记录链接,向WEB服务器发送HTTP请求,WEB服务器收到该HTTP请求,向中间件发送呼叫记录查询请求,中间件根据该请求从数据库获取到呼叫记录,将该呼叫记录返回给WEB服务器,WEB服务器将该呼叫记录通过HTTP响应返回给WEB浏览器,WEB浏览器将该呼叫记录显示给用户。
所述中间件对该SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户为:中间件将该经SIP协议栈处理的SIP呼叫消息发送给目标SIP用户的SIP-UA。
所述中间件对该SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户为:中间件将该经SIP协议栈处理的SIP呼叫消息发送给目标SIP用户访问的中间件。
一种中间件,包括:消息处理器和SIP协议栈,其中:
消息处理器,检测到任意用户发起SIP呼叫,将SIP呼叫消息发送给SIP协议栈,接收SIP协议栈返回的SIP呼叫消息,将该消息发送给目标SIP用户;接收目标SIP用户发来的SIP呼叫消息,将该消息发送给SIP协议栈,接收SIP协议栈返回的SIP呼叫消息,将该SIP呼叫消息提供给所述发起SIP呼叫的用户;
SIP协议栈,接收消息处理器发来的SIP呼叫消息,对该消息进行SIP协议处理,将处理后的SIP呼叫消息返回给消息处理器。
所述消息处理器进一步用于,接收所述发起SIP呼叫的用户发来的RTP报文,将该RTP报文发送给目标SIP用户;接收目标SIP用户发来的RTP报文,将该RTP报文提供给所述发起SIP呼叫的用户。
所述消息处理器进一步将本次呼叫记录存储到数据库上,检测到用户发起呼叫记录查询请求,从数据库获取呼叫记录,将该呼叫记录提供给用户。
一种SIP-UA,包括:WEB浏览器、WEB服务器和中间件,其中:
WEB浏览器,与运行中间件的WEB服务器建立链接,接收WEB服务器发来的SIP会话页面,检测到任意用户通过SIP会话页面发起SIP呼叫,与中间件交互SIP呼叫消息;将发起SIP呼叫的用户发来的语音或视频数据封装成RTP报文发送给目标SIP用户;
WEB服务器,向WEB浏览器返回SIP会话页面;
中间件,接收WEB浏览器或目标SIP用户发来的SIP呼叫消息,将该消息经SIP协议栈处理后发送给目标SIP用户或WEB浏览器。
所述SIP-UA进一步包括:数据库,接收并保存中间件发来的呼叫记录;
且,所述中间件进一步将本次呼叫记录发送给所述数据库,接收到WEB服务器发来的呼叫记录查询请求,从数据库获取呼叫记录,将该呼叫记录返回给WEB服务器;
所述WEB服务器收到WEB浏览器发来的指示呼叫记录查询的HTTP请求,向中间件发送呼叫记录查询请求,将中间件返回的呼叫记录通过HTTP响应返回给WEB浏览器。
与现有技术相比,本发明通过将SIP-UA功能实体的SIP呼叫功能集成在中间件上,使得任何用户都可通过访问中间件来实现SIP呼叫,有利于对SIP呼叫和SIP-UA的集中管理;具体地,用户可通过WEB浏览器来访问运行在WEB服务器上的中间件。另外,由于企业级应用或网络游戏等应用可在中间件上实现,而本发明提供的SIP-UA的功能也集成在中间件上,因此,本发明提供的SIP-UA可与企业级应用或网络游戏等实现无缝衔接。
附图说明
图1为现有技术中用户之间通过SIP-UA进行通信的示意图;
图2为现有技术中用户之间通过SIP-UA实现呼叫的典型消息流程示意图;
图3为本发明实施例一提供的用户之间通过SIP-UA实现呼叫的典型消息流程示意图;
图4为本发明实施例一提供的通过SIP-UA实现呼叫的示意图;
图5为本发明实施例二提供的用户之间通过SIP-UA实现呼叫的典型消息流程示意图;
图6为本发明实施例二提供的通过SIP-UA实现呼叫的示意图;
图7为本发明实施例三提供的通过SIP-UA实现呼叫的示意图;
图8为本发明实施例提供的SIP-UA的结构示意图。
具体实施方式
本发明的核心思想是:在中间件上增加SIP协议栈,中间件负责将SIP报文经SIP协议栈处理后转发给其他SIP用户。由于中间件是运行在WEB服务器上的服务程序,因此,任何一个用户都可通过WEB浏览器来访问WEB服务器上的中间件,从而实现SIP呼叫。具体地,用户可通过WEB浏览器发起SIP呼叫,由WEB浏览器将SIP呼叫发送至中间件,且用户可通过WEB浏览器与其他SIP用户交互RTP报文,从而实现SIP-UA的所有功能。
以下以一个典型的SIP呼叫为例,对本发明实施例提供的实现SIP-UA的方案进行详细说明。
图3为本发明实施例一提供的用户之间通过SIP-UA实现呼叫的典型消息流程示意图,在本实施例中,用户a使用本发明实施例提供的通过WEB浏览器、WEB服务器和中间件实现的SIP-UA,用户b则使用现有技术中的SIP-UA,如图3所示,其具体步骤如下:
步骤301:用户a确定要呼叫用户b,在WEB浏览器上点击运行中间件的WEB服务器的链接,WEB浏览器检测到该点击动作,向WEB服务器发送携带WEB服务器地址信息的超文本传输协议(HTTP)请求。
步骤302:WEB服务器收到该HTTP请求,向WEB浏览器返回携带SIP会话页面的HTTP响应,WEB浏览器收到该HTTP响应,将该响应携带的SIP会话页面显示给用户a。
步骤303:用户a在SIP会话页面上输入用户b的号码,并点击拨号按钮。
步骤304:WEB浏览器的Java Applet程序检测到该点击动作,解析该动作,向中间件发送SIP INVITE消息,该消息中的SDP域包含Java Applet程序支持的所有编解码算法信息。
步骤305:中间件的消息处理器(Msg Processor)收到该SIP INVITE消息,将该消息经SIP协议栈(Stack)处理后发送给用户b的SIP-UA。
中间件发送的SIP INVITE消息通常要通过一个或多个SIP代理服务器转发给用户b的SIP-UA。
步骤306:用户b的SIP-UA收到该INVITE消息,向用户a的中间件返回100Trying消息。
步骤307:中间件收到该100Trying消息后,将该消息经SIP协议栈处理后发送给WEB浏览器上的Java Applet程序。
WEB浏览器上的Java Applet程序收到该100Trying消息后,可向用户a放等待提示音或在SIP会话页面上显示等待提示。
步骤308:用户b的SIP-UA处理INVITE消息,向用户b振铃,并向用户a的中间件发送180Ringing消息。
步骤309:中间件的Msg Processor收到该180Ringing消息,将该消息经SIP协议栈处理后发送给WEB浏览器上的Java Applet程序。
WEB浏览器上的Java Applet程序收到该180Ringing消息后,可继续向用户a放等待提示音或在SIP会话页面上显示等待提示。
步骤310:用户b的SIP-UA处理完该INVITE消息,向用户a的中间件返回200OK消息,该消息的SDP域中包含用户b的SIP-UA和用户a的Java Applet程序都支持的编解码算法信息。
步骤311:中间件收到该200OK消息,将该消息返回给WEB浏览器上的Java Applet程序。
步骤312:WEB浏览器上的Java Applet程序收到200OK消息,保存该消息携带的编解码算法信息,通过中间件向用户b的SIP-UA返回确认(ACK)消息,同时提示用户a呼叫已建立。
步骤313:用户b的SIP-UA接收到用户b的语音或视频数据,使用200OK消息中指示的编解码算法,对要发送的语音或视频数据进行编码后,封装成RTP报文发送给用户a的WEB浏览器上的Java Applet程序。
用户b的SIP-UA也可将RTP报文先发送给中间件,中间件的MsgProcessor收到该RTP报文后,将该RTP报文转发给WEB浏览器上的JavaApplet程序。
步骤314:WEB浏览器上的Java Applet程序收到该RTP报文后,使用200OK消息中指示的编解码算法对RTP报文中的语音或视频数据进行解码处理,将得到的语音或视频数据播放给用户a。
步骤315:WEB浏览器上的Java Applet程序接收到用户a的语音或视频数据,使用200OK消息中指示的编解码算法对语音或视频数据进行编码后,封装成RTP报文发送给用户b的SIP-UA。
同样,用户a的WEB浏览器上的Java Applet程序可将RTP报文先发送给中间件,中间件的Msg Processor收到该RTP报文后,将该报文转发给用户b的SIP-UA。
用户b的SIP-UA收到该RTP报文后,使用200OK消息中指示的编解码算法对RTP报文中的语音或视频数据进行解码处理,将得到的语音或视频数据提供给用户b。
步骤316:用户b的SIP-UA检测到用户b挂断,向用户a的中间件发送BYE消息,中间件的Msg Processor收到该消息后,将该消息经SIP协议栈处理后发送给WEB浏览器上的Java Applet程序;Java Applet程序收到该BYE消息后,通过中间件向用户b的SIP-UA返回200OK消息,并通过WEB浏览器提示用户a呼叫断开。
若用户a确定要挂断呼叫,则用户a在WEB浏览器的SIP会话页面上点击挂断按钮,WEB浏览器上的Java Applet程序检测到该点击动作,解析该动作,通过中间件向用户b的SIP-UA发送BYE消息,并在收到用户b的SIP-UA返回的200OK消息后,通过WEB浏览器的SIP会话页面提示用户a呼叫断开。
另外,本发明实施例中,中间件的Msg Processor在收到来自用户a或用户b的RTP报文后,可将该RTP报文携带的有效载荷(payload)部分即:编码后的语音或视频数据保存到WEB服务器的硬盘等存储空间上,以备用户a和用户b查询。此后,当用户a或b要查询该语音或视频数据时,可在WEB浏览器上点击该数据文件的链接,WEB浏览器检测到该点击动作后,向WEB服务器发送携带该数据文件索引信息的HTTP请求,然后WEB服务器根据该索引信息查找到对应的语音或视频数据,将该语音或视频数据通过HTTP响应返回给WEB浏览器,WEB浏览器通过播放器将该语音或视频数据播放给用户。
本发明实施例中,中间件的Msg Processor也可保存用户a和用户b的呼叫记录,例如:主叫号码、被叫号码、呼叫挂断时刻、呼叫持续时长等。Msg Processor将呼叫记录通过SQL消息发送给数据库,以备用户a和用户b查询。此后,当用户a或b要查询该呼叫记录时,可在WEB浏览器上点击该呼叫记录文件的链接,然后WEB浏览器向WEB服务器发送携带呼叫记录索引信息的HTTP请求,WEB服务器收到该HTTP请求后,向中间件发送携带该索引信息的呼叫记录查询请求,中间件收到该请求后,向数据库发送携带该索引信息的SQL消息,数据库根据该索引信息查找到对应的呼叫记录,将该呼叫记录通过SQL消息返回给中间件,中间件将该呼叫记录返回给WEB服务器,然后由WEB服务器将呼叫记录通过HTTP响应返回给WEB浏览器,WEB浏览器将该呼叫记录显示给用户。
图3所示实施例给出的是用户b端利用本发明实施例提供的方法即:通过WEB浏览器、WEB服务器及运行在该WEB服务器上的中间件实现SIP-UA,而用户a仍使用现有技术的SIP-UA的情况,该情况下的呼叫示意图可如图4所示,其中,用户a的中间件与用户b的SIP-UA之间交互的SIP消息通常要通过SIP服务器如:代理服务器、注册服务器、重定向服务器的转发。
图5为本发明实施例二提供的用户之间通过SIP-UA实现呼叫的典型消息流程示意图,在本实施例中,用户a和用户b都使用本发明实施例提供的通过WEB浏览器、WEB服务器和中间件实现的SIP-UA,如图5所示,其具体步骤如下:
步骤501:用户a确定要呼叫用户b,在第一WEB浏览器上点击运行第一中间件的第一WEB服务器的链接,第一WEB浏览器检测到该点击动作,向第一WEB服务器发送携带第一WEB服务器地址信息的HTTP请求。
步骤502:第一WEB服务器收到该HTTP请求,向第一WEB浏览器返回携带SIP会话页面的HTTP响应,第一WEB浏览器收到该HTTP响应,将该响应携带的SIP会话页面显示给用户a。
步骤503:用户a在SIP会话页面上输入用户b的号码,并点击拨号按钮。
步骤504:第一WEB浏览器的Java Applet程序检测到该点击动作,解析该动作,向第一中间件发送SIP INVITE消息,该消息中的SDP域包含JavaApplet程序支持的所有编解码算法信息。
步骤505:第一中间件的Msg Processor收到该SIP INVITE消息,将该消息经SIP协议栈处理后经SIP代理服务器发送给用户b的第二中间件。
第一中间件发送的SIP INVITE消息通常要通过SIP代理服务器转发给用户b的第二中间件。
SIP代理服务器上保存有用户号码信息与中间件的URL信息的对应关系,当SIP代理服务器收到INVITE消息后,可根据该对应关系,查找到该消息中的用户b号码对应的中间件的URL信息,从而将该INVITE消息转发给用户b的第二中间件。
步骤506:用户b的第二中间件的Msg Processor收到该INVITE消息,将该INVITE消息经SIP协议栈处理后发送给第二WEB浏览器的Java Applet程序,第二WEB浏览器的Java Applet程序收到该INVITE消息后,通过第二中间件向用户a的第一中间件返回100Trying消息。
当用户登录WEB浏览器后,WEB浏览器会将自身的IP地址和用户号码信息发送给中间件。因此,本步骤中,用户b的第二中间件可根据第二WEB浏览器发来的IP地址和用户b的号码,以及INVITE消息中的用户b的号码,将该INVITE消息发送给与所述用户b号码对应的IP地址指向的第二WEB浏览器。
步骤507:用户a的第一中间件收到该100Trying消息后,将该消息经SIP协议栈处理后发送给第一WEB浏览器的Java Applet程序。
步骤508:用户b的Java Applet程序处理INVITE消息,向用户b振铃,并通过第二中间件向用户a的第一中间件发送180Ringing消息。
步骤509:用户a的第一中间件的Msg Processor收到该180Ringing消息,将该消息经SIP协议栈处理后发送给第一WEB浏览器的Java Applet程序。
步骤510:第二WEB浏览器的Java Applet程序处理完该INVITE消息,通过第二中间件向用户a的第一中间件返回200OK消息,该消息的SDP域中包含用户b的Java Applet程序和用户a的Java Applet程序都支持的编解码算法信息。
步骤511:用户a的第一中间件收到该200OK消息,将该消息返回给第一WEB浏览器的Java Applet程序。
步骤512:第一WEB浏览器的Java Applet程序收到200OK消息,保存该消息携带的编解码算法信息,通过第一中间件、第二中间件向第二WEB浏览器的Java Applet程序返回ACK消息,同时提示用户a呼叫已建立。
步骤513:第二WEB浏览器的Java Applet程序接收到用户b的语音或视频数据,使用200OK消息中指示的编解码算法,对要发送的语音或视频数据进行编码后,封装成RTP报文发送给第一WEB浏览器的Java Applet程序。
第二WEB浏览器的Java Applet程序也可将RTP报文先发送给第二中间件,第二中间件的Msg Processor收到该RTP报文后,将该RTP报文经第一中间件的Msg Processor转发给第一WEB浏览器的Java Applet程序。
步骤514:第一WEB浏览器的Java Applet程序收到该RTP报文后,使用200OK消息中指示的编解码算法对RTP报文中的语音或视频数据进行解码处理,将得到的语音或视频数据播放给用户a。
步骤515:第一WEB浏览器的Java Applet程序接收到用户a的语音或视频数据,使用200OK消息中指示的编解码算法对语音或视频数据进行编码后,封装成RTP报文发送给第二WEB浏览器的Java Applet程序。
同样,第一WEB浏览器的Java Applet程序可将RTP报文先发送给第一中间件,第一中间件的Msg Processor收到该RTP报文后,将该报文通过第二中间件的Msg Processor转发给第二WEB浏览器的Java Applet程序。
第二WEB浏览器的Java Applet程序收到该RTP报文后,使用200OK消息中指示的编解码算法对RTP报文中的语音或视频数据进行解码处理,将得到的语音或视频数据提供给用户b。
步骤516:用户a确定要挂断呼叫,则用户a在第一WEB浏览器的SIP会话页面上点击挂断按钮,第一WEB浏览器的Java Applet程序检测到该点击动作,解析该动作,通过第一中间件、第二中间件向用户b的Java Applet程序发送BYE消息,并在收到用户b的Java Applet程序返回的200OK消息后,通过第一WEB浏览器的SIP会话页面提示用户a呼叫断开。
同样,若用户b确定要挂断呼叫,则用户b在第二WEB浏览器的SIP会话页面上点击挂断按钮,第二WEB浏览器的Java Applet程序检测到该点击动作,解析该动作,通过第二中间件、第一中间件向用户a的Java Applet程序发送BYE消息,并在收到用户a的Java Applet程序返回的200OK消息后,通过第二WEB浏览器的SIP会话页面提示用户b呼叫断开。这里,与用户a相似,用户b可通过与步骤501~502相似的步骤获得第二WEB服务器提供的SIP会话页面。
从图5所示实施例可以看出,可以同时存在多个WEB服务器及其运行在该服务器上的中间件来实现SIP-UA,用户可选择其中的一个WEB服务器及其运行在该服务器上的中间件来实现SIP-UA。
图5所示实施例给出的是用户a和b端都利用本发明实施例提供的方法即:通过WEB浏览器、WEB服务器及运行在该WEB服务器上的中间件实现SIP-UA的情况,该情况下的呼叫示意图可如图6所示,如图6所示,第一中间件和第二中间件之间交互的SIP消息要通过SIP服务器如:代理服务器、注册服务器或重定向服务器的转发。在图5所示实施例中,用户a和用户b是通过不同的WEB服务器及其运行在该WEB服务器上的中间件实现各自的SIP-UA的,在实际应用中,用户a和用户b也可能通过同一个WEB服务器及其运行在该WEB服务器上的中间件实现各自的SIP-UA,该情况下的呼叫示意图如图7所示,由于在用户a和用户b登录各自的WEB浏览器:第一WEB浏览器、第二WEB浏览器后,第一WEB浏览器和第二WEB浏览器会分别将自身的IP地址和用户a、b的号码信息发送给中间件,因此中间件在收到SIP消息后,会根据该消息中携带的该消息要发往用户的号码及其自身保存的WEB浏览器的IP地址和用户号码的对应关系,将该SIP消息发送给对应的WEB浏览器。
图8是本发明实施例提供的SIP-UA的结构示意图,如图8所示,其主要包括:WEB浏览器81、WEB服务器82和中间件83,其中:
WEB浏览器81:检测到任意一个用户点击运行中间件的WEB服务器82的链接,向WEB服务器82发送携带WEB服务器地址信息的HTTP请求,接收WEB服务器82返回的携带SIP会话页面的HTTP响应,将该SIP会话页面显示给用户;检测到用户点击拨号按钮,将用户输入的号码携带在SIPINVITE消息中发送给中间件83;接收中间件83发来的SIP呼叫消息,将与该消息相关的信息提示给用户;接收到用户发来的语音或视频数据,将该数据封装成RTP报文发送给中间件83或目标SIP用户的SIP-UA;接收到中间件83或目标SIP用户的SIP-UA发来的RTP报文,对该报文中的语音或视频数据进行解码处理,将得到的语音或视频数据提供给用户。
本发明实施例中,WEB浏览器81还可用于,检测到用户点击语音或视频数据的链接,向WEB服务器82发送携带该数据文件索引信息的HTTP请求,接收WEB服务器82返回的HTTP响应,将该响应携带语音或视频数据通过播放器播放给用户。
WEB服务器82:接收WEB浏览器81发来的携带自身地址信息的HTTP请求,将SIP会话页面携带在HTTP响应中返回给WEB浏览器81。
本发明实施例中,WEB服务器82还可用于,接收到WEB浏览器81发来的携带语音或视频数据文件索引信息的HTTP请求,将自身存储的与该索引信息对应的语音或视频数据通过HTTP响应发送给WEB浏览器81。
中间件83:接收WEB浏览器81发来的SIP呼叫消息,将该消息经SIP协议栈处理后发送给SIP服务器或其它中间件;接收SIP服务器或其它中间件发来的SIP呼叫消息,将该消息经SIP协议栈处理后发送给WEB浏览器81;接收WEB浏览器81发来的RTP报文,将该RTP报文发送给SIP服务器或其它中间件;接收SIP服务器或其它中间件发来的RTP报文,将该RTP报文发送给WEB浏览器81。
本发明实施例中,中间件83还可用于,将接收到的RTP报文中的语音或视频数据存储在WEB服务器82的硬盘等存储空间中。
本发明实施例提供的SIP-UA还可包括:数据库84,用于接收中间件83发来的携带呼叫记录的SQL消息,保存该消息携带的呼叫记录;接收到中间件83发来的携带呼叫记录索引信息的SQL消息,根据该呼叫记录索引信息,查找到对应的呼叫记录,将该呼叫记录通过SQL消息发送给中间件83。
对应地,中间件83还可用于,将呼叫记录通过SQL消息发送给数据库84,接收WEB服务器82发来的呼叫记录查询请求,向数据库84发送携带呼叫记录索引信息的SQL消息,将数据库84返回的呼叫记录发送给WEB服务器82。
对应地,WEB浏览器81还可用于,检测到用户点击呼叫记录的链接,向WEB服务器82发送携带呼叫记录索引信息的HTTP请求,接收WEB服务器82返回的HTTP响应,将该响应携带的呼叫记录显示给用户。
对应地,WEB服务器82还可用于,接收到WEB浏览器81发来的携带呼叫记录索引信息的HTTP请求,向中间件83发送携带该索引信息的呼叫记录查询请求,接收中间件83返回的呼叫记录,将该呼叫记录携带在HTTP响应中发送给WEB浏览器81。
如图8所示,中间件83主要包括:Msg Processor831和SIP协议栈832,其中:
Msg Processor831:接收WEB浏览器81发来的SIP呼叫消息,将该消息发送给SIP协议栈832,接收SIP协议栈返回的SIP呼叫消息,将该SIP呼叫消息发送给SIP服务器或其它中间件;接收SIP服务器或其它中间件发来的SIP呼叫消息,将该消息发送给SIP协议栈832,接收SIP协议栈832返回的SIP呼叫消息,将该消息发送给WEB浏览器81;接收WEB浏览器81发来的RTP报文,将该RTP报文发送给SIP服务器或其它中间件;接收SIP服务器或其它中间件发来的RTP报文,将该RTP报文发送给WEB浏览器81;将呼叫记录通过SQL消息发送给数据库84,接收WEB服务器82发来的呼叫记录查询请求,向数据库84发送携带呼叫记录索引信息的SQL消息,将数据库84返回的呼叫记录发送给WEB服务器82;将接收到的RTP报文中的语音或视频数据存储在WEB服务器82的硬盘等存储空间中。
SIP协议栈832:接收Msg Processor831发来的SIP呼叫消息,对该消息进行SIP处理,将处理后的消息返回给Msg Processor831。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1、一种会话发起协议SIP呼叫方法,其特征在于,在WEB服务器的中间件上增加SIP协议栈,包括:
WEB浏览器与运行中间件的WEB服务器建立链接,链接成功,WEB服务器向WEB浏览器返回SIP会话页面;WEB浏览器检测到任意用户通过SIP会话页面发起SIP呼叫,向中间件发送SIP呼叫消息,中间件对SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户;中间件接收到目标SIP用户发来的SIP呼叫消息,对该SIP呼叫消息经SIP协议栈处理后提供给所述WEB浏览器。
2、如权利要求1所述的方法,其特征在于,所述中间件对该SIP呼叫消息经SIP协议栈处理后提供给所述发起SIP呼叫的用户之后进一步包括:
WEB浏览器接收到所述发起SIP呼叫的用户发来的语音或视频数据,将该语音或视频数据封装成实时传输协议RTP报文后发送给目标SIP用户。
3、如权利要求2所述的方法,其特征在于,所述WEB浏览器将语音或视频数据封装成RTP报文后发送给目标SIP用户包括:WEB浏览器将语音或视频数据封装成RTP报文后发送给中间件,中间件收到该报文后,将该报文转发给目标SIP用户。
4、如权利要求3所述的方法,其特征在于,所述中间件收到该报文之后进一步包括:中间件将该报文携带的语音或视频数据存储在WEB服务器上;
WEB浏览器检测到用户点击语音或视频数据链接,向WEB服务器发送超文本传输协议HTTP请求,WEB服务器收到该HTTP请求,将存储的语音或视频数据通过HTTP响应返回给WEB浏览器,WEB浏览器将该语音或视频数据通过播放器播放给用户。
5、如权利要求1所述的方法,其特征在于,所述方法进一步包括:中间件将本次呼叫记录存储在数据库中;
WEB浏览器检测到用户点击呼叫记录链接,向WEB服务器发送HTTP请求,WEB服务器收到该HTTP请求,向中间件发送呼叫记录查询请求,中间件根据该请求从数据库获取到呼叫记录,将该呼叫记录返回给WEB服务器,WEB服务器将该呼叫记录通过HTTP响应返回给WEB浏览器,WEB浏览器将该呼叫记录显示给用户。
6、如权利要求1所述的方法,其特征在于,所述中间件对该SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户为:中间件将该经SIP协议栈处理的SIP呼叫消息发送给目标SIP用户的SIP-UA。
7、如权利要求1所述的方法,其特征在于,所述中间件对该SIP呼叫消息经SIP协议栈处理后发送给目标SIP用户为:中间件将该经SIP协议栈处理的SIP呼叫消息发送给目标SIP用户访问的中间件。
8、一种中间件,其特征在于,包括:消息处理器和SIP协议栈,其中:
消息处理器,检测到任意用户通过WEB服务器提供给WEB浏览器的SIP会话页面发起SIP呼叫,将SIP呼叫消息发送给SIP协议栈,接收SIP协议栈返回的SIP呼叫消息,将该消息发送给目标SIP用户;接收目标SIP用户发来的SIP呼叫消息,将该消息发送给SIP协议栈,接收SIP协议栈返回的SIP呼叫消息,将该SIP呼叫消息提供给所述发起SIP呼叫的用户登录的WEB浏览器;
SIP协议栈,接收消息处理器发来的SIP呼叫消息,对该消息进行SIP协议处理,将处理后的SIP呼叫消息返回给消息处理器。
9、如权利要求8所述的中间件,其特征在于,所述消息处理器进一步用于,接收所述发起SIP呼叫的用户发来的RTP报文,将该RTP报文发送给目标SIP用户;接收目标SIP用户发来的RTP报文,将该RTP报文提供给所述发起SIP呼叫的用户。
10、如权利要求8所述的中间件,其特征在于,所述消息处理器进一步将本次呼叫记录存储到数据库上,检测到用户发起呼叫记录查询请求,从数据库获取呼叫记录,将该呼叫记录提供给用户。
11、一种SIP-UA,其特征在于,包括:WEB浏览器、WEB服务器和中间件,其中:
WEB浏览器,与运行中间件的WEB服务器建立链接,接收WEB服务器发来的SIP会话页面,检测到任意用户通过SIP会话页面发起SIP呼叫,与中间件交互SIP呼叫消息;将发起SIP呼叫的用户发来的语音或视频数据封装成RTP报文发送给目标SIP用户;
WEB服务器,向WEB浏览器返回SIP会话页面;
中间件,接收WEB浏览器或目标SIP用户发来的SIP呼叫消息,将该消息经SIP协议栈处理后发送给目标SIP用户或WEB浏览器;接收到目标SIP用户发来的SIP呼叫消息,对该SIP呼叫消息经SIP协议栈处理后提供给发起SIP呼叫的用户登录的WEB浏览器。
12、如权利要求11所述的SIP-UA,其特征在于,所述SIP-UA进一步包括:数据库,接收并保存中间件发来的呼叫记录;
且,所述中间件进一步将本次呼叫记录发送给所述数据库,接收到WEB服务器发来的呼叫记录查询请求,从数据库获取呼叫记录,将该呼叫记录返回给WEB服务器;
所述WEB服务器收到WEB浏览器发来的指示呼叫记录查询的HTTP请求,向中间件发送呼叫记录查询请求,将中间件返回的呼叫记录通过HTTP响应返回给WEB浏览器。
CN200710106132A 2007-05-24 2007-05-24 会话发起协议呼叫方法、中间件及会话发起协议用户代理 Active CN100596146C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200710106132A CN100596146C (zh) 2007-05-24 2007-05-24 会话发起协议呼叫方法、中间件及会话发起协议用户代理

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200710106132A CN100596146C (zh) 2007-05-24 2007-05-24 会话发起协议呼叫方法、中间件及会话发起协议用户代理

Publications (2)

Publication Number Publication Date
CN101052048A CN101052048A (zh) 2007-10-10
CN100596146C true CN100596146C (zh) 2010-03-24

Family

ID=38783237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710106132A Active CN100596146C (zh) 2007-05-24 2007-05-24 会话发起协议呼叫方法、中间件及会话发起协议用户代理

Country Status (1)

Country Link
CN (1) CN100596146C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262372B (zh) * 2008-04-15 2011-08-10 北京华纬讯电信技术有限公司 基于sip服务器集群的视频监控平台操控前端设备的方法
CN101534312B (zh) * 2009-04-29 2012-09-12 迈普通信技术股份有限公司 基于初始会话协议的点击拨号代理呼叫方法及装置
CN102123154B (zh) * 2011-03-17 2015-07-08 北京邮电大学 一种sip终端及其会话处理方法
CN107295004B (zh) * 2017-07-21 2020-09-25 881飞号通讯有限公司 一种基于网页通信插件实现的网络语音通信方法及系统

Also Published As

Publication number Publication date
CN101052048A (zh) 2007-10-10

Similar Documents

Publication Publication Date Title
EP1652359B1 (en) Method and system for suppressing early media in a communications network
US8837704B2 (en) Client controlled dynamic call forwarding
US7940792B2 (en) System and methods for facilitating third-party call and device control
EP1989866B1 (en) Remote control of device by telephone or other communication devices
US7266591B1 (en) Providing content delivery during a call hold condition
US7035248B2 (en) Switch with emulation client
KR101298956B1 (ko) 멀티캐스트 콘텐트 서비스들 및 멀티플레이어 게임서비스들에 향상된 특징들을 제공하기 위한 방법 및 장치
US20060101098A1 (en) Session initiation protocol call center
RU2414082C2 (ru) Ассоциирование телефонного вызова с диалогом, основанным на компьютерном протоколе, таком как sip
US9781257B2 (en) Technique for obtaining caller-originated alert signals in IP-based communication sessions
US20030187658A1 (en) Method for text-to-speech service utilizing a uniform resource identifier
US20060098624A1 (en) Using session initiation protocol
US6928150B2 (en) Call charging notification
CN104704795A (zh) 通过使用具有webRTC功能的网络浏览器创建虚拟SIP用户代理的方法和系统
CN102780805B (zh) 基于终端的信息显示方法、装置和系统
CN100446587C (zh) 一种实现多媒体彩铃音业务的系统及方法
CN101273342A (zh) 用于控制基于sip的电话中的多媒体功能和服务的系统和改进的方法
WO2001076172A2 (en) Method of initiating a data transfer from a server to a client
CN100596146C (zh) 会话发起协议呼叫方法、中间件及会话发起协议用户代理
CN100563219C (zh) 实现点击拨号的系统及方法
WO2010078775A1 (zh) 一种分布式业务的实现方法、装置及系统
US20070288600A1 (en) Telecommunications system and method of initiating file transfers from voice endpoints
US9854003B2 (en) System and method for initiating telecommunications sessions through an electronic mail address
CN101690114B (zh) 实时服务组合
CN101511127A (zh) 一种实现多媒体彩铃音业务的系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou science and Technology Industrial Park, high tech Industrial Development Zone, Zhejiang Province, No. six and road, No. 310

Patentee before: Huasan Communication Technology Co., Ltd.