[Asterisk-code-review] app dial: 'I' option to block all connected line updates in ... (asterisk[13])

Richard Mudgett asteriskteam at digium.com
Wed Oct 3 13:12:39 CDT 2018


Richard Mudgett has posted comments on this change. ( https://gerrit.asterisk.org/10286 )

Change subject: app_dial: 'I' option to block all connected line updates in both directions
......................................................................


Patch Set 2:

> > > > After the channels are bridged, the
 > > > > connected line updates cannot be blocked.
 > > > Why?
 > >
 > > I have already indicated why you cannot suppress connected line
 > > update events after the initial connection.
 > > https://gerrit.asterisk.org/#/c/asterisk/+/9558/
 > >
 > 
 > I don't understand.
 > If I want the asterisk suppress all connected line updates between
 > parties,
 > I can not because the asterisk is incapable to do it?
 > 
 > For example, the asterisk is multihome PBX.
 > There are 2 virtual PBXs - PBX1 and PBX2.
 > 
 > Alice (ext 100) from PBX1 (number 9876543210) calls PBX2 number
 > 1234567890.
 > This call goes to Bob (ext 200).
 > I want
 > - Alice see connected line "<1234567890>".
 > - Bob see connected line "PBX1 <9876543210>".
 > Instead now
 > - Alice sees connected line "Bob <200>"
 > - Bob sees connected line "Alice <100>"
 > 
 > Then Bob attended transfers call to Charlie (ext 201).
 > Charlie answers
 > I want
 > - Bob see connected line "Charlie <201>".
 > - Charlie see connected line "Bob <200>".
 > it's OK
 > Then Bob hangups and Alice is connected to Charlie.
 > I want
 > - Alice see connected line "<1234567890>".
 > - Charlie see connected line "PBX1 <9876543210>".
 > Instead now
 > - Alice sees connected line "Charlie <201>"
 > - Charlie sees connected line "Alice <100>"
 > 
 > I want that inside Virtual PBX all "internal" calls passes
 > connected line updates.
 > I want that outside Virtual PBX all "external" calls suppress
 > connected line updates.
 > I don't want that people outside Virtual PBX know person name and
 > extension number.
 > 
 > So If App Dial can suppress all connected line updates on
 > "external" calls it solves my problem.
 > 
 > I don't think the best solution is to use Pre-dial handlers and
 > Connected-line interception handlers,
 > because if the Dial destination is complex the usage of handlers
 > will be very very complex.
 > 
 > So let me know if we can do the asterisk to be capable to do it
 > simple with the Dial option or it's forbidden
 > and it must be done only the current way (Pre-dial and
 > Connected-line interception handlers).

Blocking anything other than the initial connected line update is wrong.

Simply blocking all connected line updates to Charlie will not get what you claim to
want in the transfer scenario you describe above without lying to Charlie.  While Bob
is talking with Charlie you would have to lie to Charlie such that Charlie would see
that he is talking to Alice/PBX1 when he truly is not.  Blocking connected line updates
to Charlie will also be wrong if Charlie then does an attended transfer of Alice/PBX1 to
college Dave.  During the initial consultation, Dave and Charlie will have Alice/PBX1
on their display.

It is better that you use the interception routine for its intended purpose.  Its
purpose is to map the new connected line information to your numbering plan.  This way
you won't have to lie to Charlie to whom he is talking.

A party identification consists of the name, number, presentation, and user tag string.
There are other parameters but you can look them up yourself.

You can use the pjsip endpoint callerid_tag option string to indicate which tenant the
endpoint represents.  The interception routine can compare the channel's callerid tag
with the updated connected line's tag.  (You could compare the connected line tag with
a parameter set on the interception routine's arguments instead of the callerid tag.)
If they match you know it is one tenant member talking with another.  If they don't
match then you can use the fixed "public" identity of the connected line tenant.

You can use the pjsip endpoint set_var option to setup the connected line interception
routine channel variables.

There are many ways to achieve what you want for your multi-tenant setup.  They do not
require patching Asterisk to do it.

To reiterate: Blocking anything other than the initial connected line update is wrong.


-- 
To view, visit https://gerrit.asterisk.org/10286
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-MessageType: comment
Gerrit-Change-Id: I6ce9e151a2220ce9e95aa66666933cfb9e2a4a01
Gerrit-Change-Number: 10286
Gerrit-PatchSet: 2
Gerrit-Owner: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Jenkins2 (1000185)
Gerrit-Reviewer: Richard Mudgett <rmudgett at digium.com>
Gerrit-Comment-Date: Wed, 03 Oct 2018 18:12:39 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: No
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20181003/c4cf81c4/attachment.html>


More information about the asterisk-code-review mailing list