diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2008-02-29 00:52:41 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@frugalware.org> | 2008-02-29 00:52:41 +0100 |
commit | b68b0238a35c962d1669d3e0c3e61c9144cebad8 (patch) | |
tree | f9ed0566376b261188f239c087204af937214e3a | |
parent | 459160d31d82ae977216f341366aab527fd672d5 (diff) |
new account set skype/call nick command to start calls
-rw-r--r-- | skype/skype.c | 28 |
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) |