From d3c7be548d71f274d32d30de84e2fcbecc5aa3a9 Mon Sep 17 00:00:00 2001 From: Olle Johansson Date: Thu, 24 May 2007 14:52:01 +0000 Subject: Merged revisions 65841 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r65841 | oej | 2007-05-24 16:48:55 +0200 (Thu, 24 May 2007) | 2 lines Issue #8536 - Caller ID not set in CDR for jingle ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65844 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_gtalk.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'channels/chan_gtalk.c') diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c index 8c4a27bdb..58567a497 100644 --- a/channels/chan_gtalk.c +++ b/channels/chan_gtalk.c @@ -899,6 +899,7 @@ static struct ast_channel *gtalk_new(struct gtalk *client, struct gtalk_pvt *i, int fmt; int what; const char *n2; + char *data = NULL, *cid = NULL; if (title) n2 = title; @@ -964,9 +965,21 @@ static struct ast_channel *gtalk_new(struct gtalk *client, struct gtalk_pvt *i, ast_copy_string(tmp->exten, i->exten, sizeof(tmp->exten)); /* Don't use ast_set_callerid() here because it will * generate a needless NewCallerID event */ - tmp->cid.cid_num = ast_strdup(i->cid_num); - tmp->cid.cid_ani = ast_strdup(i->cid_num); - tmp->cid.cid_name = ast_strdup(i->cid_name); + if (!strcasecmp(client->name, "guest")) { + if (strchr(i->them, '/')) { + char *aux; + data = ast_strdupa((char *)i->them); + aux = data; + cid = strsep(&aux, "/"); + } else + cid = i->them; + } else { + cid = client->user; + } + cid = strsep(&cid, "@"); + tmp->cid.cid_num = ast_strdup(cid); + tmp->cid.cid_ani = ast_strdup(cid); + tmp->cid.cid_name = ast_strdup(i->them); if (!ast_strlen_zero(i->exten) && strcmp(i->exten, "s")) tmp->cid.cid_dnid = ast_strdup(i->exten); tmp->priority = 1; -- cgit v1.2.3