diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-06-06 18:40:40 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-06-06 18:40:40 +0000 |
commit | 8db4ef281d67eee2ebeac22a31bc1961e96d78b2 (patch) | |
tree | b910ef526c864da15ab3d05840fc78ff8c6c7608 /pjsip/include/pjsua-lib | |
parent | 40d75a0cb404fc0bafa20934e992befd0eab673b (diff) |
Another huge chunks of modifications in PJSUA API, too many things to mention!
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@492 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/include/pjsua-lib')
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua.h | 175 | ||||
-rw-r--r-- | pjsip/include/pjsua-lib/pjsua_console_app.h | 2 |
2 files changed, 123 insertions, 54 deletions
diff --git a/pjsip/include/pjsua-lib/pjsua.h b/pjsip/include/pjsua-lib/pjsua.h index 622991f6..dba8560c 100644 --- a/pjsip/include/pjsua-lib/pjsua.h +++ b/pjsip/include/pjsua-lib/pjsua.h @@ -68,6 +68,13 @@ PJ_BEGIN_DECL #endif +typedef int pjsua_acc_id; +typedef int pjsua_buddy_id; +typedef int pjsua_player_id; +typedef int pjsua_recorder_id; +typedef int pjsua_conf_port_id; + + /** * Account configuration. */ @@ -135,6 +142,11 @@ struct pjsua_config */ unsigned start_rtp_port; + /** + * Enable incoming and outgoing message logging (default: 1). + */ + pj_bool_t msg_logging; + /** Maximum calls to support (default: 4) */ unsigned max_calls; @@ -223,9 +235,6 @@ struct pjsua_config /** Outbound proxy (default: none) */ pj_str_t outbound_proxy; - /** URI to call. */ - pj_str_t uri_to_call; - /** Number of SIP accounts */ unsigned acc_cnt; @@ -272,6 +281,12 @@ struct pjsua_callback void (*on_call_state)(int call_index, pjsip_event *e); /** + * Notify application on incoming call. + */ + void (*on_incoming_call)(pjsua_acc_id acc_id, int call_index, + pjsip_rx_data *rdata); + + /** * Notify application on call being transfered. * Application can decide to accept/reject transfer request * by setting the code (default is 200). When this callback @@ -287,13 +302,13 @@ struct pjsua_callback * Application may then query the account info to get the * registration details. */ - void (*on_reg_state)(int acc_index); + void (*on_reg_state)(pjsua_acc_id acc_id); /** * Notify application when the buddy state has changed. * Application may then query the buddy into to get the details. */ - void (*on_buddy_state)(int buddy_index); + void (*on_buddy_state)(pjsua_buddy_id buddy_id); /** * Notify application on incoming pager (i.e. MESSAGE request). @@ -329,12 +344,12 @@ struct pjsua_call_info pj_str_t remote_info; pjsip_inv_state state; pj_str_t state_text; + pjsip_status_code last_status; + pj_str_t last_status_text; pj_time_val connect_duration; pj_time_val total_duration; - pjsip_status_code cause; - pj_str_t cause_text; pj_bool_t has_media; - unsigned conf_slot; + pjsua_conf_port_id conf_slot; }; typedef struct pjsua_call_info pjsua_call_info; @@ -355,7 +370,7 @@ typedef enum pjsua_buddy_status pjsua_buddy_status; */ struct pjsua_buddy_info { - unsigned index; + pjsua_buddy_id index; pj_bool_t is_valid; pj_str_t name; pj_str_t display_name; @@ -365,7 +380,6 @@ struct pjsua_buddy_info pjsua_buddy_status status; pj_str_t status_text; pj_bool_t monitor; - int acc_index; }; typedef struct pjsua_buddy_info pjsua_buddy_info; @@ -376,7 +390,7 @@ typedef struct pjsua_buddy_info pjsua_buddy_info; */ struct pjsua_acc_info { - unsigned index; + pjsua_acc_id index; pj_str_t acc_id; pj_bool_t has_registration; int expires; @@ -389,9 +403,23 @@ struct pjsua_acc_info typedef struct pjsua_acc_info pjsua_acc_info; -typedef int pjsua_player_id; -typedef int pjsua_recorder_id; +/** + * Conference port info. + */ +struct pjsua_conf_port_info +{ + pjsua_conf_port_id slot_id; + pj_str_t name; + unsigned clock_rate; + unsigned channel_count; + unsigned samples_per_frame; + unsigned bits_per_sample; + unsigned listener_cnt; + pjsua_conf_port_id listeners[256]; +}; + +typedef struct pjsua_conf_port_info pjsua_conf_port_info; /***************************************************************************** @@ -478,12 +506,12 @@ PJ_DECL(pj_status_t) pjsua_set_call_media_transport(unsigned call_index, /** * Get maximum number of calls configured in pjsua. */ -PJ_DECL(unsigned) pjsua_get_max_calls(void); +PJ_DECL(unsigned) pjsua_call_get_max_count(void); /** * Get current number of active calls. */ -PJ_DECL(unsigned) pjsua_get_call_count(void); +PJ_DECL(unsigned) pjsua_call_get_count(void); /** * Check if the specified call has active INVITE session and the INVITE @@ -501,14 +529,14 @@ PJ_DECL(pj_bool_t) pjsua_call_has_media(unsigned call_index); /** * Get call info. */ -PJ_DECL(pj_status_t) pjsua_get_call_info(unsigned call_index, +PJ_DECL(pj_status_t) pjsua_call_get_info(unsigned call_index, pjsua_call_info *info); /** * Duplicate call info. */ -PJ_DECL(void) pjsua_dup_call_info(pj_pool_t *pool, +PJ_DECL(void) pjsua_call_info_dup(pj_pool_t *pool, pjsua_call_info *dst_info, const pjsua_call_info *src_info); @@ -516,15 +544,15 @@ PJ_DECL(void) pjsua_dup_call_info(pj_pool_t *pool, /** * Make outgoing call. */ -PJ_DECL(pj_status_t) pjsua_make_call(unsigned acc_index, - const pj_str_t *dst_uri, - int *p_call_index); +PJ_DECL(pj_status_t) pjsua_call_make_call(unsigned acc_id, + const pj_str_t *dst_uri, + int *p_call_index); /** * Answer call. */ -PJ_DECL(void) pjsua_call_answer(int call_index, int code); +PJ_DECL(pj_status_t) pjsua_call_answer(int call_index, int code); /** * Hangup call. @@ -535,19 +563,19 @@ PJ_DECL(void) pjsua_call_hangup(int call_index); /** * Put call on-hold. */ -PJ_DECL(void) pjsua_call_set_hold(int call_index); +PJ_DECL(pj_status_t) pjsua_call_set_hold(int call_index); /** * Send re-INVITE (to release hold). */ -PJ_DECL(void) pjsua_call_reinvite(int call_index); +PJ_DECL(pj_status_t) pjsua_call_reinvite(int call_index); /** * Transfer call. */ -PJ_DECL(void) pjsua_call_xfer(unsigned call_index, const pj_str_t *dest); +PJ_DECL(pj_status_t) pjsua_call_xfer(unsigned call_index, const pj_str_t *dest); /** * Dial DTMF. @@ -559,13 +587,14 @@ PJ_DECL(pj_status_t) pjsua_call_dial_dtmf(unsigned call_index, /** * Send instant messaging inside INVITE session. */ -PJ_DECL(void) pjsua_call_send_im(int call_index, const pj_str_t *text); +PJ_DECL(pj_status_t) pjsua_call_send_im(int call_index, const pj_str_t *text); /** * Send IM typing indication inside INVITE session. */ -PJ_DECL(void) pjsua_call_typing(int call_index, pj_bool_t is_typing); +PJ_DECL(pj_status_t) pjsua_call_send_typing_ind(int call_index, + pj_bool_t is_typing); /** * Terminate all calls. @@ -576,7 +605,7 @@ PJ_DECL(void) pjsua_call_hangup_all(void); /** * Dump call and media statistics to string. */ -PJ_DECL(void) pjsua_dump_call(int call_index, int with_media, +PJ_DECL(void) pjsua_call_dump(int call_index, int with_media, char *buffer, unsigned maxlen, const char *indent); @@ -594,9 +623,34 @@ PJ_DECL(unsigned) pjsua_get_acc_count(void); /** * Get account info. */ -PJ_DECL(pj_status_t) pjsua_acc_get_info(unsigned acc_index, +PJ_DECL(pj_status_t) pjsua_acc_get_info(pjsua_acc_id acc_id, pjsua_acc_info *info); + +/** + * Enum accounts id. + */ +PJ_DECL(pj_status_t) pjsua_acc_enum_id( pjsua_acc_id ids[], + unsigned *count ); + + +/** + * Enum accounts info. + */ +PJ_DECL(pj_status_t) pjsua_acc_enum_info( pjsua_acc_info info[], + unsigned *count ); + + +/** + * Find account for outgoing request. + */ +PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_outgoing(const pj_str_t *url); + +/** + * Find account for incoming request. + */ +PJ_DECL(pjsua_acc_id) pjsua_acc_find_for_incoming(pjsip_rx_data *rdata); + /** * Add a new account. * This function should be called after pjsua_init(). @@ -604,14 +658,18 @@ PJ_DECL(pj_status_t) pjsua_acc_get_info(unsigned acc_index, * registration for this account. */ PJ_DECL(pj_status_t) pjsua_acc_add(const pjsua_acc_config *cfg, - int *acc_index); + pjsua_acc_id *acc_id); + +/** + * Delete account. + */ +PJ_DECL(pj_status_t) pjsua_acc_del(pjsua_acc_id acc_id); /** * Set account's presence status. - * Must call pjsua_pres_refresh() after this. */ -PJ_DECL(pj_status_t) pjsua_acc_set_online_status(unsigned acc_index, +PJ_DECL(pj_status_t) pjsua_acc_set_online_status(pjsua_acc_id acc_id, pj_bool_t is_online); @@ -619,7 +677,8 @@ PJ_DECL(pj_status_t) pjsua_acc_set_online_status(unsigned acc_index, * Update registration or perform unregistration. If renew argument is zero, * this will start unregistration process. */ -PJ_DECL(pj_status_t) pjsua_acc_set_registration(unsigned acc_index, pj_bool_t renew); +PJ_DECL(pj_status_t) pjsua_acc_set_registration(pjsua_acc_id acc_id, + pj_bool_t renew); @@ -637,28 +696,28 @@ PJ_DECL(unsigned) pjsua_get_buddy_count(void); /** * Get buddy info. */ -PJ_DECL(pj_status_t) pjsua_buddy_get_info(unsigned buddy_index, +PJ_DECL(pj_status_t) pjsua_buddy_get_info(pjsua_buddy_id buddy_index, pjsua_buddy_info *info); /** * Add new buddy. */ PJ_DECL(pj_status_t) pjsua_buddy_add(const pj_str_t *uri, - int *buddy_index); + pjsua_buddy_id *buddy_index); /** - * Enable/disable buddy's presence monitoring. - * Must call pjsua_pres_refresh() after this. + * Delete buddy. */ -PJ_DECL(pj_status_t) pjsua_buddy_subscribe_pres(unsigned buddy_index, - pj_bool_t monitor); +PJ_DECL(pj_status_t) pjsua_buddy_del(pjsua_buddy_id buddy_index); /** - * Refresh both presence client and server subscriptions. + * Enable/disable buddy's presence monitoring. */ -PJ_DECL(void) pjsua_pres_refresh(void); +PJ_DECL(pj_status_t) pjsua_buddy_subscribe_pres(pjsua_buddy_id buddy_index, + pj_bool_t monitor); + /** * Dump presence subscriptions. @@ -680,14 +739,14 @@ extern const pjsip_method pjsip_message_method; /** * Send IM outside dialog. */ -PJ_DECL(pj_status_t) pjsua_im_send(int acc_index, const pj_str_t *dst_uri, +PJ_DECL(pj_status_t) pjsua_im_send(int acc_id, const pj_str_t *dst_uri, const pj_str_t *text); /** * Send typing indication outside dialog. */ -PJ_DECL(pj_status_t) pjsua_im_typing(int acc_index, const pj_str_t *dst_uri, +PJ_DECL(pj_status_t) pjsua_im_typing(int acc_id, const pj_str_t *dst_uri, pj_bool_t is_typing); @@ -705,22 +764,29 @@ PJ_DECL(unsigned) pjsua_conf_max_ports(void); /** * Enum all conference ports. */ -PJ_DECL(pj_status_t) pjsua_conf_enum_ports(unsigned *count, - pjmedia_conf_port_info info[]); +PJ_DECL(pj_status_t) pjsua_conf_enum_port_ids(pjsua_conf_port_id id[], + unsigned *count); + + +/** + * Get information about the specified conference port + */ +PJ_DECL(pj_status_t) pjsua_conf_get_port_info( pjsua_conf_port_id id, + pjsua_conf_port_info *info); /** * Connect conference port. */ -PJ_DECL(pj_status_t) pjsua_conf_connect(unsigned src_port, - unsigned dst_port); +PJ_DECL(pj_status_t) pjsua_conf_connect(pjsua_conf_port_id src_port, + pjsua_conf_port_id dst_port); /** * Connect conference port connection. */ -PJ_DECL(pj_status_t) pjsua_conf_disconnect(unsigned src_port, - unsigned dst_port); +PJ_DECL(pj_status_t) pjsua_conf_disconnect(pjsua_conf_port_id src_port, + pjsua_conf_port_id dst_port); /** @@ -733,7 +799,7 @@ PJ_DECL(pj_status_t) pjsua_player_create(const pj_str_t *filename, /** * Get conference port associated with player. */ -PJ_DECL(int) pjsua_player_get_conf_port(pjsua_player_id id); +PJ_DECL(pjsua_conf_port_id) pjsua_player_get_conf_port(pjsua_player_id id); /** @@ -760,7 +826,7 @@ PJ_DECL(pj_status_t) pjsua_recorder_create(const pj_str_t *filename, /** * Get conference port associated with recorder. */ -PJ_DECL(int) pjsua_recorder_get_conf_port(pjsua_recorder_id id); +PJ_DECL(pjsua_conf_port_id) pjsua_recorder_get_conf_port(pjsua_recorder_id id); /** @@ -797,18 +863,21 @@ extern const char *pjsua_inv_state_names[]; * Parse arguments (pjsua_opt.c). */ PJ_DECL(pj_status_t) pjsua_parse_args(int argc, char *argv[], - pjsua_config *cfg); + pjsua_config *cfg, + pj_str_t *uri_to_call); /** * Load settings from a file. */ PJ_DECL(pj_status_t) pjsua_load_settings(const char *filename, - pjsua_config *cfg); + pjsua_config *cfg, + pj_str_t *uri_to_call); /** * Get pjsua running config. */ -PJ_DECL(const pjsua_config*) pjsua_get_config(void); +PJ_DECL(void) pjsua_get_config(pj_pool_t *pool, + pjsua_config *config); /** diff --git a/pjsip/include/pjsua-lib/pjsua_console_app.h b/pjsip/include/pjsua-lib/pjsua_console_app.h index ee7213ed..8be93714 100644 --- a/pjsip/include/pjsua-lib/pjsua_console_app.h +++ b/pjsip/include/pjsua-lib/pjsua_console_app.h @@ -20,7 +20,7 @@ #define __PJSUA_CONSOLE_APP_H__ -void pjsua_console_app_main(void); +void pjsua_console_app_main(const pj_str_t *uri_to_call); extern pjsip_module pjsua_console_app_msg_logger; extern pjsua_callback console_callback; |