Changeset 212 for pjproject/trunk/pjsip/src/pjsua/main.c
- Timestamp:
- Feb 21, 2006 11:47:00 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsua/main.c
r205 r212 114 114 "%s (%.*s;expires=%d)", 115 115 pjsip_get_status_text(pjsua.regc_last_code)->ptr, 116 (int)info. server_uri.slen,117 info. server_uri.ptr,116 (int)info.client_uri.slen, 117 info.client_uri.ptr, 118 118 info.next_reg); 119 119 … … 132 132 puts("| | | |"); 133 133 puts("| m Make new call | i Send IM | o Send OPTIONS |"); 134 puts("| a Answer call | s Subscribe presence | R(Re-)register |");135 puts("| h Hangup call | u Unsubscribe presence | rUnregister |");136 puts("| ] Select next dialog | t To ggle Online status | d Dump status |");134 puts("| a Answer call | s Subscribe presence | rr (Re-)register |"); 135 puts("| h Hangup call | u Unsubscribe presence | ru Unregister |"); 136 puts("| ] Select next dialog | t ToGgle Online status | d Dump status |"); 137 137 puts("| [ Select previous dialog | | |"); 138 puts(" +-----------------------------------------------------------------------------+");139 puts("| Conference Command|");140 puts("| cl List ports|");141 puts("| cc Connect port|");142 puts("| cd Disconnect port|");143 puts("+------------------------------ -----------------------------------------------+");138 puts("| +--------------------------+-------------------+"); 139 puts("| H Hold call | Conference Command | |"); 140 puts("| v re-inVite (release hold) | cl List ports | |"); 141 puts("| x Xfer call | cc Connect port | |"); 142 puts("| | cd Disconnect port | |"); 143 puts("+------------------------------+--------------------------+-------------------+"); 144 144 puts("| q QUIT |"); 145 145 puts("+=============================================================================+"); … … 284 284 char menuin[10]; 285 285 char buf[128]; 286 pjsip_inv_session *inv;287 286 struct input_result result; 288 287 … … 306 305 puts("You can't do that with make call!"); 307 306 else 308 pjsua_invite(pjsua.buddies[result.nb_result].uri.ptr, &inv);307 pjsua_invite(pjsua.buddies[result.nb_result].uri.ptr, NULL); 309 308 } else if (result.uri_result) 310 pjsua_invite(result.uri_result, &inv);309 pjsua_invite(result.uri_result, NULL); 311 310 312 311 break; … … 354 353 355 354 } else { 356 pj_status_t status; 357 pjsip_tx_data *tdata; 358 359 status = pjsip_inv_end_session(inv_session->inv, 360 PJSIP_SC_DECLINE, NULL, &tdata); 361 if (status != PJ_SUCCESS) { 362 pjsua_perror(THIS_FILE, 363 "Failed to create end session message", 364 status); 365 continue; 355 pjsua_inv_hangup(inv_session, PJSIP_SC_DECLINE); 356 } 357 break; 358 359 case ']': 360 case '[': 361 /* 362 * Cycle next/prev dialog. 363 */ 364 if (menuin[0] == ']') { 365 inv_session = inv_session->next; 366 if (inv_session == &pjsua.inv_list) 367 inv_session = pjsua.inv_list.next; 368 369 } else { 370 inv_session = inv_session->prev; 371 if (inv_session == &pjsua.inv_list) 372 inv_session = pjsua.inv_list.prev; 373 } 374 375 if (inv_session != &pjsua.inv_list) { 376 char url[PJSIP_MAX_URL_SIZE]; 377 int len; 378 379 len = pjsip_uri_print(0, inv_session->inv->dlg->remote.info->uri, 380 url, sizeof(url)-1); 381 if (len < 1) { 382 pj_ansi_strcpy(url, "<uri is too long>"); 383 } else { 384 url[len] = '\0'; 366 385 } 367 386 368 status = pjsip_inv_send_msg(inv_session->inv, tdata, NULL); 369 if (status != PJ_SUCCESS) { 370 pjsua_perror(THIS_FILE, 371 "Failed to send end session message", 372 status); 373 continue; 387 PJ_LOG(3,(THIS_FILE,"Current dialog: %s", url)); 388 389 } else { 390 PJ_LOG(3,(THIS_FILE,"No current dialog")); 391 } 392 break; 393 394 case 'H': 395 /* 396 * Hold call. 397 */ 398 if (inv_session != &pjsua.inv_list) { 399 400 pjsua_inv_set_hold(inv_session); 401 402 } else { 403 PJ_LOG(3,(THIS_FILE, "No current call")); 404 } 405 break; 406 407 case 'v': 408 /* 409 * Send re-INVITE (to release hold, etc). 410 */ 411 if (inv_session != &pjsua.inv_list) { 412 413 pjsua_inv_reinvite(inv_session); 414 415 } else { 416 PJ_LOG(3,(THIS_FILE, "No current call")); 417 } 418 break; 419 420 case 'x': 421 /* 422 * Transfer call. 423 */ 424 if (inv_session == &pjsua.inv_list) { 425 426 PJ_LOG(3,(THIS_FILE, "No current call")); 427 428 } else { 429 ui_input_url("Transfer to URL", buf, sizeof(buf), &result); 430 if (result.nb_result != NO_NB) { 431 if (result.nb_result == -1) 432 puts("You can't do that with transfer call!"); 433 else 434 pjsua_inv_xfer_call( inv_session, 435 pjsua.buddies[result.nb_result].uri.ptr); 436 437 } else if (result.uri_result) { 438 pjsua_inv_xfer_call( inv_session, result.uri_result); 374 439 } 375 440 } 376 break;377 378 case ']':379 inv_session = inv_session->next;380 if (inv_session == &pjsua.inv_list)381 inv_session = pjsua.inv_list.next;382 break;383 384 case '[':385 inv_session = inv_session->prev;386 if (inv_session == &pjsua.inv_list)387 inv_session = pjsua.inv_list.prev;388 441 break; 389 442 390 443 case 's': 391 444 case 'u': 392 ui_input_url("Subscribe presence of", buf, sizeof(buf), &result); 445 /* 446 * Subscribe/unsubscribe presence. 447 */ 448 ui_input_url("(un)Subscribe presence of", buf, sizeof(buf), &result); 393 449 if (result.nb_result != NO_NB) { 394 450 if (result.nb_result == -1) { … … 403 459 404 460 } else if (result.uri_result) { 405 puts("Sorry, can only subscribe to buddy's presence, not arbitrary URL (for now)"); 406 } 407 408 break; 409 410 case 'R': 411 pjsua_regc_update(PJ_TRUE); 461 puts("Sorry, can only subscribe to buddy's presence, " 462 "not arbitrary URL (for now)"); 463 } 464 465 break; 466 467 case 'r': 468 switch (menuin[1]) { 469 case 'r': 470 /* 471 * Re-Register. 472 */ 473 pjsua_regc_update(PJ_TRUE); 474 break; 475 case 'u': 476 /* 477 * Unregister 478 */ 479 pjsua_regc_update(PJ_FALSE); 480 break; 481 } 412 482 break; 413 483 414 case 'r':415 pjsua_regc_update(PJ_FALSE);416 break;417 418 484 case 't': 419 485 pjsua.online_status = !pjsua.online_status; … … 431 497 char src_port[10], dst_port[10]; 432 498 pj_status_t status; 433 434 if (!simple_input("Connect src port #:", src_port, sizeof(src_port))) 499 const char *src_title, *dst_title; 500 501 conf_list(); 502 503 src_title = (menuin[1]=='c'? 504 "Connect src port #": 505 "Disconnect src port #"); 506 dst_title = (menuin[1]=='c'? 507 "To dst port #": 508 "From dst port #"); 509 510 if (!simple_input(src_title, src_port, sizeof(src_port))) 435 511 break; 436 if (!simple_input("To dst port #:", dst_port, sizeof(dst_port))) 512 513 if (!simple_input(dst_title, dst_port, sizeof(dst_port))) 437 514 break; 438 515 439 516 if (menuin[1]=='c') { 440 status = pjmedia_conf_connect_port(pjsua.mconf, atoi(src_port), atoi(dst_port)); 517 status = pjmedia_conf_connect_port(pjsua.mconf, 518 atoi(src_port), 519 atoi(dst_port)); 441 520 } else { 442 status = pjmedia_conf_disconnect_port(pjsua.mconf, atoi(src_port), atoi(dst_port)); 521 status = pjmedia_conf_disconnect_port(pjsua.mconf, 522 atoi(src_port), 523 atoi(dst_port)); 443 524 } 444 525 if (status == PJ_SUCCESS) {
Note: See TracChangeset
for help on using the changeset viewer.