@miconda commented on this pull request.


> @@ -2147,6 +2401,9 @@ static int child_init(int rank)
                /* probe rtpengines only in first worker */
                if(build_rtpp_socks(0, 1))
                        return -1;
+                       
+               if (rtpengine_dtmf_event_sock.len > 0)
+                       rtpengine_dtmf_events_loop(rank);

It seems to block the child process with rank 1 (PROC_SIPINIT), which should 
not be done, because it can create problems for other modules such as usrloc.

A new process has to be started -- in mod init, it has to be registered with:

```
                register_procs(1);
                cfg_register_child(1);
```

And in child init created with fork_process(), something like:

```
        if(rank == PROC_MAIN) {
            /* fork worker process */
            newpid = fork_process(PROC_RPC, "RTPENGINE DTMF WORKER", 1);
            if(newpid < 0) {
                    LM_ERR("failed to fork worker process %d\n", i);
                    return -1;
            } else if(newpid == 0) {
                    if(cfg_child_init())
                            return -1;
                    /* child - this will loop forever */
                    rtpengine_dtmf_events_loop();
            } else {
                    /* parent process*/
            }
                return 0;
        }
```

-- 
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/3473#discussion_r1226342322
You are receiving this because you are subscribed to this thread.

Message ID: <kamailio/kamailio/pull/3473/review/1474435...@github.com>
_______________________________________________
Kamailio (SER) - Development Mailing List
To unsubscribe send an email to sr-dev-le...@lists.kamailio.org

Reply via email to