Changeset 1626


Ignore:
Timestamp:
Dec 9, 2007 3:41:10 PM (17 years ago)
Author:
bennylp
Message:

Ticket #430: Added --auto-update-nat, --use-compact-form, and --dis-codec options in pjsua (thanks Lafras Henning)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app.c

    r1620 r1626  
    5858    unsigned                codec_cnt; 
    5959    pj_str_t                codec_arg[32]; 
     60    unsigned                codec_dis_cnt; 
     61    pj_str_t                codec_dis[32]; 
    6062    pj_bool_t               null_audio; 
    6163    unsigned                wav_count; 
     
    130132    puts  ("  --publish           Send presence PUBLISH for this account"); 
    131133    puts  ("  --use-100rel        Require reliable provisional response (100rel)"); 
     134    puts  ("  --auto-update-nat=N Where N is 0 or 1 to enable/disable SIP traversal behind"); 
     135    puts  ("                      symmetric NAT (default 1)"); 
    132136    puts  ("  --next-cred         Add another credentials"); 
    133137    puts  (""); 
     
    163167    puts  ("  --use-ice           Enable ICE (default:no)"); 
    164168    puts  ("  --add-codec=name    Manually add codec (default is to enable all)"); 
     169    puts  ("  --dis-codec=name    Disable codec (can be specified multiple times)"); 
    165170    puts  ("  --clock-rate=N      Override sound device clock rate"); 
    166171    puts  ("  --null-audio        Use NULL audio device"); 
     
    198203    puts  ("  --duration=SEC      Set maximum call duration (default:no limit)"); 
    199204    puts  ("  --norefersub        Suppress event subscription when transfering calls"); 
     205    puts  ("  --use-compact-form  Minimize SIP message size"); 
    200206 
    201207    puts  (""); 
     
    389395           OPT_TLS_NEG_TIMEOUT, 
    390396           OPT_CAPTURE_DEV, OPT_PLAYBACK_DEV, 
     397           OPT_AUTO_UPDATE_NAT,OPT_USE_COMPACT_FORM,OPT_DIS_CODEC 
    391398    }; 
    392399    struct pj_getopt_option long_options[] = { 
     
    413420        { "id",         1, 0, OPT_ID}, 
    414421        { "contact",    1, 0, OPT_CONTACT}, 
     422        { "auto-update-nat",    1, 0, OPT_AUTO_UPDATE_NAT}, 
     423        { "use-compact-form",   0, 0, OPT_USE_COMPACT_FORM}, 
    415424        { "realm",      1, 0, OPT_REALM}, 
    416425        { "username",   1, 0, OPT_USERNAME}, 
     
    434443        { "use-ice",    0, 0, OPT_USE_ICE}, 
    435444        { "add-codec",  1, 0, OPT_ADD_CODEC}, 
     445        { "dis-codec",  1, 0, OPT_DIS_CODEC}, 
    436446        { "complexity", 1, 0, OPT_COMPLEXITY}, 
    437447        { "quality",    1, 0, OPT_QUALITY}, 
     
    661671            break; 
    662672 
     673        case OPT_AUTO_UPDATE_NAT:   /* OPT_AUTO_UPDATE_NAT */ 
     674            cur_acc->auto_update_nat  = pj_strtoul(pj_cstr(&tmp, pj_optarg)); 
     675            break; 
     676 
     677        case OPT_USE_COMPACT_FORM: 
     678            /* enable compact form - from Ticket #342 */ 
     679            { 
     680                extern pj_bool_t pjsip_use_compact_form; 
     681                extern pj_bool_t pjsip_include_allow_hdr_in_dlg; 
     682                extern pj_bool_t pjmedia_add_rtpmap_for_static_pt; 
     683 
     684                pjsip_use_compact_form = PJ_TRUE; 
     685                /* do not transmit Allow header */ 
     686                pjsip_include_allow_hdr_in_dlg = PJ_FALSE; 
     687                /* Do not include rtpmap for static payload types (<96) */ 
     688                pjmedia_add_rtpmap_for_static_pt = PJ_FALSE; 
     689            } 
     690            break; 
     691 
    663692        case OPT_NEXT_ACCOUNT: /* Add more account. */ 
    664693            cfg->acc_cnt++; 
     
    785814                return -1; 
    786815            } 
     816            break; 
     817 
     818        case OPT_DIS_CODEC: 
     819            cfg->codec_dis[cfg->codec_dis_cnt++] = pj_str(pj_optarg); 
    787820            break; 
    788821 
     
    10711104    } 
    10721105 
     1106    /*  */ 
     1107    //if (acc_cfg->auto_update_nat) 
     1108    { 
     1109        pj_ansi_sprintf(line, "--auto-update-nat %i\n", 
     1110                        (int)acc_cfg->auto_update_nat); 
     1111        pj_strcat2(result, line); 
     1112    } 
     1113 
    10731114    /* Proxy */ 
    10741115    for (i=0; i<acc_cfg->proxy_cnt; ++i) { 
     
    11191160    pj_str_t cfg; 
    11201161    char line[128]; 
     1162    extern pj_bool_t pjsip_use_compact_form; 
    11211163 
    11221164    PJ_UNUSED_ARG(max); 
     
    13671409        pj_strcat2(&cfg, line); 
    13681410    } 
     1411    /* Disable codec */ 
     1412    for (i=0; i<config->codec_dis_cnt; ++i) { 
     1413        pj_ansi_sprintf(line, "--dis-codec %s\n", 
     1414                    config->codec_dis[i].ptr); 
     1415        pj_strcat2(&cfg, line); 
     1416    } 
    13691417 
    13701418    pj_strcat2(&cfg, "\n#\n# User agent:\n#\n"); 
     
    13941442    } 
    13951443 
     1444    if (pjsip_use_compact_form) 
     1445    { 
     1446        pj_strcat2(&cfg, "--use-compact-form\n"); 
     1447    } 
    13961448 
    13971449    pj_strcat2(&cfg, "\n#\n# Buddies:\n#\n"); 
     
    34893541    } 
    34903542 
     3543    /* Optionally disable some codec */ 
     3544    for (i=0; i<app_config.codec_dis_cnt; ++i) { 
     3545        pjsua_codec_set_priority(&app_config.codec_dis[i],PJMEDIA_CODEC_PRIO_DISABLED); 
     3546    } 
     3547 
    34913548    /* Add RTP transports */ 
    34923549    status = pjsua_media_transports_create(&app_config.rtp_cfg); 
Note: See TracChangeset for help on using the changeset viewer.