[asterisk-bugs] [JIRA] (ASTERISK-29253) Incorrect bridging on transfer

Yury Kirsanov (JIRA) noreply at issues.asterisk.org
Sat Apr 16 09:01:58 CDT 2022


    [ https://issues.asterisk.org/jira/browse/ASTERISK-29253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=258798#comment-258798 ] 

Yury Kirsanov commented on ASTERISK-29253:
------------------------------------------

I'm not too interested in going through the whole process of creating a branch in Git and so on. Anyway, to have this resolved we had to pay an independent programmers, so I'm just happy to have it working and putting it here just because of my good will. If anyone's interested in reviewing this patch and merging it into Asterisk - they're welcome to do so. Otherwise use the patch on your own risk. It looks like Digium is not too interested in reviewing it and merging into main branch anyway. From their own contribuition process page:

Do I have to put my patch up for code review?
In short, no. Attaching your patch as a code contribution to an issue in JIRA is all that is required.

Which I did. Thanks everyone and hope my patch help you in resolving this issue.

> Incorrect bridging on transfer
> ------------------------------
>
>                 Key: ASTERISK-29253
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29253
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Bridges/bridge_simple
>    Affects Versions: 16.15.0, 18.1.1
>         Environment: Ubuntu Linux 18.04.5 LTS
>            Reporter: Yury Kirsanov
>            Assignee: Unassigned
>         Attachments: bridge_simple.tar.gz, bridge_softmix.tar.gz, call_flow.txt
>
>
>  We have an Asterisk server and one SIP device registered with it and one SIP trunk to another system. Also we another SIP device to call for test purposes.
> Here's a simplified diagram of call flow with attended transfer we're trying to achieve:
> SIP Device A -> Asterisk PBX -> SIP Trunk -> External User -> Attended transfer -> Asterisk PBX -> SIP Device B.
> SIP Device A originates a call to some pre-defined number that's routed into SIP trunk (TLS+SRTP). Remote party behind SIP trunk ("External user") answers this call and then starts attended transfer to SIP Device B on Asterisk PBX. That SIP trunk uses Re-INVITE with Replaces header in order to complete transfer. During transfer SIP Device A can hear MOH after External User initiated attended transfer to SIP Device B. Then External User tries to complete the transfer connecting SIP Device A with SIP Device B. Call connects but SIP Device A continues to hear Music On Hold while SIP Device B can hear what SIP Device A says.
> Now, if we unload module 'bridge_simple' Asterisk PBX starts to use 'bridge_softmix' module and connect calls correctly, SIP Device A can establish two way communication with SIP Device B. But during attended transfer no MOH is played at all even though Asterisk shows messages like 'Starting music on hold'. And without 'bridge_simple' no Music On Hold is played at all even if we set up just a local extension that plays MOH, like this:
> exten=>100,1,Answer()
> exten=>100,n,MusicOnHold()
> If we load bridge_simple then MOH is played fine but during transfer calls are bridged incorrectly.
> I'm happy to provide full logs upon request as I don't want to edit them.
> Also, if we use SIP REFER method for transferring calls there's another issue - when External User tries to finalize call transfer Asterisk drops established call to SIP Device B and immediately re-dials it. I believe this happens because SIP Trunk is not passing Replaces in Refer-To header, but that's another issue.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list