sip: Specify invite contact tag

Version 1.12.12 of libsofia-sip-ua no longer automatically generates a
contact header element from the local ip address and port. Specifying
the contact tag does not break operation with the existing
library (1.12.11), but allows for operation on a system with
freeswitch 1.10.4 or later installed, which is built against this new
version of libsofia-sip-ua.

Change-Id: I5c35c5a4bad2fbe76c22ac6d7ee37c832e0ba246
This commit is contained in:
Matt Johnson 2020-08-10 17:06:00 -07:00 committed by laforge
parent 39a2e19309
commit 52b2afce2c
1 changed files with 5 additions and 0 deletions

View File

@ -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;
}