[asterisk-bugs] [JIRA] (ASTERISK-24040) Retrieving source port of sip message in dialplan

dtryba (JIRA) noreply at issues.asterisk.org
Mon Jul 14 06:56:56 CDT 2014


    [ https://issues.asterisk.org/jira/browse/ASTERISK-24040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=220500#comment-220500 ] 

dtryba commented on ASTERISK-24040:
-----------------------------------

Patch upload has to wait a little for the lack of a license.
But chan_sip.c and sip/dialplan_functions.c where edited to include:

} else if (!strcasecmp(args.param, "recvport")) {
ast_copy_string(buf, ast_sockaddr_isnull(&p->recv) ? "" : ast_sockaddr_stringify_fmt(&p->recv, AST_SOCKADDR_STR_PORT), buflen);

just after the recvip else if

> Retrieving source port of sip message in dialplan
> -------------------------------------------------
>
>                 Key: ASTERISK-24040
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24040
>             Project: Asterisk
>          Issue Type: New Feature
>      Security Level: None
>          Components: Channels/chan_sip/NewFeature
>    Affects Versions: 11.10.2
>            Reporter: dtryba
>            Severity: Trivial
>
> I need to route calls in the dialplan based on source ip and source port. Source ip can be retrieved with ${CHANNEL(recvip)} but there is no entry in CHANNEL var to retrieve the port (much to my amazement). Attached is a simple patch that appears to do the job for SIP channels: ${CHANNEL(recvport)}:
> For 
> exten => 1,n,NoOp(ip:port ${CHANNEL(recvip)}:${CHANNEL(recvport)})
> a sip invite like:
> <--- SIP read from UDP:10.0.3.175:5555 --->
> INVITE sip:1 at 10.0.2.16 SIP/2.0
> will result in:
> -- Executing [1 at default:2] NoOp("SIP/tst-00000004", "ip:port 10.0.3.175:5555") in new stack



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list