CN100428117C - 在sip使能的终端中提供多客户机支持的方法和设备 - Google Patents
在sip使能的终端中提供多客户机支持的方法和设备 Download PDFInfo
- Publication number
- CN100428117C CN100428117C CNB2004800073948A CN200480007394A CN100428117C CN 100428117 C CN100428117 C CN 100428117C CN B2004800073948 A CNB2004800073948 A CN B2004800073948A CN 200480007394 A CN200480007394 A CN 200480007394A CN 100428117 C CN100428117 C CN 100428117C
- Authority
- CN
- China
- Prior art keywords
- message
- client
- session
- initiation protocol
- session initiation
- 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 - Fee Related
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
- H04W80/08—Upper layer protocols
- H04W80/10—Upper layer protocols adapted for application session management, e.g. SIP [Session Initiation Protocol]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
一种在SIP使能的终端中提供多客户机支持的方法和设备涉及在终端(200)上提供SIP处理栈(206)。客户机(210)连接到SIP处理栈(206)以传递客户机性能和处理SIP消息。SIP处理栈(206)发送和接收SIP消息。通过查看客户机性能和SIP消息中的数据将输入SIP消息发送到适当的客户机(210)。
Description
技术领域
本发明总体上涉及计算和通信装置,更具体地说,涉及用于在多客户机设置中采用会话发起协议或类似协议的方法和设备。
背景技术
个人通信装置变得越来越广泛地由公众所使用。个人通信装置诸如蜂窝电话、个人数字助理以及膝上型计算机赋予用户各种移动通信和计算机联网能力。这些装置逐渐地能够采用种类广泛的数字多媒体格式包括语音、音乐、视频、文本消息传送等进行通信。
允许向移动装置和其它计算装置提供数字多媒体的一个重要标准是会话发起协议(SIP)。SIP是协助数字装置建立端到端的多媒体会话的信令协议。SIP提供类似由公共交换电话网络(PSTN)以及网际协议如传输控制协议/网际协议(TCP/IP)和超文本传输协议(HTTP)提供的那些特征。
SIP工作类似于HTTP,因为它是在众所周知的网络端口上运行的基于文本的消息协议。从终端的角度来看,SIP不同于HTTP,因为终端必须具有侦听进程以被告知输入通信。相反,使用HTTP的web浏览器纯粹是客户机,该浏览器在用户请求下发起到侦听服务器的连接,并且不等着侦听输入连接。
当装置如移动电话和个人数字助理(PDA)变得更加完善时,这些装置将允许用户同时运行更多的多媒体感知应用。这些应用可能将采用SIP协议。因此,可能是高度冗余的,因为每个应用将包括其自己的SIP协议栈。就用户而言,具有多个SIP感知应用可导致混淆,因为对于装置上众所周知的TCP/IP侦听端口可能存在争用。该争用可导致错误,并需要用户专门配置软件以同时工作。这是不利的,因为用户一般不明白如TCP/IP端口的概念,并在由用户选择备选的公知端口(如用于HTTP或telnet的端口)来接收SIP的情况下可能导致问题。
需要一种向通信装置上多个客户机应用提供SIP功能的途径。本发明针对这些需要和其它需要,并提供优于现有技术方法的其它优点。
发明内容
为克服上述现有技术中的限制,以及为克服在阅读并理解本说明后将显而易见的其它限制,本发明公开一种用于在多客户机环境中处理会话建立过程的方法和设备。在一个实施例中,用计算机实现的会话建立处理的方法涉及将多个客户机的每个的客户机性能传递到消息处理栈。在消息处理栈上接收来自网络接口的消息。基于该消息和客户机性能从多个客户机中判断目标客户机。随后将该消息从消息处理栈传递到目标客户机。
在一种设置中,会话建立过程包括会话发起协议(SIP)。消息处理栈可设置成在目标客户机未运行的情况下启动目标客户机。客户机性能可通过检查客户机在较早时候已填充的永久存储中的描述而传递到消息处理栈,或者可根据在运行期的客户机来判断。该消息处理栈可通过检查SIP消息请求行、一个或多个SIP消息首部以及消息主体来判断目标客户机。该主体可由SDP首部组成。
在本发明的另一实施例中,在数据处理装置上处理SIP消息的方法涉及在数据处理装置的SIP处理栈上接收SIP消息。SIP处理栈与数据处理装置的网络接口的预定端口相关联。基于SIP消息的数据选择数据处理装置的目标客户机应用。基于选择目标客户机应用是否成功来将SIP响应消息从SIP处理栈发送到网络接口。该SIP消息从SIP处理栈传递到目标客户机应用。
根据本发明的另一实施例,提供了设置成与网络接口的设备。该设备包括配置成接收来自网络的会话建立消息的网络接口和用于存储多个客户机应用的客户机性能的数据存储。该设备包括设置成接收来自网络接口的会话建立消息、基于会话建立消息和数据存储中的客户机性能从多个客户机应用中识别目标客户机应用以及将会话建立消息传递到目标客户机应用的处理器。
在本发明的另一实施例中,用于处理与网络相关联的SIP消息的系统包括用于接收来自网络的SIP消息的网络接口。SIP处理器接收来自网络接口的SIP消息,并判断SIP消息的目标客户机。进程间通信装置促进SIP处理器和目标客户机之间的通信。SIP处理器利用进程间通信装置将SIP消息传递给目标客户机。
本发明的以上概述用意不在于描述本发明的每个所示的实施例或实现方式。而以下的图和相关讨论却用于此目的。
附图说明
结合以下附图中所示的实施例来描述本发明。
图1说明其中可运用本发明的原理的典型系统环境;
图2是显示根据本发明的实施例的SIP处理栈和客户机应用的设置的图;
图3是显示根据本发明的实施例初始化和采用SIP栈的序列的消息流图;
图4是显示根据本发明的实施例的SIP客户机选择的流程图;
图5是显示根据本发明的实施例用于选择SIP客户机的进一步处理的流程图。
具体实施方式
在以下对示范性实施例的描述中,参照构成本发明一部分的附图,并且图中通过举例显示可实践本发明的各种方式。将会理解,可以利用其它实施例,因为可在不背离本发明的范围的情况下进行结构以及操作上的改变。
一般地,本发明提供对于利用公共的会话建立过程的多个客户机应用利用共享处理栈的方法和设备。一种具体说可用于建立会话的协议是会话发起协议(SIP)。各个客户机建立用来发送和接收出入SIP处理栈的SIP消息的连接。这些客户机还将它们的性能传递到SIP栈。SIP处理栈接收所有输入SIP消息,并基于消息类型和客户机性能将消息转发给适当的客户机。SIP处理栈还可发送输出SIP消息,以及处理SIP所要求的多个请求-响应交换。采用SIP处理栈使客户机不必处理这些交换的状态和时序。
会话协议如SIP的主要目的是建立联网装置之间的端到端的数据通信的会话。SIP还可用于这类应用如事件通知、即时消息传送和存在(presence)。一个或多个端点可以是移动的,例如从一个位置移动到另一个位置以及从一个网络移动到另一个网络。移动端点包括各种数字通信装置。虽然本发明是针对SIP而描述的,但是可以理解可采用任何形式的会话建立过程来实现根据本发明的概念,并且提供如由IETF定义的SIP的使用的描述是用于举例而非限制目的。
通常,数字通信装置是可与其它装置交换数据的电子设备。数据可通过各种通信媒体如线、光纤或通过空气如电磁波或光波传送。逐渐地,通信装置包括某类计算硬件如微处理器。微处理器控制的装置的发展在移动通信装置(蜂窝电话、PDA等)的领域中稳步增长。大体上,多数移动通信装置采用微处理器,并且因此可将其视为移动数据处理装置。
图1说明其中可运用本发明的原理的典型系统环境100。在典型系统环境100中,SIP消息102可在装置之间以任何数量的已知方式传递。这些方式包括经由陆线网络104,它可包括全局区域网络(GAN)如因特网、一个或多个广域网(WAN)、局域网(LAN)等。任何支持SIP消息102的计算装置或其它电子装置可以是使用本发明的目标系统,如服务器106、桌上型计算机108或工作站、膝上型或其它便携式计算机110,或任何其它类似的能够经由网络104通信的计算装置,如用一般装置112所表示。
数据102可经由一个或多个无线网络114如全球移动通信系统(GSM)、通用移动电信系统(UMTS)、个人通信服务(PCS)、时分多址(TDMA)、码分多址(CDMA)或其它移动网络传输技术提供。此外,任何可用于采用SIP进行通信的移动电子装置可与使用根据本发明的概念的目标系统接口,如膝上型或其它便携式计算机116、移动电话118A及其它移动通信装置、个人数字助理(PDA)120或任何其它类似的能够经由无线网络114通信的计算装置,如用一般装置122所表示。
可采用短距离无线技术124如蓝牙、无线局域网络(WLAN)、红外(IR)等在装置之间传送SIP消息102。也可采用如连接路径126所示的直接有线连接来分发SIP消息102。可应用本发明,而不管在目标装置之间提供或分发SIP消息102的方式。
利用根据本发明的概念的目标装置的示例如移动电话118B所示。装置118B包括例如无线电收发器134和耦合到操作系统(OS)130的硬件(包括处理器)。本发明可包括实现为固件、模块或运行于OS 130上的程序的SIP处理栈132。
现在参照图2,显示说明本发明的概念的示范性通信装置200。通信装置200包括用于与网络204通信的网络接口202。网络204可以是任何类型的数字通信网络。本示例中的网络204一般通过在网络204上具有一个或多个SIP服务器220和客户机222、224、226来提供某一方式的SIP服务。
当前版本的SIP规范在2002年6月的因特网工程任务组(IETF)RFC 3261中定义。RFC 3261定义可由根据本发明的实施例的通信装置使用的行为和数据格式。SIP规范包括用于创建、修改和终止与一个或多个参与者的会话的协议。SIP也可用于这类应用如事件通知、即时消息传送以及存在。SIP设计成用于与联网的数据处理装置配合使用;因此,根据本发明的装置200将在网络接口202上处理SIP通信。
网络接口202可以是任何允许与其它联网装置通信的物理或逻辑接口。网络接口通常使用在国际标准化组织(ISO)联网协议栈的网络层上的网际协议(IP)。通常与IP耦合的是在OSI栈的传输层上的传输控制协议(TCP)或用户数据报协议(UDP)。然而,可以理解SIP规范与任何类型的联网协议无关,并可与本领域中已知的各种其它网络技术配合使用。
通信装置200包括SIP处理栈206(这里也称为“SIP栈”),它通过网络接口202与网络204通信。SIP栈206可设置成处理通信装置200的所有SIP通信。
SIP栈206还与通信装置200上的客户机210通信。客户机210(也称为“客户机应用”)通常是运行于通信装置200上的应用。客户机210用于格式化数据并向用户提供该数据等。客户机210可包括处理如语音/视频通信、文本消息传送、web服务等的程序。
SIP栈200可配置成与不一定在通信装置200上运行的外部客户机212通信。外部客户机212可经由如网络接口或由插入式外围装置所使用的数据I/O总线连接到通信装置200。这类外围装置可包括存储装置如智能卡、PC卡、RAM/ROM模块、盘驱动器。自主装置如电话、PDA、计算机等也可作为外设或者经由网络附加到通信装置200,以使外部客户机212与SIP栈200接口。
本领域中已知的各种技术可用于在客户机210、212和SIP处理栈206之间进行通信。SIP处理栈206和客户机210、212可以是独立运行的进程。对于一个或多个客户机,也可以通过利用轻型进程(LWP)或线程与SIP栈206或者相互在单个进程中运行。根据本发明的装置200可采用独立进程和/或在进程内部执行的线程的任何组合。客户机进程或线程之间的通信可通过进程间通信(IPC)完成。
IPC机制允许独立的进程进行交互。这类交互可以是同步的或异步的。计算机体系结构提供各种方法和机制如网络套接字(socket)、共享存储、信号、信号机(semaphore)、管道(pipe)、消息传送等来使得IPC容易进行。在本领域中已知各种标准IPC协议,包括JavaRMI、CORBA、COM/DCOM、远程过程调用(RPC)等。各种操作系统和开发环境提供特定的IPC特征,如在移动装置的Symbian操作系统内的IPC。
IPC协议通常允许程序员通过进行功能调用来透明地调用远程进程上的方法。这些进程可定义可由另一IPC感知进程所用的应用程序接口(API)方法。这些API方法可用来发起事件、传送数据、处理查询等。参照图2,客户机210、212和SIP栈206可采用预定义的API方法来交换与SIP有关的数据。
在客户机210、212和SIP栈206之间交换的一类数据是客户机性能。这些性能可由SIP栈206使用以便判断用于接收输入SIP消息的目标客户机。这些性能可在运行期从客户机210、212传递到SIP栈206。这些性能也可装入到永久存储215中,以便在任何时候由SIP栈206检索。
SIP栈206也可用于采用特定于装置200所包含的操作系统的各种机制来启动和停止客户机210、212。例如,许多库提供标准C语言过程fork()和exec()的实现。其它启动客户机210、212的方式可包括调用对操作系统的系统调用,以启动可执行文件或批处理文件。客户机也可通过进行系统调用或使用C函数如kill()来停止。有利的是,客户机210、212的自动启动和停止允许装置通过只运行针对当前通信会话所需要的那些客户机来节约存储周期和处理周期。
可以理解,为实施在通信期间所用的数据传送,客户机210、212可包含它们自己的网络连接(未显示)。SIP与其它协议如会话描述协议(SDP)一起使用,以提供面向会话的参数如数据路径定义、用户可用性以及在会话两端支持的可允许的数据类型。在SIP和SDP(或类似协议)已建立会话之后,便轮到客户机210、212来执行传送数据和向用户提供数据的功能。
现在参照图3,显示如何可在SIP栈304和客户机306、308之间建立会话的示例。网络接口302将SIP栈304和客户机306、308连接到SIP网络(未显示)。客户机308(客户机2)首先把其性能传递310到SIP栈304。在图3中,将这种传递310示为从客户机2308调用的示范性API调用、SetSIPCapabilities()。SIP栈304采用称为SetClient()的示范性方法将此客户机的性能增加312到内状态。对客户机1 306重复进行传递性能314和增加客户机316的类似进程。
客户机306、308与SIP栈304之间传递的性能可包括如各种IETFRFC中定义的SIP首部的标准分量。客户机所支持的众所周知的性能如SIP版本、SIP方法、语言、编码、内容部署、媒体类型、内容类型等嵌入在SIP消息中。其它客户机性能可嵌入到SIP消息中的任何位置,包括启动行、首部和消息主体。SIP栈304所使用的API通常具有灵活的传递这些性能的方式,由此允许支持未来的SIP扩展,而不必改变API方法。
客户机性能的传递310、314可出现在通信装置工作期间的任何时候。在一种设置中,客户机306、308可在安装客户机306、308的时候仅传递它们的性能一次。这类传递可通过将数据写到永久存储如文件或系统注册中来完成。通过访问永久存储,SIP栈304在启动时发现并设置312、316当前的客户机性能,并且因此客户机306、308不必运行。还可希望在运行期使客户机306、308动态增加和删去。在此情形中,客户机306、308将在每个客户机启动时传递310、314性能,并在客户机关闭时删去那些性能。
SIP栈304可设置成处理网络接口302上的所有SIP相关的通信。例如,登记REGISTER请求317可由SIP栈304发送,以向SIP相关的主机通知当前的系统性能。通过SIP栈304处理所有的SIP通信有许多优点。例如,客户机应用的开发者不必使每个客户机包括SIP栈。为所有客户机应用的利益,更新和修正可单独应用到SIP栈。对于SIP消息具有中央处理点还减少对网络资源的潜在争用。
SIP栈304可用于采用SIP进行输出连接以及等着侦听输入连接。输出连接涉及发现网络上的主机并连接到其上。侦听输入连接涉及在预定网络端口上等待连接尝试。虽然网络端口的概念一般用于TCP/IP和UDP/IP,但如这里所使用的端口的概念指用于在传输层上隔离输入连接的任何唯一标识符。当用于TCP/IP和UDP/IP时,这些端口是嵌入协议首部的16位无符号整数。TCP和UPD端口可以是“众所周知”的,如用于SIP的5060,或者可以是预先安排的由两个或多个主机使用的某一其它数字。
当处理输入连接时,SIP栈304维持各种客户机性能的内状态。此内状态可用来响应请求如SIP选项SIP OPTIONS请求。选项OPTIONS请求可由SIP网络上的另一用户发起,以查询用户装置的性能。SIP栈304可用栈的内状态来利用当前状态的所有客户机性能响应选项OPTIONS请求。
内状态还用来将输入消息导向适当的客户机。通过从网络接口302接收318的邀请INVITE消息显示输入连接的示例。邀请INVITE消息通常由网络上尝试发起会话的SIP感知主机来发送。SIP栈304分析消息并选择320最适合处理邀请INVITE请求所需要的性能的客户机。此选择320用称为GetClient()的示范性方法来指示。
在此示例中,邀请INVITE消息通过API调用、SIPIncomingMessage()转发322给客户机1 306。虽然术语“转发”常用来指消息不经过改变便被发送,但在本上下文中,“转发”用来表示在客户机和SIP栈304之间传递直接(substantive)数据。可以理解,当采用API时,可以改变包含在SIP消息中的数据的一部分以符合API。通常,SIP消息的转发或传递涉及传递API或其它IPC设置所需要的那种SIP数据,这可包括不作变化地发送该消息。
SIP栈304可处理SIP协议的各种响应,如响应于邀请INVITE消息发送“100尝试”324和“180振铃”326。当客户机1 306准备建立会话时,它采用API调用如SIPSession()将此传递328给SIP栈304。SIPSession()调用可用来将SIP会话的建立、改变和终止传递到SIP栈304。
在通知SIP栈304将要建立会话后,所需要的同意OK响应330和确认332响应可由SIP栈304发送,以结束该交换。在此点上,客户机1 306经由网络接口302建立334媒体会话。可利用客户机2 308建立其它媒体会话,如通过处理另一邀请INVITE请求336、选择客户机338以及转发消息340所示。
如前所述,SIP栈304将处理输入SIP消息,并将那些消息转发给适当的客户机。SIP栈304可查看SIP消息的各个部分,包括启动行和首部。而且,SIP消息主体可包含可由SIP栈304检查以判断对于SIP消息适当的客户机的数据(如SDP首部)。在另一示例中,主体可包含提供用于分类会话数据的模式的可扩展标记语言(XML)标签。当判断针对SIP消息适当的目标客户机时,SIP消息首部、启动行和消息主体内容的任何组合可由SIP栈304所用。
图4和5示出此处理的部分如何可以发生的示例。图4是显示各种SIP消息启动行和首部值的分析以判断用于接收消息的适当的客户机的流程图,如图3的GetClient()过程320中所示。该过程以SIP消息和所有客户机以及关联性能的列表启动402。检查404SIP版本,如果有客户机不支持此版本的话,便将客户机从列表中删除406。通过检查各个客户机性能如SIP方法、SIP扩展、语言等在过程的剩余部分408上重复此进程。将任何不支持测试的性能的客户机从列表中删去。最后,测试410内容类型,如果不是类型SDP,则消息可转发到客户机。为转发该消息,首先检查412列表以查看是否还有客户机。如果有,则将该消息转发给客户机414,否则向网络返回416错误消息。如果检查410内容类型并发现是类型SDP,则需要作进一步处理412。
图5是显示图4中所指示的继续处理412的流程图。如同图4中的流程图一样,过程502涉及测试SDP首部中的各个字段如SDP版本、网络类型、地址类型、带宽调节器、加密、媒体、传输等。列表中任何不支持SDP首部中所指示的那些性能的客户机被删除。“当”循环504类似地进行,测试SDP首部的各个属性行如编码名称、白板取向(whiteboard orientation)、会议类型、字符集、SDP语言、ftmp属性等。此外,列表中任何不支持这些性能的客户机被删除。在“当”循环504中处理之后,检查506客户机的列表,以查看是否还有客户机。如果有的话,则将该消息转发给客户机508,否则向网络返回510错误消息。
可以理解,显示图3、4和5中所示的示范性例程用于举例而非限制目的。可对操作和程序流进行各种变化,同时仍保持在本发明的精神内。SIP栈可以按照面向对象的方法而不是所示的过程方法来处理。例如,每个客户机可由客户机对象表示,并且每个客户机对象可处理SIP首部和SDP首部,以判断哪个客户机应当接收该消息。
利用这里所提供的描述,本发明可通过采用标准编程和/或工程技术来产生编程软件、固件、硬件或它们的任何组合来实现为机器、进程或制造品。任何所得的包括计算机可读程序代码的程序可包含在一个或多个计算机可用媒体如常驻存储装置、智能卡或其它可拆除的存储装置或传输装置上,由此制造出根据本发明的计算机程序产品或制造品。同样,这里所用的“计算机可读媒体”意在包含在任何计算机可用媒体上或在传输这类程序的任何传输媒体中永久或暂时存在的计算机程序。
如上所示,存储器/存储装置包括但不限于盘、光盘、可拆除式存储装置(如智能卡、SIM、WIM)、半导体存储器(如RAM、ROM、PROM)等。通信媒体包括但不限于经由无线/无线电波通信网络、因特网、内联网、基于电话/调制解调器的网络通信、硬连线/电缆的通信网络、卫星通信以及其它固定或移动网络系统/通信链路的通信。
根据这里所提供的描述,本领域的技术人员能够容易地将按照所述产生的软件与适当的通用或专用计算机硬件组合起来,以产生体现本发明的数据处理装置和/或计算机子部件,以及产生用于实施本发明的方法的数据处理装置和/或计算机子部件。
为举例和说明目的提供本发明示范性实施例的以上描述。这些描述并不意在穷举或将本发明限制为所公开的确切形式。按照以上示教可以进行许多修改和变型。意图是通过这里所附的权利要求而非该详细描述来限制本发明的范围。
Claims (37)
1.一种处理多个客户机的会话建立过程的用计算机实现的方法,所述方法包括:
将来自所述多个客户机的每个的相应客户机性能传递到消息处理栈,其中所述消息处理栈配置成代表所述客户机处理会话建立消息;
在所述消息处理栈上接收来自网络接口的所述会话建立消息;
基于所述会话建立消息和所述客户机性能从所述多个客户机中判断目标客户机;以及
将所述会话建立消息从所述消息处理栈传递到所述目标客户机。
2.如权利要求1所述的方法,其特征在于还包括在所述目标客户机未运行的情况下响应于接收所述会话建立消息来启动所述目标客户机。
3.如权利要求1所述的方法,其特征在于,将所述客户机的每个的客户机性能传递到所述消息处理栈包括在永久数据存储装置中描述所述客户机性能。
4.如权利要求1所述的方法,其特征在于,将所述客户机的每个的客户机性能传递到所述消息处理栈包括在所述客户机的运行期传递所述客户机性能。
5.如权利要求1所述的方法,其特征在于,所述会话建立过程包括采用会话发起协议建立会话。
6.如权利要求5所述的方法,其特征在于,判断所述目标客户机包括检查所述会话建立消息的一个或多个会话发起协议首部和会话发起协议启动行。
7.如权利要求5所述的方法,其特征在于,判断所述目标客户机包括检查所述会话建立消息的会话发起协议主体。
8.如权利要求7所述的方法,其特征在于,判断所述目标客户机包括检查所述会话建立消息的主体的会话描述协议首部。
9.一种处理多个客户机的会话建立过程的设备,包括:
用于将来自多个客户机的每个的相应客户机性能传递到消息处理栈的部件,其中所述消息处理栈配置成代表所述客户机处理会话建立消息;
用于在所述消息处理栈上接收来自网络接口的会话建立消息的部件;
用于基于所述会话建立消息和所述客户机性能从所述多个客户机中判断目标客户机的部件;以及
用于将所述会话建立消息从所述消息处理栈传递到所述目标客户机的部件。
10.如权利要求9所述的设备,其特征在于,还包括用于在所述目标客户机未运行的情况下对所述会话建立消息的接收作出响应来启动所述目标客户机的部件。
11.如权利要求9所述的设备,其特征在于,将所述客户机的每个的客户机性能传递到所述消息处理栈包括在永久数据存储装置中描述所述客户机性能。
12.如权利要求9所述的设备,其特征在于,将所述客户机的每个的客户机性能传递到所述消息处理栈包括在所述客户机的运行期传递所述客户机性能。
13.如权利要求9所述的设备,其特征在于,所述会话建立消息包括会话发起协议消息。
14.如权利要求13所述的设备,其特征在于,判断目标客户机包括检查所述会话建立消息的一个或多个会话发起协议首部和会话发起协议启动行。
15.如权利要求13所述的设备,其特征在于,判断目标客户机包括检查所述会话建立消息的会话发起协议主体。
16.如权利要求15所述的设备,其特征在于,判断目标客户机包括检查所述会话建立消息的主体的会话描述协议首部。
17.如权利要求9所述的设备,其特征在于,所述设备包括移动终端。
18.如权利要求9所述的设备,其特征在于,所述网络接口包括无线接口。
19.一种在可连接到网络接口的数据处理装置上处理会话发起协议消息的方法,包括:
将来自所述数据处理装置的多个会话发起协议客户机应用的每个的相应客户机性能传递到会话发起协议处理栈;
在所述数据处理装置的会话发起协议处理栈上接收所述会话发起协议消息,所述会话发起协议处理栈与所述网络接口的预定端口相关联;
基于所述会话发起协议消息的数据和多个会话发起协议客户机应用的客户机性能从所述数据处理装置的所述多个会话发起协议客户机应用中判断目标客户机应用;
基于判断所述目标客户机应用是否成功将会话发起协议响应消息从所述会话发起协议处理栈发送到所述网络接口;以及
将所述会话发起协议消息从所述会话发起协议处理栈传递到所述目标客户机应用。
20.如权利要求19所述的方法,其特征在于还包括在所述目标客户机应用未运行的情况下响应于接收所述会话发起协议消息来启动所述目标客户机应用。
21.如权利要求19所述的方法,其特征在于,判断所述数据处理装置的所述目标客户机应用包括判断来自永久数据存储装置的所述性能。
22.如权利要求19所述的方法,其特征在于,判断所述数据处理装置的所述目标客户机应用包括判断来自运行的客户机的所述性能。
23.如权利要求19所述的方法,其特征在于,判断目标客户机应用包括检查所述会话发起协议消息的一个或多个会话发起协议首部和会话发起协议启动行。
24.如权利要求19所述的方法,其特征在于,判断目标客户机应用包括检查所述会话发起协议消息的主体。
25.如权利要24所述的方法,其特征在于,判断目标客户机应用包括检查所述会话发起协议消息的主体的会话描述协议首部。
26.一种用于处理与网络相关联的会话发起协议消息的系统,包括:
网络接口,其用于接收来自所述网络的会话发起协议消息;
会话发起协议处理器,其设置成判断从多个会话发起协议客户机应用的每个传递的相应客户机性能,所述会话发起协议处理器还设置成接收来自所述网络接口的所述会话发起协议消息以及判断所述会话发起协议消息的目标客户机,基于所述会话发起协议消息的内容和从所述多个会话发起协议客户机应用传递的客户机性能从所述多个会话发起协议客户机应用中判断所述目标客户机;
进程间通信装置,用于促进所述会话发起协议处理器和所述目标客户机之间的通信;以及
其中所述会话发起协议处理器采用所述进程间通信装置将所述会话发起协议消息传递到所述目标客户机。
27.如权利要求26所述的系统,其特征在于还包括进程执行装置,并且所述会话发起协议处理器配置成采用所述进程执行装置响应于接收所述会话发起协议消息来启动所述目标客户机。
28.如权利要求26所述的系统,其特征在于还包括永久数据存储装置,并且所述会话发起协议处理器配置成通过判断来自所述永久数据存储装置的所述性能来识别所述目标客户机。
29.如权利要求26所述的系统,其特征在于,所述会话发起协议处理器配置成通过判断来自运行的客户机的所述性能来识别所述目标客户机。
30.如权利要求26所述的系统,其特征在于还包括耦合到所述网络以便传递会话发起协议消息的服务器。
31.如权利要求26所述的系统,其特征在于,所述网络接口包括无线网络接口。
32.一种能够与网络接口的设备,包括:
网络接口,其配置成接收来自所述网络的会话建立消息;
数据存储装置,其用于存储从多个会话发起协议客户机应用传递到所述数据存储装置的相应客户机性能;以及
处理器,其设置成:
接收来自所述网络接口的所述会话建立消息;
基于所述会话建立消息和所述数据存储装置的客户机性能从所述多个会话发起协议客户机应用中识别目标客户机应用;以及
将所述会话建立消息传递到所述目标客户机应用。
33.如权利要求32所述的设备,其特征在于,所述处理器还设置成在所述目标客户机应用未运行的情况下响应于接收所述会话建立消息来启动所述目标客户机应用。
34.如权利要求32所述的设备,其特征在于,所述会话建立消息包括会话发起协议消息。
35.如权利要求34所述的设备,其特征在于,所述处理器还设置成通过检查所述会话发起协议消息的一个或多个会话发起协议首部和会话发起协议启动行来判断所述目标客户机应用。
36.如权利要求34所述的设备,其特征在于,所述处理器还设置成通过检查所述会话发起协议消息的主体来判断所述目标客户机应用。
37.如权利要求34所述的设备,其特征在于,所述处理器还设置成通过检查所述会话发起协议消息的会话描述协议首部来判断所述目标客户机应用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/393,500 US7305681B2 (en) | 2003-03-20 | 2003-03-20 | Method and apparatus for providing multi-client support in a sip-enabled terminal |
US10/393,500 | 2003-03-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1761928A CN1761928A (zh) | 2006-04-19 |
CN100428117C true CN100428117C (zh) | 2008-10-22 |
Family
ID=33029702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800073948A Expired - Fee Related CN100428117C (zh) | 2003-03-20 | 2004-03-12 | 在sip使能的终端中提供多客户机支持的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7305681B2 (zh) |
EP (1) | EP1604267A4 (zh) |
KR (1) | KR100686705B1 (zh) |
CN (1) | CN100428117C (zh) |
WO (1) | WO2004084055A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480254B2 (en) * | 2003-05-28 | 2009-01-20 | Nokia Corporation | System, apparatus, and method for providing multi-application support using a single protocol stack |
US7913237B2 (en) * | 2003-08-26 | 2011-03-22 | Ensequence, Inc. | Compile-time code validation based on configurable virtual machine |
JP4028853B2 (ja) * | 2004-03-30 | 2007-12-26 | 株式会社日立製作所 | 情報サービス通信ネットワークシステムおよびセッション管理サーバ |
US8229082B2 (en) * | 2004-06-17 | 2012-07-24 | International Business Machines Corporation | Awareness and negotiation of preferences for improved messaging |
US20050289222A1 (en) * | 2004-06-28 | 2005-12-29 | Sahim Faramarz F | Flexible session initiation protocol endpoint signaling |
US20060047840A1 (en) * | 2004-08-31 | 2006-03-02 | Peter Postmus | Method and session initiation protocol (SIP) server for the exchange of end-point capabilities |
BRPI0419224B8 (pt) * | 2004-11-15 | 2018-06-05 | Ericsson Telefon Ab L M | método para habilitar simultaneamente comunicação comutada por pacote de multimídia durante uma chamada de circuito comutado em andamento, e, terminal móvel |
US7924814B1 (en) * | 2004-12-03 | 2011-04-12 | At&T Intellectual Property Ii, L.P. | Method and apparatus for enabling dual tone multi-frequency signal processing in the core voice over internet protocol network |
KR100636913B1 (ko) * | 2004-12-14 | 2006-10-19 | 엘지전자 주식회사 | Sip 시그널 처리 시스템 |
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 |
KR100666946B1 (ko) * | 2005-01-19 | 2007-01-10 | 삼성전자주식회사 | 단말의 상태를 테스트하기 위한 네트워크시스템 및 그테스트방법 |
US8069219B2 (en) * | 2005-03-03 | 2011-11-29 | Nokia Corporation | Method and apparatus for implementing a mobile web server based system |
US7949766B2 (en) * | 2005-06-22 | 2011-05-24 | Cisco Technology, Inc. | Offload stack for network, block and file input and output |
US20060294248A1 (en) * | 2005-06-28 | 2006-12-28 | Microsoft Corporation | Automatic server configuration based on user agent |
KR100728280B1 (ko) * | 2005-07-19 | 2007-06-13 | 삼성전자주식회사 | Sip를 이용한 통신 시스템에서 호 해제 요청/응답메시지를 이용한 네트워크 상태 관리 방법 |
EP1933577A4 (en) * | 2005-09-05 | 2009-06-24 | Huawei Tech Co Ltd | METHOD FOR PERFORMING SERVICE ACTIVATION OPERATION AND USER TERMINAL COMPRISING SAID METHOD |
US20070081452A1 (en) * | 2005-10-06 | 2007-04-12 | Edward Walter | Access port centralized management |
KR100747468B1 (ko) * | 2005-10-31 | 2007-08-09 | 엘지전자 주식회사 | 콤비네이션 서비스를 위한 단말 능력정보 갱신 통지 방법및 시스템 |
US7907599B2 (en) * | 2006-04-10 | 2011-03-15 | Network Equipment Technologies, Inc. | Determination of SIP transport to reduce call setup delays |
US8819242B2 (en) * | 2006-08-31 | 2014-08-26 | Cisco Technology, Inc. | Method and system to transfer data utilizing cut-through sockets |
CN101166178B (zh) * | 2006-10-16 | 2010-05-12 | 华为技术有限公司 | 会话描述协议版本协商方法、系统及网络实体 |
JP5769909B2 (ja) * | 2007-06-22 | 2015-08-26 | 京セラ株式会社 | 無線通信装置およびサーバ装置 |
US20090006533A1 (en) * | 2007-06-28 | 2009-01-01 | Yahoo! Inc. | Server-aided approach to improve media negotiation efficiency |
EP2168353B1 (en) * | 2007-07-04 | 2010-11-24 | Telefonaktiebolaget LM Ericsson (publ) | Ip link establishment across a data network |
JP4302165B2 (ja) * | 2007-12-20 | 2009-07-22 | 株式会社東芝 | インタフェース装置、このインタフェース装置を備えた交換装置及びインタフェース装置で使用される制御方法 |
US9230286B2 (en) * | 2008-03-14 | 2016-01-05 | Industrial Technology Research Institute | Methods and systems for associating users through network societies |
US20090300115A1 (en) * | 2008-06-03 | 2009-12-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, node and system for adapting a session initiation protocol (sip) message for an ip multimedia subsystem (ims) |
GB2493129B (en) * | 2011-07-11 | 2018-07-04 | Metaswitch Networks Ltd | Method and system for managing a sip server |
EP2632105B1 (en) | 2012-02-23 | 2015-01-21 | Ericsson Modems SA | Handling session initiation protocol messages in a wireless telecommunications device |
EP2870735B1 (en) * | 2012-07-06 | 2019-05-22 | Telefonaktiebolaget LM Ericsson (publ) | Method for adding client capability data to a sip message |
US9282124B2 (en) * | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
US9772876B2 (en) * | 2014-01-06 | 2017-09-26 | International Business Machines Corporation | Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes |
ES2737173T3 (es) * | 2014-04-25 | 2020-01-10 | Vodafone Espana Sau | Método y sistema para la selección en un escenario de múltiples dispositivos |
CN105471824A (zh) * | 2014-09-03 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 实现浏览器调用本地业务组件的方法、装置及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001091404A2 (en) * | 2000-05-25 | 2001-11-29 | Nortel Networks Ltd. | Launching software routines in response to messages relating to communications sessions |
US6438114B1 (en) * | 2001-02-05 | 2002-08-20 | Motorola, Inc. | Method and apparatus for enabling multimedia calls using session initiation protocol |
US6493324B1 (en) * | 1999-03-29 | 2002-12-10 | Worldcom, Inc. | Multimedia interface for IP telephony |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2594979B2 (ja) * | 1987-10-23 | 1997-03-26 | 株式会社日立製作所 | マルチプロセツサシステム |
US5630128A (en) * | 1991-08-09 | 1997-05-13 | International Business Machines Corporation | Controlled scheduling of program threads in a multitasking operating system |
JP3148152B2 (ja) | 1997-06-27 | 2001-03-19 | 日本電気株式会社 | 電子メールシステムを用いた同報メールの配送方法 |
US6421707B1 (en) * | 1998-02-13 | 2002-07-16 | Lucent Technologies Inc. | Wireless multi-media messaging communications method and apparatus |
US6845498B1 (en) * | 1999-05-11 | 2005-01-18 | Microsoft Corporation | Method and apparatus for sharing data files among run time environment applets in an integrated circuit card |
US6446218B1 (en) * | 1999-06-30 | 2002-09-03 | B-Hub, Inc. | Techniques for maintaining fault tolerance for software programs in a clustered computer system |
US6615236B2 (en) * | 1999-11-08 | 2003-09-02 | Worldcom, Inc. | SIP-based feature control |
US6510464B1 (en) * | 1999-12-14 | 2003-01-21 | Verizon Corporate Services Group Inc. | Secure gateway having routing feature |
US6678735B1 (en) * | 2000-01-26 | 2004-01-13 | Nortel Networks Limited | Method and apparatus for a sip client manager |
ES2396683T3 (es) * | 2000-03-03 | 2013-02-25 | Qualcomm Incorporated | Dispositivo de comunicación y su correspondiente procedimiento para proporcionar seguridad en una red de comunicación grupal |
EP1310109A2 (en) * | 2000-03-03 | 2003-05-14 | QUALCOMM Incorporated | Method and apparatus for participating in group communication services in an existing communication system |
US20010024951A1 (en) * | 2000-03-22 | 2001-09-27 | Marten Rignell | Apparatus and a method for providing operational status information between subscribers in a telecommunications network |
US6732175B1 (en) * | 2000-04-13 | 2004-05-04 | Intel Corporation | Network apparatus for switching based on content of application data |
US6433043B1 (en) * | 2000-11-28 | 2002-08-13 | Transitions Optical, Inc. | Removable imbibition composition of photochromic compound and kinetic enhancing additive |
CA2437346A1 (en) * | 2001-02-02 | 2002-08-15 | Opentv, Inc. | A method and apparatus for the compilation of an interpretative language for interactive television |
US20020131395A1 (en) * | 2001-03-19 | 2002-09-19 | Chenghui Wang | Session initiation protocol (SIP) user agent in a serving GPRS support node (SGSN) |
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 |
US20030046017A1 (en) * | 2001-06-06 | 2003-03-06 | Claudius Fischer | Deployment console for use with a computer system deploying software to remotely located devices |
US6985961B1 (en) * | 2001-12-04 | 2006-01-10 | Nortel Networks Limited | System for routing incoming message to various devices based on media capabilities and type of media session |
WO2003083688A1 (en) * | 2002-03-22 | 2003-10-09 | Sun Microsystems, Inc. | Mobile download system |
GB0208069D0 (en) * | 2002-04-08 | 2002-05-22 | Nokia Corp | Message header for messaging service |
US20030236892A1 (en) * | 2002-05-31 | 2003-12-25 | Stephane Coulombe | System for adaptation of SIP messages based on recipient's terminal capabilities and preferences |
US7167916B2 (en) * | 2002-08-30 | 2007-01-23 | Unisys Corporation | Computer OS dispatcher operation with virtual switching queue and IP queues |
US6785374B2 (en) * | 2002-09-30 | 2004-08-31 | Guanglu Wang | Method and apparatus for providing transaction capabilities application part information in a session initiation protocol system |
US7043579B2 (en) * | 2002-12-05 | 2006-05-09 | International Business Machines Corporation | Ring-topology based multiprocessor data access bus |
JP4129539B2 (ja) * | 2003-02-19 | 2008-08-06 | 独立行政法人情報通信研究機構 | 通信ノード、シグナリングネットワーク、通信ネットワークシステムおよびその通信方法 |
US8423976B2 (en) * | 2003-03-13 | 2013-04-16 | Northrop Grumman Corporation | Extreme pipeline and optimized reordering technology |
US7079839B1 (en) * | 2003-03-24 | 2006-07-18 | Sprint Spectrum L.P. | Method and system for push launching applications with context on a mobile device |
US7092703B1 (en) * | 2003-03-24 | 2006-08-15 | Sprint Spectrum L.P. | Method and system for accessing a universal message handler on a mobile device |
US7313131B2 (en) * | 2003-04-22 | 2007-12-25 | Nortel Networks Limited | Processing of communication session request messages |
US6981072B2 (en) * | 2003-06-05 | 2005-12-27 | International Business Machines Corporation | Memory management in multiprocessor system |
-
2003
- 2003-03-20 US US10/393,500 patent/US7305681B2/en not_active Expired - Lifetime
-
2004
- 2004-03-12 EP EP04720096A patent/EP1604267A4/en not_active Ceased
- 2004-03-12 WO PCT/IB2004/000728 patent/WO2004084055A1/en active Application Filing
- 2004-03-12 KR KR1020057017291A patent/KR100686705B1/ko active IP Right Grant
- 2004-03-12 CN CNB2004800073948A patent/CN100428117C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493324B1 (en) * | 1999-03-29 | 2002-12-10 | Worldcom, Inc. | Multimedia interface for IP telephony |
WO2001091404A2 (en) * | 2000-05-25 | 2001-11-29 | Nortel Networks Ltd. | Launching software routines in response to messages relating to communications sessions |
US6438114B1 (en) * | 2001-02-05 | 2002-08-20 | Motorola, Inc. | Method and apparatus for enabling multimedia calls using session initiation protocol |
Also Published As
Publication number | Publication date |
---|---|
KR20050111361A (ko) | 2005-11-24 |
WO2004084055A1 (en) | 2004-09-30 |
EP1604267A4 (en) | 2009-11-11 |
US7305681B2 (en) | 2007-12-04 |
CN1761928A (zh) | 2006-04-19 |
EP1604267A1 (en) | 2005-12-14 |
KR100686705B1 (ko) | 2007-02-26 |
US20040250253A1 (en) | 2004-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100428117C (zh) | 在sip使能的终端中提供多客户机支持的方法和设备 | |
US7493623B2 (en) | System and method for identifying applications targeted for message receipt in devices utilizing message queues | |
EP1941701B1 (en) | Telephony and web services coordination | |
US6920501B2 (en) | Communication socket migration among different devices | |
US7039710B2 (en) | Method and apparatus for providing multi-client support in a SIP-enabled terminal | |
US20050014489A1 (en) | System, apparatus, and method for providing a mobile server | |
US20040186918A1 (en) | Method and apparatus for dispatching incoming data in a multi-application terminal | |
US20050071419A1 (en) | System, apparatus, and method for providing Web services using wireless push | |
CN101960822A (zh) | Sip-http应用相关器 | |
JP2019525578A (ja) | データグラムベースのトランスポート層を介したカプセル化メディアトラフィックの効率的転送 | |
CN108023736A (zh) | 通信方法、服务端设备、客户端设备、装置及系统 | |
JP4981444B2 (ja) | プロセッサ間通信プロトコル | |
JP6076018B2 (ja) | 呼制御装置、登録処理方法、及びプログラム | |
KR20050043021A (ko) | 무선 인터넷 플랫폼 상에 sip/imps 동적 연결라이브러리를 구비한 이동 통신 단말기 | |
CN115348316A (zh) | 一种服务器端与客户端通信的方法 | |
US20020129120A1 (en) | Method and apparatus of gateway aggregate | |
Salsano et al. | SMILE (Simple Middleware Independent LayEr) and its bindings: SMILE-JS (JSON over SIP), SMILE-JSH (JSON over SIP or HTTP) | |
Ahmad | Distributing a SIP servlet engine for standalone mobile ad hoc networks | |
Díaz-Torres | Using the session initiation protocol as a networking protocol for home appliances | |
Torres | Using the session initiation protocol as a networking protocol for home appliances | |
Luo | Design and Implement Voice Application over Ad Hoc Networks Using UPnP | |
Hu | Extension of Bluetooth personal area network across an Internet communication session. | |
Jia et al. | Interprocess Communication Using Message Passing | |
Hopkins et al. | Java and OBEX | |
JP2003333075A (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: 20160112 Address after: Espoo, Finland Patentee after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Patentee before: Nokia Oyj |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081022 Termination date: 20210312 |
|
CF01 | Termination of patent right due to non-payment of annual fee |