-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3038/#review10299
-----------------------------------------------------------


I have a general thread-safety concern with this addition. In general, the 
ast_sip_session, pjsip_dialog, and pjsip_inv_session structures are only 
accessed from SIP servant threads. With this set of changes, you access session 
data from whichever thread is executing the CHANNEL() function. To ensure 
thread safety, I recommend pushing the entirety of the processing into the 
session's serializer using ast_sip_push_task_synchronous().


/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19678>

    These descriptions are inaccurate when used on outgoing channels.



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19679>

    These descriptions are inaccurate when used on outbound channels.



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19675>

    In channel_read_pjsip(), you check that the tech_pvt (called "channel" 
here) is non-NULL before proceeding. You should perform the same check here 
before assigning the value of pvt to channel->pvt.
    
    This change should be made in both channel_read_rtp() and 
channel_read_rtcp()



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19676>

    This warning should be refined to indicate that there is no RTP session for 
the type of media specified.
    
    ast_log(AST_LOG_WARNING, "Channel %s has no '%s' RTP session", 
ast_channel_name(chan), S_OR(field, "audio"));
    
    The same critique applies to a similar log message in channel_read_rtcp()



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19677>

    All of these snprintfs should just be ast_copy_string()



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19672>

    The preferred method of printing URIs is not to access their vptr directly 
but instead use pjsip_uri_print()
    
    This can be applied several places throughout this file.



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19673>

    Just use ast_copy_string()



/branches/12/channels/pjsip/dialplan_functions.c
<https://reviewboard.asterisk.org/r/3038/#comment19674>

    Print a warning about an unrecognized option here.


- Mark Michelson


On Dec. 1, 2013, 2:08 p.m., Matt Jordan wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3038/
> -----------------------------------------------------------
> 
> (Updated Dec. 1, 2013, 2:08 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> This patch adds CHANNEL function support to chan_pjsip. Since things were 
> getting a bit large, all dialplan functions that were in chan_pjsip have also 
> been moved into their own file (dialplan_functions).
> 
> Information that can be retrieved:
>  * rtp,type,[media_type] - Get RTP information, including media 
> source/destination addresses, whether or not the media is secure, etc.
>  * rtcp,statistic,[media_type] - Get RTCP statistic information
>  * endpoint - Get the name of the endpoint associated with this channel. Use 
> PJSIP_ENDPOINT to get more info.
>  * pjsip,type - Get signalling related information, including 
> source/destination addresses, URIs in the INVITE request, whether or not the 
> signalling is using a secure transport, etc.
> 
> Note that after this patch is committed, we should go back through the 
> CHANNEL function documentation and move all of the channel technology 
> specific information into <info/> blocks, so that the documentation is 
> co-located with the channel drivers themselves.
> 
> 
> Diffs
> -----
> 
>   /branches/12/res/res_pjsip_t38.c 403254 
>   /branches/12/include/asterisk/res_pjsip_session.h 403254 
>   /branches/12/funcs/func_channel.c 403254 
>   /branches/12/channels/pjsip/include/dialplan_functions.h PRE-CREATION 
>   /branches/12/channels/pjsip/include/chan_pjsip.h PRE-CREATION 
>   /branches/12/channels/pjsip/dialplan_functions.c PRE-CREATION 
>   /branches/12/channels/chan_pjsip.c 403254 
>   /branches/12/channels/Makefile 403254 
> 
> Diff: https://reviewboard.asterisk.org/r/3038/diff/
> 
> 
> Testing
> -------
> 
> See https://reviewboard.asterisk.org/r/3037
> 
> 
> Thanks,
> 
> Matt Jordan
> 
>

-- 
_____________________________________________________________________
-- 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

Reply via email to