freeswitch/libs/sipcc/core/includes/uiapi.h

165 lines
7.1 KiB
C

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _UIAPI_H_
#define _UIAPI_H_
#include "cpr_types.h"
#include "phone_types.h"
#include "string_lib.h"
#include "vcm.h"
#include "ccapi.h"
#include "sessionConstants.h"
typedef enum {
evMinEvent = 0,
evOffHook = OFFHOOK,
evOnHook = ONHOOK,
evRingOut = RINGOUT,
evRingIn = RINGIN,
evProceed = PROCEED,
evConnected = CONNECTED,
evHold = HOLD,
evRemHold = REMHOLD,
evResume = RESUME,
evBusy = BUSY,
evReorder = REORDER,
evConference = CONFERENCE,
evRemInUse = REMINUSE,
evCallPreservation = PRESERVATION,
evHoldRevert = HOLDREVERT,
evWhisper = WHISPER,
evWaitingForDigits = WAITINGFORDIGITS,
evCreateOffer = CREATEOFFER,
evCreateAnswer = CREATEANSWER,
evCreateOfferError = CREATEOFFERERROR,
evCreateAnswerError = CREATEANSWERERROR,
evSetLocalDesc = SETLOCALDESC,
evSetRemoteDesc = SETREMOTEDESC,
evSetLocalDescError = SETLOCALDESCERROR,
evSetRemoteDescError = SETREMOTEDESCERROR,
evOnRemoteStreamAdd = REMOTESTREAMADD,
evMaxEvent
} call_events;
#define MWI_STATUS_YES 1
/* call operations : dialing, state change and info related */
void ui_new_call(call_events event, line_t nLine, callid_t nCallID,
int call_attr, uint16_t call_instance_id, boolean dialed_digits);
void ui_set_call_attr(line_t line_id, callid_t call_id, call_attr_t attr);
void ui_call_info(string_t clgName, string_t clgNumber, string_t altClgNumber, boolean dispClgNumber,
string_t cldName, string_t cldNumber, boolean dispCldNumber,
string_t pOrigCalledNameStr, string_t pOrigCalledNumberStr,
string_t pLastRedirectingNameStr,
string_t pLastRedirectingNumberStr,
calltype_t call_type,
line_t line, callid_t call_id, uint16_t call_instance_id,
cc_security_e call_security, cc_policy_e call_policy);
void ui_cc_capability(line_t line_id, callid_t call_id,
string_t recv_info_list);
void ui_info_received(line_t line_id, callid_t call_id,
const char *info_package, const char *content_type,
const char *message_body);
void ui_update_placed_call_info(line_t line, callid_t call_id, string_t cldName,
string_t cldNumber);
void ui_log_disposition( callid_t nCallID, int logDisp);
void ui_call_state(call_events event, line_t nLine, callid_t nCallID, cc_causes_t cause);
void ui_set_local_hold(line_t line, callid_t call_id);
void ui_delete_last_digit(line_t line_id, callid_t call_id);
void ui_update_label_n_speeddial(line_t line, line_t button_no, string_t
speed_dial, string_t label);
void ui_mnc_reached(line_t line, boolean mnc_reached);
void ui_call_selected(line_t line_id, callid_t call_id, int selected);
void ui_call_in_preservation(line_t line_id, callid_t call_id);
void ui_update_call_security(line_t line, callid_t call_id,
cc_security_e call_security);
void ui_update_conf_invoked(line_t line, callid_t call_id,
boolean invoked);
void ui_terminate_feature(line_t line, callid_t call_id,
callid_t target_call_id);
void ui_update_gcid(line_t line, callid_t call_id, char *gcid);
void ui_update_callref(line_t line, callid_t call_id, unsigned int callref);
/* status line related */
void ui_set_call_status(string_t pString, line_t line, callid_t callID);
char *ui_get_idle_prompt_string(void);
void ui_set_idle_prompt_string(string_t pString, int prompt);
void ui_set_notification(line_t line, callid_t callID,
char *promptString, int timeout,
boolean notifyProgress, char priority);
void ui_clear_notification();
/* softkey manipulation */
void ui_control_feature(line_t line_id, callid_t call_id, int list[], int len, int enable);
void ui_select_feature_key_set(line_t line_id, callid_t call_id, char *set_name,
int sk_list[], int len);
void ui_control_featurekey_bksp(line_t line_id, callid_t call_id,
boolean enable);
/* speaker */
void ui_set_speaker_mode(boolean mode);
/* mwi */
void ui_set_mwi(line_t line, boolean status, int type, int newCount, int oldCount, int hpNewCount, int hpOldCount);
void ui_change_mwi_lamp(int status);
boolean ui_line_has_mwi_active(line_t line);
/* call forward */
void ui_cfwd_status(line_t line, boolean cfa, char *cfa_number,
boolean lcl_fwd);
/* registration, stack init related */
void ui_sip_config_done(void);
void ui_set_sip_registration_state(line_t line, boolean registered);
void ui_reg_all_failed(void);
void ui_keypad_button(char *digitstr, int direction);
void ui_offhook(line_t line, callid_t call_id);
void ui_dial_call(line_t line, callid_t call_id, char *to,
char *global_call_id);
int ui_dial_digits(line_t line, char *digitstr);
int ui_dial_dtmf(line_t line, char *digitstr);
void ui_answer_call(line_t line, callid_t call_id);
void ui_disconnect_call(line_t line, callid_t call_id);
int ui_xfer_setup(line_t line, callid_t call_id, char *to,
char *global_call_id, boolean media);
void ui_xfer_complete(line_t line, callid_t call_id, callid_t consult_call_id);
int ui_conf_setup(line_t line, callid_t call_id, char *to,
char *global_call_id);
void ui_conf_complete(line_t line, callid_t call_id, callid_t consult_call_id);
int ui_hold_call(line_t line, callid_t call_id);
void ui_hold_retrieve_call(line_t line, callid_t call_id);
void ui_cfwdall_req(unsigned int line);
/* Test Interface */
void ui_execute_uri(char *);
/* Status Message Interface */
void ui_log_status_msg(char *msg);
void ui_init_ccm_conn_status(void);
void ui_update_video_avail (line_t line, callid_t call_id, int avail);
void ui_update_video_offered (line_t line, callid_t call_id, int dir);
void ui_call_stop_ringer(line_t line, callid_t call_id);
void ui_call_start_ringer(vcm_ring_mode_t ringMode, short once, line_t line, callid_t call_id);
void ui_BLF_notification (int request_id, cc_blf_state_t blf_state, int app_id);
void ui_update_media_interface_change(line_t line, callid_t call_id, group_call_event_t event);
void ui_create_offer(call_events event, line_t nLine, callid_t nCallID,
uint16_t call_instance_id, char* sdp);
void ui_create_answer(call_events event, line_t nLine, callid_t nCallID,
uint16_t call_instance_id, char* sdp);
void ui_set_local_description(call_events event, line_t nLine, callid_t nCallID,
uint16_t call_instance_id, char* sdp, cc_int32_t status);
void ui_set_remote_description(call_events event, line_t nLine, callid_t nCallID,
uint16_t call_instance_id, char* sdp, cc_int32_t status);
void ui_on_remote_stream_added(call_events event, line_t nLine, callid_t nCallID,
uint16_t call_instance_id, cc_media_remote_track_table_t media_tracks);
#endif