FS-5384 implement support for ring-on-active and ring-on-idle attributes - right now, will just switch from 'ring' to 'indicate only' if set to 0, defaults to 1/on

This commit is contained in:
Nathan Neulinger 2014-07-16 09:05:15 -05:00
parent 1b7360159a
commit 958d9d9b21
1 changed files with 20 additions and 6 deletions

View File

@ -583,8 +583,8 @@ int skinny_ring_lines_callback(void *pArg, int argc, char **argv, char **columnN
/* char *label = argv[4]; */
char *value = argv[5];
char *caller_name = argv[6];
/* uint32_t ring_on_idle = atoi(argv[7]); */
/* uint32_t ring_on_active = atoi(argv[8]); */
uint32_t ring_on_idle = atoi(argv[7]);
uint32_t ring_on_active = atoi(argv[8]);
/* uint32_t busy_trigger = atoi(argv[9]); */
/* char *forward_all = argv[10]; */
/* char *forward_busy = argv[11]; */
@ -643,11 +643,13 @@ int skinny_ring_lines_callback(void *pArg, int argc, char **argv, char **columnN
skinny_session_send_call_info(helper->tech_pvt->session, listener, line_instance);
send_set_lamp(listener, SKINNY_BUTTON_LINE, line_instance, SKINNY_LAMP_BLINK);
if ( active_calls < 1 ) {
if ( active_calls < 1 && ring_on_idle ) {
send_set_ringer(listener, SKINNY_RING_INSIDE, SKINNY_RING_FOREVER, 0, helper->tech_pvt->call_id);
} else {
} else if ( active_calls > 0 && ring_on_active ) {
send_start_tone(listener, SKINNY_TONE_CALLWAITTONE, 0, line_instance, helper->tech_pvt->call_id);
send_stop_tone(listener, line_instance, helper->tech_pvt->call_id);
} else {
/* silent ring - would like to just flash the lamp */
}
switch_channel_ring_ready(channel);
}
@ -1157,13 +1159,25 @@ switch_status_t skinny_handle_register(listener_t *listener, skinny_message_t *r
if(type == SKINNY_BUTTON_LINE) {
const char *caller_name = switch_xml_attr_soft(xbutton, "caller-name");
const char *reg_metadata = switch_xml_attr_soft(xbutton, "registration-metadata");
uint32_t ring_on_idle = atoi(switch_xml_attr_soft(xbutton, "ring-on-idle"));
uint32_t ring_on_active = atoi(switch_xml_attr_soft(xbutton, "ring-on-active"));
uint32_t ring_on_idle = 1;
uint32_t ring_on_active = 1;
uint32_t busy_trigger = atoi(switch_xml_attr_soft(xbutton, "busy-trigger"));
const char *forward_all = switch_xml_attr_soft(xbutton, "forward-all");
const char *forward_busy = switch_xml_attr_soft(xbutton, "forward-busy");
const char *forward_noanswer = switch_xml_attr_soft(xbutton, "forward-noanswer");
uint32_t noanswer_duration = atoi(switch_xml_attr_soft(xbutton, "noanswer-duration"));
const char *tmp;
tmp = switch_xml_attr_soft(xbutton, "ring-on-active");
if ( !zstr(tmp) ) {
ring_on_active = atoi(tmp);
}
tmp = switch_xml_attr_soft(xbutton, "ring-on-idle");
if ( !zstr(tmp) ) {
ring_on_idle = atoi(tmp);
}
if ((sql = switch_mprintf(
"INSERT INTO skinny_lines "
"(device_name, device_instance, position, line_instance, "