Thanks!
On 2/27/21 2:53 PM, Joshua C. Colp wrote:
On Sat, Feb 27, 2021 at 1:57 PM Mark Murawski
<markm-li...@intellasoft.net <mailto:markm-li...@intellasoft.net>> wrote:
H!,
I'm working on a cross-channel standard log line for processing new
calls. I had no issue implementing this for DAHDI/IAX/CHAN_SIP, but I
have this so far for pjsip got this far, but this does not seem like
the
right approach because occasionally reads to the sip dialogue are
reading uninitialized data.
<snip>
{
+ RAII_VAR(struct ast_datastore *, datastore, NULL, ao2_cleanup);
int res;
+ pjsip_dialog *dlg;
+ struct ast_channel *c = session->channel;
+ struct transport_info_data *transport_data;
+ char src_host_and_ip[PJ_INET6_ADDRSTRLEN+2] = "";
+ char dst_host_and_ip[PJ_INET6_ADDRSTRLEN+2] = "";
/* Check for a to-tag to determine if this is a reinvite */
if (rdata->msg_info.to->tag.slen) {
/* We don't care about reinvites */
return 0;
}
+ pjsip_dlg_inc_lock(session->inv_session->dlg);
There is no need to do locking on this. The dialog is guaranteed to not
change.
<snip>
+ ast_verb(2, "<%s> New Call (Type: PJSIP) [%s -> %s] [%s] %s
<%s>
(Destination: %s@%s,%d)\n",
+ ast_channel_name(session->channel),
+ src_host_and_ip, dst_host_and_ip,
+ pj_strbuf(&dlg->call_id->id),
PJLIB strings are not guaranteed to be NULL terminated. The call-id
implementation for the CHANNEL dialplan function does this:
snprintf(buf, buflen, "%.*s", (int) pj_strlen(&dlg->call_id->id),
pj_strbuf(&dlg->call_id->id));
To place the proper amount in the buffer.
--
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com <http://www.sangoma.com/> and
www.asterisk.org <http://www.asterisk.org/>
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev