@@ -58,7 +58,7 @@ static str evi_ua_sess_name = str_init("E_UA_SESSION");
58
58
static evi_params_p evi_ua_sess_params ;
59
59
static evi_param_p evi_key_param , evi_ev_type_param , evi_ent_type_param ,
60
60
evi_status_param , evi_reason_param , evi_method_param , evi_body_param ,
61
- evi_headers_param ;
61
+ evi_headers_param , evi_extra_param ;
62
62
63
63
static str evi_key_pname = str_init ("key" );
64
64
static str evi_ent_type_pname = str_init ("entity_type" );
@@ -68,6 +68,7 @@ static str evi_reason_pname = str_init("reason");
68
68
static str evi_method_pname = str_init ("method" );
69
69
static str evi_body_pname = str_init ("body" );
70
70
static str evi_headers_pname = str_init ("headers" );
71
+ static str evi_extra_pname = str_init ("extra_params" );
71
72
72
73
int ua_evi_init (void )
73
74
{
@@ -116,6 +117,10 @@ int ua_evi_init(void)
116
117
& evi_headers_pname );
117
118
if (evi_headers_param == NULL )
118
119
goto error ;
120
+ evi_extra_param = evi_param_create (evi_ua_sess_params ,
121
+ & evi_extra_pname );
122
+ if (evi_extra_param == NULL )
123
+ goto error ;
119
124
120
125
return 0 ;
121
126
error :
@@ -164,7 +169,7 @@ static str event_type_str[] = {
164
169
static str entity_type_str [] = {str_init ("UAS" ), str_init ("UAC" )};
165
170
166
171
int raise_ua_sess_event (str * key , enum b2b_entity_type ent_type ,
167
- enum ua_sess_event_type ev_type , unsigned int flags , struct sip_msg * msg )
172
+ enum ua_sess_event_type ev_type , unsigned int flags , struct sip_msg * msg , str * extra )
168
173
{
169
174
str body = {0 ,0 };
170
175
str hdrs = {0 ,0 };
@@ -232,6 +237,11 @@ int raise_ua_sess_event(str *key, enum b2b_entity_type ent_type,
232
237
goto error ;
233
238
}
234
239
240
+ if (evi_param_set_str (evi_extra_param , (extra ?extra :& empty )) < 0 ) {
241
+ LM_ERR ("cannot set event extra parameter\n" );
242
+ goto error ;
243
+ }
244
+
235
245
if (evi_raise_event (evi_ua_sess_id , evi_ua_sess_params ) < 0 ) {
236
246
LM_ERR ("cannot raise event\n" );
237
247
goto error ;
@@ -774,7 +784,7 @@ int b2b_ua_reply(struct sip_msg *msg, str *key, str *method, int *code,
774
784
}
775
785
776
786
int b2b_ua_server_init (struct sip_msg * msg , pv_spec_t * key_spec ,
777
- struct ua_sess_init_params * init_params )
787
+ struct ua_sess_init_params * init_params , str * extra )
778
788
{
779
789
pv_value_t key_pval ;
780
790
str * key_ret = NULL ;
@@ -810,7 +820,7 @@ int b2b_ua_server_init(struct sip_msg *msg, pv_spec_t *key_spec,
810
820
811
821
if (!(init_params -> flags & UA_FL_SUPPRESS_NEW ) &&
812
822
raise_ua_sess_event (key_ret , B2B_SERVER , UA_SESS_EV_NEW ,
813
- init_params -> flags , msg ) < 0 ) {
823
+ init_params -> flags , msg , NULL ) < 0 ) {
814
824
LM_ERR ("Failed to raise E_UA_SESSION event\n" );
815
825
goto error ;
816
826
}
0 commit comments