CN100363870C - 用于在具有sip功能的终端上提供多个客户支持的方法和设备 - Google Patents
用于在具有sip功能的终端上提供多个客户支持的方法和设备 Download PDFInfo
- Publication number
- CN100363870C CN100363870C CNB2004800074921A CN200480007492A CN100363870C CN 100363870 C CN100363870 C CN 100363870C CN B2004800074921 A CNB2004800074921 A CN B2004800074921A CN 200480007492 A CN200480007492 A CN 200480007492A CN 100363870 C CN100363870 C CN 100363870C
- Authority
- CN
- China
- Prior art keywords
- sip
- message
- port
- network
- network interface
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000004891 communication Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 14
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 5
- 238000010295 mobile communication Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1073—Registration or de-registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Telephonic Communication Services (AREA)
- Communication Control (AREA)
Abstract
一种用于在具有SIP功能的终端(200)中提供多客户支持的方法和设备,涉及在终端上提供SIP处理堆栈(206)。SIP处理堆栈(206)在网络接口(202)的多端口(241)上侦听。每个端口与客户应用(210,212,214)相关联。SIP处理堆栈(206)发送并接收客户应用(210,212,214)的SIP消息。进入的SIP消息通过查看接收SIP消息的端口被发送给适宜客户(210,212,214)。
Description
技术领域
本公开通常涉及一种计算和通信设备,更具体而言,涉及一种用于在多个客户环境中使用会话发起协议或类似协议的方法和设备。
背景技术
个人通信设备变得愈来愈为公众所采用。这种设备如蜂窝电话、个人数字助理、和膝上型计算机,给予了用户各种移动通信和计算机联网能力。这些设备愈发能够利用包括语音、音乐、视频、文本消息等之类各种广泛的数字多媒体格式来传输。
允许向移动和其它计算设备提供数字多媒体的一个重要标准是会话发起协议(SIP)。SIP是信号协议,其帮助数字设备建立端到端的多媒体会话。SIP提供了类似于那些由公共交换电话网(PSTN)、以及诸如传输控制协议/互联网协议(TCP/IP)以及超文本传输协议(HTTP)之类的互联网协议所提供的特征。
SIP工作类似于HTTP,其中,它是在公知的网络端口上工作的基于文本的消息协议。从终端的观点来看,SIP不同于HTTP,因为终端必须具有侦听过程,以便通知进入的传输。相反,利用HTTP的web浏览器纯粹是客户——浏览器在用户的请求下启动连接来侦听服务器,并不侦听进入的连接。
诸如移动电话和个人数字助理(PDA)之类的设备变得愈发完善,这些设备将允许用户同时运行更多的多媒体知觉应用。极可能这些应用将使用SIP协议。因此,可能存在高度的冗余,因为每个应用将包括其自有的SIP协议堆栈。具有多个SIP知觉应用将导致用户端口的混乱,因为设备上众所周知的TCP/IP侦听端口可引起争夺。这种争夺可导致出错,并且需要用户专门配置软件同时工作。这是缺点,因为用户通常不理解诸如TCP/IP端口之类的概念,并且如果用户选择替换的、公知的端口(例如HTTP或远程登录中的端口),则可能引发问题。
所需要的是提供一种对通信设备上的多客户应用提供SIP功能的方法。本发明以这些和其它需要为目的,并提供超过现有技术方法的其它优势。
发明内容
为克服上述现有技术中存在的局限性,以及为克服其它局限性,其中这些局限性一旦阅读和理解本说明书后将变得明显,本发明公开了一种用于处理多个客户会话建立过程的方法和设备。在一个实施例中,计算机实现的处理会话建立过程的方法涉及将网络接口的唯一网络端口与多个客户的每个客户相关联。利用消息处理堆栈以在网络接口的多个唯一网络端口上侦听。在消息处理堆栈从网络接口的唯一网络端口之一接收消息。从消息处理堆栈向与唯一网络端口相关联的客户传输消息。
在本发明另一实施例中,系统连接网络,用于处理一个或多个客户应用的会话发起协议(SIP)。所述系统包括具有多个端口的网络接口装置,用于从网络接收SIP消息。SIP处理器在网络接口装置的多个端口上接收SIP消息。进程间通信装置便于在SIP处理器和客户应用之间进行通信。所述SIP处理器配置成基于接收SIP消息的端口,使用进程间通信装置,向客户应用传输SIP消息。
依据本发明另一实施例,提供了安排成与网络连接的设备。该设备包括:具有多个端口的网络接口,所述多个端口配置成用于从网络接收会话建立消息;以及进程间通信装置。该设备包括处理器,配置成在网络接口的多个端口中的一个端口接收会话建立消息,基于多个端口中接收会话建立消息的端口来确定目的地客户应用,以及利用进程间通信装置向目的地应用传输会话建立消息。
本发明的以上概述不是意在描述本发明的每个示例实施例或实现。这是附图和随后相关说明的意图。
附图说明
结合下列附图所例示的实施例来描述本发明。
图1例示了可采用本发明原理的代表性系统环境。
图2是显示根据本发明实施例的SIP处理堆栈和客户应用的安排图。
图3是显示根据本发明实施例的启动和利用SIP堆栈序列的消息流程图。
图4是显示根据本发明实施例的传输SIP消息和处理客户关机的消息流程图。
具体实施方式
在以下示例实施例的描述中,对附图进行了参考,所述附图构成了其中的一部分,并且以通过本发明可实践的例示的各种方式的方法示出。可以理解可采用其它实施例,同时在不脱离本发明范围的前提下,进行结构和操作的改变。
通常,本发明提供一种用于多客户应用的通用会话建立过程的方法和设备。可用于建立会话的专门一个协议是会话发起协议(SIP)。每个客户能够与通用消息处理堆栈(在此也称作“SIP堆栈”)进行通信,以发送和接收诸如SIP消息之类的会话建立消息。SIP堆栈分配给每个客户一个唯一端口。SIP堆栈可接收所有进入的SIP消息,并将该消息向基于接收消息的端口的适宜客户传输。SIP堆栈还可发送输出的SIP消息,以及处理由SIP请求的多请求-响应交换。利用SIP堆栈使客户不必必须处理这些SIP交换的某些说明和定时。
诸如SIP之类的会话协议的基本目的在于建立会话,用于联网的设备之间端到端的数据传输。SIP也可用于诸如事件通知、即时消息、以及存在之类的应用。一个或多个终结点可以是移动的,例如从位置到位置、以及从网络到网络的移动。移动终结点包括所有方式的数字通信设备。虽然本发明依据SIP进行了描述,但应该理解的是,根据本发明的概念可采用任何形式的会话建立过程来实现,所提供的由IETF定义的SIP的应用描述出于说明而不是限制的目的。
通常,数字通信设备是能够彼此交换数据的电子设备。数据可通过诸如线缆、光纤之类的各种通信媒介、或通过诸如电磁波或光波之类的空中电波来传输。渐渐地,通信设备包括某类计算硬件,诸如微处理器。受设备控制的微处理器的增长已经在移动通信设备(蜂窝电话、PDA等)领域中稳步发展。基本上,大多移动通信设备使用微处理器,并因而可看作是移动数据处理设备。
图1例示了可采用本发明原理的代表性系统环境100。在代表性系统环境100中,SIP消息102可在任何数量的已知方式的设备之间进行传输。这些方式包括经由陆上通信线(landline)网络104,其可包括诸如互联网之类的全域网(GAN)、一个或多个广域网(WAN)、局域网(LAN),以及类似的网络。支持SIP消息102的任何计算设备或其它电子设备可作为采用本发明的目标系统,诸如能够经由网络104进行通信的服务器106、台式计算机108或工作站、膝上型或便携式计算机110、任何其它类似的计算设备,用一般设备112来代表。
数据102可经由一个或多个无线网络114来提供,诸如全球移动通信系统(GSM)、通用移动电信系统(UMTS)、个人通信业务(PCS)、时分多址(TDMA)、码分多址(CDMA)、或其它移动网络传输技术。而且,任何可利用SIP进行通信的移动电子设备可与目的地系统连接,该目的地系统采用了根据本发明的概念,诸如能够经由无线网络114进行通信的膝上型或其它便携式计算机116、移动电话118A和其它移动通信机、个人数字助理(PDA)120、或任何其它类似的计算设备,用一般设备122来代表。
SIP消息102可在采用诸如蓝牙、无线局域网(WLAN)、红外线(IR)等之类的近距离无线技术124的设备之间传递,SIP消息102还可利用直接线缆连接来分发,诸如连接路径126。本发明是可适用的,而不管其中SIP消息102在目标设备之间是提供或分发的方式。
利用根据本发明的概念的目标设备的示例,被例示为移动电话118B。设备118B包括,例如无线收发信机134和与操作系统(OS)130耦合的硬件(包括处理器)。本发明可包括实现为硬件、模块、或运行在OS 130上的程序的SIP处理堆栈132。SIP处理堆栈132可用于任何类型的OS 130,包括Windows、Linux、Unix、PalmOS等各种版本。
现参照图2,示出了例示本发明概念的通信设备200。通信设备200包括网络接口202,用于与网络204进行通信。网络204可以是任何类型的数字通信网络。在此示例中的网络204一般通过网络204上一个或多个SIP服务器220和UA 222、224、226,提供某种方式的SIP服务。
SIP规范的当前版本被定义在互联网工程任务组(IETF)的RFC3261(2002年6月)。RFC 3261定义了功效和数据格式,其可被根据本发明实施例的通信设备所采用。SIP技术规范包括用于建立、修改并终止与一个或多个参与者的会话的协议。SIP还可用于如事件通知、即时消息和存在之类的应用。SIP被设计成与联网的数据处理设备一同使用;因此根据本发明的设备200将通过网络接口202处理SIP传输。具体而言,通信设备200在通过网络接口202发送SIP消息时用作用户代理客户(UAC),在从网络接口202接收SIP消息时用作用户代理服务器(UAS)。
网络接口202可以是任何允许与其它联网设备进行通信的物理或逻辑接口。网络接口通常利用在国际标准组织(ISO)联网协议堆栈的网络层上的互联网协议(IP)。一般与IP耦合的是在OIS堆栈的传输层上的传输控制协议(TCP)或用户数据报协议(UDP)。然而,应该理解的是,SIP规范独立于任何类型的联网协议,并可与本领域已知的其它各种网络技术一起使用。
通信设备200包括消息处理堆栈(“SIP堆栈”)206,其可与网络204通过网络接口202进行通信。SIP堆栈206可安排成处理通信设备200的所有SIP传输。
SIP堆栈206还与通信设备200上的客户210、212、214进行通信。一般客户的特征将结合示例客户210进行描述,而且应该认识到,这些特征适用于所有客户210、212、214。客户210(也被称为“客户应用”)一般是运行在通信设备200上的应用。客户210可以在其它事情中处理格式化和向用户提供数据。客户210可包括处理诸如语音/视频通信、文本消息、web服务等之类的任务的程序。
SIP堆栈200可配置成与不必在通信设备200上运行的外部客户216进行通信。外部客户216可经由网络接口或数据I/O总线连接通信设备200,该总线例如是可插入的外围设备所用的总线。这种外围设备可包括存储设备,例如:智能卡、PC卡、RAM/ROM模块、以及磁盘驱动器。诸如电话、PDA、计算机等之类的自主操作的设备还可作为外围设备配属给通信设备200,或经由网络将外部客户216与SIP堆栈200连接在一起。就SIP堆栈206而言,外部客户216看起来与其它客户210、212、214相同,示例客户210的描述通常也应用于外部客户216。
本领域已知的各种技术可用于客户210和SIP处理堆栈206之间的通信。SIP处理堆栈206和客户210可独立运行进程。对于一个或多个客户也可彼此在单个进程中运行,或者通过使用轻型进程(LWP)或线程(thread)与SIP堆栈206一起运行。根据本发明的设备200可使用独立进程和/或进程内执行线程的任意组合。客户进程和/或线程之间的通信可通过进程间通信(IPC)来完成。
IPC机制允许独立运行的进程交互。这种交互可以是同步或者异步的。计算机结构提供各种促进IPC的方法和机制,例如:网络套接字、共享存储、信号、信号灯(semaphore)、管道、消息等。在本领域中各种标准的IPC协议,包括JavaRMI、CORBA、COM/DCOM、远程调用过程(RPC)等。各种操作系统和发展环境提供了专门的IPC特征,例如:移动设备的公共操作系统里的IPC。
IPC协议常常允许编程者通过功能调用来透明地引用远程进程的方法。该进程可定义由另一IPC知晓进程使用的应用程序接口(API)方法。这些API方法可用于启动事件、传递数据、处理询问等。参见图2,客户210和SIP堆栈206可采用预定的API方法交换与SIP有关的数据。
应该认识到的是,客户210可包含其自有的网络连接(未示出),以便执行通信期间所用的数据传递。SIP与诸如会话描述协议(SDP)之类的其它协议一同使用,以提供面向会话的参数,例如:数据路径定义、用户性能、以及在会话两端支持的可允许的数据类型。在SIP和SDP(或类似协议)已经建立起了会话之后,一直保持到客户210执行传递数据的功能以及向用户提供数据。
虽然客户210可配置成处理某种SIP功能,例如向网络发送REGISTER(注册)消息,但是优选该消息可通过SIP堆栈206来传输。这使客户210不必必须处理协商SIP交换所需的各种定时和说明。
SIP堆栈206可配置成处理一个或所有客户210、212、214、216的输出消息。SIP堆栈206还可处理指定给客户210、212、214、216的所有进入SIP消息。利用SIP堆栈206来接收所有进入的SIP消息,在需要每个客户处理其自己的SIP传输或发信号上提供了大量的优点。例如,使客户应用的开发者不必必须处理包括全部SIP堆栈和每个客户应用。可向SIP堆栈206单独施加更新和固定,这对所有客户应用有益,具有SIP消息的中心处理点还减少了网络资源潜在的争夺。
SIP堆栈206通过将每个客户与唯一网络端口相关联来保持对众多客户的跟踪。网络端口概念通常参照TCP/IP以及UDP/IP使用。然而,如此处所用,端口概念可指任何用于从网络中隔离出进入连接的任一唯一标识。在说明性的示例中,SIP堆栈使用的网络端口显示为TCP/UDP端口。TCP/UDP端口是体现在协议报头中的16位无正负之分的整数。
TCP和UDP端口可以是众所周知的,或者用互联网编号分配机构(LANA)注册的。公知的端口(也称为系统端口)范围从0到1023,并且注册(或用户)端口从1024到49151。端口从49152到65535是专用端口,并能够由不同用途的任何设备动态地分配。例如,公知的端口80和23分别与HTTP和远程登录相关联。端口5060为缺省,为与SIP一起使用的注册端口,因此,通过缺省的提供SIP功能的设备将试图连接端口5060,除非在设备之间已经预先安排了另一端口。
SIP堆栈206配置成与每个连接的客户210、212、214、216的唯一网络端口相关联。如图2所示,SIP堆栈206在五个端口5060、50060、50061、50062以及50063上分别具有端口“侦听器(listener)”232、234、236、238、240。示出了每个侦听器232、234、236、238、240,具有它的配属给通信设备200的IP地址(本例中为10.0.0.5)的唯一端口。端口侦听器可实现为可独立执行的线程,其阻塞了在该端口上等待进入的连接。实现端口侦听器的其它方式是本领域已知的,包括检测进入连接的轮询处理或者文件描述符。
SIP堆栈206分别建立四个侦听器234、236、238、240与四个客户210、212、214、216之间的关联。通过利用该关联,SIP堆栈206可向关联的客户自动转发SIP业务,而不必检查SIP消息或作出任何其它正确目的地的确定。
SIP堆栈206可具有客户到端口的预定静态映射,客户可请求某些端口,或者SIP堆栈206可自行动态地分配端口。通过SIP堆栈206与客户相关联的端口一般为用户端口,即:那些端口不为人所知或未经注册。
图2所示的第五侦听器232使用已注册的SIP端口5060。SIP堆栈206一般将注册SIP端口5060留作通用的用途。SIP堆栈206还可侦听端口5061,其为带有传输层安全(TLS)的SIP而注册。SIP堆栈206可以各种方式,响应已注册的端口请求。如果请求是客户性能的询问(例如:包含在SIP OPTIONS(选项)的请求中),则SIP堆栈206可分别询问客户210、212、214、216,以便确定一个响应。SIP堆栈206可将询问向一个或多个客户210、212、214、216传送,并允许客户210、212、214、216以同样的方式响应。
通常,为确定从注册端口(例如,5060)接收的消息的目的地客户,SIP堆栈206可查看消息的内容,并将此内容与客户性能相比较。SIP消息的不同部分(例如,消息启动线路、SIP报头、以及消息主体)包含可用于确定目的地客户的说明(如果有的话)。为确定客户性能,SIP堆栈206可具有一些注册在存储器或永久数据存储器230中的客户性能。可替换地,SIP堆栈206可以以类似于发送SIP OPTIONS(选项)请求的方式动态地询问客户。
在配置成将客户与用户端口相关联(即,未经注册或公知端口)的SIP堆栈206中,大多数输入数据将到达用户端口。再次参见图2,示例连接241由到达SIP堆栈206的适宜端口侦听器236的连接请求242来组成。连接241可以是TCP/IP套接字,或可以是UDP数据报签收。该连接241可用于传递任何种类的数据,尽管通常SIP堆栈206期望连接241使用SIP协议。因为SIP堆栈206已经将侦听器236的50061用户端口与客户212相关联,所以SIP堆栈206可马上向客户212转发来自进入请求242的数据。
虽然以上所用的术语“转发”通常意指解析消息,发送该消息有一点或没有改变,但是此处所用的术语“转发”意指在客户和SIP堆栈206之间传输真实的(substantive)消息数据。应该认识到的是,当使用API时,可改变、添加、或撤消包含在SIP消息中的数据的某些部分,以符合API。通常,SIP消息的转发或传输涉及传输API或其它IPC安排所需的SIP消息数据。
SIP堆栈206一般将保持客户应用与消息处理相关端口的映射。端口与客户的关联可在任何时间发生,虽然当客户启动时,通常由SIP堆栈206给客户分配端口。当客户210开始执行时,其与SIP堆栈206进行通信,以便安排相关的端口。
SIP堆栈206可安排成处理向所有客户分配端口,从而减少了设备200上客户端口争夺的可能性。SIP堆栈206还可与分配给客户210的端口进行通信。客户210不必使用该端口号进行具有SIP堆栈206的SIP传输,尽管端口可有用于解决纷争或回送测试。
现在参见图3,示例说明了在SIP堆栈304和客户306、308之间的交互。网络接口302使SIP堆栈304和客户306、308连接SIP网络(未示出)。第一客户306向SIP堆栈304发送REGISTER请求310。该请求310可作为真实的SIP消息出现,通过网络传输向SIP堆栈304发送,或它可以是利用IPC的API呼叫。
在接收到来自客户306的请求310以后,SIP堆栈318利用端口50060建立316端口侦听器。SIP堆栈304通过网络接口302向SIP注册机(未示出)发送314 REGISTER消息。一旦接收了316来自注册机的响应“200 OK”,则SIP堆栈304就通过指示端口已成功与客户306相关联来通知318客户306。在该示例中,SIP堆栈用SIP“200 OK”消息来响应318。该响应消息具有接点(contact)报头项目,指示端口50060已经与客户306相关联。可以实现对客户306响应318的其它方式,诸如,在从API呼叫返回值中包括分配的端口号。
对于其它客户308重复上述过程。如前所述,客户308向SIP堆栈304发送320REGISTER请求。这种情况下,SIP堆栈304建立322具有新端口(针对该客户为50061)的端口侦听器。一旦建立了322侦听器,则如前所述,通过用网络注册326、接收328响应、以及响应于330客户,使得程序继续。
这些实例中,SIP堆栈304可响应于在试图建立322侦听器时导致产生的错误。如果SIP堆栈不能利用期望的端口(例如,该端口正在使用)来建立322侦听器,则SIP堆栈可尝试利用其它端口来建立322侦听器。如果最终建立了322成功的侦听器,则与客户308和SIP注册机的剩余通信可正常进行。如果存在网络接口的失败(例如,中断或坏的配置),则SIP堆栈304可向客户308发送一个错误响应,从而该错误可传输给用户。
SIP堆栈304还必须处理与网络协商的错误。如果SIP堆栈304在注册请求314、316之后,从注册机接收了诸如“400坏的请求”之类的错误,则SIP堆栈304必须删除套接字侦听器,而且还通知客户这个错误。
当处理进入的连接时,SIP堆栈304维持端口-客户映射的内部说明。该内部说明用于将进入的消息引导给适宜客户。引导进入消息的示例在图4中示出。在图4中,假设如图3所示建立了客户306、308,并且客户306与端口50060相关联,客户308与端口50061相关联。
来自网络接口302的OPTIONS请求消息在端口50061接收。OPTIONS请求一般用于询问客户,以确定客户的性能。SIP堆栈304向与该端口有关的客户308转发404该OPTIONS请求。客户308用列出了客户性能的“200 OK”消息来响应406 OPTIONS请求。转发404和响应406可通过SIP堆栈304和客户308之间的SIP类型的通信来实现,或可通过进程间API来调用。一旦SIP堆栈304接收了来自客户308的响应,则堆栈304向网络发送408“200 OK”消息。
SIP堆栈304可利用替换技术来响应OPTION请求。例如,代替从客户308接收406性能,可通过由SIP堆栈304从数据库或者其它永久数据存储器读取该性能。通过这种方法,SIP堆栈304可响应于408网络请求,而无需与客户308进行通信。
虽然客户308可能需要觉察SIP的某些方面,以接收和构建SIP消息,但SIP堆栈304可处理SIP的各种细节(未示出),例如ACKS、序列号、以及超时。这允许降低了客户308的复杂性,因为只需要支持客户308关心的SIP功能。
另外,图4所示的是一旦客户306不再运行,则SIP堆栈304就如何释放端口侦听器的示例。客户306一旦关机,就向SIP堆栈410传输410关机。如在此所示,该传输410经过了API呼叫、客户关机()。其它方法可用于检测客户关机或应用崩溃。IPC机制通常具有确定传输过程何时死机的方法,例如,抛弃代码异常或向适宜的进程发送信号或消息。
一旦SIP堆栈304已被通知410客户306关机,则SIP堆栈注销412该客户。这通常通过向SIP注册机发送REGISTER消息来实施,该SIP报头中的终止值设置为零。对应客户306的端口侦听器也要删除414,从而允许SIP堆栈304恢复该端口为其它客户所使用。
图4中还示出了替换关机情况,客户308已信号通知416客户关机。在SIP堆栈304能够响应之前,从网络接收418 INVITE(请求)消息。SIP堆栈304觉察到客户308不再工作,从而用“503业务不可用”消息来响应420。SIP堆栈304还注销422客户308,并在有关端口上删除424端口侦听器。
应该认识到的是,图3、4中所示的示例变化是出于说明而不是限制的目的。对操作和序列可作出各种改变,而依然保持在本发明的精神之内。SIP堆栈可遵从面向目标的方法而不是所述的处理方法。例如,每个客户和端口侦听器可抽象为SIP堆栈的客户对象,而且每个客户对象可独立处理进入和输出的连接。
使用此处提供的说明,通过使用标准编程和/或工程技术制造编程的软件、固件、硬件或它们的任意组合,本发明可实现为机器、过程、或加工品。任何具有计算机可读程序代码的结果程序,可体现在一个或多个诸如驻留的存储设备、智能卡或其它可移动存储设备之类的计算机可用介质、或传输设备上,从而制造根据本发明的计算机程序产品或加工品。因此,此处所用的“计算机可读介质”意欲包含计算机程序,其永久或暂时存在于任何计算机可用介质上或处于任何传输这种程序的传输介质中。
如上指示的,记忆/存储设备包括但不局限于磁盘,光盘,诸如智能卡、SIM、WIM之类的可移动存储设备,诸如RAM、ROM、PROM等之类的半导体存储器。传输介质包括但不局限于经由无线/射频电波通信网络、因特网、企业内联网、基于电话/调制解调器的网络传输、硬线/电缆连接的通信网络、卫星通信和其它固定或移动网络系统/通信链路。
从此处提供的说明中,本领域技术人员轻易能够将所述建立的软件与适宜的通用或专用计算机硬件相组合,来建立体现本发明的数据处理设备和/或计算机子部件,以及来建立实施本发明方法的数据处理设备和/或计算机子部件。
出于例示和说明的目的,已经展示了对本发明示例性实施例的前述描述。这并不表明是完整的,或意欲使本发明精确限于所述形式。按照上述教导,可以进行许多改动和变化。其意图不是用这一详细的说明书、而是用此文所附的权利要求书来限制本发明的范围。
Claims (32)
1.一种处理会话建立过程的方法,用于数据处理设备的多个应用,包括:
将数据处理设备的网络接口的多个唯一网络端口与多个应用相关联,从而每个应用与一个唯一网络端口相关联;
利用消息处理堆栈在网络接口的多个唯一网络端口上侦听;
通过消息处理堆栈在网络接口的唯一网络端口之一接收消息;以及
从消息处理堆栈向与唯一网络端口相关联的应用传输消息。
2.权利要求1的方法,其中,所述会话建立过程包括使用会话发起协议SIP建立会话。
3.权利要求1的方法,还包括:
利用消息处理堆栈在网络接口的缺省SIP端口侦听;
通过消息处理堆栈在网络接口的缺省SIP端口接收消息;以及
基于消息内容向多个应用中的目的地应用传输所述消息。
4.权利要求1的方法,还包括:当应用不再工作时,删除唯一网络端口和该应用之间的关联。
5.权利要求1的方法,还包括:从目的地应用向消息处理堆栈发送响应消息,并从消息处理堆栈向网络接口传输响应消息。
6.权利要求1的方法,其中,从消息处理堆栈向应用传输消息包括:采用消息处理堆栈和应用之间的进程间通信。
7.权利要求1的方法,其中,由消息处理堆栈分配多个唯一网络端口。
8.一种能够与网络接口耦合的计算系统,用于处理计算系统的多个应用的会话建立过程,所述计算系统包括:
用于将网络接口的多个唯一网络端口与多个应用相关联的装置,从而每个应用与一个唯一网络端口相关联;
用于利用消息处理堆栈在网络接口的多个唯一网络端口上侦听的装置;
用于通过消息处理堆栈在网络接口的唯一网络端口之一接收消息的装置;以及
用于从消息处理堆栈向与唯一网络端口相关联的应用传输消息的装置。
9.权利要求8的计算系统,其中,所述计算系统能够使用会话发起协议SIP处理会话建立过程。
10.权利要求8的计算系统,其中所述计算系统进一步包括:
用于利用消息处理堆栈在网络接口的缺省网络端口处侦听的装置;
用于在消息处理堆栈从网络接口的缺省网络端口接收消息的装置;以及
用于基于消息内容向多个应用中的目的地应用传输所述消息的装置。
11.权利要求8的计算系统,其中,所述计算系统还包括用于当应用不再工作时删除唯一网络端口和该应用之间关联的装置。
12.权利要求8的计算系统,其中,所述计算系统还包括:
用于从目的地应用向消息处理堆栈发送响应消息的装置;以及
用于从消息处理堆栈向网络接口传输响应消息的装置。
13.权利要求8的计算系统,其中,从消息处理堆栈向应用传输消息包括:利用消息处理堆栈和应用之间的进程间通信。
14.权利要求8的计算系统,其中,由消息处理堆栈分配多个唯一网络端口。
15.权利要求8的计算系统,其中,所述计算系统包括移动终端。
16.一种在连接到网络接口的数据处理设备上处理会话发起协议SIP消息的方法,包括:
利用SIP堆栈在网络接口的多个端口上侦听;
在多个端口中的一个端口接收SIP消息;
基于接收消息的端口,选择数据处理设备的目的地客户应用;
从SIP堆栈向目的地客户应用传输SIP消息。
17.权利要求16的方法,其中,多个端口中的一个端口是缺省SIP端口,所述方法还包括:如果接收消息的端口是缺省SIP端口,则基于消息内容,向目的地客户应用传输SIP消息。
18.权利要求16的方法,还包括:利用SIP堆栈来分配多个端口。
19.权利要求16的方法,其中,从SIP堆栈向目的地客户应用传输SIP消息包括:利用SIP堆栈和目的地客户应用之间的进程间通信。
20.权利要求16的方法,还包括:从目的地客户应用向SIP堆栈发送响应消息,以及向网络接口传输来自SIP堆栈的响应消息。
21.一种可连接到网络的、用于处理一个或多个客户应用的会话发起协议SIP会话的系统,所述系统包括:
具有多个端口的网络接口,用于从网络接收SIP消息;
SIP处理器,用于在网络接口的多个端口接收SIP消息;
进程间通信装置,便于在SIP处理器和客户应用之间进行通信;以及
其中,所述SIP处理器基于多个端口中接收SIP消息的端口,使用进程间通信装置,向客户应用传输SIP消息。
22.权利要求21的系统,其中,多个端口中的一个端口是缺省SIP端口,所述SIP处理器还配置成:如果接收消息的端口是缺省SIP端口,则基于消息内容,向客户应用传输SIP消息。
23.权利要求21的系统,其中,所述SIP处理器安排成分配多个端口。
24.权利要求21的系统,其中,所述SIP处理器安排成从客户应用向网络接口传输SIP消息。
25.权利要求21的系统,还包括与网络耦合的服务器,用于传输SIP消息。
26.权利要求21的系统,其中,网络接口包括无线网络接口。
27.一种安排成与网络连接的设备,包括:
具有多个端口的网络接口,配置成用于从网络接收会话建立消息;
进程间通信装置;以及
处理器,配置成:
在网络接口的多个端口中的一个端口处接收会话建立消息;
基于多个端口中接收会话建立消息的端口,确定从一个或者多个客户应用中选择的目的地客户应用;以及
利用进程间通信装置向目的地客户应用传输会话建立消息。
28.权利要求27的设备,其中,所述会话建立消息是会话发起协议消息。
29.权利要求27的设备,其中,所述处理器还安排成分配网络接口的多个端口。
30.权利要求27的设备,其中,所述处理器还安排成从目的地客户应用向网络接口传输响应消息。
31.权利要求27的设备,其中,所述设备包括移动终端。
32.权利要求27的设备,其中,所述网络接口包括无线网络接口。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/393,499 | 2003-03-20 | ||
US10/393,499 US7039710B2 (en) | 2003-03-20 | 2003-03-20 | Method and apparatus for providing multi-client support in a SIP-enabled terminal |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1761929A CN1761929A (zh) | 2006-04-19 |
CN100363870C true CN100363870C (zh) | 2008-01-23 |
Family
ID=33029701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800074921A Expired - Lifetime CN100363870C (zh) | 2003-03-20 | 2004-03-12 | 用于在具有sip功能的终端上提供多个客户支持的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7039710B2 (zh) |
EP (1) | EP1604268A4 (zh) |
KR (1) | KR20050120651A (zh) |
CN (1) | CN100363870C (zh) |
WO (1) | WO2004083994A2 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071459A1 (en) * | 2003-09-26 | 2005-03-31 | Jose Costa-Requena | System, apparatus, and method for providing media session descriptors |
US20050232251A1 (en) * | 2004-04-14 | 2005-10-20 | Nortel Networks Limited | Personal communication device having multiple user IDs |
US20050289222A1 (en) * | 2004-06-28 | 2005-12-29 | Sahim Faramarz F | Flexible session initiation protocol endpoint signaling |
SE0402384D0 (sv) * | 2004-10-01 | 2004-10-01 | Ericsson Telefon Ab L M | Terminal capability determination subject to call forwarding |
DE102004063298B4 (de) * | 2004-12-29 | 2006-11-16 | Infineon Technologies Ag | Verfahren zum rechnergestützten Verwalten von Kommunikationsrechten zum Kommunizieren mittels mehrerer unterschiedlicher Kommunikationsmedien in einer Telekommunikations-Konferenz mit mehreren Telekommunikations-Einrichtungen |
US8069219B2 (en) * | 2005-03-03 | 2011-11-29 | Nokia Corporation | Method and apparatus for implementing a mobile web server based system |
US8462772B1 (en) * | 2005-09-22 | 2013-06-11 | Verizon Patent And Licensing Inc. | Method and system for providing party line emulation in a SIP-based network |
US20070266162A1 (en) * | 2005-12-07 | 2007-11-15 | Microsoft Corporation | Session initiation protocol redirection for process recycling |
US8751718B2 (en) * | 2006-03-13 | 2014-06-10 | Lsi Corporation | Apparatus and methods for a simplified, multi-client SAS port for management of other devices in an enhanced SAS device |
US8611881B2 (en) * | 2007-10-05 | 2013-12-17 | Intel Mobile Communications GmbH | Method and device for communication setup |
JP4302165B2 (ja) * | 2007-12-20 | 2009-07-22 | 株式会社東芝 | インタフェース装置、このインタフェース装置を備えた交換装置及びインタフェース装置で使用される制御方法 |
US8516126B2 (en) * | 2008-09-24 | 2013-08-20 | International Business Machines Corporation | Processing SIP messages based on multiple cores |
US8095611B2 (en) * | 2009-09-16 | 2012-01-10 | Avaya Inc. | SIP endpoint enhancer |
CA2821454A1 (en) | 2009-09-26 | 2011-03-31 | Disternet Technology Inc. | System and method for micro-cloud computing |
US8464063B2 (en) * | 2010-03-10 | 2013-06-11 | Avaya Inc. | Trusted group of a plurality of devices with single sign on, secure authentication |
US9107049B2 (en) | 2012-05-11 | 2015-08-11 | D2 Technologies, Inc. | Advanced real-time IP communication in a mobile terminal |
US10572315B1 (en) * | 2016-08-29 | 2020-02-25 | Amazon Technologies, Inc. | Application programming interface state management |
US10476860B1 (en) | 2016-08-29 | 2019-11-12 | Amazon Technologies, Inc. | Credential translation |
US10552442B1 (en) | 2016-08-29 | 2020-02-04 | Amazon Technologies, Inc. | Stateful database application programming interface |
US11025608B2 (en) * | 2017-11-10 | 2021-06-01 | Cisco Technology, Inc. | Enabling zero-touch bootstrap for devices across network perimeter firewalls |
US11025753B2 (en) * | 2018-07-02 | 2021-06-01 | Samsung Electronics Co., Ltd. | Method and device for inter-process communication in network |
US11188555B2 (en) * | 2018-10-10 | 2021-11-30 | Oracle International Corporation | Isolating a network stack for pluggable databases |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182146B1 (en) * | 1997-06-27 | 2001-01-30 | Compuware Corporation | Automatic identification of application protocols through dynamic mapping of application-port associations |
US20020086665A1 (en) * | 2000-03-03 | 2002-07-04 | Mark Maggenti | Communication device for entering and exiting a net within a group communication network |
US20020102999A1 (en) * | 2000-03-03 | 2002-08-01 | Qualcomm, Inc. | Method and apparatus for enabling group communication services in an existing communication system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295549B1 (en) * | 1996-05-08 | 2001-09-25 | Apple Computer, Inc. | Method and apparatus for listening for incoming calls on multiple port/socket combinations |
US6493324B1 (en) * | 1999-03-29 | 2002-12-10 | Worldcom, Inc. | Multimedia interface for IP telephony |
US6732175B1 (en) * | 2000-04-13 | 2004-05-04 | Intel Corporation | Network apparatus for switching based on content of application data |
US7463619B1 (en) | 2000-05-25 | 2008-12-09 | Nortel Networks Limited | Launching a web browser in response to a message relating to communications sessions |
US7185094B2 (en) * | 2001-03-30 | 2007-02-27 | Sandcherry, Inc. | Media session framework using a control module to direct and manage application and service servers |
-
2003
- 2003-03-20 US US10/393,499 patent/US7039710B2/en not_active Expired - Lifetime
-
2004
- 2004-03-12 CN CNB2004800074921A patent/CN100363870C/zh not_active Expired - Lifetime
- 2004-03-12 KR KR1020057017481A patent/KR20050120651A/ko not_active Application Discontinuation
- 2004-03-12 WO PCT/IB2004/000727 patent/WO2004083994A2/en active Application Filing
- 2004-03-12 EP EP04720097A patent/EP1604268A4/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182146B1 (en) * | 1997-06-27 | 2001-01-30 | Compuware Corporation | Automatic identification of application protocols through dynamic mapping of application-port associations |
US20020086665A1 (en) * | 2000-03-03 | 2002-07-04 | Mark Maggenti | Communication device for entering and exiting a net within a group communication network |
US20020102999A1 (en) * | 2000-03-03 | 2002-08-01 | Qualcomm, Inc. | Method and apparatus for enabling group communication services in an existing communication system |
Also Published As
Publication number | Publication date |
---|---|
WO2004083994A2 (en) | 2004-09-30 |
EP1604268A4 (en) | 2009-11-11 |
WO2004083994A3 (en) | 2004-11-11 |
US7039710B2 (en) | 2006-05-02 |
KR20050120651A (ko) | 2005-12-22 |
CN1761929A (zh) | 2006-04-19 |
US20040250252A1 (en) | 2004-12-09 |
EP1604268A2 (en) | 2005-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100363870C (zh) | 用于在具有sip功能的终端上提供多个客户支持的方法和设备 | |
US7305681B2 (en) | Method and apparatus for providing multi-client support in a sip-enabled terminal | |
US8176187B2 (en) | Method, system, and program for enabling communication between nodes | |
US9667674B2 (en) | Method, device, and system for connecting to a communication device | |
US10091254B2 (en) | System, method, and computer program product for resolving addressing in a network including a network address translator | |
EP2843908B1 (en) | Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof | |
CN111294399B (zh) | 一种数据传输方法和装置 | |
US20020099827A1 (en) | Filtering calls in system area networks | |
US8601139B2 (en) | Multiple core session initiation protocol (SIP) | |
JP4527144B2 (ja) | ネットワークロボットシステム及びネットワークロボットシステムにおける通信方法 | |
KR20060048616A (ko) | 세션 접속 유지 | |
TW200843431A (en) | System, computer program product and method of communicating with session initiation protocol (SIP) application sessions using a message-oriented middleware | |
US20060013253A1 (en) | Method, system, and program for forwarding messages between nodes | |
WO2011015020A1 (zh) | 文件传输方法、系统及客户端 | |
CN108234511B (zh) | 多媒体数据传输的方法、系统、设备、存储介质及网关 | |
US6401123B1 (en) | Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol | |
WO2013159492A1 (zh) | 信息上报与下载的方法及系统 | |
EP1562348B1 (en) | Method and Apparatus for Connecting Heterogeneous Protocol Nodes | |
US20080056263A1 (en) | Efficient transport layer processing of incoming packets | |
CN116319698A (zh) | 终端连接的方法、电子设备以及存储介质 | |
KR20050043021A (ko) | 무선 인터넷 플랫폼 상에 sip/imps 동적 연결라이브러리를 구비한 이동 통신 단말기 | |
JP2003333075A (ja) | データ送受信システム | |
JP2007124450A (ja) | ソフトフォン機能を備える通信端末及び通信プログラム |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160114 Address after: Espoo, Finland Patentee after: NOKIA TECHNOLOGIES OY Address before: Espoo, Finland Patentee before: NOKIA Corp. |
|
CX01 | Expiry of patent term |
Granted publication date: 20080123 |
|
CX01 | Expiry of patent term |