For point 2, you are right that the part in fill_contact() are missing
I had another look at the code and i think the changes may not be needed since the contact information would definitely be present as the below code in kamailio master ensures it
``` memset(&tmsg, 0, sizeof(sip_msg_t)); tmsg.buf = tbuf; memcpy(tmsg.buf, t->uas.request->buf, t->uas.request->len); tmsg.buf[t->uas.request->len] = '\0'; tmsg.len = t->uas.request->len; if(parse_msg(tmsg.buf, tmsg.len, &tmsg) != 0) { LM_ERR("buffer parsing failed!"); goto error; } ```