| 56 | |
| 57 | |
| 58 | int dm_init_evi(void) |
| 59 | { |
| 60 | if (dm_init_ipc() != 0) { |
| 61 | LM_ERR("failed to init IPC\n"); |
| 62 | return -1; |
| 63 | } |
| 64 | |
| 65 | /* First publish the events */ |
| 66 | dmev_req_id = evi_publish_event(str_init(DMEV_REQ_NAME)); |
| 67 | if (dmev_req_id == EVI_ERROR) { |
| 68 | LM_ERR("cannot register 'request' event\n"); |
| 69 | return -1; |
| 70 | } |
| 71 | |
| 72 | dmev_req_params = pkg_malloc(sizeof *dmev_req_params); |
| 73 | if (!dmev_req_params) { |
| 74 | LM_ERR("oom\n"); |
| 75 | return -1; |
| 76 | } |
| 77 | memset(dmev_req_params, 0, sizeof *dmev_req_params); |
| 78 | |
| 79 | dmev_req_param_sessid = evi_param_create(dmev_req_params, &dmev_req_pname_sessid); |
| 80 | dmev_req_param_appid = evi_param_create(dmev_req_params, &dmev_req_pname_appid); |
| 81 | dmev_req_param_cmdcode = evi_param_create(dmev_req_params, &dmev_req_pname_cmdcode); |
| 82 | dmev_req_param_avpsjson = evi_param_create(dmev_req_params, &dmev_req_pname_avpsjson); |
| 83 | dmev_req_param_fdmsg = evi_param_create(dmev_req_params, &dmev_req_pname_fdmsg); |
| 84 | if (!dmev_req_param_sessid || !dmev_req_param_appid |
| 85 | || !dmev_req_param_cmdcode || !dmev_req_param_avpsjson |
| 86 | || !dmev_req_param_fdmsg) { |
| 87 | LM_ERR("failed to create EVI params\n"); |
| 88 | return -1; |
| 89 | } |
| 90 | |
| 91 | return 0; |
| 92 | } |
| 93 | |
| 94 | |
| 95 | int dm_dispatch_event_req(struct msg *msg, const str *sessid, int app_id, |
no test coverage detected