Linux上编程控制skype
来源:互联网 发布:喵咚家 知乎 编辑:程序博客网 时间:2024/05/21 06:21
Linux上skype的API使用
(1) 在linux系统下利用skype的API可以通过D-BUS或者x11-messaging。
(2) 为了减小非D-BUS开发的程序的运行效率,D-BUS的缺省状态是关闭的,在早期版本的API中,启动skype时需要添加以下选项: --enable-dbus –use-system-dbus,其中第二个选项是必须的。
(3) 在/etc/dbus-1/system.d下添加配置文件skype.conf,内容:
<!DOCTYPE busconfig PUBLIC "-//freedesktop//
DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy context="default">
<allow own="com.Skype.API"/>
<allow send_destination="com.Skype.API"/>
<allow receive_sender="com.Skype.API"/>
<allow send_path="/com/Skype"/>
</policy>
</busconfig>
(4) 根据上面提供的参数编写程序,并编译运行。
(5) 开始通过程序来控制Skype:
输入:NAME <应用程序名> ->Skype端弹出对话框,提示是否连接,点击“是”
返回:OK
输入:PROTOCOL 7
返回:PROTOCOL 7
输入:根据Skype API说明文档中的命令来控制Skype
例:呼叫 CALL ***
挂断电话 SET CALL <ID> FINISHED
接听电话 SET CALL <ID> INPROGRESS
(6) 使用API过程中D-BUS的相关参数:
服务为:com.Skype.API
传输路径:client-to-Skype /com/Skype
Skype-to-client /com/Skype/Client
方法调用:用Invoke方法向Skype方发命令
用Notify方法Skype向应用程序发回消息
D-BUS的缺省状态为关闭。
2.程序中主要函数:
conn = dbus_bus_get(DBUS_BUS_SESSION, &err) 在D-BUS上创建一个连接
ret=dbus_bus_request_name(conn,"com.litao.controlskype",DBUS_NAME_FLAG_REPLACE_EXISTING, &err) 在D-BUS上申请一个连接名
msg=dbus_message_new_method_call("com.Skype.API", "/com/Skype", NULL, "Invoke"); 创建一个方法调用
dbus_message_iter_init_append(msg, &args); 向消息中添加参数(命令)
dbus_connection_flush(conn); 连接
dbus_pending_call_block(pending); 程序阻塞直到有消息返回
msg = dbus_pending_call_steal_reply(pending); 提取返回的消息
dbus_message_get_args(msg,0,DBUS_TYPE_STRING,&ack,DBUS_TYPE_
INVALID) 从返回消息中提取返回字符串
参考:
<<SKYPE API 的说明与使用>>
<<P2 Skype Demo: How To Interact With Skype>>
https://developer.skype.com/Docs/ApiDoc/Skype_API_on_Linux
- Linux上编程控制skype
- Android上的skype
- LINUX环境编程之进程控制(上)
- linux使用skype
- linux下skype
- linux安装skype qq
- linux安装skype
- Skype for Linux 4.2
- Linux 下安装skype
- linux skype的安装
- Linux安装Skype
- Skype协议分析(上)
- fedora 19上安装skype
- linux进程控制编程
- Linux进程控制编程
- Linux进程控制编程
- Linux:进程控制编程
- Linux进程控制编程
- PKU 2262 Goldbach's Conjecture
- 如何设置CSDN博客使用Live Writer?
- 调试经验总结-VC下的错误对话框
- 优秀程序员的十个习惯
- 对类似COM和C++派生的一些理解
- Linux上编程控制skype
- 关于素数
- 图片走廊
- 动态调用WebService(C#)
- 怎样在网页中插入视频?
- Google C++编程命名约定
- C#动态加载DLL
- CSS中解决受到FLOAT影响的方法
- 在你的代码中使用Boost智能指针