mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-05-16 05:07:06 +00:00
skypiax: patch from Seven Du: channel naming when using 'RR' and 'ANY' interfaces, interface statistics 'sk list' totals
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14576 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
24c732a9c1
commit
f4167d727f
@ -914,7 +914,15 @@ static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *sessi
|
|||||||
if (outbound_profile) {
|
if (outbound_profile) {
|
||||||
char name[128];
|
char name[128];
|
||||||
|
|
||||||
snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
|
if (strncmp("ANY", outbound_profile->destination_number, 3 ) == 0) {
|
||||||
|
snprintf(name, sizeof(name), "skypiax/ANY/%s%s", tech_pvt->name, outbound_profile->destination_number+3);
|
||||||
|
} else if (strncmp("RR", outbound_profile->destination_number, 2) == 0) {
|
||||||
|
snprintf(name, sizeof(name), "skypiax/RR/%s%s", tech_pvt->name, outbound_profile->destination_number+2);
|
||||||
|
} else {
|
||||||
|
snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
|
||||||
|
}
|
||||||
|
|
||||||
|
//snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
|
||||||
//snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name);
|
//snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name);
|
||||||
switch_channel_set_name(channel, name);
|
switch_channel_set_name(channel, name);
|
||||||
caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
|
caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
|
||||||
@ -1762,6 +1770,10 @@ SWITCH_STANDARD_API(sk_function)
|
|||||||
|
|
||||||
if (!strcasecmp(argv[0], "list")) {
|
if (!strcasecmp(argv[0], "list")) {
|
||||||
int i;
|
int i;
|
||||||
|
int ib = 0;
|
||||||
|
int ib_failed = 0;
|
||||||
|
int ob = 0;
|
||||||
|
int ob_failed = 0;
|
||||||
char next_flag_char = ' ';
|
char next_flag_char = ' ';
|
||||||
|
|
||||||
stream->write_function(stream, "F ID\t Name \tIB (F/T) OB (F/T)\tState\tCallFlw\t\tUUID\n");
|
stream->write_function(stream, "F ID\t Name \tIB (F/T) OB (F/T)\tState\tCallFlw\t\tUUID\n");
|
||||||
@ -1769,6 +1781,10 @@ SWITCH_STANDARD_API(sk_function)
|
|||||||
|
|
||||||
for (i = 0; i < SKYPIAX_MAX_INTERFACES; i++) {
|
for (i = 0; i < SKYPIAX_MAX_INTERFACES; i++) {
|
||||||
next_flag_char = i == globals.next_interface ? '*' : ' ';
|
next_flag_char = i == globals.next_interface ? '*' : ' ';
|
||||||
|
ib += globals.SKYPIAX_INTERFACES[i].ib_calls;
|
||||||
|
ib_failed += globals.SKYPIAX_INTERFACES[i].ib_failed_calls;
|
||||||
|
ob += globals.SKYPIAX_INTERFACES[i].ob_calls;
|
||||||
|
ob_failed += globals.SKYPIAX_INTERFACES[i].ob_failed_calls;
|
||||||
|
|
||||||
if (strlen(globals.SKYPIAX_INTERFACES[i].name)) {
|
if (strlen(globals.SKYPIAX_INTERFACES[i].name)) {
|
||||||
stream->write_function(stream,
|
stream->write_function(stream,
|
||||||
@ -1786,7 +1802,8 @@ SWITCH_STANDARD_API(sk_function)
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
stream->write_function(stream, "\nTotal: %d\n", globals.real_interfaces - 1);
|
stream->write_function(stream, "\nTotal Interfaces: %d IB Calls(Failed/Total): %ld/%ld OB Calls(Failed/Total): %ld/%ld\n",
|
||||||
|
globals.real_interfaces - 1, ib_failed, ib, ob_failed, ob);
|
||||||
|
|
||||||
} else if (!strcasecmp(argv[0], "console")) {
|
} else if (!strcasecmp(argv[0], "console")) {
|
||||||
int i;
|
int i;
|
||||||
|
@ -243,10 +243,10 @@ struct private_object {
|
|||||||
char transfer_callid_number[50];
|
char transfer_callid_number[50];
|
||||||
char skype_transfer_call_id[512];
|
char skype_transfer_call_id[512];
|
||||||
int running;
|
int running;
|
||||||
unsigned long ib_calls;
|
uint32_t ib_calls;
|
||||||
unsigned long ob_calls;
|
uint32_t ob_calls;
|
||||||
unsigned long ib_failed_calls;
|
uint32_t ib_failed_calls;
|
||||||
unsigned long ob_failed_calls;
|
uint32_t ob_failed_calls;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct private_object private_t;
|
typedef struct private_object private_t;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user