make dingaling need talk in the resource to clear up collisions
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1159 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
d0a103a343
commit
0e0e1e3673
|
@ -245,9 +245,11 @@ base => dc=freeswitch,dc=org
|
|||
debug => 0
|
||||
codec_prefs => PCMU
|
||||
|
||||
; *NOTE* your resource (after the /) MUST contain the string "talk" (upper or lower case is ok)
|
||||
|
||||
[interface]
|
||||
name => google
|
||||
login => myjabberid@myjabberserver.com/me
|
||||
login => myjabberid@myjabberserver.com/talk
|
||||
password => mypass
|
||||
dialplan => demo
|
||||
message => Jingle all the way
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <iksemel.h>
|
||||
#include <apr.h>
|
||||
#include <apr_network_io.h>
|
||||
|
@ -394,15 +394,22 @@ static int on_presence(void *user_data, ikspak *pak)
|
|||
ldl_handle_t *handle = user_data;
|
||||
char *from = iks_find_attrib(pak->x, "from");
|
||||
char id[1024];
|
||||
char *p;
|
||||
char *resource;
|
||||
struct ldl_buffer *buffer;
|
||||
size_t x;
|
||||
|
||||
apr_cpystrn(id, from, sizeof(id));
|
||||
if ((p = strchr(id, '/'))) {
|
||||
*p = '\0';
|
||||
if ((resource = strchr(id, '/'))) {
|
||||
*resource++ = '\0';
|
||||
}
|
||||
|
||||
if ((buffer = apr_hash_get(handle->probe_hash, id, APR_HASH_KEY_STRING))) {
|
||||
|
||||
if (resource) {
|
||||
for (x = 0; x < strlen(resource); x++) {
|
||||
resource[x] = tolower(resource[x]);
|
||||
}
|
||||
}
|
||||
|
||||
if (resource && strstr(resource, "talk") && (buffer = apr_hash_get(handle->probe_hash, id, APR_HASH_KEY_STRING))) {
|
||||
apr_cpystrn(buffer->buf, from, buffer->len);
|
||||
buffer->hit = 1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue