<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 22, 2014 at 12:01 PM, Matthew Jordan <span dir="ltr"><<a href="mailto:mjordan@digium.com" target="_blank" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=mjordan@digium.com&cc=&bcc=&su=&body=','_blank','location=yes,menubar=yes,resizable=yes,width=800,height=600');return false;">mjordan@digium.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Dec 22, 2014 at 12:53 PM, Joshua Colp <<a href="mailto:jcolp@digium.com" onclick="window.open('https://mail.google.com/mail/?view=cm&tf=1&to=jcolp@digium.com&cc=&bcc=&su=&body=','_blank','location=yes,menubar=yes,resizable=yes,width=800,height=600');return false;">jcolp@digium.com</a>> wrote:<br>
> Currently within PJSIP there is no mechanism for the dialplan to examine<br>
> things at an AOR or contact level. The depth to which you can venture is<br>
> simply the endpoint.<br>
><br>
> In practice this can be annoying if you would like to examine things and<br>
> change an outgoing INVITE (to add a header for auto answer, for example). To<br>
> aid with this I'd like to propose two new dialplan functions: PJSIP_AOR and<br>
> PJSIP_CONTACT.<br>
><br>
> The PJSIP_AOR dialplan function would take the name of an AOR and return the<br>
> same information as "pjsip show aor". It would also make available a comma<br>
> separated list of contacts currently bound to the AOR (be it externally<br>
> added or configured).<br>
><br>
> Assumption:<br>
> An endpoint and AOR exist with the name "blink". A softphone is registered<br>
> to the AOR.<br>
><br>
> Example:<br>
> ${PJSIP_AOR(blink,mailboxes)} would return "1000" assuming it was configured<br>
> with "1000".<br>
><br>
> Example:<br>
> ${PJSIP_AOR(blink,contact)} would return<br>
> "blink/sip:38725691@192.168.137.1:53015;transport=TCP"<br>
><br>
> The PJSIP_CONTACT dialplan function would take in the name of a contact as<br>
> returned by PJSIP_AOR. It would make available the same information as<br>
> "pjsip show contact" as well user agent if available.<br>
><br>
> Example:<br>
> ${PJSIP_CONTACT(blink/sip:38725691@192.168.137.1:53015;transport=TCP,user_agent)}<br>
> would return "Blink 0.9.1.2 (Windows)"<br>
><br>
> While both of these help to query for information if you follow the<br>
> endpoint->aor->contact path there is currently no way, within a pre-dial<br>
> handler, to know what contact (if any) is being used. I'd like to extend the<br>
> ${CHANNEL()} implementation with two additional options, aor and contact,<br>
> which would provide this information.<br>
><br>
> Assumption:<br>
> An outgoing channel using Dial(PJSIP/blink) is created.<br>
><br>
> Example:<br>
> ${CHANNEL(aor)} would return "blink"<br>
><br>
> Example:<br>
> ${CHANNEL(contact)} would return<br>
> "blink/sip:38725691@192.168.137.1:53015;transport=TCP"<br>
><br>
> This assumes that the channel has been dialed using an AOR which resolved<br>
> into a contact. If an explicit contact has been provided (which is done with<br>
> PJSIP_DIAL_CONTACTS) then only contact would return a value.<br>
><br>
> This would allow the pre-dial handler to query for additional information<br>
> about the contact being dialed in order to do things.<br>
><br>
<br>
I think this gets 90% of the way towards what people (such as X-Rob,<br>
who filed ASTERISK-24341) were looking for.<br>
<br>
I don't think this quite addresses the use case of "I want to create<br>
an outbound INVITE request to all contacts on an AoR that do not<br>
currently have an active channel/media session associated with them" -<br>
since we have no way to query through the CHANNEL function what<br>
previous dial attempts resulted in.<br>
<br>
It feels like there should be a mechanism that we could provide that<br>
would have this information:<br>
 * We know what contacts we are going to send outbound INVITE requests to<br>
 * We know when those INVITE requests succeed and/or fail<br>
 * And we know when the overall dialog established by those INVITE<br>
requests are done<br>
<br></blockquote><div><br></div><div>What you still don't know is if that contact is in use because it made an outgoing call.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
What technical hurdles do you see with providing this?<br>
<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote></div></div></div>