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) | 
