summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua/main.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-02-21 00:11:18 +0000
committerBenny Prijono <bennylp@teluu.com>2006-02-21 00:11:18 +0000
commit0d81e067197a673a11e69ed71ac3c52e71fa5cdc (patch)
treefeaae759f2c108fc396b1c73596e96d2d3e84e77 /pjsip/src/pjsua/main.c
parent295cee81042c609eea993b4f5c292614f979cbaa (diff)
Initial conference implementation
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@205 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua/main.c')
-rw-r--r--pjsip/src/pjsua/main.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/pjsip/src/pjsua/main.c b/pjsip/src/pjsua/main.c
index 66d4de4e..467c5a5a 100644
--- a/pjsip/src/pjsua/main.c
+++ b/pjsip/src/pjsua/main.c
@@ -136,6 +136,11 @@ static void keystroke_help(void)
puts("| ] Select next dialog | t Toggle Online status | d Dump status |");
puts("| [ Select previous dialog | | |");
puts("+-----------------------------------------------------------------------------+");
+ puts("| Conference Command |");
+ puts("| cl List ports |");
+ puts("| cc Connect port |");
+ puts("| cd Disconnect port |");
+ puts("+-----------------------------------------------------------------------------+");
puts("| q QUIT |");
puts("+=============================================================================+");
printf(">>> ");
@@ -254,6 +259,26 @@ static void ui_input_url(const char *title, char *buf, int len,
}
}
+static void conf_list(void)
+{
+ pjmedia_conf_port_info info;
+ struct pjsua_inv_data *inv_data;
+
+ printf("Conference ports:\n");
+
+ inv_data = pjsua.inv_list.next;
+ while (inv_data != &pjsua.inv_list) {
+
+ pjmedia_conf_get_port_info(pjsua.mconf, inv_data->conf_slot, &info);
+
+ printf("Port %2d %.*s\n", inv_data->conf_slot,
+ (int)info.name.slen, info.name.ptr);
+
+ inv_data = inv_data->next;
+ }
+}
+
+
static void ui_console_main(void)
{
char menuin[10];
@@ -395,6 +420,37 @@ static void ui_console_main(void)
pjsua_pres_refresh();
break;
+ case 'c':
+ switch (menuin[1]) {
+ case 'l':
+ conf_list();
+ break;
+ case 'c':
+ case 'd':
+ {
+ char src_port[10], dst_port[10];
+ pj_status_t status;
+
+ if (!simple_input("Connect src port #:", src_port, sizeof(src_port)))
+ break;
+ if (!simple_input("To dst port #:", dst_port, sizeof(dst_port)))
+ break;
+
+ if (menuin[1]=='c') {
+ status = pjmedia_conf_connect_port(pjsua.mconf, atoi(src_port), atoi(dst_port));
+ } else {
+ status = pjmedia_conf_disconnect_port(pjsua.mconf, atoi(src_port), atoi(dst_port));
+ }
+ if (status == PJ_SUCCESS) {
+ puts("Success");
+ } else {
+ puts("ERROR!!");
+ }
+ }
+ break;
+ }
+ break;
+
case 'd':
pjsua_dump();
break;