UNIX TIMESTAMP: 1329933067

开源程序cliofetion的改造(一次登陆发多条短信)

春节在家呆着也是呆着,顺便研究了一下cliofetion的源代码,发现飞信命令行程序每次登陆只能发一条短信,我照猫画虎改了改,改成登陆后待命,每5秒读一次fx_sms_pool.txt文件,有短信则自动发出,无需多次登陆,发送效率比较高。这样子和Web程序结合起来就比较方便些,更好的方式是单条短信生成txt文件到spool文件夹,然后C程序程序来扫描文件夹,可以避免文件读写冲突,我可以提供思路,期待C牛们来改改:)

fx_sms_pool.txt我使用php来生成,放在指定位置,主要改造代码如下,写得比较糙,内行们别见笑:)

int main()
{
int a = 0;
if(fx_login("13800138000", "mypassword")){
return 1;
}
while(a == 0){
debug_info("Check SMS ...");
checkSms();
sleep(5);
}
return 0;
}
int checkSms(void) {
int i=0;
char ar[2][255];
FILE * fp;
FILE * cfp;
char content[255];
char *item;
//open sms data file
fp=fopen("/var/fx_sms_pool.txt","r");
if(sizeof(fgets(content,256,fp)) != 0){
while(fgets(content,256,fp)){
if(strlen(content)!=sizeof(content)-1){
content[strlen(content)-1] = '\0';
}
item = strtok(content,"#");
strcpy(ar[0],item);
item = strtok(NULL,"#");
strcpy(ar[1],item);
debug_info("Sending SMS to %s (%s)",ar[0],ar[1]);
//send sms...
if(send_message("13800138000", ar[0], ar[1])){
return 1;
}
sleep(5);
}
fclose(fp);
cfp=fopen("/var/fx_sms_pool.txt","w+");
fclose(cfp);
}else{
debug_info("No SMS data.");
}
memset(ar,0,sizeof(ar));
return 0;
}

这WP的代码标签居然不支持空行,Ft…

作者: Liuyang 发表于2011年02月07日 16:20  评论(2) 

在Linkstation上安装OpenFetion飞信命令行版本

因为飞信协议升级的问题.已经无法使用之前的Perl版飞信.Libfetion又没有MIPS的版本,找来着去找到了openFetion。我的Linkstation(LS2)已经升级到Debian-lenny,可以直接apt-get来进行安装。

先安装支持库.
apt-get install libxml2-dev
apt-get install libsqlite3-dev
apt-get install libxssl-dev

因为需要用到cmake.于是先安装cmake.
apt-get install cmake

下载openfetion的cli版本.tar解压缩。
tar zxvf ./cliofetion-standalone-2.1.0.tar.gz
cd cliofetion-standalone-2.1.0
mkdir build
cd build
cmake ..

过程中可能会提示缺少相关的支持库,用apt-get来安装即可。
cmake完成后,进行make install安装。
make install
root@LinkStation:~/cliofetion-standalone-2.1.0/build# make install
Scanning dependencies of target cliofetion
[ 6%] Building C object CMakeFiles/cliofetion.dir/src/cliofetion.c.o
[ 12%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_buddylist.c.o
[ 18%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_config.c.o
[ 25%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_connection.c.o
[ 31%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_contact.c.o
[ 37%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_conversation.c.o
[ 43%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_debug.c.o
[ 50%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_directsms.c.o
[ 56%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_group.c.o
[ 62%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_history.c.o
[ 68%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_list.c.o
[ 75%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_login.c.o
[ 81%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_message.c.o
[ 87%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_share.c.o
[ 93%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_sip.c.o
[100%] Building C object CMakeFiles/cliofetion.dir/lib/fetion_user.c.o
Linking C executable cliofetion
[100%] Built target cliofetion
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/share/openfetion/resource/city.xml
-- Installing: /usr/local/share/openfetion/resource/province.xml
-- Installing: /usr/local/bin/cliofetion

编译成功,给自己发条短信,测试openfetion是否可以正常运行:
root@LinkStation:~/cliofetion-standalone-2.1.0/build# cliofetion -f 150010xxxxx -p password -t 150010xxxxx -d test
[22:55:21] Set a initialized Config Struct to User
[22:55:21] Initialize ssi authentication action
[22:55:21] Start ssi login with v3Temp password , user number 150010xxxxx
[22:55:21] SSI login success
[22:55:22] Load user information
[22:55:22] Load user information
[22:55:22] Load contact list
[22:55:22] Set a initialized Sip Struct to User
[22:55:22] Initialize sipc registeration action
[22:55:22] Start registering to sip server(115.181.16.66:8080)
[22:55:22] Register to sip server success
[22:55:22] nonce:158816BD530A386D542DA01.....
[22:55:22] Start encrypting response
[22:55:22] Encrypting reponse success
[22:55:22] Initialize sipc authencation action
[22:55:22] Start sipc authentication , with ak-value
[22:55:23] Got sipc response
[22:55:23] Sipc authentication success
[22:55:23] Start reading contact list
[22:55:23] Read contact list complete
[22:55:23] Save user information
[22:55:23] Save contact list
[22:55:23] Save contact list successfully
[22:55:23] Sent a message to myself
[22:55:23] Free sip struct and close socket

短信瞬间收到,搞定,收工!LinkStation又可以开始发挥余热了:)

作者: Liuyang 发表于2011年02月03日 23:06  评论(4)