00001
00024 #ifndef _DLG_VAR_H_
00025 #define _DLG_VAR_H_
00026
00027 #include "../../pvar.h"
00028 #include "dlg_hash.h"
00029
00030 #define DLG_TOROUTE_SIZE 32
00031
00032 typedef struct _dlg_ctx {
00033 int on;
00034 unsigned int flags;
00035 unsigned int iflags;
00036 int to_route;
00037 char to_route_name[DLG_TOROUTE_SIZE];
00038 int to_bye;
00039 int timeout;
00040 dlg_cell_t *dlg1;
00041 dlg_iuid_t iuid;
00042 int set;
00043 unsigned int dir;
00044 } dlg_ctx_t;
00045
00046
00047 typedef struct dlg_var {
00048 str key;
00049 str value;
00050 unsigned int vflags;
00051 struct dlg_var *next;
00052 } dlg_var_t;
00053
00054 str* get_dlg_variable(dlg_cell_t *dlg, str *key);
00055 int set_dlg_variable(dlg_cell_t *dlg, str *key, str *val);
00056
00057 int pv_parse_dialog_var_name(pv_spec_p sp, str *in);
00058
00059 int pv_get_dlg_variable(sip_msg_t *msg, pv_param_t *param, pv_value_t *res);
00060
00061 int pv_set_dlg_variable(sip_msg_t *msg, pv_param_t *param, int op, pv_value_t *val);
00062
00064 dlg_var_t *get_local_varlist_pointer(sip_msg_t *msg, int clear_pointer);
00065
00066
00067 int set_dlg_variable_unsafe(dlg_cell_t *dlg, str *key, str *val);
00068
00069 extern dlg_ctx_t _dlg_ctx;
00070
00071 int pv_get_dlg_ctx(sip_msg_t *msg, pv_param_t *param,
00072 pv_value_t *res);
00073 int pv_set_dlg_ctx(sip_msg_t *msg, pv_param_t *param,
00074 int op, pv_value_t *val);
00075 int pv_parse_dlg_ctx_name(pv_spec_p sp, str *in);
00076
00077 int pv_get_dlg(sip_msg_t *msg, pv_param_t *param,
00078 pv_value_t *res);
00079 int pv_parse_dlg_name(pv_spec_p sp, str *in);
00080
00081 int dlg_cfg_cb(sip_msg_t *foo, unsigned int flags, void *bar);
00082
00083 void dlg_set_ctx_iuid(dlg_cell_t *dlg);
00084 void dlg_reset_ctx_iuid(void);
00085 dlg_cell_t* dlg_get_ctx_dialog(void);
00086
00087 dlg_ctx_t* dlg_get_dlg_ctx(void);
00088
00089 int spiral_detect_reset(sip_msg_t *foo, unsigned int flags, void *bar);
00090
00091 #endif