Hi, I have this situation :
- Customer A from the outside calls asterisk, goes trough a queue and then gets his call answered by an operator B
- When B wants to do a conference with another operator C and the customer, he clicks a button in our interace
- A and B get redirected over a ConfBridge room, C gets originated to the same ConfBridge room
This is my extensions.conf :
[queue_base]
exten => 78,1,Answer
exten => 78,2,MixMonitor(${CALLERID(num)}-${UNIQUEID}-${EPOCH}-${STRFTIME(${EPOCH},%Y%m%d-%H%M%S)}.wav,b)
exten => 78,3,Set(incoming=1)
exten => 78,n,Queue(centralino-low)
exten => 78,n,Hangup
exten => 78,n,StopMixMonitor()
[to_conference]
exten => _.X,1,Answer
exten => _.X,n,ConfBridge(${EXTEN},1q)
exten => h,n,Hangup
[add_to_conference]
exten => _.X,1,Answer
exten => _.X,n,ConfBridge(${EXTEN},1q)
exten => h,n,Hangup
And what I do over AMI command is this :
-
First send an originate to have C called and put into add_to_conference context, with these parameters
"Originate", “Channel” => SIP/2001,
“Context” => “add_to_conference”,
“Exten” => “468”,
“Priority” => “1” -
Then send a redirect to have A and B redirected to the to_conference context, with these parameters
“Redirect”,
“Channel” => “SIP/2000-00000002”,
“ExtraChannel” => “SIP/noverca-out-00000000”,
“Context” => “to_conference”,
“ExtraContext” => “to_conference”,
“Exten” => “468”,
“ExtraExten” => “468”,
“Priority” => “1”,
“ExtraPriority” => “1”
It all goes well for B and C, the operators, but A, the customer gets his phone hangup.
This is what I get in asterisk console :
– Executing [78@queue_base:1] Answer(“SIP/noverca-out-00000000”, “”) in new stack
– Executing [78@queue_base:2] MixMonitor(“SIP/noverca-out-00000000”, “00393355286159-1304695086.0-1304695087-20110506-171807.wav,b”) in new stack
– Executing [78@queue_base:3] Set(“SIP/noverca-out-00000000”, “incoming=1”) in new stack
– Executing [78@queue_base:4] Queue(“SIP/noverca-out-00000000”, “centralino-low”) in new stack
– Music class default requested but no musiconhold loaded.
== Using SIP RTP CoS mark 5
== Begin MixMonitor Recording SIP/noverca-out-00000000
– SIP/2001-00000001 is ringing
> doing dnsmgr_lookup for ‘noverca.com’
> ast_get_srv: SRV lookup for ‘_sip._udp.noverca.com’ mapped to host voip5.noverca.com, port 443
> doing dnsmgr_lookup for ‘noverca.com’
> ast_get_srv: SRV lookup for ‘_sip._udp.noverca.com’ mapped to host voip1.noverca.com, port 5060
– SIP/2001-00000001 answered SIP/noverca-out-00000000
== Using SIP RTP CoS mark 5
> Channel SIP/2000-00000002 was answered.
– Executing [468@add_to_conference:1] Answer(“SIP/2000-00000002”, “”) in new stack
– Executing [468@add_to_conference:2] ConfBridge(“SIP/2000-00000002”, “468,1q”) in new stack
– Executing [468@to_conference:1] Answer(“SIP/2001-00000001”, “”) in new stack
– Executing [468@to_conference:2] ConfBridge(“SIP/2001-00000001”, “468,1q”) in new stack
== Spawn extension (to_conference, 468, 1) exited non-zero on ‘SIP/noverca-out-00000000’
– Executing [468@to_conference:1] Answer(“SIP/noverca-out-00000000”, “”) in new stack
– Executing [468@to_conference:2] ConfBridge(“SIP/noverca-out-00000000”, “468,1q”) in new stack
– Executing [h@to_conference:1] Answer(“SIP/noverca-out-00000000”, “”) in new stack
== Spawn extension (to_conference, h, 1) exited non-zero on ‘SIP/noverca-out-00000000’
== MixMonitor close filestream
== End MixMonitor Recording SIP/noverca-out-00000000
I can’t understand what I’m doing wrong. I tried swapping redirect with originate, swapping redirect channels… it just drops the call. It just works randomly sometimes, but like 1 in a 100 times…
Can someone help me pls? Thanks.