更改与Skype绑定的设备的方法、系统和第三方模块的制作方法

文档序号:7973843阅读:85来源:国知局
专利名称:更改与Skype绑定的设备的方法、系统和第三方模块的制作方法
技术领域
本发明涉及网络通信技术领域,具体涉及一种更改与Skype绑定的设备的方法、系统和第三方模块。
背景技术
目前,Skype是全球发展速度最快的互联网即时通信产品,利用Skype应用程序,一个Skype用户无论身处何地都能够与其它Skype用户进行免费的、无限制的语音与视频通信。2005年,Skype开始为第三方开发商提供应用接口(API),Skype API是Skype向第三方应用程序发布访问Skype功能的接口,例如拨打电话、发送文字信息、获取Skype用户资料、更改与Skype绑定的硬件设备等。Skype的API可以在Windows、Mac OS X和Linux系统上运行,任何人均可以使用其来免费开发商用与非商用应用程序。
Skype的远程视频通信可以支持很多种硬件设备,比如摄像头、电视卡、采集卡等。但是在任意时刻,只能把一个设备绑定到Skype,并且远程用户无法更改对方Skype绑定的硬件设备,这在一定程度上给用户带来了不便,比如,在本地个人计算机(PC)上挂接有Skype支持的摄像头和电视卡两种硬件设备,并且当前与本地Skype绑定的设备为摄像头,那么远程用户只能使用摄像头设备,除非本地Skype用户通过手动设置将与本地Skype绑定的设备更改为电视卡,否则远程用户不可能观看到电视。

