transmit_response(d, req);
}
-static void transmit_displaymessage(struct skinny_device *d, const char *text, int instance, int reference)
+static void transmit_clear_display_message(struct skinny_device *d, int instance, int reference)
{
struct skinny_req *req;
+ if (!(req = req_alloc(0, CLEAR_DISPLAY_MESSAGE)))
+ return;
- if (text == 0) {
- if (!(req = req_alloc(0, CLEAR_DISPLAY_MESSAGE)))
- return;
-
- //what do we want hear CLEAR_DISPLAY_MESSAGE or CLEAR_PROMPT_STATUS???
- //if we are clearing the display, it appears there is no instance and refernece info (size 0)
- //req->data.clearpromptstatus.lineInstance = instance;
- //req->data.clearpromptstatus.callReference = reference;
+ //what do we want hear CLEAR_DISPLAY_MESSAGE or CLEAR_PROMPT_STATUS???
+ //if we are clearing the display, it appears there is no instance and refernece info (size 0)
+ //req->data.clearpromptstatus.lineInstance = instance;
+ //req->data.clearpromptstatus.callReference = reference;
- /* send datetime message. We have to do it here because it will clear the display on the phone if we do it elsewhere */
- handle_time_date_req_message(NULL, d->session);
+ if (skinnydebug)
+ ast_verb(1, "Clearing Display\n");
+ transmit_response(d, req);
+}
- if (skinnydebug)
- ast_verb(1, "Clearing Display\n");
- } else {
- if (!(req = req_alloc(sizeof(struct displaytext_message), DISPLAYTEXT_MESSAGE)))
- return;
+/* This function is not currently used, but will be (wedhorn)*/
+/* static void transmit_display_message(struct skinny_device *d, const char *text, int instance, int reference)
+{
+ struct skinny_req *req;
- ast_copy_string(req->data.displaytext.text, text, sizeof(req->data.displaytext.text));
- if (skinnydebug)
- ast_verb(1, "Displaying message '%s'\n", req->data.displaytext.text);
+ if (text == 0) {
+ ast_verb(1, "Bug, Asked to display empty message\n");
+ return;
}
+ if (!(req = req_alloc(sizeof(struct displaytext_message), DISPLAYTEXT_MESSAGE)))
+ return;
+
+ ast_copy_string(req->data.displaytext.text, text, sizeof(req->data.displaytext.text));
+ if (skinnydebug)
+ ast_verb(1, "Displaying message '%s'\n", req->data.displaytext.text);
transmit_response(d, req);
-}
+} */
static void transmit_displaynotify(struct skinny_device *d, const char *text, int t)
{
{
struct skinny_req *req;
- if (text == 0) {
- if (!(req = req_alloc(sizeof(struct clear_prompt_message), CLEAR_PROMPT_MESSAGE)))
- return;
+ if (!(req = req_alloc(sizeof(struct display_prompt_status_message), DISPLAY_PROMPT_STATUS_MESSAGE)))
+ return;
- req->data.clearpromptstatus.lineInstance = htolel(instance);
- req->data.clearpromptstatus.callReference = htolel(callid);
+ ast_copy_string(req->data.displaypromptstatus.promptMessage, text, sizeof(req->data.displaypromptstatus.promptMessage));
+ req->data.displaypromptstatus.messageTimeout = htolel(t);
+ req->data.displaypromptstatus.lineInstance = htolel(instance);
+ req->data.displaypromptstatus.callReference = htolel(callid);
- if (skinnydebug)
- ast_verb(1, "Clearing Prompt\n");
- } else {
- if (!(req = req_alloc(sizeof(struct display_prompt_status_message), DISPLAY_PROMPT_STATUS_MESSAGE)))
- return;
+ if (skinnydebug)
+ ast_verb(1, "Displaying Prompt Status '%s'\n", text);
- ast_copy_string(req->data.displaypromptstatus.promptMessage, text, sizeof(req->data.displaypromptstatus.promptMessage));
- req->data.displaypromptstatus.messageTimeout = htolel(t);
- req->data.displaypromptstatus.lineInstance = htolel(instance);
- req->data.displaypromptstatus.callReference = htolel(callid);
+ transmit_response(d, req);
+}
- if (skinnydebug)
- ast_verb(1, "Displaying Prompt Status '%s'\n", text);
- }
+static void transmit_clearpromptmessage(struct skinny_device *d, int instance, int callid)
+{
+ struct skinny_req *req;
+
+ if (!(req = req_alloc(sizeof(struct clear_prompt_message), CLEAR_PROMPT_MESSAGE)))
+ return;
+
+ req->data.clearpromptstatus.lineInstance = htolel(instance);
+ req->data.clearpromptstatus.callReference = htolel(callid);
+
+ if (skinnydebug)
+ ast_verb(1, "Clearing Prompt\n");
transmit_response(d, req);
}
transmit_speaker_mode(d, SKINNY_SPEAKEROFF);
- transmit_displaypromptstatus(d, NULL, 0, instance, callid);
+ transmit_clearpromptmessage(d, instance, callid);
}
if (!(req = req_alloc(sizeof(struct call_state_message), CALL_STATE_MESSAGE)))
transmit_stopmediatransmission(d, sub);
transmit_speaker_mode(d, SKINNY_SPEAKEROFF);
transmit_ringer_mode(d, SKINNY_RING_OFF);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_stop_tone(d, l->instance, sub->callid);
/* we should check to see if we can start the ringer if another line is ringing */
}
newsub->xferor = 1;
l->activesub = newsub;
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, newsub->callid);
- if (skinnydebug)
- ast_debug(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, newsub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, newsub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, newsub->callid);
transmit_selectsoftkeys(d, l->instance, newsub->callid, KEYDEF_OFFHOOKWITHFEAT);
/* start the switch thread */
transmit_speaker_mode(d, SKINNY_SPEAKERON);
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
}
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
if (l->cfwdtype & cfwdtype) {
set_callforwards(l, NULL, cfwdtype);
l->hookstate = SKINNY_OFFHOOK;
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
}
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_RINGOUT);
transmit_speaker_mode(d, SKINNY_SPEAKERON);
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
}
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_RINGOUT);
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
}
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
-
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_RINGOUT);
sub = c->tech_pvt;
l->activesub = sub;
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_OFFHOOK);
sub = l->activesub;
}
+ /* Not ideal, but let's send updated time at onhook and offhook, as it clears the display */
+ handle_time_date_req_message(NULL, d->session);
+
transmit_ringer_mode(d, SKINNY_RING_OFF);
l->hookstate = SKINNY_OFFHOOK;
sub = c->tech_pvt;
l->activesub = sub;
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_OFFHOOK);
ast_log(LOG_WARNING, "Skinny(%s@%s-%d) channel already destroyed\n",
l->name, d->name, sub->callid);
}
+ /* Not ideal, but let's send updated time at onhook and offhook, as it clears the display */
+ handle_time_date_req_message(NULL, d->session);
}
return 1;
}
sub = c->tech_pvt;
l->activesub = sub;
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
if (!ast_ignore_pattern(c->context, req->data.enbloccallmessage.calledParty)) {
transmit_speaker_mode(d, SKINNY_SPEAKERON);
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
}
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_RINGOUT);
transmit_callstate(d, l->instance, SKINNY_OFFHOOK, sub->callid);
- if (skinnydebug)
- ast_verb(1, "Attempting to Clear display on Skinny %s@%s\n", l->name, d->name);
- transmit_displaymessage(d, NULL, l->instance, sub->callid); /* clear display */
+ transmit_clear_display_message(d, l->instance, sub->callid);
transmit_start_tone(d, SKINNY_DIALTONE, l->instance, sub->callid);
transmit_selectsoftkeys(d, l->instance, sub->callid, KEYDEF_OFFHOOK);