int flags;
struct varshead *headp;
va_list ap1, ap2;
- char *tech = "";
+ char *tech = "", *tech2 = NULL;
/* If shutting down, don't allocate any new channels */
if (shutting_down) {
tmp->cid.cid_num = ast_strdup(cid_num);
if (!ast_strlen_zero(name_fmt)) {
- char *slash;
+ char *slash, *slash2;
/* Almost every channel is calling this function, and setting the name via the ast_string_field_build() call.
* And they all use slightly different formats for their name string.
* This means, to set the name here, we have to accept variable args, and call the string_field_build from here.
va_end(ap2);
tech = ast_strdupa(tmp->name);
if ((slash = strchr(tech, '/'))) {
+ if ((slash2 = strchr(slash + 1, '/'))) {
+ tech2 = slash + 1;
+ *slash2 = '\0';
+ }
*slash = '\0';
}
}
* proper and correct place to make this call, but you sure do have to pass
* a lot of data into this func to do it here!
*/
- if (ast_get_channel_tech(tech)) {
+ if (ast_get_channel_tech(tech) || (tech2 && ast_get_channel_tech(tech2))) {
manager_event(EVENT_FLAG_CALL, "Newchannel",
"Channel: %s\r\n"
"State: %s\r\n"