发明内容
本发明提供一种更改与Skype绑定的设备的方法、系统和第三方模块,以在无需手工参与的条件下,更改与Skype绑定的硬件设备。
本发明的技术方案是这样实现的
一种更改与Skype绑定的设备的方法,包括第三方模块与本地Skype应用程序建立连接,之后从本地Skype应用程序获取到远程Skype应用程序发来的绑定设备相关消息,根据该消息确定与本地Skype应用程序绑定的设备,然后通知本地Skype应用程序绑定该设备。
所述第三方模块与本地Skype应用程序建立连接包括第三方模块向本地系统广播自身的句柄,本地Skype应用程序收到该第三方模块的句柄后,向本地系统广播自身的句柄,第三方模块收到本地Skype应用程序的句柄,与本地Skype应用程序的连接建立。
所述绑定设备相关消息为更改设备请求,且该请求携带更改后的设备名称。
所述第三方模块从本地Skype应用程序获取到远程Skype应用程序发来的绑定设备相关消息之后、确定与本地Skype应用程序绑定的设备之前进一步包括第三方模块判断所述远程Skype应用程序是否为正在与本地Skype应用程序通话的远程Skype应用程序,若是,根据所述消息确定与本地Skype应用程序绑定的设备;否则,不作处理,本流程结束。
所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前进一步包括第三方模块判断本地Skype应用程序是否正在视频通话过程中且通话未被挂起,若是,则通知本地Skype应用程序关闭视频,然后通知本地Skype应用程序绑定所述设备,最后通知本地Skype应用程序开启视频;否则,直接通知本地Skype应用程序绑定所述设备。
所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前进一步包括第三方模块判断本地Skype应用程序是否正在通话过程中,若是,则通知本地Skype应用程序关闭通话,然后通知本地Skype应用程序绑定所述设备,最后通知本地Skype应用程序重新呼叫所述关闭通话之前与自身通话的远程Skype应用程序;否则,直接通知本地Skype应用程序绑定所述设备。
所述第三方模块从本地Skype应用程序获取远程Skype应用程序发来的绑定设备相关消息包括第三方模块实时从本地Skype应用程序获取远程Skype应用程序发往本地Skype应用程序的文本信息,并检测到该文本信息包含所述更改设备请求。
所述方法进一步包括第三方模块预先设置Skype用户名与绑定设备名称的对应关系;所述绑定设备相关消息为呼叫请求。
所述第三方模块确定与本地Skype应用程序绑定的设备包括第三方模块根据所述呼叫请求携带的远程Skype用户名,在所述对应关系中查找到对应的设备名称,确定该设备名称对应设备为远程Skype应用程序要求本地Skype应用程序绑定的设备。
所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前,进一步包括第三方模块判断当前本地Skype应用程序是否正在使用所述确定的绑定设备,若是,通过本地Skype应用程序向远程Skype应用程序返回忙指示;否则,通知本地Skype应用程序绑定该设备。
所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前,进一步包括第三方模块检测到本地Skype应用程序当前正在与非发来所述呼叫请求的其它远程Skype应用程序通话,第三方模块通知本地Skype应用程序关闭当前通话,之后判断当前本地Skype应用程序绑定的设备是否与所述远程Skype用户名对应的设备相同,若是,向本地Skype应用程序发送接受呼叫指示;否则,通知本地Skype应用程序绑定该设备,并在收到本地Skype应用程序返回的绑定完成指示后,向本地Skype应用程序发送接受呼叫指示。
所述设备为视频设备,或音频设备,或视音频复合设备。
一种更改与Skype绑定的设备的系统,包括第三方模块、本地Skype模块和远程Skype模块,其中第三方模块,用于根据本地Skype模块发来的句柄,与本地Skype模块建立连接,根据从本地Skype模块获取的远程Skype模块发来的绑定设备相关消息,确定与本地Skype模块绑定的设备,将该设备名称发送给本地Skype模块;本地Skype模块,用于根据第三方模块发来的句柄,与第三方模块建立连接,将远程Skype模块发来的绑定设备相关消息发送给第三方模块,将第三方模块发来的设备名称对应的设备绑定到自身;远程Skype模块,用于在确定要将设备绑定到本地Skype模块上时,向本地Skype模块发送绑定设备相关消息。
一种更改与Skype绑定的设备的第三方模块,包括连接建立模块,用于向本地Skype模块广播自身的句柄,接收本地Skype模块发来的句柄;更改设备请求获取模块,用于从本地Skype模块获取远程Skype模块发来的信息,检测到该信息包含更改设备请求,将该请求携带的更改后的设备名称发送给更改设备命令发送模块,并向视频通话判断模块发送启动指示;视频通话判断模块,用于在收到启动指示后,判断当前本地Skype模块是否正在视频通话过程中且通话未被挂起,若是,通知本地Skype模块关闭视频,之后向更改设备命令发送模块发送更改指示,再通知本地Skype模块开启视频;否则,直接向更改设备命令发送模块发送更改指示;更改设备命令发送模块,收到启动指示后,将收到的更改后的设备名称通过更改设备命令发送给本地Skype模块。
所述更改设备请求获取模块进一步用于,判断发来更改设备请求的远程Skype模块是否为正在与本地Skype模块通话的远程Skype模块,若是,将该请求携带的更改后的设备名称发送给更改设备命令发送模块,并向视频通话判断模块发送启动指示;否则,不作处理。
一种更改与Skype绑定的设备的第三方模块,包括连接建立模块,用于向本地Skype模块广播自身的句柄,接收本地Skype模块发来的句柄;更改设备请求获取模块,用于从本地Skype模块获取远程Skype模块发来的信息,检测到该信息包含更改设备请求,将该请求携带的更改后的设备名称发送给更改设备命令发送模块,并向关闭通话命令发送模块发送启动指示;关闭通话命令发送模块,用于在收到启动指示后,判断当前本地Skype模块是否正在通话过程中,若是,通知本地Skype模块关闭通话,之后向更改设备命令发送模块发送更改指示,之后通知本地Skype模块呼叫之前与自身通话的远程Skype模块;否则,直接向更改设备命令发送模块发送更改指示;更改设备命令发送模块,用于在收到更改指示后,将收到的更改后的设备名称通过更改设备命令发送给本地Skype模块。
一种更改与Skype绑定的设备的第三方模块,包括连接建立模块,用于向本地Skype模块广播自身的句柄,接收本地Skype模块发来的句柄;Skype用户名获取模块,用于从本地Skype模块获取远程Skype模块发来呼叫请求,将该请求中携带的远程Skype用户的用户名发送给绑定设备确定模块;用户名绑定设备映射模块,用于保存Skype用户名与绑定设备名称的对应关系,接收到远程Skype用户名,根据所述对应关系确定对应的绑定设备名称,通知Skype模块绑定与该设备名称对应的设备。
所述用户名绑定设备映射模块进一步用于,检测到当前本地Skype模块正在使用所述远程Skype用户名对应的绑定设备与其它远程Skype模块通信,则通过本地Skype模块向远程Skype模块返回忙指示。
所述用户名绑定设备映射模块进一步用于,检测到本地Skype模块当前正在与非发来呼叫请求的其它远程Skype模块进行通话,通知本地Skype模块关闭通话,之后判断当前本地模块绑定的设备是否与所述远程Skype用户名对应的设备相同,若是,向本地Skype模块发送接受呼叫指示;否则,向本地Skype模块发送更改设备命令,该命令中携带所述远程Skype用户名对应的设备名称,并在收到本地Skype应用程序返回的绑定完成指示后,向本地Skype模块发送接受呼叫指示。
与现有技术相比,本发明通过在第三方模块与本地Skype应用程序建立连接后,若从本地Skype应用程序获取到远程Skype应用程序发往本地Skype应用程序的绑定设备相关消息,则根据该消息确定与本地Skype应用程序绑定的设备,然后通知本地Skype应用程序绑定该设备,实现了在无需手工参与的条件下,更改与Skype应用程序绑定的硬件设备的目的。
具体地,本发明可在远程Skype应用程序与本地Skype应用程序通话过程中,更改与本地Skype应用程序绑定的硬件设备,实现远程动态点播;也可为不同的远程Skype用户设定不同的绑定设备,根据发起呼叫的远程Skype用户名,将本地Skype应用程序与不同的硬件设备绑定,满足了Skype用户的个性化要求。


