[asterisk-dev] [Code Review] func_srv and explicit specification of destination for SIP outgoing INVITEs
Mark Michelson
mmichelson at digium.com
Wed Apr 7 14:37:13 CDT 2010
> On 2010-04-07 12:22:48, Tilghman Lesher wrote:
> > /trunk/funcs/func_srv.c, lines 55-57
> > <https://reviewboard.asterisk.org/r/608/diff/2/?file=9146#file9146line55>
> >
> > I would suggest allowing the service name as the ID. This would permit you to get rid of the initiation query altogether, by checking to see if you have a result in your cache and doing the query if not; otherwise, return the particular result from the query cache.
This is certainly easy to accomplish, but I have two reasons to not want to do this, one contrived and one rational.
Contrived reason: By doing as you suggested, it would not be possible to perform more than one lookup for the same service on a single call.
Rational reason: Consistency. We have two similar constructs in use with ENUMQUERY and ENUMRESULT, and DUNDIQUERY and DUNDIRESULT. My intention here was to mirror those constructs as much as possible.
> On 2010-04-07 12:22:48, Tilghman Lesher wrote:
> > /trunk/channels/chan_sip.c, lines 22392-22401
> > <https://reviewboard.asterisk.org/r/608/diff/2/?file=9145#file9145line22392>
> >
> > This would suggest that the two formats for supporting selection of remote address are:
> >
> > peer/exten/rhost
> > exten at peer//rhost
> >
> > Is the double slash really intentional?
> >
> > Also, I would suggest renaming from outbound_address to remote_address, as outbound_address has a confusing connotation of selecting a particular local address on multihomed hosts.
The double slash is indeed intentional.
Changing to "remote_address" sounds like a fine idea to me; I wish I had thought of it myself :). I'll get that in my next upload here.
- Mark
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/608/#review1812
-----------------------------------------------------------
On 2010-04-06 18:10:16, Mark Michelson wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/608/
> -----------------------------------------------------------
>
> (Updated 2010-04-06 18:10:16)
>
>
> Review request for Asterisk Developers.
>
>
> Summary
> -------
>
> There are two interrelated changes here.
>
> First, there is the introduction of func_srv. This adds two new read-only dialplan functions, SRVQUERY and SRVRESULT. They work very similarly to the ENUMQUERY and ENUMRESULT functions, except that this allows one to query SRV records instead. In order to facilitate this work, I added a couple of new API calls to srv.h. ast_srv_get_record_count tells the number of records returned by an SRV lookup. This number is calculated at the time of the SRV lookup. ast_srv_get_nth_record allows one to get a numbered SRV record.
>
> Second, there is the modification to chan_sip that allows one to specify a hostname or IP address (along with a port) to send an outgoing INVITE to when dialing a SIP peer. This goes hand-in-hand with func_srv. You can query SRV records and then use the host and port from the results to dial via a specific host instead of what is configured in sip.conf.
>
>
> Diffs
> -----
>
> /trunk/channels/chan_sip.c 256418
> /trunk/funcs/func_srv.c PRE-CREATION
> /trunk/include/asterisk/srv.h 256418
> /trunk/main/srv.c 256418
>
> Diff: https://reviewboard.asterisk.org/r/608/diff
>
>
> Testing
> -------
>
> I have written two external tests which exercise the individual components of this patch. They will be uploaded in a separate code review.
>
>
> Thanks,
>
> Mark
>
>
More information about the asterisk-dev
mailing list