SKYPE的API接口文档_CN
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
保密条款:本文件为 Skype TechnologiesS.A.公司所有,全部内容严格保密。
本档仅在保密基础上提供给被选中并符合条件的潜在
合作伙伴、客户或供货商,任何其他人一概不得使用。
亦不得以任何形式加以复制、保存
、传播或备份。
如收件人接受本档,即表示他或她同意,在终止与Skype Technologies
S.A.合作时,须将此档退还本公司。
他或她进一步同意,未经许可不得备份、传真、复制或传播所收到的、与本公司合作之业
务有关的任何文件。
本档不构成销售要约或招揽收购的要约。
© Skype Technologies S.A 3
1 本文档编撰目的
介绍 Skype API 并说明建置透过API与Skype沟通的应用程序和装置。
2 版本修订纪录
2.1API
修订版: 1.0.0.94
日期: 2004-10-21
发行说明:API公开释出
修订版: 1.1.0.61
日期: 2005-01-12
发行说明:
• 增加内容:协议 3
• 更新内容:API –现仅允许每个用户同时进行一项搜寻。
在收到前一项搜寻
结果之前发出新的搜寻指令将导致错误72。
• 更新内容:API现仅允许每个用户同时进行一项搜寻。
• 更新内容:CHAT和CHATMESSAGE属性
• 错误修正:API 以前会显示前一位用户的通话和留言
• 错误修正:修正了使用协议 3 时出现的语法混乱
• 错误修正:SEARCH MESSAGES 不再回传 CHATMESSAGES值,
如果使用协议 2 的话
• 错误修正:API以前仅显示讯息的第一个字或全名
• 错误修正:访问控制列表(ACL)只记住一项程序的许可
• 错误修正:MC信息标识符无法回传
• 错误修正:与原有应用程序的链接问题
• 错误修正:修正了在两个 Windows 账户下同时使用 Skype
时出现的应用程序异常
• 错误修正:Win98/Me 中显示有许多动态链接库(dll)檔而不是各自的
应用程序在使用 Skype
• 错误修正:API有时不回传'BUDDYSTATUS 1' 讯息
修订版: 1.2.0.11
2005-03-04
发行说明:
• 增加内容:协议 4
• 支持电话会议:召开电话会议、增加会议人数并能够获得参加会议者的
名单和有关通知
• 可查看SkypeOut余额
• 可拨打快速拨号单内的号码
• 声频装置变更通知
• 删除即时消息(IM)记录的通知
© Skype Technologies S.A 4
• 将语言与国家选项修改为按国际标准国家代码(ISO)名单而非以国家
名称回传(新做法:从协议 4 开始,语言与国家回传值之前将加上 ISO 代码('GET USER echo123 COUNTRY' => 'USER echo123 COUNTRY ee
Estonia'))
• 关闭 Skype 的通知
• 支持 SkypeIn
•为了排除错误而将程序暂停一秒钟的登录机码
• 可增加用户句柄至 OPEN ADDAFRIEND
• CALL FAILUREREASON 1 –文件文件记录错误,文件文件改用 "Misc error" (其他类错误)显示
• 更新内容:如找不到 CHATMESSAGE 属性,'SET CHATMESSAGE id'
指令将发出同一错误讯息,而不论信息标识符是否存在
• 更新内容:PSTN_STATUS 发出从网关回传的错误字符串
• 更新内容:HASCALLEQUIPMENT 回传值永远显示 TRUE
• 错误修正:#11648API:"AUDIO IN" 和"AUDIO OUT" 指令不能正确读取
双字节驱动程序命名
• 错误修正:#11473API:BTN_PRESSED E 指令失效,出现错误号码 71
无效机码
• 错误修正:#11472API:静音功能被启动
• 错误修正:#11473API:初始设定参加电话会议人数超过 4 人
• 错误修正:#11368API:IMHISTORYCHANGED 指令无效
• 错误修正:#11272API:MUTE 指令无效
• 错误修正:#11473API:无法使用快速拨号拨给 SkypeOut 联络人
• 错误修正:#11473API:空白CALL 指令无响应
• 错误修正:#11204 SKYPE 存取应用程序编程接口不能拒绝存取装置。
• 更新内容:#10567 经由电话应用程序编程接口上下自动扩展联络人名单群组• 错误修正:#11473API:用户更换声频装置时不发出通知
2.2 文件
修订版本日期修改人备注/更新内容
-10-22 Taavet Hinrikus API公开释出
1.1 2005-01-12 Taavet Hinrikus Skype释出版本
1.2 2005-03-04 Taavet Hinrikus
Skype释出版本1.2,协议4,
开发工程师常见问题解
答项目等等
3 法定地位
© Skype Technologies S.A 5
本API文件档和SkypeAPI均为SkypeTechnologies S.A. 或其关联公司版权所有。
有关使用限制请查阅Skype 网站上登载的终端用户许可协议(EULA):
http: ///go/eula
4 简介
SkypeAPI可分为两个不同的部分。
Skype电话API和Skype存取API:
• Skype 电话API是Skype用来存取装置的接口,其中包括但不限于USB
电话。
装置
本身并不一定是硬件,但通常指的是硬件装置。
这一API由Skype控制,而且API
的装置面可被视作驱动程序。
Skype为控制方。
该API在抽象事件的层次上操作,
例如,绿色键被按下、耳机被拔掉、装置应响起铃声等。
与Skype电话API兼容的驱动程序,应在安装时中自动完成安装,这样Skype才会
知道其存在。
可以建立一个
USB装置和相关驱动程序的数据库,使Skype能够侦测出新的装置并提示安装驱
动程序。
• Skype存取API是Skype发行给第三方第三方应用程序以存取Skype功能的
接口,例如,拨电话、发送文字讯息、索取Skype用户数据等。
第三方第三方应用程序在此API中为控制方。
Skype可有选择性地逐一向应用程
式授予Skype存取API存取的权利。
5 一般API概述
API是根据在Skype与装置(或装置驱动器或在主机上执行的控制器)之间往返传递的简单文字讯息建立起来的。
6 电话API
现已建置的电话API指令如下所列。
6.1 从装置发至Skype
• NAME deviceName
• PROTOCOL version
• AUDIO_IN deviceName
• AUDIO_OUT deviceName
• HOOK ON|OFF
• MUTE ON|OFF
• BTN_PRESSED (0-9,A-Z,#,*,UP,DOWN,YES,NO,SKYPE)
BTN_RELEASED ...
6.2 从Skype发至装置
• MUTE ON|OFF
© Skype Technologies S.A 6
7 存取API
目前有一些指令 (PROTOCOL, AUDIO_*) 可以用于Skype存取API和Skype电话API。
7.1 使用介绍
当客户端应用程序经由SkypeAPI开始使用Skype时,Skype则会将声频装置转换到用户
端经由API所报告的装置。
当传输层连结中止或被切断时,Skype则会将声频
装置转换回到上一次选取的装置(Skype将定期检测传输层是否仍然
保持连结)。
如果用户将声频装置以手调方式转换到其他装置(与运行中的客户端所报告的装置比对),将来可能会经由API提供通知。
可能会要求终端用户确认允许第三方利用API来使用Skype。
所有使用API执行的
操作都会被反映到正在计算机执行的Skype应用程序上。
请注意,API的所有时间与日期均采用UTC (协调世界时)。
7.2 支持多个客户端程序
多个客户端应用程序可以同时使用SkypeAPI。
链接Skype时协议保持不变,以下情
况除外:建立通讯时,客户端应向系统中所有窗口广播窗口讯息('SkypeControlAPIDisc over'),并用wParam参数指定本身窗口句柄。
回应时,
Skype向指定的句柄发出'SkypeControlAPIAttach'的讯息,并在wParam参数中显
示出通话窗口句柄。
请注意,不应再采用'SkypeControlAPI' 指令轮询Skype,我们将在下一个版本介绍
一种新的网络探测(pinging )指令。
7.3 API的访问控制列表(ACL)
每当一个应用程序试图使用SkypeAPI时,就会弹出一个要求用户确认的对话窗口—
无论是否允许该程序使用API。
这一功能的主要作用在于保护用户的隐私和安全。
为保持操作简便、易于用户使用,我们向开发人员建议如下:
• 可执行程序 (.exe檔) 的命名应当通俗易懂,例如,"SkypeForWindows.exe". "SkypeForWindows.exe",这一点非常重要,因为用户可以直接看到可执行文件案名称。
如果文件名含糊不清,用户就可能不允许该程序存取Skype。
• 签名–应用程序应以VeriSign的CodesSigning(代码签字)证书签署。
• NAME指令–应用程序应支持"NAME"指令并应将其名称发表。
7.4 SkypeOut
4 Skype Technologies S.A 7
7.4.1 SkypeOut 联络人名单
可以索取SkypeOut 联络人名单—这些数据现已成为主要名单的一部分,亦即
如果执行 "SEARCH FRIENDS" 指令,则会回传表内联络人名单号码。
如需得到目前用户的SkypeOut 联络人号码的详细数据,可执行
"GET USER <number> <fullname>"。
SkypeOut 联络人,"GET USER <number>
ONLINESTATUS"指令时将回传"SKYPEOUT"。
7.5 怎样检测Skype
如需检测是否已安装Skype,请查看以下登录机码:
HKCU\Software\Skype\Phone '?SkypePath' 。
该机码将指出skype.exe的位置。
如找不到该机码,还应查一下程序是否有
HKLM\Software\Skype\Phone '?SkypePath' 此一机码(如找不到HKCU,但可找到HKLM,则说明skype已经由管理员账号安装,但尚未被目前用户所使用)。
7.6 版本信息
每次释出API的新版本时,协议版本号码都会增加。
客户端要使用该API时,必须让Skyp eAPI知道它所支持的最新版本。
Skype将报出自己的最新版本号作为回答,并将以Skyp e所报号码版本做为使用的协议版本。
Skype报出的协议版本永远不会比客户端程序支持的版本更高。
Skype的默认版本是协议版本1。
Skype支持的版本可以PROTOCOL
99999查询。
例如:客户端采用版本3,并向Skype报出 "PROTOCOL
3",Skype支持版本2并报出"PROTOCOL
2"作为回答。
版本2则为此例中使用的协议版本。
关于SkypeAPI版本更新和出现客户端支持低于Skype版本时的说明:
• Skype不但不会删除新版本发来的讯息,而且会执行讯息要求的指令
• 客户端应会忽略未知指令和属性(可能来自新版本的API,如新状态属性等)
7.7 Skype API协议版本
目前有协议版本1、2和3。
7.7.1 协议2新增功能
• 新增 onlinestatus SKYPEME。
5 Skype Technologies S.A 8
• 如通话处于暂候状态, API会分别向所有客户端发出"CALL xx STATUS LOCALHOLD / REMOTEHOLD" 的通知。
协定1仅回传ONHOLD。
• 新增 call status CANCELLED
7.7.2 协议3新增功能
• 多人聊天指令
• 旧版即时消息(IM)的相容层
7.7.3 协议4新增功能
•在语言和国家值前面补加ISO代码
协议1、2的兼容性
如要求的协议版本低于3,则所有导入指令均以下列方式被转换:
• SEARCH MESSAGES -> SEARCH CHATMESSAGES
• SEARCH MISSEDMESSAGES -> SEARCH MISSEDCHATMESSAGES
• GET MESSAGE -> GET CHATMESSAGE
• SET MESSAGE -> SET CHATMESSAGE
GET MESSAGE属性也被转换:
• PARTNER_HANDLE -> FROM_HANDLE
• PARTNER_DISPNAME -> FROM_DISPNAME
所有对API发出的通知的回答 (包括 GET/SET MESSAGE) 均被转换:
• CHATMESSAGE * FROM_HANDLE x -> MESSAGE *
PARTNER_HANDLE x
• CHATMESSAGE * FROM_DISPNAME x -> MESSAGE *
FROM_DISPNAME x
• CHATMESSAGE * FROM_DISPNAME x -> MESSAGE *
如协议版本低于3,SEARCH MESSAGES 和 SEARCH
MISSEDMESSAGES指令将回传字符串 MESSAGES 1、2、3。
7.8 从Skype发至装置
7.8.1 状态指令
所有这些指令均由Skype在初次建立连结或在出现参数更变时进行广播。
可用GET 指令随时对它们进行查询。
用户状态
语法:USERSTATUS status
status - 用户状态值。
适用值:
• UNKNOWN.
• ONLINE - 目前用户处于上线状态。
• OFFLINE -目前用户处于脱机状态。
• SKYPEME - 目前用户正在使用"Skype Me" 模式 (协议2)。
6 Skype Technologies S.A 9
• AWAY - 目前用户处于暂时离开状态。
• NA - 目前用户离开。
• DND - 目前用户处于“请勿打扰”模式。
• INVISIBLE - 目前用户处于隐藏状态,其他用户看不见。
• LOGGEDOUT - 目前用户已注销。
用户已断线。
例如:USERSTATUS INVISIBLE
连结状态
语法:CONNSTATUS status
status –连结状态值。
适用值:
• OFFLINE
• CONNECTING
• PAUSING
• ONLINE
• LOGGEDOUT - 目前用户已注销。
例如:CONNSTATUS ONLINE
目前用户句柄
CURRENTUSERHANDLE userhandle
例如:CURRENTUSERHANDLE banana
7.8.2 搜寻结果
这些是对SEARCH指令的响应。
将来会把搜索结果数目限制在N个
(N值可以被设定),但现在没有限制。
今后可能支持传呼或自定范围查询。
用户搜寻
找到的用户名单。
语法:USERS user1 [,user2] [,user3]
例如:USERS abc, -abc-, abc10
朋友搜寻
找到的朋友名单。
语法:USERS user1 [,user2] [,user3]
例如:USERS tim, joe, mike
通话搜寻
找到的通话标识符名单。
7 Skype Technologies S.A 10
语法:CALLS id1 [,id2] [,id3]
例如:CALLS 15, 16, 39
未接来电的搜寻
找到的未接来电标识符名单。
语法:CALLS id1 [,id2] [,id3]
例如:CALLS 15, 16, 39
留言搜寻
找到的留言标识符名单。
语法:MESSAGES id1 [,id2] [,id3]
例如:MESSAGES 15, 16, 39
错过的留言搜寻
找到的错过留言标识符名单。
语法:MESSAGES id1 [,id2] [,id3]
例如:MESSAGES 15, 16, 39
聊天搜寻
找到的聊天标识符名单。
语法:CHATS id1 [,id2] [,id3]
例如:CHATS #test_2/$testtest20;54389d65f7d6f2c4,
#test_b/$testtest20;867c47704bcc71fb
进行中的聊天搜寻
找到的UI上开放的聊天标识符名单。
语法:CHATS id1 [,id2] [,id3]
CHATS #test_2/$testtest20;54389d65f7d6f2c4,
#test_b/$testtest20;867c47704bcc71fb
错过的聊天搜寻
找到的含未读讯息的聊天标识符名单。
语法:CHATS id1 [,id2] [,id3]
例如:CHATS #test_2/$testtest20;54389d65f7d6f2c4,
#test_b/$testtest20;867c47704bcc71fb
最近的聊天搜寻
找到的最近聊天标识符名单。
语法:CHATS id1 [,id2] [,id3]
例如:CHATS #test_2/$testtest20;54389d65f7d6f2c4,
#test_b/$testtest20;867c47704bcc71fb
8 Skype Technologies S.A 11
标注的聊天搜寻
找到的标注聊天标识符名单。
语法:CHATS id1 [,id2] [,id3]
例如:CHATS #test_2/$testtest20;54389d65f7d6f2c4,
#test_b/$testtest20;867c47704bcc71fb
7.8.3 通知
如相应对象发生变化或以GET指令请求属性值,Skype则会发出通知。
另外,如果属性值被SET指令所更改,会发出通知,确认更改。
涉及相关对象时会发出通知,如好友名单(buddylist)内的用户、正在进行的通话和即时讯息等。
"PROP"是对应对象的属性。
用户对象
就用户对象的属性发出通知。
语法:USER USERNAME PROP VALUE
USERNAME –用户名。
PROP - 属性名。
适用属性:
• HANDLE –用户名。
例如:USER pamela HANDLE pamela。
• FULLNAME –用户全名。
例如:USER pamela FULLNAME Jane
Doe.
• BIRTHDAY –以YYYYMMDD格式表示用户生日。
例如:USER bitman
BIRTHDAY 19780329.
• SEX –例如:USER pamela SEX UNKNOWN.值:
• UNKNOWN –用户在个人资料内未注明性别。
• MALE
• FEMALE
• LANGUAGE –语言名称。
例如:USER mike LANGUAGE
.协议4中采用ISO前置码,例如:USER mike LANGUAGE
en English.
• COUNTRY –国家名称。
例如:USER mike COUNTRY Estonia.在
协议4中采用ISO前置码,例如:USER mike COUNTRY Estonia.
• PROVINCE –例如:USER mike PROVINCE Harjumaa.
• CITY –例如:USER mike CITY Tallinn.
• PHONE_HOME –例如:USER mike PHONE_HOME 3721111111.
• PHONE_OFFICE –例如:USER mike PHONE_OFFICE 3721111111.
• PHONE_ MOBILE –例如:USER mike PHONE_MOBILE 3721111111. • HOMEPAGE –例如:USER mike HOMEPAGE http: //. • ABOUT –例如:USER mike ABOUT I am a nice person.
9 Skype Technologies S.A 12
• HASCALLEQUIPMENT –回传值永远显示TRUE。
例如:USER pamela HASCALLEQUIPMENT TRUE.
• BUDDYSTATUS –例如:USER pamela BUDDYSTATUS 2. 可设定的BUDDYSTATUS 值:
• 0 –从未列入联络人名单。
• 1 –已从联络人名单内删除。
• 2 –有待授权。
• 3 - 已加入联络人名单。
• ISAUTHORIZED –已得到目前用户的授权。
例如:USER pamela ISAUTHORIZED TRUE. 值:
• TRUE
• FALSE
• ISBLOCKED –已被目前用户封锁。
例如:USER spammer ISBLOCKED TRUE. 值:
• TRUE
• FALSE
• DISPLAYNAME –例如:USER pamela DISPLAYNAME pam.
• ONLINESTATUS 用户上线状态。
例如:USER mike
ONLINESTATUS ONLINE. 值:
• UNKNOWN –未知用户。
• OFFLINE –用户处于脱机状态(未联机)。
如果目前用户未经其他用户授权而查看他/她的上线状态,也会回传此值。
• ONLINE - 用户处于上线状态。
• AWAY –用户处于暂时离开状态(已有一定时间没活动)。
• NA - 用户离开。
• DND - 用户处于“请勿打扰”模式。
• SKYPEOUT –用户在SkypeOut 联络人名单内。
SKYPEME (协议 2)
• LASTONLINETIMESTAMP - UNIX时间戳,仅供脱机用户查阅。
例如:USER mike LASTONLINETIMESTAMP 1078959579.
通话对象
就通话对象的属性发出通知。
语法:CALL ID PROP VALUE
ID –通话标识符。
PROP - 属性名。
适用属性:
• TIMESTAMP –通话的时间(UNIX时间戳)。
例如:
CALL 17 TIMESTAMP 1078958218
• PARTNER_HANDLE –例如:CALL 17 PARTNER_HANDLE mike
• PARTNER_DISPNAME –例如:CALL 17 PARTNER_DISPNAME Mike
Mann
10 Skype Technologies S.A 13
• CONF_ID –如果CONF_ID>0,则为电话会议。
例如:CALL 17 CONF_ID 0 • TYPE –通话类型。
例如:CALL 17 TYPE OUTGOING_PSTN. 可设定的TYPE值:
• INCOMING_PSTN –从PSTN接入的来电。
• OUTGOING_PSTN –向PSTN拨出的电话。
• INCOMING_P2P - 从P2P接入的来电。
• OUTGOING_P2P –向 P2P拨出的电话。
• STATUS –通话状态。
例如:CALL 17 STATUS FAILED.可设定的STATUS值:
• UNPLACED –从未打过的电话。
• ROUTING –通话正在转接中。
• EARLYMEDIA –
采用pstn,则可能在实际建立通话之前,已开始播放媒体。
例如可以出现来电铃声或待接留言(线路繁忙,请稍候)等。
• FAILED –
电话未接通。
试图获得FAILUREREASON,以便了解详细原因。
• RINGING –电话铃正在响。
• INPROGRESS –通话正在进行中。
• ONHOLD –通话处于暂候状态。
• FINISHED –通话完毕。
• MISSED –未接到来电。
• REFUSED –来电被拒接。
• BUSY –对方电话占线,即已按下挂机键。
• CANCELLED (协议 2)
• FAILUREREASON –例如:CALL 17 FAILUREREASON 1 (数字表示).
SUBJECT –未使用。
• PSTN_NUMBER –例如:CALL 17 PSTN_NUMBER 372123123.
• DURATION –例如:CALL 17 DURATION 0.
• PSTN_STATUS –进行PSTN通话时从网关回传的错误字符串。
例如:CALL 26 PSTN_STATUS 6500 PSTN connection creation timeout. • CONF_PARTICIPANTS_COUNT –
举行电话会议时非会议主持者的人数。
可设定值:
• 0 –通话不属于电话会议。
因为会议主持人CONF_PARTICIPANTS_COUNT
永远为 0。
• 1 –通话是以前的电话会议。
• 2, 3, 4 –通话属于电话会议。
• CONF_PARTICIPANT n –
电话会议第n个参加者的句柄、通话类型与状态、以及参加者的姓名显示(仅限非主持人)。
例如:CALL 59 CONF_PARTICIPANT 1 echo123
INCOMING_P2P INPROGRESS Echo Test Service.
11 Skype Technologies S.A 14
MESSAGE物件
就讯息对象的属性发出通知。
语法:MESSAGE ID PROP VALUE
ID –讯息标识符。
PROP - 属性名。
适用属性:
• TIMESTAMP –讯息送出的时间(UNIX时间戳)。
例如:MESSAGE 21 TIMESTAMP 1078958218
• PARTNER_HANDLE –例如:MESSAGE 21 PARTNER_HANDLE mike
• PARTNER_DISPNAME –例如:MESSAGE 21
PARTNER_DISPNAME Mike Mann
• CONF_ID –未使用。
• TYPE –讯息类型。
例如:MESSAGE 21 TYPE TEXT.可设定的
TYPE值:
• AUTHREQUEST –请求授权。
• TEXT –即时消息或标题组。
• CONTACTS –联络人数据。
• UNKNOWN.—其他。
• STATUS –讯息状态。
例如:MESSAGE 21 STATUS QUEUED.
可设定的STATUS值:
• SENDING –讯息正被发送。
• SENT –讯息已被发送。
• FAILED –
讯息发送失败。
不妨发一个FAILUREREASON指令了解详细原因。
RECEIVED –讯息已被接收。
• READ –讯息已被读取。
• IGNORED –讯息被忽略。
• QUEUED –讯息被列入待发队列。
• FAILUREREASON –例如:MESSAGE 21 FAILUREREASON 1
(数字表示)。
• BODY –讯息内容主体。
例如:MESSAGE 21 BODY Hi, what's up? 聊天讯息CHATMESSAGE对象
就聊天讯息对象的属性发出通知。
语法:CHATMESSAGE ID PROP VALUE ID –聊天讯息标识符。
PROP - 属性名。
适用属性:
• TIMESTAMP –讯息送出的时间(UNIX时间戳)。
例如:MESSAGE 21 TIMESTAMP 1078958218
• PARTNER_HANDLE –例如:CHATMESSAGE 21
PARTNER_HANDLE mike
• PARTNER_DISPNAME –例如:CHATMESSAGE 21
12 Skype Technologies S.A 15
PARTNER_DISPNAME Mike Mann
• TYPE –讯息类型。
例如:MESSAGE 21 TYPE TEXT.可设定的
TYPE值:
• SETTOPIC –聊天题目变更。
• SAID –即时消息。
• ADDEDMEMBERS –邀请某人加入聊天。
• SAWMEMBERS –参加聊天者见过其他成员。
• CREATEDCHATWITH –已建立多人聊天。
• LEFT –有人已退出聊天;如某人不能被加入聊天,也会作通知。
• UNKNOWN.—其他。
• STATUS –讯息状态。
例如:MESSAGE 21 STATUS QUEUED.
可设定的STATUS值:
• SENDING –讯息正被发送。
• SENT –讯息已被发送。
• RECEIVED –讯息已被接收。
• READ –讯息已被读取。
• LEAVEREASON –与LEFT类型讯息同时使用。
例如:CHATMESSAGE 21 LEAVEREASON UNSUBSCRIBE.可设定的LEAVEREASON值:
• USER_NOT_FOUND –没有找到用户。
• USER_INCAPABLE –用户使用旧版Skype,因此无法加入多人聊天。
• ADDER_MUST_BE_FRIEND –
• ADDED_MUST_BE_AUTHORIZED –
收件人仅接受授权用户发来的讯息,而发件人未经过授权。
• UNSUBSCRIBE –参加者已退出聊天。
• BODY –讯息内容主体。
例如:CHATMESSAGE 21 BODY Hi, what's up? • CHATNAME –含有讯息的聊天,例如:#test_3/$b17eb511457e9d20 • USERS –加入聊天的人。
CHAT对象(协议3)
就聊天对象的属性发出通知。
语法:CHAT ID PROP VALUE
ID –聊天标识符。
PROP - 属性名。
适用属性:
• NAME –聊天标识符。
例如:CHAT #test_l/$6a072ce5537c4044 NAME #test_l/$6a072ce5537c4044
• TIMESTAMP –聊天建立的时间。
例如:CHAT
#test_l/$6a072ce5537c4044 TIMESTAMP 1078958218.
• ADDER –邀请目前用户加入聊天的用户。
例如:CHAT
13 Skype Technologies S.A 16
1078958218 ADDER k6rberebane.
• STATUS –聊天状态。
例如:CHAT #test_l/$6a072ce5537c4044 STATUS MULTI_SUBSCRIBED.可设定的STATUS值:
• LEGACY_DIALOG –老式即时消息。
• DIALOG – 1对1聊天。
• MULTI_SUBSCRIBED –参加聊天者。
• UNSUBSCRIBED –退出聊天者。
• POSTERS –贴讯息的成员。
例如:CHAT
#test_l/$6a072ce5537c4044 POSTERS k6rberebane test_3
• MEMBERS –所有来过的用户。
例如:CHAT
#test_l/$6a072ce5537c4044 MEMBERS k6rberebane test test_2
test_3
• TOPIC –聊天题目。
例如:CHAT #test_l/$6a072ce5537c4044 TOPIC API testimine
• CHATMESSAGES –这次聊天的所有讯息标识符。
例如:CHAT
#test_l/$6a072ce5537c4044 CHATMESSAGES 34, 35, 36, 38, 39
• ACTIVEMEMBERS –留下来继续聊天的成员。
例如:CHAT
#test_l/$6a072ce5537c4044 ACTIVEMEMBERS k6rberebane test_2
test_3
• FRIENDLYNAME –聊天窗口标题显示的姓名。
例如:CHAT
#test_l/$6a072ce5537c4044 FRIENDLYNAME Test Test XX | tere ise
通话记录
就通话记录变更并需要重载发出通知。
在全部或部分通话记录被删除时出现。
语法:CALLHISTORYCHANGED
即时消息记录
就即时消息记录变更并需要重载发出通知。
目前只在全部即时消息记录被删除时出现。
语法:IMHISTORYCHANGED
联络人状态
如果有用户被加入联络人名单,或从中被删除,或已授权目前用户,即发出通知。
语法:USER username BUDDYSTATUS number
例如:用户已被加入联络人名单并有待授权。
USER pamela BUDDYSTATUS 2
用户已授权目前用户。
USER pamela BUDDYSTATUS 3
14 Skype Technologies S.A 17
用户已从联络人名单内被删除。
USER pamela BUDDYSTATUS 1
7.8.4 其他
可为Skype设定输入/输出装置。
以空白名称设定装置时应选取 Windows
默认装置。
设定成功会得到AUDIO_* [装置名称]的确认。
目前正在运行的装置可以GET AUDIO_IN|AUDIO_OUT查询而知。
如默认装置被选取,AUDIO_*将回传一个空白回答。
声频输入设备
语法: AUDIO_IN[ device name] (将淘汰)
SET AUDIO_IN[ device name]
例如: AUDIO_IN SB Audigy 2 ZS Audio [DC00] (将淘汰)
SET AUDIO_IN SB Audigy 2 ZS Audio [DC00]
声频输出装置
语法: AUDIO_ OUT[ device name] (将淘汰)
SET AUDIO_OUT[ device name]
例如: AUDIO_OUT SB Audigy 2 ZS Audio [DC00] (将淘汰)
SET AUDIO_OUT SB Audigy 2 ZS Audio [DC00]
7.9 从装置发至Skype
7.9.1 启动搜寻
SEARCH WHAT [target] 请求与目标有关的具体信息类型。
如果没有指定目标,则会回传所有结果。
WHAT 指定信息类型,可为下列的其中一项:USERS,
FRIENDS, CALLS, MISSEDCALLS, ACTIVECALLS, MESSAGES,
协定3:CHATS, ACTIVECHATS, MISSEDCHATS,
RECENTCHATS, BOOKMARKEDCHATS, CHATMESSAGES,
MISSEDCHATMESSAGES).
注意:目前采用同步搜寻指令。
今后可能会改变。
注意:下一项搜寻取代上一项搜寻。
换言之,如果一项搜寻正在进行而又有一项搜寻被送出,则第一项搜寻将终止搜寻。
搜寻朋友
语法:SEARCH FRIENDS
回传:如果找到配对吻合的结果,将回传一份用户名单。
15 Skype Technologies S.A 18
例如:SEARCH FRIENDS
回传目前用户的所有朋友。
结果举例:
USERS tim, joe, mike
错误:ERROR 67 target not allowed with SEARCH FRIENDS
目标是以指令SEARCH FRIENDS来指定的(如
"SEARCH FRIENDS mike")
搜寻用户
语法:SEARCH USERS TARGET
TARGET –
用户名。
如果搜寻字符串含"@",则搜寻按电子邮件地址进行(注意电子邮件地址必须100 %吻合)。
否则,如果搜寻字符串为一个有效的Skype用户名(用户名必须有6至22个字符,仅含以下符号:a-Z0-9-_,.
,而且必须以一个字母开头),该搜寻将按全名和用户名字段进行。
所有其他搜寻仅按全名字段进行。
回传:回传配对吻合的用户名。
例如:SEARCH USERS abc
回传所有含"abc"的用户名。
结果举例:
USERS abc, -abc-, abc10
错误:ERROR 4 empty target not allowed
未指定目标用户名。
搜寻通话
语法:SEARCH CALLS TARGET
TARGET –
用户名。
目标是可选项。
如果指定目标,则会搜寻目前用户与目标用户之间的通话记录。
回传:回传一份通话标识符名单。
如果指定目标,则会回传目前用户与目标用户之间所有的以往通话标识符。
例如:SEARCH CALLS abc
结果举例:
CALLS 15, 16, 39
ERROR 5 SEARCH CALLS:目标无效
目标用户名中含禁用字符(如"SEARCH CALLS
!a")。
用户名必须有6至22个字符并仅含以下符号:a-Z0-9-_,.。
搜寻进行中的通话
语法:SEARCH ACTIVECALLS
列出所有通话卷标上显示的通话,如果主持电话会议,则包括所有参加会议的
成员。
16 Skype Technologies S.A 19
回传:回传一份进行中的通话标识符名单。
例如:SEARCH ACTIVECALLS
结果举例:
CALLS 25, 56
错误:ERROR 3 SEARCH:invalid WHAT
ACTIVECALLS拼字错误。
搜寻未接的来电
语法:SEARCH MISSEDCALLS
回传:回传一份未接来电的标识符名单,亦即显示处于MISSED状态的通话。
例如:SEARCH MISSEDCALLS
结果举例:
CALLS 25, 56
错误:ERROR 29 target not allowed with MISSEDCALLS
使用SEARCH MISSEDCALLS时,不允许指定目标。
搜寻留言
语法:SEARCH MESSAGES [TARGET]
TARGET –
用户名。
目标是可选项。
如果指定目标,则会搜寻目前用户与目标用户之间的留言记录。
回传:回传一份讯息标识符名单。
如果指定目标,则会回传目前用户与目标用户之间所有的留言标识符。
例如:SEARCH MESSAGES abc
结果举例:
MESSAGES 123, 124
错误:ERROR 29 SEARCH MESSAGES:目标无效
目标用户名中含禁用字符(如"SEARCH MESSAGES !a")。
用户名必须有6
至22个字符并仅含以下符号:a-Z0-9-_,.。
搜寻错过的留言
语法:SEARCH MISSEDMESSAGES
回传:回传一份留言标识符名单。
例如:SEARCH MISSEDMESSAGES
结果举例:
错误:ERROR 6 target not allowed with MISSEDMESSAGES 使用SEARCH MISSEDMESSAGES时,不允许指定目标。
搜寻聊天(协议3)
语法:SEARCH CHATS
回传:回传一份聊天标识符名单。
17 Skype Technologies S.A 20
例如:SEARCH CHATS
结果举例:
CHATS #bitman/$jessy;eb06e65612353279,
#bitman/$jdenton;9244e98f82d7d391
错误:ERROR 107 target not allowed with CHATS
使用SEARCH CHATS时,不允许指定目标。
搜寻进行中的聊天(协议3)
语法:SEARCH ACTIVECHATS
回传:回传UI上开放的聊天标识符名单。
例如:SEARCH ACTIVECHATS
结果举例:
CHATS #bitman/$jessy;eb06e65612353279,
#bitman/$jdenton;9244e98f82d7d391
错误: ?
搜寻错过的聊天(协定3)
语法:SEARCH MISSEDCHATS
回传:回传一份含有未读内容的聊天标识符名单。
例如:SEARCH MISSEDCHATS
结果举例:
CHATS #bitman/$jessy;eb06e65612353279,
#bitman/$jdenton;9244e98f82d7d391
错误: ?
搜寻最近的聊天(协议3)
语法:SEARCH RECENTCHATS
回传:回传一份最近的聊天标识符名单。
例如:SEARCH RECENTCHATS
结果举例:
CHATS #bitman/$jessy;eb06e65612353279,
#bitman/$jdenton;9244e98f82d7d391
错误: ?
搜寻加标注的聊天(协定3)
语法:SEARCH BOOKMARKEDCHATS
例如:SEARCH BOOKMARKEDCHATS
结果举例:
CHATS #bitman/$jessy;eb06e65612353279,
#bitman/$jdenton;9244e98f82d7d391
18 Skype Technologies S.A 21
错误: ?
搜寻聊天内容(协议3)
语法:SEARCH CHATMESSAGES [TARGET]
TARGET –用户名。
目标是可选项。
实际上用户从来都不用。
回传:回传一份聊天内容标识符名单。
例如:SEARCH CHATMESSAGES abc
结果举例:
CHATMESSAGES 60, 59
错误:ERROR 29 SEARCH CHATMESSAGES:目标无效
目标用户名中含禁用字符(如"SEARCH MESSAGES !a")。
用户名必须
有6至22个字符并仅含以下符号:a-Z0-9-_,.。
搜寻错过的聊天(协定3)
语法:SEARCH MISSEDCHATS
回传:回传一份含有未读内容的聊天标识符名单。
例如:SEARCH MISSEDCHATS
结果举例:
CHATMESSAGES 61, 62
错误:ERROR 29 target not allowed with MISSEDMESSAGES
使用SEARCH
MISSEDCHATMESSAGES时,不允许指定目标。
7.9.2 索取参数值
GET指令是一般请求指令。
一次可以用来求得任何已知对象的一种属性(USER, CALL, MESSAGE, (PROTOCOL 3:CHAT,
CHATMESSAGE)) 或一个一般变数 (USERSTATUS, CONNSTATUS,
AUDIO_IN, AUDIO_OUT, CURRENTUSERHANDLE,
MUTE)。
Skype则以适当的通知指令响应。
USER对象信息
语法:GET USER USERNAME PROP
USERNAME –用户名。
用户名必须有6至22个字符并仅含以下符号:a-Z0-9-_,.。
PROP - 属性名。
适用属性:
HANDLE, FULLNAME, BIRTHDAY, SEX, LANGUAGE, COUNTRY,
PROVINCE, CITY, PHONE_HOME, PHONE_OFFICE, PHONE_MOBILE, HOMEPAGE, ABOUT, HASCALLEQUIPMENT, BUDDYSTATUS,
LASTONLINETIMESTAMP
回传:如配对吻合,则回传指定用户的属性值。
19 Skype Technologies S.A 22
例如:GET USER pamela FULLNAME
结果举例:
USER pamela FULLNAME Jane Doe
错误:ERROR 7 GET:invalid WHAT
对象名不存在或拼字错误(如 "GET USE")。
ERROR 10 invalid prop
标识符和/或属性不存在或拼字错误(如 "GET USER Pamela FULLNAM")。
ERROR 8 invalid handle
USERNAME不存在或含禁用字符(如
"GET USER !HANDLE")。
注意 GET USER USERNAME ONLINESTATUS 将回传
"OFFLINE",除非目前用户经其他用户授权,可以查看他/她的上线状态。
CALL对象信息
语法:GET CALL ID PROP
ID –通话标识符。
PROP - 属性名。
适用属性:
TIMESTAMP (UNIX时间戳), PARTNER_HANDLE,
PARTNER_DISPNAME,
CONF_ID, TYPE, STATUS, FAILUREREASON (数字表示), SUBJECT (未used), PSTN_NUMBER, DURATION, PSTN_STATUS,
CONF_PARTICIPANT
n, CONF_PARTICIPANTS_COUNT
回传:如找到该笔通话,则回传指定通话的属性值。
例如:GET CALL 1594 TYPE
结果举例:
CALL 1594 TYPE OUTGOING_P2P
错误:ERROR 7 GET:invalid WHAT
对象名不存在或拼字错误(如 "GET CAL")。
ERROR 11 invalid call id
标识符含非数字字符(如 "GET CALL 15!")。
ERROR 12 unknown call id
当前用户通话记录内没有带指定标识符的通话。
ERROR 13 invalid prop
属性名不存在或拼字错误(如 "GET CALL 15 TYP")。
ERROR 71 Invalid conference participant NO
"GET
CALL 15 CONF_PARTICIPANT kala", "GET CALL 15
CONF_PARTICIPANT 5")
注意下述情形,如果隐蔽的通话被看到,亦即SEEN=FALSE变为SEEN=TRUE,例如用户在Skype内点选了错过的来电,Skype将会通知API。
20 Skype Technologies S.A 23
MESSAGE对象信息
语法:GET MESSAGE ID PROP
ID –讯息标识符。
PROP - 属性名。
适用属性:
TIMESTAMP (UNIX时间戳), PARTNER_HANDLE,
PARTNER_DISPNAME,
CONF_ID (未使用), TYPE, STATUS, FAILUREREASON (数字表示), BODY 回传:如找到该讯息,则回传指定讯息的属性值。
例如:GET MESSAGE 159 TYPE
结果举例:
MESSAGE 159 TYPE TEXT
错误:ERROR 7 GET:invalid WHAT
对象名不存在或拼字错误(如 "GET MESAGE ")。
ERROR 14 invalid message id
标识符含非数字字符(如 "GET MESSAGE 1a")。
ERROR 15 unknown message id
目前用户讯息记录内没有带指定标识符的讯息。
ERROR 16 invalid prop
属性名不存在或拼字错误(如 "GET MESSAGE 21 TYP")。
用户状态
语法:GET USERSTATUS
回传:回传目前用户的状态。
可设定值:
UNKNOWN, OFFLINE, ONLINE, SKYPEME (协定l 2), AWAY,
NA, DND, INVISIBLE.
例如:GET USERSTATUS
结果举例:
USERSTATUS ONLINE
错误:ERROR 7 GET:invalid WHAT
对象名不存在或拼字错误(如 "GET USESTATUS")。
连结状态
语法:GET CONNSTATUS
回传:回传目前连结状态。
可设定值:
OFFLINE, CONNECTING, PAUSING, ONLINE.。