Thanks Tony/Olle, you both answered my question. However, now I am wondering
if there might be a bug with Asterisk, or if I am simply misconfiguring
something. This is the scenario:

Taken from extensions.conf (a little simplified):
Exten => 1234,1,Queue(managerqueue)
Exten => 1234,2,Hangup

Then, telnet'ing to asterisk manager interface and issuing the following
commands:

Action: Originate
Context: default
Exten: 5555555
Channel: local/1234
Priority: 1

Now, the phone rings at the agent side and it is being picked up. The other
party answers and the call is set up. This is the output from the console:

============================================================================

    -- Executing Queue("Local/[EMAIL PROTECTED],2", "managerqueue||||60") in
new stack
    -- Started music on hold, class 'default', on Local/[EMAIL PROTECTED],2
    -- outgoing agentcall, to agent '1020', on 'Local/[EMAIL PROTECTED],1'
    -- Called Agent/1020
    -- outgoing agentcall, to agent '1010', on 'Local/[EMAIL PROTECTED],1'
    -- Called Agent/1010
    -- outgoing agentcall, to agent '1000', on 'Local/[EMAIL PROTECTED],1'
    -- Called Agent/1000
    -- Executing Dial("Local/[EMAIL PROTECTED],2", "SIP/1020") in new stack
Jun  4 18:47:22 NOTICE[12633]: app_dial.c:968 dial_exec_full: Unable to
create channel of type 'SIP' (cause 3)
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing Dial("Local/[EMAIL PROTECTED],2", "SIP/1010") in new stack
    -- Called 1010
    -- Executing Dial("Local/[EMAIL PROTECTED],2", "SIP/1000") in new stack
    -- SIP/1010-a2f8 is ringing
    -- Agent/1010 is ringing
    -- Called 1000
    -- SIP/1000-962b is ringing
    -- Agent/1000 is ringing
    -- SIP/1000-962b answered Local/[EMAIL PROTECTED],2
    -- Agent/1000 answered Local/[EMAIL PROTECTED],2
    -- Playing 'queue-reporthold' (language 'en')
  == Spawn extension (default, 1010, 1) exited non-zero on
'Local/[EMAIL PROTECTED],2'
  == Spawn extension (default, 1000, 1) exited non-zero on
'Local/[EMAIL PROTECTED],2'
    -- Playing 'queue-less-than' (language 'en')
    -- Playing 'digits/2' (language 'en')
    -- Playing 'queue-minutes' (language 'en')
    -- Stopped music on hold on Local/[EMAIL PROTECTED],2
       > Channel Local/[EMAIL PROTECTED],1 was answered.
    -- Executing SetVar("Local/[EMAIL PROTECTED],1", "__RECSUFFIX=5555555")
in new stack
    -- Executing Dial("Local/[EMAIL PROTECTED],1", "SIP/[EMAIL PROTECTED]")
in new stack
    -- Called [EMAIL PROTECTED]

============================================================================

So far everything is normal. However (and this is the strange part), after
completing this call, the agent answering the call becomes unavailable. Not
logged out, just unavailable. And so he remains.

