[asterisk-commits] oej: branch oej/calleridupdate r127994 - /team/oej/calleridupdate/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jul 4 03:23:21 CDT 2008
Author: oej
Date: Fri Jul 4 03:23:20 2008
New Revision: 127994
URL: http://svn.digium.com/view/asterisk?view=rev&rev=127994
Log:
before adding code, adding a few thoughts to be discussed.
Added:
team/oej/calleridupdate/README-calleridupdate.txt (with props)
Added: team/oej/calleridupdate/README-calleridupdate.txt
URL: http://svn.digium.com/view/asterisk/team/oej/calleridupdate/README-calleridupdate.txt?view=auto&rev=127994
==============================================================================
--- team/oej/calleridupdate/README-calleridupdate.txt (added)
+++ team/oej/calleridupdate/README-calleridupdate.txt Fri Jul 4 03:23:20 2008
@@ -1,0 +1,162 @@
+Olle E. Johansson 2008-07-04
+Edvina.net, Sollentuna, Sweden
+
+
+
+Connected line ID updates in Asterisk
+-------------------------------------------------------------------
+(This document is work in progress. Please provide feedback)
+
+
+These are caused by various situations:
+
+- A SIP call transfer. The remote party changes.
+ The caller ID on the display of the callee no longer reflects the caller
+ and will need to change.
+ (The scenario is different if the callee does the transfer)
+
+- Connected line ID updates
+ We call (in e-mail terminology) an "alias", like a DID for a
+ sales group. The person that answer has a phone that sends
+ a connected line ID update.
+
+So regardless of the direction of the call, we can get
+connected line ID updates in both directions. In some
+protocols there are ways to update the phone devices.
+
+Updating caller IDs during a bridged call in Asterisk
+-----------------------------------------------------
+There are multiple situations where a caller ID for connected line or
+caller can happen in Asterisk calls.
+
+- A transfer happens in a remote SIP server (maybe Asterisk) and
+ this affects either caller or called ID
+- A transfer happens in ISDN, or someone answers a call and sends
+ connected line ID
+- A transfer happens in Asterisk and the caller is changed
+- A transfer happens in Asterisk and the callee changes
+- This could potentially be used for "topic" in Meetme's
+- Call pickup situations
+ We have an incoming call to a pickup extension and wants to
+ see the caller ID of the incoming call that rings on another
+ phone.
+(Any more?)
+
+Today, there's no internal signalling during a call that
+means "I have a new identity, please update your data".
+That means that channel drivers doesn't have any indication
+that it can forward to the phone to update the displays.
+
+Connected line ID updates in ISDN
+---------------------------------
+[Contributions to this section welcome!]
+
+Connected line ID updates in SIP
+---------------------------------
+In SIP, due to lack of standards, there's multiple
+ways.
+- A re-invite with changes of From/To header
+ This breaks compatibility with SIP/1.0
+- A remote party ID field with party=called
+ or party=caller during a re-invite,
+ UPDATE or even in ringing
+- Proprietary ways by phone manufacturers
+ (SNOM uses an INFO message)
+- There's a new RFC out that tries to set a standard
+ by using UPDATE (or re-Invites)
+ http://www.ietf.org/rfc/rfc4916.txt
+
+From the Abstract of this RFC:
+" This document provides a means for a Session Initiation Protocol
+ (SIP) User Agent (UA) that receives a dialog-forming request to
+ supply its identity to the peer UA by means of a request in the
+ reverse direction, and for that identity to be signed by an
+ Authentication Service. Because of retargeting of a dialog-forming
+ request (changing the value of the Request-URI), the UA that receives
+ it (the User Agent Server, UAS) can have a different identity from
+ that in the To header field. The same mechanism can be used to
+ indicate a change of identity during a dialog, e.g., because of some
+ action in the Public Switched Telephone Network (PSTN) behind a
+ gateway. This document normatively updates RFC 3261 (SIP)."
+
+Later on:
+" This solution involves changing the URI (not the tags) in the To and
+ From header fields of mid-dialog requests and their responses,
+ compared with the corresponding values in the dialog forming request
+ and response. "
+
+This RFC will cause issues with services that require that the From:
+user name and domain is that of the service (like Asterisk). The alternative
+way, using Remote-Party-ID will propably be used in these situations
+for a long time.
+
+The support of connected line updates in phones needs to be investigated,
+but there are at least a few implementations:
+- linksys/cisco supports Remote-Party-ID updates
+- SNOM supports INFO messages
+There needs to be a setting in sip.conf per device on how
+to send a caller ID update to the phone.
+
+Privacy concerns
+----------------
+There has to be settings involved here to control whether a
+connected line ID should be sent when someone answers a call.
+For queues of forked calls to a sales group, you might not
+want to reveal details of the person/device that takes the
+call.
+- Device settings: Never send connected line ID
+- Per-call settings (dial/queue): Filter out Connected line id
+
+Dialplan application needed
+---------------------------
+A dialplan application is also needed so taht one-way
+calls can change connected line ID.
+(Like setting a topic/name before connecting to a meetme).
+
+Current proposals
+-----------------
+There are a few patches in the bug tracker, one that has been
+worked quite a lot on by several members of the community.
+
+Bug 8824 - http://bugs.digium.com/view.php?id=8824
+has been the topic of a lot of testing and discussions,
+and a lot of good work. It's based on sending a new
+AST_CONTROL message with payload across the bridge.
+The payload contains the updated information to be
+sent out.
+The patch updates a lot of channel drivers, especially
+chan_sip where it massively changes the code for
+remote-party-id handling.
+
+It implements a new structure in channel.h that replicates the
+current caller ID structure. I think we could stay with one
+format instead of two very similar.
+This structure is added to ast_channel. For me this is
+questionnable. I would expect that the other call -the bridged
+call - is updated with this information and that we can get
+the information from there instead of storing it in the
+channel as a duplicate. If this works, we could also avoid
+sending data as a payload to the AST_CONTROL message.
+
++/* \brief Structure for all kinds of connected line ID indentifications.
++ * \note All string fields here are malloc'ed, so they need to be
++ * freed when the structure is deleted.
++ * Also, NULL and "" must be considered equivalent.
++ */
++struct ast_connectedline {
++ char *lid_dnid; /*!< Malloc'd Dialed Number Identifier */
++ char *lid_num; /*!< Malloc'd Line Number */
++ char *lid_name; /*!< Malloc'd Line Name */
++ char *lid_ani; /*!< Malloc'd ANI */
++ char *lid_rdnis; /*!< Malloc'd RDNIS */
++ int lid_pres; /*!< Line presentation/screening */
++ int lid_ani2; /*!< Line ANI 2 (Info digits) */
++ int lid_ton; /*!< Line Type of Number */
++ int lid_tns; /*!< Line Transit Network Select */
++};
+
+We can use a majority of the code in this bug report for the work
+needed. A big thank you to "gareth" for this work, and for being
+very responsive to input during the process.
+
+
Propchange: team/oej/calleridupdate/README-calleridupdate.txt
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: team/oej/calleridupdate/README-calleridupdate.txt
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: team/oej/calleridupdate/README-calleridupdate.txt
------------------------------------------------------------------------------
svn:mime-type = text/plain
More information about the asterisk-commits
mailing list