aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-17 17:10:09 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-02-17 17:10:09 +0000
commitf6bbde02fb9318cfcb3dd0c213073a4797ff1ef7 (patch)
treeff1825e0cbea06358882e68410e2bcee23b0361b /channels
parentd3f090c7a8ff244c8a4e706b1c7376ce2786b470 (diff)
Fix an issue where callerid would not be displayed on some phones.
Issue 8995, initial patch and research done by wedhorn git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@55217 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_skinny.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 1ba7f126a..b5a3f6550 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -322,6 +322,14 @@ struct call_info_message {
uint32_t type;
char originalCalledPartyName[40];
char originalCalledParty[24];
+ char lastRedirectingPartyName[40];
+ char lastRedirectingParty[24];
+ uint32_t originalCalledPartyRedirectReason;
+ uint32_t lastRedirectingReason;
+ char callingPartyVoiceMailbox[24];
+ char calledPartyVoiceMailbox[24];
+ char originalCalledPartyVoiceMailbox[24];
+ char lastRedirectingVoiceMailbox[24];
};
#define SPEED_DIAL_STAT_RES_MESSAGE 0x0091
@@ -1487,6 +1495,9 @@ static void transmit_callinfo(struct skinnysession *s, const char *fromname, con
if (!(req = req_alloc(sizeof(struct call_info_message), CALL_INFO_MESSAGE)))
return;
+ if (skinnydebug)
+ ast_verbose("Setting Callinfo to %s(%s) from %s(%s) on %s(%d)\n", fromname, fromnum, toname, tonum, s->device->name, instance);
+
if (fromname) {
ast_copy_string(req->data.callinfo.callingPartyName, fromname, sizeof(req->data.callinfo.callingPartyName));
}
@@ -2371,14 +2382,12 @@ static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
break;
}
- transmit_lamp_indication(s, STIMULUS_LINE, l->instance, SKINNY_LAMP_BLINK);
- transmit_ringer_mode(s, SKINNY_RING_INSIDE);
-
- transmit_tone(s, tone);
- transmit_callinfo(s, ast->cid.cid_name, ast->cid.cid_num, l->cid_name, l->cid_num, l->instance, sub->callid, 1);
transmit_callstate(s, l->instance, SKINNY_RINGIN, sub->callid);
- transmit_displaypromptstatus(s, "Ring-In", 0, l->instance, sub->callid);
transmit_selectsoftkeys(s, l->instance, sub->callid, KEYDEF_RINGIN);
+ transmit_displaypromptstatus(s, "Ring-In", 0, l->instance, sub->callid);
+ transmit_callinfo(s, ast->cid.cid_name, ast->cid.cid_num, l->cid_name, l->cid_num, l->instance, sub->callid, 1);
+ transmit_lamp_indication(s, STIMULUS_LINE, l->instance, SKINNY_LAMP_BLINK);
+ transmit_ringer_mode(s, SKINNY_RING_INSIDE);
ast_setstate(ast, AST_STATE_RINGING);
ast_queue_control(ast, AST_CONTROL_RINGING);