From b08138d058299db52a96346c0125feb9ef5cde58 Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Fri, 23 May 2014 15:03:47 -0500 Subject: [PATCH] FS-4296 --resolve initial calling/called nums in 'show channels' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Store initial caller and destination numbers in 'channels' table, so `show channels` can display it. Patch provided by Mariusz Czułada --- src/switch_core_sqldb.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/switch_core_sqldb.c b/src/switch_core_sqldb.c index 6a49a4988c..36be9f3699 100644 --- a/src/switch_core_sqldb.c +++ b/src/switch_core_sqldb.c @@ -2269,8 +2269,8 @@ static void core_event_handler(switch_event_t *event) break; } case SWITCH_EVENT_CHANNEL_CREATE: - new_sql() = switch_mprintf("insert into channels (uuid,direction,created,created_epoch, name,state,callstate,dialplan,context,hostname) " - "values('%q','%q','%q','%ld','%q','%q','%q','%q','%q','%q')", + new_sql() = switch_mprintf("insert into channels (uuid,direction,created,created_epoch, name,state,callstate,dialplan,context,hostname,initial_cid_num,initial_dest) " + "values('%q','%q','%q','%ld','%q','%q','%q','%q','%q','%q','%q','%q')", switch_event_get_header_nil(event, "unique-id"), switch_event_get_header_nil(event, "call-direction"), switch_event_get_header_nil(event, "event-date-local"), @@ -2279,7 +2279,9 @@ static void core_event_handler(switch_event_t *event) switch_event_get_header_nil(event, "channel-state"), switch_event_get_header_nil(event, "channel-call-state"), switch_event_get_header_nil(event, "caller-dialplan"), - switch_event_get_header_nil(event, "caller-context"), switch_core_get_switchname() + switch_event_get_header_nil(event, "caller-context"), switch_core_get_switchname(), + switch_event_get_header_nil(event, "caller-caller-id-number"), + switch_event_get_header_nil(event, "caller-destination-number") ); break; case SWITCH_EVENT_CHANNEL_ANSWER: @@ -2666,9 +2668,16 @@ static char create_channels_sql[] = " callee_direction VARCHAR(5),\n" " call_uuid VARCHAR(256),\n" " sent_callee_name VARCHAR(1024),\n" - " sent_callee_num VARCHAR(256)\n" + " sent_callee_num VARCHAR(256),\n" + " initial_cid_num VARCHAR(256),\n" + " initial_dest VARCHAR(256)\n" ");\n"; +static char *alter_channels_sql[2][2] = { + { "select initial_cid_num from channels", "ALTER TABLE channels ADD COLUMN initial_cid_num VARCHAR(256);\n" }, + { "select initial_dest from channels", "ALTER TABLE channels ADD COLUMN initial_dest VARCHAR(256);\n" } +}; + static char create_calls_sql[] = "CREATE TABLE calls (\n" " call_uuid VARCHAR(255),\n" @@ -3386,6 +3395,9 @@ switch_status_t switch_core_sqldb_start(switch_memory_pool_t *pool, switch_bool_ int result = 0; switch_cache_db_test_reactive(sql_manager.dbh, "select call_uuid, read_bit_rate, sent_callee_name from channels", "DROP TABLE channels", create_channels_sql); + for (int i=0; i