diff --git a/plugins/unit_script/unit_script.cc b/plugins/unit_script/unit_script.cc index 4bc5d1342..43fd53556 100644 --- a/plugins/unit_script/unit_script.cc +++ b/plugins/unit_script/unit_script.cc @@ -87,11 +87,11 @@ int unit_data_grant(System *sys, long source_id) { return 1; } -int unit_answer_request(System *sys, long source_id) { +int unit_answer_request(System *sys, long source_id, long talkgroup) { std::string system_script = get_system_script(sys->get_short_name()); if ((system_script != "") && (source_id != 0)) { char shell_command[200]; - sprintf(shell_command, "%s %s %li ans_req &", system_script.c_str(), sys->get_short_name().c_str(), source_id); + sprintf(shell_command, "%s %s %li ans_req %li &", system_script.c_str(), sys->get_short_name().c_str(), source_id, talkgroup); int rc = system(shell_command); return 0; } diff --git a/trunk-recorder/main.cc b/trunk-recorder/main.cc index ae53cf789..6a3ab195b 100755 --- a/trunk-recorder/main.cc +++ b/trunk-recorder/main.cc @@ -939,8 +939,8 @@ void unit_data_grant(System *sys, long source_id) { plugman_unit_data_grant(sys, source_id); } -void unit_answer_request(System *sys, long source_id) { - plugman_unit_answer_request(sys, source_id); +void unit_answer_request(System *sys, long source_id, long talkgroup) { + plugman_unit_answer_request(sys, source_id, talkgroup); } void unit_location(System *sys, long source_id, long talkgroup_num) { diff --git a/trunk-recorder/plugin_manager/plugin_api.h b/trunk-recorder/plugin_manager/plugin_api.h index 67306613a..1a8610948 100644 --- a/trunk-recorder/plugin_manager/plugin_api.h +++ b/trunk-recorder/plugin_manager/plugin_api.h @@ -35,7 +35,7 @@ class Plugin_Api { virtual int unit_acknowledge_response(System *sys, long source_id) { return 0; }; virtual int unit_group_affiliation(System *sys, long source_id, long talkgroup_num) { return 0; }; virtual int unit_data_grant(System *sys, long source_id) { return 0; }; - virtual int unit_answer_request(System *sys, long source_id) { return 0; }; + virtual int unit_answer_request(System *sys, long source_id, long talkgroup) { return 0; }; virtual int unit_location(System *sys, long source_id, long talkgroup_num) { return 0; }; void set_frequency_format(int f) { frequencyFormat = f;} virtual ~Plugin_Api(){}; diff --git a/trunk-recorder/plugin_manager/plugin_manager.cc b/trunk-recorder/plugin_manager/plugin_manager.cc index 3ee81ceaa..573c7f843 100644 --- a/trunk-recorder/plugin_manager/plugin_manager.cc +++ b/trunk-recorder/plugin_manager/plugin_manager.cc @@ -277,11 +277,11 @@ void plugman_unit_data_grant(System *system, long source_id) { } } } -void plugman_unit_answer_request(System *system, long source_id) { +void plugman_unit_answer_request(System *system, long source_id, long talkgroup) { for (std::vector::iterator it = plugins.begin(); it != plugins.end(); it++) { Plugin *plugin = *it; if (plugin->state == PLUGIN_RUNNING) { - plugin->api->unit_data_grant(system, source_id); + plugin->api->unit_data_grant(system, source_id), talkgroup; } } } diff --git a/trunk-recorder/plugin_manager/plugin_manager.h b/trunk-recorder/plugin_manager/plugin_manager.h index 94805fef7..aa72feca2 100644 --- a/trunk-recorder/plugin_manager/plugin_manager.h +++ b/trunk-recorder/plugin_manager/plugin_manager.h @@ -47,6 +47,6 @@ void plugman_unit_deregistration(System * system, long source_id); void plugman_unit_acknowledge_response(System * system, long source_id); void plugman_unit_group_affiliation(System * system, long source_id, long talkgroup_num); void plugman_unit_data_grant(System * system, long source_id); -void plugman_unit_answer_request(System * system, long source_id); +void plugman_unit_answer_request(System * system, long source_id, long talkgroup); void plugman_unit_location(System * system, long source_id, long talkgroup_num); #endif // PLUGIN_MANAGER_H diff --git a/trunk-recorder/systems/p25_parser.cc b/trunk-recorder/systems/p25_parser.cc index 81700af44..8b07bdaa6 100644 --- a/trunk-recorder/systems/p25_parser.cc +++ b/trunk-recorder/systems/p25_parser.cc @@ -490,6 +490,7 @@ std::vector P25Parser::decode_tsbk(boost::dynamic_bitset<> &tsbk, message.mode = mode; message.priority = priority; message.source = sa; + message.talkgroup = si; BOOST_LOG_TRIVIAL(debug) << "tsbk05\tUnit To Unit Answer Request\tsa " << sa << "\tSource ID: " << si; } else if (opcode == 0x06) { // Unit to Unit Voice Channel Grant Update (UU_V_CH_GRANT_UPDT)