diff --git a/modules/dmq/worker.c b/modules/dmq/worker.c index 8426730deda..ca1b3dcfe86 100644 --- a/modules/dmq/worker.c +++ b/modules/dmq/worker.c @@ -91,11 +91,11 @@ void worker_loop(int id) current_job = job_queue_pop(worker->queue); /* job_queue_pop might return NULL if queue is empty */ if(current_job) { - /* extract the from uri */ - if (parse_from_header(current_job->msg) < 0) { - LM_ERR("bad sip message or missing From hdr\n"); - } else { + /* attempt to identify node based on from uri */ + if (current_job->msg->from->parsed) { dmq_node = find_dmq_node_uri(node_list, &((struct to_body*)current_job->msg->from->parsed)->uri); + } else { + LM_ERR("bad sip message or missing From hdr\n"); } ret_value = current_job->f(current_job->msg, &peer_response, dmq_node);