[Home]

Summary:ASTERISK-12163: BRIDGEPEER variable not updated on attended transfer when codec translation is used.
Reporter:Ramon Peek-Fares (ramonpeek)Labels:
Date Opened:2008-06-09 07:24:28Date Closed:2008-06-10 07:48:49
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Channels/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) Bridgepeer_Not_Set.txt
( 1) Bridgepeer_Set_OK.txt
Description:When a call is attended transferred from extension A to C by extension B, and extension A uses a different codec than B or C (for example g.729, instead of G.711) the BRIDGEPEER variable is not updated.

I've tested this using a simple setup with SIP channels that have canreinvite set to no.

I noticed that the BRIDGEPEER variable is set correctly on the first bridge between extension A and B, but when B attended transfers A to C the BRIDGEPEER variable is not update upon transfer.
If all peers use G.711 this does happen!


I've attached two traces;
One in which the BRIDGEPEER is set correctly because we are using G.711 on all peers and the other one where the BRIDGEPEER variable is not updated because peer A uses G.729.
In this trace SIP/400 is peer A, SIP/401 is peer B and SIP/402 is peer C.


****** ADDITIONAL INFORMATION ******

Looking a bit deeper into the code I noticed that the part in channel.c where the BRIDGEPEER is being update is totally skipped in this situation.
Because we break out of the loop tight after we mention;

[Jun  9 14:11:28] DEBUG[25840] rtp.c: Oooh, formats changed, backing out

This is most likely correct, but should we still update the BRIDGEPEER variable?
Comments:By: Digium Subversion (svnbot) 2008-06-10 07:45:19

Repository: asterisk
Revision: 121442

U   branches/1.4/main/channel.c

------------------------------------------------------------------------
r121442 | file | 2008-06-10 07:45:16 -0500 (Tue, 10 Jun 2008) | 4 lines

Update BRIDGEPEER variable before we do a generic bridge in case we just broke out of a native bridge and fell through to generic.
(closes issue ASTERISK-12163)
Reported by: ramonpeek

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=121442

By: Digium Subversion (svnbot) 2008-06-10 07:47:56

Repository: asterisk
Revision: 121444

_U  trunk/
U   trunk/main/channel.c

------------------------------------------------------------------------
r121444 | file | 2008-06-10 07:47:50 -0500 (Tue, 10 Jun 2008) | 12 lines

Merged revisions 121442 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r121442 | file | 2008-06-10 09:52:06 -0300 (Tue, 10 Jun 2008) | 4 lines

Update BRIDGEPEER variable before we do a generic bridge in case we just broke out of a native bridge and fell through to generic.
(closes issue ASTERISK-12163)
Reported by: ramonpeek

........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=121444

By: Digium Subversion (svnbot) 2008-06-10 07:48:49

Repository: asterisk
Revision: 121445

_U  branches/1.6.0/
U   branches/1.6.0/main/channel.c

------------------------------------------------------------------------
r121445 | file | 2008-06-10 07:48:44 -0500 (Tue, 10 Jun 2008) | 20 lines

Merged revisions 121444 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r121444 | file | 2008-06-10 09:54:39 -0300 (Tue, 10 Jun 2008) | 12 lines

Merged revisions 121442 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r121442 | file | 2008-06-10 09:52:06 -0300 (Tue, 10 Jun 2008) | 4 lines

Update BRIDGEPEER variable before we do a generic bridge in case we just broke out of a native bridge and fell through to generic.
(closes issue ASTERISK-12163)
Reported by: ramonpeek

........

................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=121445