图1为本发明实施例提供的更改与Skype绑定的设备的流程图;图2为本发明实施例一提供的更改与Skype绑定的设备的流程图;图3为本发明实施例二提供的更改与Skype绑定的设备的流程图;图4为本发明实施例三提供的更改与Skype绑定的设备的流程图;图5为本发明实施例提供的更改与Skype绑定的设备的系统组成图;图6为本发明实施例一提供的更改与Skype绑定的设备的Skypemate模块的结构示意图;图7为本发明实施例二提供的更改与Skype绑定的设备的Skypemate模块的结构示意图;图8为本发明实施例三提供的更改与Skype绑定的设备的Skypemate模块的结构示意图。
具体实施例方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
将利用API接口访问Skype应用程序的第三方模块称为Skypemate模块,将与Skypemate模块运行在操作系统同一用户身份下的Skype应用程序称为本地Skype应用程序,将与本地Skype应用程序通信的Skype应用程序称为远程Skype应用程序。
图1为本发明实施例提供的更改与Skype绑定的设备的流程图,如图1所示,其具体步骤如下步骤101Skypemate模块向本地系统中所有应用程序模块广播自身的句柄。
本步骤中,Skypemate模块广播的消息为Skype API中定义的标准消息“SkypeControlAPIDiscover”消息,并在消息参数中指定自身的句柄步骤102本地Skype应用程序收到Skypemate的句柄后,向本地系统中所有应用程序模块广播自身的句柄。
本步骤中,本地Skype应用程序广播的消息同样为Skype API中定义的标准消息“SkypeControlAPIAttach”消息,并在消息参数中指定自身的句柄。
步骤103Skypemate模块收到本地Skype应用程序的句柄,保存该句柄,与本地Skype应用程序的连接建立。
步骤104Skypemate模块从本地Skype应用程序获取到远程Skype应用程序向本地Skype应用程序发来的绑定设备相关命令,根据该命令确定将与本地Skype应用程序绑定的设备。
本发明中提到的设备可以是视频设备,或音频设备,或视音频复合设备。
步骤105Skypemate模块将所述确定的绑定设备名称携带在Skype API定义的更改设备命令中发送给本地Skype应用程序。
步骤106本地Skype应用程序收到所述更改设备命令后,将所述命令中指示的设备绑定到自身。
以下针对两种具体应用,对本发明进行进一步详细说明。
图2为本发明实施例一提供的更改与Skype绑定的设备的流程图,在本实施例中,本地Skype应用程序可在与远程Skype应用程序通信时,应远程Skype用户的要求,更改自身绑定的设备,如图2所示,其具体步骤如下步骤201Skypemate模块向本地系统中所有应用程序模块广播自身的句柄。
步骤202本地Skype应用程序收到Skypemate模块的句柄后,向本地系统中所有应用程序模块广播自身的句柄。
步骤203Skypemate模块收到本地Skype应用程序的句柄,保存该句柄,与本地Skype应用程序的连接建立。
步骤204Skypemate模块从本地Skype应用程序获取到与本地Skype应用程序通信的远程Skype应用程序发来的文本信息,检测到该文本信息中包含更改设备请求,该请求中携带更改后的设备名称。
自Skypemate模块与本地Skype应用程序建立连接以后,Skypemate模块就开始实时地从本地Skype应用程序获取本地Skype应用程序与远程Skype应用程序交互的文本信息。当Skypemate模块检测到远程Skype应用程序发往本地Skype应用程序的文本信息中含有预先定义的更改设备请求后,则执行后续步骤。
更改设备请求中的更改后的设备名称的格式可由Skypemate模块与远程Skypemate应用程序通过本地Skype应用程序协商确定,Skypemate模块需保存协商确定的设备名称与Skype API中定义的该设备的标准名称的对应关系,以根据该对应关系,将远程Skype应用程序发来的设备名称转换为操作系统中的设备标准名称。
步骤205Skypemate模块根据获取到的本地Skype应用程序与远程Skype应用程序的通话信息,判断当前本地Skype应用程序与远程Skype应用程序是否正在视频通话过程中且通话未被挂起,若是,执行步骤208;否则,执行步骤206。
本地Skype应用程序可实时地将自身与远程Skype应用程序通话的状态、属性、内容等信息发送给Skypemate模块;或者,Skypemate模块也可在从本地Skype应用程序获取到远程Skype应用程序发来的更改设备请求后,向本地Skype应用程序获取当前的通话状态。在Windows系统中,本地Skype应用程序可通过Windows系统定义的WM_COPYDATA消息将自身的通话状态、属性、内容等信息发送给Skypemate模块,该WM_COPYDATA消息中的CHATMESSAGEID参数标记了文本聊天信息的属性,CALL参数标记了视、音频通话的各种属性,CHATMESSAGE CHATIDBODY参数中则包含了文本聊天信息的内容,CALL CallID Status参数中则记录了通话状态。
在执行完步骤204后,Skypemate模块可以进一步根据自身从本地Skype应用程序所获取到的通话信息,判断发来更新设备请求的远程Skype应用程序是否为正在与本地Skype应用程序通话的远程Skype应用程序,若是,执行步骤205;否则,不作处理,本流程结束。
步骤206Skypemate模块将所述更改设备请求转换为Skype API中定义的更改设备命令后发送给本地Skype应用程序。
Skype API中定义的更改视频设备命令为SET VIDEO_INsVideoInDeviceName,其中,sVideoInDeviceName为视频设备名称。
步骤207本地Skype应用程序收到所述更改设备命令后,将自身绑定的设备更改为所述命令中指示的设备,本流程结束。
步骤208Skypemate模块向本地Skype应用程序发送Skype API中定义的关闭视频命令,本地Skype应用程序收到该关闭视频命令后,关闭当前视频,关闭完成,向Skypemate模块返回关闭完成指示。
Skype API中定义的关闭视频命令为ALTER CALL+sCurrentCallID+STOP_VIDEO_SEND,其中,sCurrentCallID为当前通话的通话标识。Skypemate模块可通过本地Skype应用程序发来的与远程Skype应用程序的通话信息获取当前通话标识。
步骤209Skypemate设备收到关闭完成指示后,将更改设备请求转换为Skype API中定义的更改设备命令,将该更改设备命令发送给本地Skype应用程序。
步骤210本地Skype应用程序收到更改设备命令,将与自身绑定的设备更改为所述命令指示的设备,绑定完成,向Skypemate模块返回绑定完成指示。
步骤211Skypemate模块收到绑定完成指示后,向本地Skype应用程序发送Skype API中定义的开启视频命令,本地Skype应用程序收到该开启视频命令后,开启视频。
Skype API中定义的开启视频命令为ALTER CALL+sCurrentCallID+START_VIDEO_SEND,其中,sCurrentCallID为当前通话的通话标识。
图3为本发明实施例二提供的更改与Skype绑定的设备的流程图,本实施例的应用场景与实施例一相同,如图3所示,其具体步骤如下步骤301~304与步骤201~204相同。
步骤305Skypemate模块判断当前本地Skype应用程序是否正在通话过程中,若是,执行步骤307;否则,执行步骤306。
步骤306Skypemate模块将所述更改设备请求转换为Skype API中定义的更改设备命令后发送给本地Skype应用程序,转至步骤309。
步骤307Skypemate模块向本地Skype应用程序发送关闭通话命令。
在步骤305中,Skypemate模块判定当前本地Skype应用程序正在通话过程中之后、可进一步判断发起更新设备请求的远程Skype应用程序是否为正在与本地Skype应用程序通话的远程Skype应用程序,若是,执行步骤307;否则,不作处理,本流程结束。
步骤308Skypemate模块收到本地Skype应用程序返回的关闭完成指示,将所述更改设备请求转换为Skype API中定义的更改设备命令后发送给本地Skype应用程序。
步骤309本地Skype应用程序收到更改设备命令,将与自身绑定的设备更改为所述命令指示的设备,绑定完成,向Skypemate模块返回绑定完成指示。
步骤310Skypemate模块收到绑定完成指示后,通知本地Skype应用程序呼叫关闭通话之前与自身通话的远程Skype应用程序,以与该远程Skype应用程序重新通话。
图4为本发明实施例三提供的更改与Skype绑定的设备的流程图,在本实施例中,本地Skype应用程序可根据不同Skype用户的呼叫请求,将不同的设备与自身绑定,如图4所示,其具体步骤如下步骤401Skymate模块预先保存Skype用户名与绑定设备名称的对应关系。
步骤402Skypemate模块向系统中所有应用程序模块广播自身的句柄。
步骤403本地Skype应用程序收到该句柄后,向系统中所有应用程序模块广播自身的句柄。
步骤404Skypemate模块收到本地Skype应用程序的句柄,保存该句柄,与本地Skype应用程序的连接建立。
步骤405Skypemate模块侦听到远程Skype应用程序向本地Skype应用程序发来的呼叫请求,根据该呼叫请求中携带的远程Skype用户名,在自身查找到该远程Skype用户名对应的绑定设备名称。
本地Skype应用程序主动地、或根据Skypemate模块的请求实时地将自身的通话状态、属性、内容等信息发送给Skypemate模块,Skypemate模块根据通话状态参数可得知当前是否有远程Skype应用程序呼叫本地Skype应用程序。
步骤406Skypemate模块将该绑定设备名称通过Skype API中定义的更改设备命令发送给本地Skype应用程序。
在实际应用中,若Skypemate模块收到呼叫请求并确定远程Skype用户名对应的绑定设备名称后,若检测到本地Skype应用程序当前正在使用该绑定设备名称对应的设备与其它远程Skype应用程序进行通话,则Skypemate模块可通过本地Skype应用程序向远程Skype应用程序返回忙指示,远程Skype应用程序收到该忙指示后,可每隔一段时间向本地Skype应用程序发送一次呼叫请求,直至该呼叫请求被响应为止;
或者,若Skypemate模块收到呼叫请求并确定远程Skype用户名对应的绑定设备名称后,若检测到本地Skype应用程序当前正在与其它远程Skype应用程序进行通话,则Skypemate模块通知本地Skype应用程序关闭当前通话,并在收到本地Skype应用程序返回的关闭完成指示后,判断当前本地Skype应用程序绑定的设备是否与所述远程Skype用户名对应的设备相同,若是,向本地Skype应用程序发送接受呼叫指示;否则,向本地Skype应用程序发送更改设备命令,该命令中携带所述远程Skype用户名对应的设备名称,并在收到本地Skype应用程序返回的绑定完成指示后,向本地Skype应用程序发送接受呼叫指示。
步骤407本地Skype应用程序根据所述更改设备命令,将所述命令指示的设备绑定到自身上,开始与远程Skype应用程序进行通话,向Skypemate模块返回绑定完成指示。
由于本地Skype应用程序可能设置为绑定视频设备完成后,自动开启该视频设备;也可能设置为绑定视频设备完成后,需外界触发才开启该视频设备。因此,若步骤405中Skypemate模块查找到的远程Skype用户名对应的绑定设备名称为视频设备名称,则Skypemate模块收到绑定完成指示后,还需判断绑定的视频设备是否已经开启,若是,不作处理;否则,向本地Skype应用程序发送开启视频命令。
从以上本发明实施例一、二和三可以看出无论本地Skype应用程序是否正在通话,无论本地Skype应用程序正在与谁通话,本发明都可以远程实现本地Skype应用程序绑定设备的更改。
以下,将与Skypemate模块运行在操作系统同一用户身份下的Skype应用程序称为本地Skype模块,将与本地Skype模块通信的Skype模块称为远程Skype模块。
图5为本发明提供的更改与Skype绑定的设备的系统组成图,如图5所示,其主要包括Skypemate模块51、本地Skype模块52和远程Skype模块53,其中
Skypemate模块51用于向本地系统中所有应用程序模块广播自身的句柄,当接收到本地Skype模块52发来的句柄时,保存该句柄,与本地Skype模块52建立连接;当从本地Skepe模块52获取到与本地Skype模块52通信的远程Skype模块53发来的绑定设备相关消息时,根据该消息确定与本地Skype模块52绑定的设备名称,将该设备名称通过Skype API中定义的更改设备命令通知本地Skype模块52。
本地Skype模块52用于在收到Skypemate模块51发来的句柄时,保存该句柄,并向Skypemate模块51发送自身的句柄;接收到远程Skype模块53发来的绑定设备相关消息,将该绑定设备相关消息发送给Skypemate模块51;接收到Skypemate模块51发来的更改设备命令,根据该命令中的设备名称,将自身绑定到对应设备上。
远程Skype模块53用于在确定要将设备绑定到本地Skype模块52上时,将该设备名称携带在绑定设备相关消息中发送给本地Skype模块52。
图6为本发明实施例一提供的Skypemate模块的结构示意图,如图6所示,其主要包括连接建立模块61、更改设备请求获取模块62、视频通话判断模块63和更改设备命令发送模块64,其中连接建立模块61用于在启动时,向本地系统中的所有应用程序模块广播自身的句柄,接收本地Skype模块52发来的句柄,并保存该句柄。
更改设备请求获取模块62用于从本地Skype模块52获取远程Skype模块53发给本地Skype模块52的文本信息,检测到该文本信息中包含更改设备请求时,将该请求携带的更改后的设备名称发送给更改设备命令发送模块64,并向视频通话判断模块63发送启动指示。
更改设备请求获取模块62进一步用于,判断发来更改设备请求的远程Skype模块53是否为正在与本地Skype模块52通话的远程Skype模块,若是,将该请求携带的更改后的设备名称发送给更改设备命令发送模块64,并向视频通话判断模块63发送启动指示;否则,不作处理。
视频通话判断模块63用于在收到更改设备请求获取模块62发来的启动指示后,根据从本地Skype模块52获取的本地Skype模块与远程Skype模块的当前通话信息,判断当前本地Skype模块52是否正在视频通话过程中且通话未被挂起,若是,向本地Skype模块52发送关闭视频命令,在收到本地Skype模块52返回的关闭完成指示后,向更改设备命令发送模块64发送更改指示,并在收到本地Skype模块52返回的绑定完成指示后,向本地Skype模块52发送开启视频命令;否则,直接向更改设备命令发送模块64发送更改指示。
更改设备命令发送模块64用于在收到视频通话判断模块63发来的更改指示后,将更改设备请求获取模块62发来的更改后的设备名称通过Skype API中定义的更改设备命令发送给本地Skype模块52。
图7为本发明实施例二提供的Skypemate模块的结构示意图,如图7所示,其主要包括连接建立模块71、更改设备请求获取模块72、关闭通话命令发送模块73和更改设备命令发送模块74,其中连接建立模块71用于在启动时,向本地系统中的所有应用程序模块广播自身的句柄,接收本地Skype模块52发来的句柄,并保存该句柄。
更改设备请求获取模块72用于从本地Skype模块52获取远程Skype模块53发给本地Skype模块52的文本信息,检测到该文本信息中包含更改设备请求时,将该请求携带的更改后的设备名称发送给更改设备命令发送模块74,并向关闭通话命令发送模块73发送启动指示。
更改设备请求获取模块72进一步用于,判断发来的更改设备请求的远程Skype模块53是否为正在与本地Skype模块52通话的远程Skype模块,若是,将该请求携带的更改后的设备名称发送给更改设备命令发送模块74,并向关闭通话命令发送模块73发送启动指示;否则,不作处理。
关闭通话命令发送模块73用于在收到更改设备请求获取模块72发来的启动指示后,根据从本地Skype模块52获取的本地Skype模块与远程Skype模块的当前通话信息,判断当前本地Skype模块52是否正在通话过程中,若是,向本地Skype模块52发送关闭通话命令,并在收到本地Skype模块52发来的关闭完成指示后,向更改设备命令发送模块74发送更改指示,并在收到本地Skype模块52返回的绑定完成指示后,通知本地Skype模块52呼叫远程Skype模块53;否则,直接向更改设备命令发送模块74发送更改指示。
更改设备命令发送模块74用于在收到关闭通话命令发送模块73发来的更改指示后,将更改设备请求获取模块62发来的更改后的设备名称通过SkypeAPI中定义的更改设备命令发送给本地Skype模块52。
图8为本发明实施例三提供的更改与Skype绑定的设备的结构示意图,如图8所示,其主要包括连接建立模块81、Skype用户名获取模块82、用户名绑定设备映射模块83,其中连接建立模块81用于在启动时,向本地系统中的所有应用程序模块广播自身的句柄,接收本地Skype模块52发来的句柄,并保存该句柄。
Skype用户名获取模块82用于在从本地Skype模块52获取到远程Skype模块53向本地Skype模块52发来呼叫请求时,将该请求中携带的远程Skype用户名发送给用户名绑定设备映射模块83。
用户名绑定设备映射模块83用于保存Skype用户名与绑定设备名称的对应关系,当收到Skype用户名获取模块82发来的远程Skype用户名时,在所述对应关系中查找到该远程Skype用户名对应的绑定设备名称,将该绑定设备名称通过Skype API中定义的更改设备命令发送给本地Skype模块52。
进一步地,用户名绑定设备映射模块83用于,检测到本地Skype模块52当前正在使用远程Skype用户名对应的设备与其它远程Skype模块进行通话,则通过本地Skype模块52向远程Skype53模块发送忙指示。
对应地,远程Skype模块53收到忙指示后,每隔一段时间向本地Skype模块52发送一次呼叫请求,直至该呼叫请求被响应为止。
或者,进一步地,用户名绑定设备映射模块83用于,检测到本地Skype模块52当前正在与其它远程Skype模块进行通话,则向本地Skype模块52发送关闭通话命令,并在收到本地Skype模块52返回的关闭完成指示后,判断当前本地模块52绑定的设备是否与所述远程Skype用户名对应的设备相同,若是,向本地Skype模块52发送接受呼叫指示;否则,向本地Skype模块52发送更改设备命令,该命令中携带所述远程Skype用户名对应的设备名称,并在收到本地Skype模块52返回的更改完成指示后,向本地Skype模块52发送接受呼叫指示。这里,其它远程Skype模块指的是除发来呼叫请求的远程Skype模块以外的远程Skype模块。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种更改与Skype绑定的设备的方法,其特征在于,包括第三方模块与本地Skype应用程序建立连接,之后从本地Skype应用程序获取到远程Skype应用程序发来的绑定设备相关消息,根据该消息确定与本地Skype应用程序绑定的设备,然后通知本地Skype应用程序绑定该设备。
2.如权利要求1所述的方法,其特征在于,所述第三方模块与本地Skype应用程序建立连接包括第三方模块向本地系统广播自身的句柄,本地Skype应用程序收到该第三方模块的句柄后,向本地系统广播自身的句柄,第三方模块收到本地Skype应用程序的句柄,与本地Skype应用程序的连接建立。
3.如权利要求1所述的方法,其特征在于,所述绑定设备相关消息为更改设备请求,且该请求携带更改后的设备名称。
4.如权利要求3所述的方法,其特征在于,所述第三方模块从本地Skype应用程序获取到远程Skype应用程序发来的绑定设备相关消息之后、确定与本地Skype应用程序绑定的设备之前进一步包括第三方模块判断所述远程Skype应用程序是否为正在与本地Skype应用程序通话的远程Skype应用程序,若是,根据所述消息确定与本地Skype应用程序绑定的设备;否则,不作处理,本流程结束。
5.如权利要求3或4所述的方法,其特征在于,所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前进一步包括第三方模块判断本地Skype应用程序是否正在视频通话过程中且通话未被挂起,若是,则通知本地Skype应用程序关闭视频,然后通知本地Skype应用程序绑定所述设备,最后通知本地Skype应用程序开启视频;否则,直接通知本地Skype应用程序绑定所述设备。
6.如权利要求3或4所述的方法,其特征在于,所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前进一步包括第三方模块判断本地Skype应用程序是否正在通话过程中,若是,则通知本地Skype应用程序关闭通话,然后通知本地Skype应用程序绑定所述设备,最后通知本地Skype应用程序重新呼叫所述关闭通话之前与自身通话的远程Skype应用程序;否则,直接通知本地Skype应用程序绑定所述设备。
7.如权利要求5或6所述的方法,其特征在于,所述第三方模块从本地Skype应用程序获取远程Skype应用程序发来的绑定设备相关消息包括第三方模块实时从本地Skype应用程序获取远程Skype应用程序发往本地Skype应用程序的文本信息,并检测到该文本信息包含所述更改设备请求。
8.如权利要求1所述的方法,其特征在于,所述方法进一步包括第三方模块预先设置Skype用户名与绑定设备名称的对应关系;所述绑定设备相关消息为呼叫请求。
9.如权利要求8所述的方法,其特征在于,所述第三方模块确定与本地Skype应用程序绑定的设备包括第三方模块根据所述呼叫请求携带的远程Skype用户名,在所述对应关系中查找到对应的设备名称,确定该设备名称对应设备为远程Skype应用程序要求本地Skype应用程序绑定的设备。
10.如权利要求9所述的方法,其特征在于,所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前,进一步包括第三方模块判断当前本地Skype应用程序是否正在使用所述确定的绑定设备,若是,通过本地Skype应用程序向远程Skype应用程序返回忙指示;否则,通知本地Skype应用程序绑定该设备。
11.如权利要求9所述的方法,其特征在于,所述第三方模块确定与本地Skype应用程序绑定的设备之后、通知本地Skype应用程序绑定该设备之前,进一步包括第三方模块检测到本地Skype应用程序当前正在与非发来所述呼叫请求的其它远程Skype应用程序通话,第三方模块通知本地Skype应用程序关闭当前通话,之后判断当前本地Skype应用程序绑定的设备是否与所述远程Skype用户名对应的设备相同,若是,向本地Skype应用程序发送接受呼叫指示;否则,通知本地Skype应用程序绑定该设备,并在收到本地Skype应用程序返回的绑定完成指示后,向本地Skype应用程序发送接受呼叫指示。
12.如权利要求1所述的方法,其特征在于,所述设备为视频设备,或音频设备,或视音频复合设备。
13.一种更改与Skype绑定的设备的系统,其特征在于,包括第三方模块、本地Skype模块和远程Skype模块,其中第三方模块,用于根据本地Skype模块发来的句柄,与本地Skype模块建立连接,根据从本地Skype模块获取的远程Skype模块发来的绑定设备相关消息,确定与本地Skype模块绑定的设备,将该设备名称发送给本地Skype模块;本地Skype模块,用于根据第三方模块发来的句柄,与第三方模块建立连接,将远程Skype模块发来的绑定设备相关消息发送给第三方模块,将第三方模块发来的设备名称对应的设备绑定到自身;远程Skype模块,用于在确定要将设备绑定到本地Skype模块上时,向本地Skype模块发送绑定设备相关消息。
14.一种更改与Skype绑定的设备的第三方模块,其特征在于,包括连接建立模块,用于向本地Skype模块广播自身的句柄,接收本地Skype模块发来的句柄;更改设备请求获取模块,用于从本地Skype模块获取远程Skype模块发来的信息,检测到该信息包含更改设备请求,将该请求携带的更改后的设备名称发送给更改设备命令发送模块,并向视频通话判断模块发送启动指示;视频通话判断模块,用于在收到启动指示后,判断当前本地Skype模块是否正在视频通话过程中且通话未被挂起,若是,通知本地Skype模块关闭视频,之后向更改设备命令发送模块发送更改指示,再通知本地Skype模块开启视频;否则,直接向更改设备命令发送模块发送更改指示;更改设备命令发送模块,收到启动指示后,将收到的更改后的设备名称通过更改设备命令发送给本地Skype模块。
15.如权利要求14所述的第三方模块,其特征在于,所述更改设备请求获取模块进一步用于,判断发来更改设备请求的远程Skype模块是否为正在与本地Skype模块通话的远程Skype模块,若是,将该请求携带的更改后的设备名称发送给更改设备命令发送模块,并向视频通话判断模块发送启动指示;否则,不作处理。
16.一种更改与Skype绑定的设备的第三方模块,其特征在于,包括连接建立模块,用于向本地Skype模块广播自身的句柄,接收本地Skype模块发来的句柄;更改设备请求获取模块,用于从本地Skype模块获取远程Skype模块发来的信息,检测到该信息包含更改设备请求,将该请求携带的更改后的设备名称发送给更改设备命令发送模块,并向关闭通话命令发送模块发送启动指示;关闭通话命令发送模块,用于在收到启动指示后,判断当前本地Skype模块是否正在通话过程中,若是,通知本地Skype模块关闭通话,之后向更改设备命令发送模块发送更改指示,之后通知本地Skype模块呼叫之前与自身通话的远程Skype模块;否则,直接向更改设备命令发送模块发送更改指示;更改设备命令发送模块,用于在收到更改指示后,将收到的更改后的设备名称通过更改设备命令发送给本地Skype模块。
17.一种更改与Skype绑定的设备的第三方模块,其特征在于,包括连接建立模块,用于向本地Skype模块广播自身的句柄,接收本地Skype模块发来的句柄;Skype用户名获取模块,用于从本地Skype模块获取远程Skype模块发来呼叫请求,将该请求中携带的远程Skype用户的用户名发送给绑定设备确定模块;用户名绑定设备映射模块,用于保存Skype用户名与绑定设备名称的对应关系,接收到远程Skype用户名,根据所述对应关系确定对应的绑定设备名称,通知Skype模块绑定与该设备名称对应的设备。
18.如权利要求17所述的第三方模块,其特征在于,所述用户名绑定设备映射模块进一步用于,检测到当前本地Skype模块正在使用所述远程Skype用户名对应的绑定设备与其它远程Skype模块通信,则通过本地Skype模块向远程Skype模块返回忙指示。
19.如权利要求17所述的第三方模块,其特征在于,所述用户名绑定设备映射模块进一步用于,检测到本地Skype模块当前正在与非发来呼叫请求的其它远程Skype模块进行通话,通知本地Skype模块关闭通话,之后判断当前本地模块绑定的设备是否与所述远程Skype用户名对应的设备相同,若是,向本地Skype模块发送接受呼叫指示;否则,向本地Skype模块发送更改设备命令,该命令中携带所述远程Skype用户名对应的设备名称,并在收到本地Skype应用程序返回的绑定完成指示后,向本地Skype模块发送接受呼叫指示。
全文摘要
本发明公开了一种更改与Skype绑定的设备的方法,包括第三方模块与本地Skype应用程序建立连接,从本地Skype应用程序获取到远程Skype应用程序发来的绑定设备相关消息,根据该消息确定与本地Skype应用程序绑定的设备,然后通知本地Skype应用程序绑定该设备。本发明同时公开了一种更改与Skype绑定的设备的系统,包括第三方模块、本地Skype模块和远程Skype模块;本发明还公开了三种更改与Skype绑定的设备的第三方模块。本发明实现了在无需手工参与条件下,更改与Skype应用程序绑定的设备的目的。本发明可实现远程动态点播,也可满足呼叫的远程Skype用户的个性化要求。
文档编号H04L12/66GK1996965SQ20061016207
公开日2007年7月11日 申请日期2006年12月8日 优先权日2006年12月8日
发明者郭廷良, 谢律, 傅群 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1