Open Source Training Seminar FreePBX Paid Support

Ticket #1196 (closed Bugs: duplicate)

Opened 2 years ago

Last modified 2 years ago

Transfers from a queue agent do not ring through to voicemail

Reported by: kerryg Assigned to:
Priority: text Milestone:
Component: Queues Version: 2.2beta1
Keywords: agent disconnect transfer Cc:
Confirmation: SVN Revision (if applicable):
Backend Engine: All Backend Engine Version:

Description

if a call comes into a queue and is answered by an agent, then the agent tries to transfer the call to another extension, the call will transfer to the extension and ring for a while correctly, but instead of failing over to voicemail, the call is disconnected. Here is the relevant output from the call failing:

-- Got SIP response 603 "Decline" back from 192.168.5.196 -- SIP/220-09371a30 is busy

== Everyone is busy/congested at this time (1:1/0/0)

-- Executing NoOp?("Local/402@from-internal-b788,2", "Returned to dolocaldial with DIALSTATUS BUSY") in new stack -- Executing Hangup("Local/402@from-internal-b788,2", "") in new stack

== Spawn extension (from-internal, 220, 2) exited non-zero on 'Local/402@from-internal-b788,2'

-- Executing Macro("Local/402@from-internal-b788,2", "hangupcall") in new stack -- Executing ResetCDR("Local/402@from-internal-b788,2", "w") in new stack -- Executing NoCDR("Local/402@from-internal-b788,2", "") in new stack -- Executing GotoIf?("Local/402@from-internal-b788,2", "1?theend") in new stack -- Goto (macro-hangupcall,s,6) -- Executing Wait("Local/402@from-internal-b788,2", "5") in new stack -- Executing Hangup("Local/402@from-internal-b788,2", "") in new stack

== Spawn extension (from-internal, h, 2) exited non-zero on 'Local/402@from-internal-b788,2' == Spawn extension (ext-queues, 123, 6) exited non-zero on 'SIP/192.168.5.101-09361988'

This behavoir has been replicated on 2.1.1, 2.1.3, and 2.2b1

Change History

10/21/06 14:56:11 changed by gregmac

I started to look into this a bit.. the reason it happens is because the agent is called using a Local channel, and there is handling in extensions.conf that treats Local differently..

If you comment out line 100 browser/freepbx/trunk/amp_conf/astetc/extensions.conf#L100, then it works .. however, that must be there for a reason, so I'm not sure what else breaks as a result of commenting out that line.

10/24/06 15:29:31 changed by totalAldo

The problem lies in macro-exten-vm. It is possible that asterisk changed the value of ${CHANNEL} (from a previous release) when an agent from a queue attempts a transfer. (requires research)

Using Asterisk 1.2.12.1, As gregmac mentioned, transfers from a queue have a ${CHANNEL} value of "Local/...".

When a sip extension calls another extension and is subsequently transferred to a busy extension, the call will go to voicemail. macro-exten-vm sees the ${CHANNEL} as "SIP/...." and voicemail is executed. (this is desired)

When you dial into a queue, if an agent picks up and transfers, the call does not go to voicemail, it executes the rest of extension dolocaldial which results in call termination. (not desired)

When you uncomment the conditional statement responsible for checking if ${CHANNEL} is local, calls to queues with busy agents will go straight to voicemail. (not desired)

The fix will involve identifying if a transfer is occurring from a queue agent.

10/24/06 15:47:19 changed by totalAldo

I was able to test this using AMP 1.10.010 and Asterisk 1.2.4 and the same problem happened. I guess its been with us for a while. If a queue is dialed and an agent transfers to a busy extension, the call is terminated instead of going to voicemail. I looked at extensions.conf and while different in amp, the logic is similar when checking for Local calls.

10/24/06 15:56:40 changed by gregmac

To clairify my previous post.. it's line 100 in revision 2832..

browser:freepbx/trunk/amp_conf/astetc/extensions.conf?rev=2832#L100

10/25/06 11:00:57 changed by totalAldo

I should mention that performing a transfer using # works. The transfers are failing when I use the transfer key on a Grandstream 2000 or an SJPhone softphone.

10/28/06 10:48:43 changed by Darkearth56

only noticed a few days ago running asterisk 1.12.13

