|
@@ -180,6 +180,15 @@ int sr_event_register_cb(int type, sr_event_cb_f f)
|
|
|
_sr_events_list.net_data_send = f;
|
|
|
else return -1;
|
|
|
break;
|
|
|
+ case SREV_SIP_REPLY_OUT:
|
|
|
+ for(i=0; i<SREV_CB_LIST_SIZE; i++) {
|
|
|
+ if(_sr_events_list.sip_reply_out[i]==0) {
|
|
|
+ _sr_events_list.sip_reply_out[i] = f;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(i==SREV_CB_LIST_SIZE) return -1;
|
|
|
+ break;
|
|
|
default:
|
|
|
return -1;
|
|
|
}
|
|
@@ -317,6 +326,15 @@ int sr_event_exec(int type, sr_event_param_t *evp)
|
|
|
ret = _sr_events_list.net_data_send(evp);
|
|
|
return ret;
|
|
|
} else return 1;
|
|
|
+ case SREV_SIP_REPLY_OUT:
|
|
|
+ if(unlikely(_sr_events_list.net_data_in[0]!=0))
|
|
|
+ {
|
|
|
+ ret = 0;
|
|
|
+ for(i=0; i<SREV_CB_LIST_SIZE
|
|
|
+ && _sr_events_list.sip_reply_out[i]; i++) {
|
|
|
+ ret |= _sr_events_list.sip_reply_out[i](evp);
|
|
|
+ }
|
|
|
+ } else return 1;
|
|
|
default:
|
|
|
return -1;
|
|
|
}
|
|
@@ -358,6 +376,8 @@ int sr_event_enabled(int type)
|
|
|
return (_sr_events_list.net_data_recv!=0)?1:0;
|
|
|
case SREV_NET_DATA_SEND:
|
|
|
return (_sr_events_list.net_data_send!=0)?1:0;
|
|
|
+ case SREV_SIP_REPLY_OUT:
|
|
|
+ return (_sr_events_list.sip_reply_out[0]!=0)?1:0;
|
|
|
}
|
|
|
return 0;
|
|
|
}
|