aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@frugalware.org>2008-02-29 00:52:41 +0100
committerMiklos Vajna <vmiklos@frugalware.org>2008-02-29 00:52:41 +0100
commitb68b0238a35c962d1669d3e0c3e61c9144cebad8 (patch)
treef9ed0566376b261188f239c087204af937214e3a
parent459160d31d82ae977216f341366aab527fd672d5 (diff)
new account set skype/call nick command to start calls
-rw-r--r--skype/skype.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/skype/skype.c b/skype/skype.c
index 13eef2a7..7e1ef142 100644
--- a/skype/skype.c
+++ b/skype/skype.c
@@ -889,6 +889,31 @@ static char *skype_set_display_name( set_t *set, char *value )
return(value);
}
+static char *skype_set_call( set_t *set, char *value )
+{
+ account_t *acc = set->data;
+ struct im_connection *ic = acc->ic;
+ char *nick, *ptr, *buf;
+ user_t *u = user_find(acc->irc, value);
+
+ if(!u)
+ {
+ imcb_error(ic, "%s - no such nick", value);
+ return(value);
+ }
+ nick = g_strdup(u->handle);
+ ptr = strchr(nick, '@');
+ if(ptr)
+ *ptr = '\0';
+
+ buf = g_strdup_printf("CALL %s", nick);
+ skype_write( ic, buf, strlen( buf ) );
+ g_free(buf);
+ g_free(nick);
+ imcb_log(ic, "Ringing the user %s.", value);
+ return(value);
+}
+
static void skype_add_buddy( struct im_connection *ic, char *who, char *group )
{
char *buf, *nick, *ptr;
@@ -1048,6 +1073,9 @@ static void skype_init( account_t *acc )
s = set_add( &acc->set, "display_name", NULL, skype_set_display_name, acc );
s->flags |= ACC_SET_NOSAVE | ACC_SET_ONLINE_ONLY;
+
+ s = set_add( &acc->set, "call", NULL, skype_set_call, acc );
+ s->flags |= ACC_SET_NOSAVE | ACC_SET_ONLINE_ONLY;
}
void init_plugin(void)