Changeset 683


Ignore:
Timestamp:
Aug 15, 2006 1:11:22 PM (18 years ago)
Author:
bennylp
Message:

Added initial PUBLISH client support, and also default account selection in pjsua/pjsua-lib

Location:
pjproject/trunk
Files:
2 added
5 edited

Legend:

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

    r661 r683  
    6565 
    6666 
    67 static pjsua_acc_id     current_acc; 
     67//static pjsua_acc_id   current_acc; 
     68#define current_acc     pjsua_acc_get_default() 
    6869static pjsua_call_id    current_call; 
    6970static pj_str_t         uri_arg; 
     
    19201921            i = my_atoi(buf); 
    19211922            if (pjsua_acc_is_valid(i)) { 
    1922                 current_acc = i; 
     1923                pjsua_acc_set_default(i); 
    19231924                PJ_LOG(3,(THIS_FILE, "Current account changed to %d", i)); 
    19241925            } else { 
     
    23782379 
    23792380        /* Add local account */ 
    2380         pjsua_acc_add_local(transport_id, PJ_TRUE, &current_acc); 
     2381        pjsua_acc_add_local(transport_id, PJ_TRUE, NULL); 
    23812382        pjsua_acc_set_online_status(current_acc, PJ_TRUE); 
    23822383 
     
    23932394 
    23942395        /* Add local account */ 
    2395         pjsua_acc_add_local(transport_id, PJ_TRUE, &current_acc); 
     2396        pjsua_acc_add_local(transport_id, PJ_TRUE, NULL); 
    23962397        pjsua_acc_set_online_status(current_acc, PJ_TRUE); 
    23972398    } 
     
    24062407    /* Add accounts */ 
    24072408    for (i=0; i<app_config.acc_cnt; ++i) { 
    2408         status = pjsua_acc_add(&app_config.acc_cfg[i], PJ_TRUE, &current_acc); 
     2409        status = pjsua_acc_add(&app_config.acc_cfg[i], PJ_TRUE, NULL); 
    24092410        if (status != PJ_SUCCESS) 
    24102411            goto on_error; 
  • pjproject/trunk/pjsip/build/pjsip_simple.dsp

    r458 r683  
    110110# Begin Source File 
    111111 
     112SOURCE="..\src\pjsip-simple\publishc.c" 
     113 
     114!IF  "$(CFG)" == "pjsip_simple - Win32 Release" 
     115 
     116!ELSEIF  "$(CFG)" == "pjsip_simple - Win32 Debug" 
     117 
     118# PROP Exclude_From_Build 1 
     119 
     120!ENDIF  
     121 
     122# End Source File 
     123# Begin Source File 
     124 
    112125SOURCE="..\src\pjsip-simple\xpidf.c" 
    113126# End Source File 
     
    146159# Begin Source File 
    147160 
     161SOURCE="..\include\pjsip-simple\publish.h" 
     162# End Source File 
     163# Begin Source File 
     164 
    148165SOURCE="..\include\pjsip-simple\types.h" 
    149166# End Source File 
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r659 r683  
    11611161 */ 
    11621162PJ_DECL(pj_bool_t) pjsua_acc_is_valid(pjsua_acc_id acc_id); 
     1163 
     1164 
     1165/** 
     1166 * Set default account to be used when incoming and outgoing 
     1167 * requests doesn't match any accounts. 
     1168 * 
     1169 * @param acc_id        The account ID to be used as default. 
     1170 * 
     1171 * @return              PJ_SUCCESS on success. 
     1172 */ 
     1173PJ_DECL(pj_status_t) pjsua_acc_set_default(pjsua_acc_id acc_id); 
     1174 
     1175 
     1176/** 
     1177 * Get default account. 
     1178 * 
     1179 * @return              The default account ID, or PJSUA_INVALID_ID if no 
     1180 *                      default account is configured. 
     1181 */ 
     1182PJ_DECL(pjsua_acc_id) pjsua_acc_get_default(void); 
    11631183 
    11641184 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_acc.c

    r635 r683  
    4444 
    4545/* 
     46 * Set default account 
     47 */ 
     48PJ_DEF(pj_status_t) pjsua_acc_set_default(pjsua_acc_id acc_id) 
     49{ 
     50    pjsua_var.default_acc = acc_id; 
     51    return PJ_SUCCESS; 
     52} 
     53 
     54 
     55/* 
     56 * Get default account. 
     57 */ 
     58PJ_DEF(pjsua_acc_id) pjsua_acc_get_default(void) 
     59{ 
     60    return pjsua_var.default_acc; 
     61} 
     62 
     63 
     64/* 
    4665 * Copy account configuration. 
    4766 */ 
     
    725744    sip_uri = pjsip_uri_get_uri(uri); 
    726745 
     746    /* See if default acc match */ 
     747    if (pjsua_var.default_acc != PJSUA_INVALID_ID && 
     748        pj_stricmp(&pjsua_var.acc[pjsua_var.default_acc].srv_domain, &sip_uri->host)==0 && 
     749        pjsua_var.acc[pjsua_var.default_acc].srv_port == sip_uri->port)  
     750    { 
     751        acc_id = pjsua_var.default_acc; 
     752    } else { 
     753        acc_id = PJ_ARRAY_SIZE(pjsua_var.acc); 
     754    } 
     755 
    727756    /* Find matching domain AND port */ 
    728     for (acc_id=0; acc_id<PJ_ARRAY_SIZE(pjsua_var.acc); ++acc_id) { 
    729         if (!pjsua_var.acc[acc_id].valid) 
    730             continue; 
    731         if (pj_stricmp(&pjsua_var.acc[acc_id].srv_domain, &sip_uri->host)==0 && 
    732             pjsua_var.acc[acc_id].srv_port == sip_uri->port) 
    733             break; 
     757    if (acc_id == PJ_ARRAY_SIZE(pjsua_var.acc)) { 
     758        for (acc_id=0; acc_id<PJ_ARRAY_SIZE(pjsua_var.acc); ++acc_id) { 
     759            if (!pjsua_var.acc[acc_id].valid) 
     760                continue; 
     761            if (pj_stricmp(&pjsua_var.acc[acc_id].srv_domain, &sip_uri->host)==0 && 
     762                pjsua_var.acc[acc_id].srv_port == sip_uri->port) 
     763                break; 
     764        } 
    734765    } 
    735766 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_pres.c

    r611 r683  
    544544    status = pjsip_pres_notify( sub, PJSIP_EVSUB_STATE_ACTIVE, NULL, 
    545545                                NULL, &tdata); 
    546     if (status == PJ_SUCCESS) 
     546    if (status == PJ_SUCCESS) { 
     547        pjsua_process_msg_data(tdata, NULL); 
    547548        status = pjsip_pres_send_request( sub, tdata); 
     549    } 
    548550 
    549551    if (status != PJ_SUCCESS) { 
     
    612614            pjsip_pres_set_status(uapres->sub, &pres_status); 
    613615 
    614             if (pjsip_pres_current_notify(uapres->sub, &tdata)==PJ_SUCCESS) 
     616            if (pjsip_pres_current_notify(uapres->sub, &tdata)==PJ_SUCCESS) { 
     617                pjsua_process_msg_data(tdata, NULL); 
    615618                pjsip_pres_send_request(uapres->sub, tdata); 
     619            } 
    616620        } 
    617621 
     
    836840    } 
    837841 
     842    pjsua_process_msg_data(tdata, NULL); 
     843 
    838844    status = pjsip_pres_send_request(buddy->sub, tdata); 
    839845    if (status != PJ_SUCCESS) { 
     
    865871 
    866872    status = pjsip_pres_initiate( buddy->sub, 0, &tdata); 
    867     if (status == PJ_SUCCESS) 
     873    if (status == PJ_SUCCESS) { 
     874        pjsua_process_msg_data(tdata, NULL); 
    868875        status = pjsip_pres_send_request( buddy->sub, tdata ); 
     876    } 
    869877 
    870878    if (status != PJ_SUCCESS) { 
Note: See TracChangeset for help on using the changeset viewer.