summaryrefslogtreecommitdiff
path: root/pjsip/include/pjsua-lib
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2006-06-06 18:40:40 +0000
committerBenny Prijono <bennylp@teluu.com>2006-06-06 18:40:40 +0000
commit8db4ef281d67eee2ebeac22a31bc1961e96d78b2 (patch)
treeb910ef526c864da15ab3d05840fc78ff8c6c7608 /pjsip/include/pjsua-lib
parent40d75a0cb404fc0bafa20934e992befd0eab673b (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.h175
-rw-r--r--pjsip/include/pjsua-lib/pjsua_console_app.h2
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;