diff --git a/src/sip.c b/src/sip.c index c635542..61916c9 100644 --- a/src/sip.c +++ b/src/sip.c @@ -597,6 +597,9 @@ static int send_invite(struct sip_agent *agent, struct sip_call_leg *leg, called_num, agent->app->sip.remote_addr, agent->app->sip.remote_port); + char *contact = talloc_asprintf(leg, "sip:%s:%d", + agent->app->sip.local_addr, + agent->app->sip.local_port); char *sdp = sdp_create_file(leg, other, sdp_sendrecv); leg->state = SIP_CC_INITIAL; @@ -604,6 +607,7 @@ static int send_invite(struct sip_agent *agent, struct sip_call_leg *leg, nua_invite(leg->nua_handle, SIPTAG_FROM_STR(from), SIPTAG_TO_STR(to), + SIPTAG_CONTACT_STR(contact), NUTAG_MEDIA_ENABLE(0), SIPTAG_CONTENT_TYPE_STR("application/sdp"), SIPTAG_PAYLOAD_STR(sdp), @@ -612,6 +616,7 @@ static int send_invite(struct sip_agent *agent, struct sip_call_leg *leg, leg->base.call->remote = &leg->base; talloc_free(from); talloc_free(to); + talloc_free(contact); talloc_free(sdp); return 0; }