Incomming call via a queue is answered and then transfered to another phone if the phone is not answered the call get gets disconnnected without going to voice mail

Here is a copy of the log

== Parsing '/etc/asterisk/manager.conf': Found == Parsing '/etc/asterisk/manager_custom.conf': Found == Manager 'admin' logged on from 127.0.0.1

> dialparties.agi: ExtensionState?: 0

dialparties.agi: Extension 200 has ExtensionState?: 0 dialparties.agi: Extension 200 is available

-- dialparties.agi: DbDel? CALLTRACE/200 - Caller ID is not defined -- AGI Script dialparties.agi completed, returning 0

-- Executing Dial("Local/200@from-internal-ab7f,2", "SIP/200tTrW") in new stack -- Called 200

== Manager 'admin' logged off from 127.0.0.1

-- SIP/200-08539ec0 is ringing -- Got SIP response 603 "Decline" back from 192.168.0.20 -- SIP/200-08539ec0 is busy

== Everyone is busy/congested at this time (1:1/0/0)

-- Executing NoOp?("Local/200@from-internal-ab7f,2", "Returned to dolocaldial with DIALSTATUS BUSY") in new stack -- Executing Hangup("Local/200@from-internal-ab7f,2", "") in new stack

== Spawn extension (from-internal, 200, 2) exited non-zero on 'Local/200@from-internal-ab7f,2'

-- Executing Macro("Local/200@from-internal-ab7f,2", "hangupcall") in new stack -- Executing ResetCDR("Local/200@from-internal-ab7f,2", "w") in new stack -- Executing NoCDR("Local/200@from-internal-ab7f,2", "") in new stack -- Executing GotoIf?("Local/200@from-internal-ab7f,2", "1?theend") in new stack -- Goto (macro-hangupcall,s,6) -- Executing Wait("Local/200@from-internal-ab7f,2", "5") in new stack -- Executing Hangup("Local/200@from-internal-ab7f,2", "") in new stack

== Spawn extension (macro-hangupcall, s, 7) exited non-zero on 'Local/200@from-internal-ab7f,2' in macro 'hangupcall' == Spawn extension (macro-hangupcall, s, 7) exited non-zero on 'Local/200@from-internal-ab7f,2' == Spawn extension (ext-queues, 10, 7) exited non-zero on 'Zap/2-1'

-- Hungup 'Zap/2-1'

pbx*CLI>

But if the external call dials the ext directly it then rings and then gets voice mail as expected.

11/01/06 00:17:25 changed by Darkearth56

Also noticed that if a call is answered from a queue and then transfer to a ext then you are not able to pick up the call with group pick or directed pickup

11/03/06 02:19:00 changed by Darkearth56

Have been looking at this and have found this so far

Stored in queues_additional.conf

would be somthing like the following

[14] announce-frequency=15 queue-callswaiting= queue-thankyou=custom/tamuch queue-thereare= queue-youarenext= retry=5 rtone=0 strategy=ringall timeout=15 music=default monitor-join=yes monitor-format= announce-holdtime=no context=ivr-6 eventmemberstatusoff=Yes eventwhencalled=no joinempty=Yes leavewhenempty=no maxlen=0 member=Local/202@from-internal/n,0 wrapuptime=0

If i change the member=Local/202@from-internal/n,0 to member=SIP/202,0

so the whole config for queue 14 looks like

[14] announce-frequency=15 queue-callswaiting= queue-thankyou=custom/tamuch queue-thereare= queue-youarenext= retry=5 rtone=0 strategy=ringall timeout=15 music=default monitor-join=yes monitor-format= announce-holdtime=no context=ivr-6 eventmemberstatusoff=Yes eventwhencalled=no joinempty=Yes leavewhenempty=no maxlen=0 member=SIP/202,0 wrapuptime=0

it works as expected and also the call pickup also works I dont know if it will break anything else.

11/05/06 18:46:07 changed by gregmac

  • status changed from new to closed.
  • resolution set to duplicate.

Duplicate of #1119 - discussion on it over there too

01/08/07 11:46:44 changed by

  • milestone deleted.

Milestone 2.2 deleted

Donate



Support
Download
Develop
Forums
News
Documentation
Paid Support
About

Paid Ads