Issuing the same actions from the asterisk manager interface again will
result in the call going nowhere (if there's no other agents logged in), or
to another agent, even though the queue has wrapuptime=0 and
strategy=ringall. Even calling directly to the queue extension from an
outside line will result in the same. After a little while, the system
becomes unable to dial out, I get these messages:

============================================================================
Jun  4 18:52:12 WARNING[12633]: channel.c:341 ast_channel_alloc: Channel
allocation failed: Refusing due to active shutdown
Jun  4 18:52:12 WARNING[12633]: channel.c:341 ast_channel_alloc: Channel
allocation failed: Refusing due to active shutdown
Jun  4 18:52:12 WARNING[12633]: chan_local.c:498 local_new: Unable to
allocate channel structure
Jun  4 18:52:12 NOTICE[12633]: channel.c:1982 __ast_request_and_dial: Unable
to request channel local/1234
Jun  4 18:52:12 WARNING[12633]: channel.c:341 ast_channel_alloc: Channel
allocation failed: Refusing due to active shutdown
Jun  4 18:52:12 WARNING[12633]: pbx.c:4778 ast_pbx_outgoing_cdr_failed:
Unable to allocate channel structure for CDR record
Jun  4 18:52:34 WARNING[12633]: channel.c:341 ast_channel_alloc: Channel
allocation failed: Refusing due to active shutdown
Jun  4 18:52:34 WARNING[12633]: chan_sip.c:2342 sip_new: Unable to allocate
SIP channel structure
Jun  4 18:52:34 NOTICE[12633]: chan_sip.c:8812 handle_request_invite: Unable
to create/find channel 
============================================================================

Also, after this, asterisk takes very long to stop with the stop now
command, and when it finally exits, it returns memory segmentation error (or
similar, translated to English), in addition to the well-known Yuck: Error
in buffer handling...: Broken pipe 

Can anyone confirm this bug? I should add that originating a call not going
into a queue, but directly to another extension works fine.

Regards,
Bjorn


-----Opprinnelig melding-----
Fra: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] P� vegne av Tony
Mountifield
Sendt: 4. juni 2005 11:36
Til: [email protected]
Emne: [Asterisk-Users] Re: Setting up calls through the manager interface

In article <[EMAIL PROTECTED]>,
Bjorn <[EMAIL PROTECTED]> wrote:
> -=-=-=-=-=-
> 
> Hello all!
> 
> I am currently making a script which is supposed to set up a call on
request from a user,
> say, through a web page, for support issues etc. I am new into both
asterisk and php, but I
> am working my way through the path as good as I can.
> 
> Basically, what I would want to do, is to give the user the possibility to
initiate a call
> by clicking a button. I?ve seen a cgi-alternative for this, but I would
prefer it in PHP,
> furthermore, extend the functionality of this a bit:
> 
> Imagine, the user clicks a button to initiate a call. The script is called
and establish a
> connection to the manager interface. So far so good.
> 
> The script will first call a support representative on the inside, and,
when answered, it
> will proceed with calling the customer. If there was only one support
representative, this
> could easily have been accomplished by executing the following:
> 
>  action: originate
> context: local
> exten: 555-4343
> priority: 1 
> channel: SIP/1234
> 
> ? where channel would be the support rep.?s number. However, when there?s
more than one,
> you?d prefer to have the calls routed to whoever is available. This is
nicely fixed in the
> queue system, where the support representatives can log on and off, the
calls goes to first
> available representative etc. I suppose two alternatives would be the most
common ones here,
> to have the phone ring at all available channels within a ?support group?
at the same time,
> or have the call distributed randomly and (preferably) transferred to
another agent if it
> turns out there was no answer at the first representative.
> 
> I tried to achieve this by the following:
> 
> 
> action: originate
> context: local
> exten: 555-4343
> priority: 1 
> channel: SIP/1234
> channel: SIP/2345

No, you need to use the "Local" channel type. So as not to confuse
between labels I'll use a different name for the contexts. So in
extensions.conf you might have something like this:

[internal]
exten => _1XXX,1,Dial(SIP/${EXTEN})
exten => _1XXX,2,NoOp(DIALSTATUS=${DIALSTATUS})
exten => _1XXX,3,Hangup

[external]
exten => _X.,1,Dial(SIP/[EMAIL PROTECTED])
exten => _X.,2,NoOp(DIALSTATUS=${DIALSTATUS})
exten => _X.,3,Hangup

Then if you wanted to dial your internal extension of 1234 and
when answered connect them to the outside number 0123456789,
through the manager API you do the following:

Action: Originate
Channel: Local/[EMAIL PROTECTED]
Context: external
Exten: 0123456789
Priority: 1

See http://www.voip-info.org/wiki-Asterisk+Local+channels for more info.

Cheers
Tony
-- 
Tony Mountifield
Work: [EMAIL PROTECTED] - http://www.softins.co.uk
Play: [EMAIL PROTECTED] - http://tony.mountifield.org
_______________________________________________
Asterisk-Users mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users



_______________________________________________
Asterisk-Users mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to