[asterisk-bugs] [Asterisk 0008824]: [patch] Remote (called) Party Identification - chan_sip & chan_skinny implementation
noreply at bugs.digium.com
noreply at bugs.digium.com
Thu Jan 31 22:05:11 CST 2008
A NOTE has been added to this issue.
======================================================================
http://bugs.digium.com/view.php?id=8824
======================================================================
Reported By: gareth
Assigned To:
======================================================================
Project: Asterisk
Issue ID: 8824
Category: Core/General
Reproducibility: N/A
Severity: feature
Priority: normal
Status: ready for testing
Asterisk Version: SVN
SVN Branch (only for SVN checkouts, not tarball releases): trunk
SVN Revision (number only!): 59043
Disclaimer on File?: Yes
Request Review:
======================================================================
Date Submitted: 01-15-2007 18:18 CST
Last Modified: 01-31-2008 22:05 CST
======================================================================
Summary: [patch] Remote (called) Party Identification -
chan_sip & chan_skinny implementation
Description:
Overview:
This patch provides the ability to rewrite the called party information
on
channel types that support it. Implementations for the SIP (see note
http://bugs.digium.com/view.php?id=1)
and Skinny (see note http://bugs.digium.com/view.php?id=2) channels have been
provided.
Current features are:
1. Make changes whilst the call is progessing though the dial plan, ie:
exten => s,1,RemoteParty("Voicemail" <123>)
exten => s,n,Answer()
exten => s,n,VoiceMailMain()
2. When using call pickup it will rewrite the caller information showing
the caller that was picked up.
3. When unparking a call it will show the caller*id of the parked call.
The ability to rewrite the calling party identification on semi-attended
transfer is planned but doesn't work yet.
Implementation:
Transmission of the remote party data is done using indications with a
new
subtype of AST_CONTROL_REMOTEPARTY, format of the data is:
"name" <number>|presentation
Any channel specific code is kept in it's _indicate() handler. Once the
channel driver has received the indication it uses the method specific to
it; in the case of SIP it sends a 180/183 response if possible and with
Skinny it uses transmit_callinfo().
Note http://bugs.digium.com/view.php?id=1: The SIP implemenation is only able to
update the remote party
before the call has been answered as there is no re-invite support yet.
Note http://bugs.digium.com/view.php?id=2: I don't have any Skinny phones so no
testing has been done on
that part.
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0006643 [patch] Implement Called Party Identifi...
has duplicate 0008990 Transfer and Variables
related to 0011036 Crush at unknown place
======================================================================
----------------------------------------------------------------------
gareth - 01-31-08 22:05
----------------------------------------------------------------------
It is needed for caller ID updates on semi-attended transfers to work.
Asterisk needs to accept the CSeq of the last INVITE because p->ocseq will
have been incremented when sending the UPDATE request.
Here is an simplified example SIP call flow of a caller ID update during a
semi-attended transfer from the perspective of the called party's side:
A --> INVITE (CSeq: 101) --> B (Call initiated)
A <-- 180 OK (CSeq: 101 INVITE) <-- B (Ringing)
A --> UPDATE (CSeq: 102) --> B (Update caller ID)
A <-- 200 OK (CSeq: 102 UPDATE) <-- B (Response to caller ID update)
A <-- 200 OK (CSeq: 101 INVITE) <-- B (Call answered)
Issue History
Date Modified Username Field Change
======================================================================
01-31-08 22:05 gareth Note Added: 0081558
======================================================================
More information about the asterisk-bugs
mailing list