[asterisk-bugs] [JIRA] (ASTERISK-26681) chan_local: Local Channels Not Optimizing

Michael Cargile (JIRA) noreply at issues.asterisk.org
Tue Jan 3 20:44:10 CST 2017


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

Michael Cargile commented on ASTERISK-26681:
--------------------------------------------

That's what I was afraid you would say.

Our software was written at a time when Asterisk was downloaded via CVS checkouts. At the time if you tried to transfer a Local Channel from one extension to another using the AMI it could on occasion cause a crash if the local channel optimized at just the right moment. We push upwards of 100,000+ calls through an Asterisk server in a single day so that occasion would happen frequently. As such our entire software application will only route a call if the Local Channel has optimized away. From pre-1.0 through Asterisk 11 the behavior of Local Channels was the same. Looking through the information you provided it makes sense for the change, but for those of us who only work with your Long Term Support releases I must say this is a shock. Considering how drastic this change is to the well established behavior, I am actually surprised that there wasn't a dialplan application added that would allow a Local Channel to optimize before dialplan execution continued.

To change our software to be able to handle Local Channels during routing and then deal with them optimizing after the route will be a massive undertaking. It will also means that there will be considerably more channels in use by our application as the Local Channels will stick around through the routing which can take several seconds, up to several minutes. This adds load and reduces capacity.

The simplest solution for us is to try to find a way to optimize the Local Channel before routing it and do so as quickly as possible. Any suggestions on how to do so would be greatly appreciated. I am tempted to route the Local Channel to a conference with no one in it till it optimizes then transfer it to our normal routing via the AMI but that sounds to be less than optimal. If this is a topic for IRC or the mailing list I understand, but I am currently trying to wrap my head around the volume of work ahead of me.

> chan_local: Local Channels Not Optimizing
> -----------------------------------------
>
>                 Key: ASTERISK-26681
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26681
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_local
>    Affects Versions: 13.13.1
>         Environment: OpenSuSE 42.1, Intel i5, 8gigs RAM, SSD
>            Reporter: Michael Cargile
>         Attachments: cli_output.txt.txt
>
>
> Local Channels created with an AMI Originate are not optimizing when connected, even with 30 seconds of Wait. In Asterisk 11 they usually did this within 200ms.
> Here is the relevant dialplan:
> {noformat}
> exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
> exten => _91NXXNXXXXXX,2,Dial(SIP/office-server/${EXTEN:1},,To)
> exten => _91NXXNXXXXXX,3,Hangup
> exten => 8368,1,Playback(sip-silence)
> exten => 8368,n,Wait(30)
> exten => 8368,n,DumpChan()
> exten => 8368,n,AGI(agi://127.0.0.1:4577/call_log)
> exten => 8368,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
> exten => 8368,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
> exten => 8368,n,Hangup()
> exten => h,1,AGI(agi://127.0.0.1:4577/call_log--HVcauses--PRI-----NODEBUG-----${HANGUPCAUSE}-----${DIALSTATUS}-----${DIALEDTIME}-----${ANSWEREDTIME})
> {noformat}
> Here is the SIP entry:
> {noformat}
> [office-server]
> type=peer
> context=international
> usecallerid=yes
> trustrpid=yes
> sendrpid=yes
> host=192.168.198.1
> qualify=yes
> insecure=port,invite
> disallow=all
> allow=gsm
> allow=ulaw
> dtmfmode=RFC2833
> {noformat}
> Here is the Originate action:
> {noformat}
> Action: Originate
> Exten: 8368
> Context: default
> Channel: Local/917275777470 at default
> Priority: 1
> Callerid: "V2281648150000060018" <0000000000>
> Timeout: 60000
> {noformat}
> Here is the CLI output:
> [Edit by Rusty - Removed as per guidelines. Attaching as cli_output.txt]
> In Asterisk 11 and earlier Local channel optimization was triggered during audio processing. I am not sure if that is still the case now that it has been moved into the Core, but I have confirmed that there is audio on these calls.
> It would actually be great if the LocalOptimizeAway actually triggered an optimization rather than just clearing the 'n' flag from the channel. Either that or there was a dialplan application that would force an optimization of a Local Channel.



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



More information about the asterisk-bugs mailing list