dlg_var.h

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 /* A dialog-variable */
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 /* Adds, updates and deletes dialog variables */
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