Currently within PJSIP there is no mechanism for the dialplan to examine things at an AOR or contact level. The depth to which you can venture is simply the endpoint.

In practice this can be annoying if you would like to examine things and change an outgoing INVITE (to add a header for auto answer, for example). To aid with this I'd like to propose two new dialplan functions: PJSIP_AOR and PJSIP_CONTACT.

The PJSIP_AOR dialplan function would take the name of an AOR and return the same information as "pjsip show aor". It would also make available a comma separated list of contacts currently bound to the AOR (be it externally added or configured).

Assumption:
An endpoint and AOR exist with the name "blink". A softphone is registered to the AOR.

Example:
${PJSIP_AOR(blink,mailboxes)} would return "1000" assuming it was configured with "1000".

Example:
${PJSIP_AOR(blink,contact)} would return "blink/sip:[email protected]:53015;transport=TCP"

The PJSIP_CONTACT dialplan function would take in the name of a contact as returned by PJSIP_AOR. It would make available the same information as "pjsip show contact" as well user agent if available.

Example:
${PJSIP_CONTACT(blink/sip:[email protected]:53015;transport=TCP,user_agent)} would return "Blink 0.9.1.2 (Windows)"

While both of these help to query for information if you follow the endpoint->aor->contact path there is currently no way, within a pre-dial handler, to know what contact (if any) is being used. I'd like to extend the ${CHANNEL()} implementation with two additional options, aor and contact, which would provide this information.

Assumption:
An outgoing channel using Dial(PJSIP/blink) is created.

Example:
${CHANNEL(aor)} would return "blink"

Example:
${CHANNEL(contact)} would return "blink/sip:[email protected]:53015;transport=TCP"

This assumes that the channel has been dialed using an AOR which resolved into a contact. If an explicit contact has been provided (which is done with PJSIP_DIAL_CONTACTS) then only contact would return a value.

This would allow the pre-dial handler to query for additional information about the contact being dialed in order to do things.

Thoughts?

--
Joshua Colp
Digium, Inc. | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & 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

Reply via email to