[Freeswitch-users] i'm lost following a code path. help appreciated

Luis Azedo luis.azedo at factorlusitano.com
Mon Jan 15 17:13:22 UTC 2018


Hi,

i'm using freeswitch / php esl to make some tests against a sip system.

when using the deflect api, the Referred-By Header is always just the ip of
freeswitch server and i expected to be the contact of the gateway i'm using
as endpoint.

   ------------------------------------------------------------------------
send 747 bytes to udp/[10.0.0.4]:5060 at 17:05:21.010061:
   ------------------------------------------------------------------------
   REFER sip:mod_sofia at 10.0.0.7:11000 SIP/2.0
   Via: SIP/2.0/UDP 10.0.0.18;rport;branch=z9hG4bKej34QSpeaBS2p
   Route: <sip:10.0.0.4;r2=on;lr=on;ftag=FXajgSNDr2Kgj>
   Route: <sip:10.0.0.4:7000;r2=on;lr=on;ftag=FXajgSNDr2Kgj>
   Max-Forwards: 70
   From: <sip:ParkingTestCase_2 at 3lHj.admin>;tag=08BXDaFZgp2vQ
   To: "Internal ParkingTestCase DV 3" <sip:0000 at 3lHj.admin
>;tag=FXajgSNDr2Kgj
   Call-ID: eb606910-de48-4545-85bb-8f00d2253a34
   CSeq: 117681896 REFER
   Contact: <sip:ParkingTestCase_2 at 10.0.0.18:5060;transport=udp>
   User-Agent: Testing
   Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE,
REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
   Supported: path, replaces
   Refer-To: <sip:*3101 at kamailio>
   *Referred-By: <sip:10.0.0.18>*
   Content-Length: 0


following the code, it ends in mod_sofia sending calling the nua_refer.
however, i don't see anywhere in the code where tech_pvt->contact_url is
initialized/used
i set the sip_h_referred-by value before calling the deflect and was
expecting it would be used, but the code below explicitly sets the header.
my problem is that i can't find anywhere where its initialized/used/updated
so a second pair of eyes is much appreciated.

thanks

switch (msg->message_id) {

case SWITCH_MESSAGE_INDICATE_DEFLECT: {

char *extra_headers = sofia_glue_get_extra_headers(channel,
SOFIA_SIP_HEADER_PREFIX);
char ref_to[1024] = "";
const char *var;

if (!strcasecmp(msg->string_arg, "sip:")) {
const char *format = strchr(tech_pvt->profile->sipip, ':') ? "sip:%s@[%s]"
: "sip:%s@%s";

switch_snprintf(ref_to, sizeof(ref_to), format, msg->string_arg,
tech_pvt->profile->sipip);
} else {
switch_set_string(ref_to, msg->string_arg);
}

nua_refer(tech_pvt->nh, SIPTAG_REFER_TO_STR(ref_to),
SIPTAG_REFERRED_BY_STR(tech_pvt->contact_url),
  TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)),
  TAG_END());
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20180115/865236c5/attachment.html>


More information about the FreeSWITCH-users mailing list