Call Back from Conference Room


#1

Hello Everyone.
The scenario i want to achieve is given below. Please some give me a proper idea.
My extension is 1800 and i want to call a group number and it will cal 4 to 5 outgoing mobile number and make a conference together. But if any one unable to received the the call or a new one want to join the conference he will call a DID number and the call will hangup and he will be call backed from asterisk and joined in the conference room.

Till now i am able to callback from an extension using originate command of AMI but can not join the user in the conference room.

If anyone has any solutions please help me out.


#2

You should be able to direct the outbound call into the Conference application with your originate.

You may need to send the caller to a dialplan target instead of using the Confbridge() application directly.


#3

can you provide me any sample code??


#4

I can’t today, I’m attending Astricon in Orlando and only have limited connectivity.

I’d search the forum for Confbridge and see if you can find an example as how to use it.


#5

This is my current dialplan:

[internal]
exten => 1234,1,Wait(1)
same => n,Originate(SIP/colocity-sip/011XXXXXXXX,exten,internal,8901)
same => n,Originate(SIP/colocity-sip/012XXXXXXXX,exten,internal,8901)
same => n,Originate(SIP/colocity-sip/013XXXXXXXX,exten,internal,8901)
same => n,ConfBridge(1,default_bridge,default_user)
same => n,Hangup

exten => 8901,1,NoOp(“Entering to conf room”)
same => n,ConfBridge(1,default_bridge,default_user)

Now what i want is if a new user wants to join the conference he will call a number and his call will be declined so that he don’t have to pay. Then asterisk will call him and join to the conference.


#6

To do that you’d want to write some logic like this:


[from-external]
exten => s,1,NoOP()
 same => n,NoOP(Received call from ${CALLERID(NUM)})
 same => n,Hangup()
 same => h,1,NoOP(Call Hung up)
 same => n,Wait(5)
 same => n,Originate(SIP/colocity-sip/${CALLERID(NUM)},exten,internal,8901)

I haven’t tested this but hopefully you should get the gist of it, Receive the call, Hang it up and in the Hangup extension (or better yet a Hangup Handler) wait and then originate a call to the person that just called you.


#7

Thank you for your kind response but the call just hang up it doesn’t go to the next line [same => h,1,NoOP(Call Hung up)]

Here is the output from the asterisk CLI


  == Using SIP RTP CoS mark 5
    -- Executing [5555@mobile-tnt:1] NoOp("SIP/1898-00000007", ""Call for 55555"") in new stack
    -- Executing [5555@mobile-tnt:2] Goto("SIP/1898-00000007", "from-external,s,1") in new stack
    -- Goto (from-external,s,1)
    -- Executing [s@from-external:1] NoOp("SIP/1898-00000007", "") in new stack
    -- Executing [s@from-external:2] NoOp("SIP/1898-00000007", "Received call from 1898") in new stack
    -- Executing [s@from-external:3] Hangup("SIP/1898-00000007", "") in new stack
  == Spawn extension (from-external, s, 3) exited non-zero on 'SIP/1898-00000007'

And here is my extensions.conf configuration


[internal]
exten => 8901,1,NoOp("Entering to conf room")
same => n,ConfBridge(1,default_bridge,default_user)

exten => 5555,1,NoOp("Call for 55555")
exten => 5555,n,Goto(from-external,s,1)


[from-external]
exten => s,1,NoOP()
 same => n,NoOP(Received call from ${CALLERID(NUM)})
 same => n,Hangup()
 same => h,1,NoOP(Call Hung up)
 same => n,Wait(5)
 same => n,Originate(SIP/${CALLERID(NUM)},exten,internal,8901)


#8

You can’t supply an extension number on a same => line!

Incidentally, the h extension will be run before the SIP call is fully hungup, so the originate might fail because of that. I’d originate to a local channel and introduce a delay before dialling.


#9

Here is the changed code

[from-external]
exten => s,1,NoOP()
 same => n,NoOP(Received call from ${CALLERID(NUM)})
 same => n,Hangup()
exten => h,1,NoOP(Call Hung up)
 same => n,Wait(5)
 same => n,Originate(SIP/${CALLERID(NUM)},exten,internal,8901)

And it agian hangs up but didn’t start originate

  == Using SIP RTP CoS mark 5
    -- Executing [5555@mobile-tnt:1] NoOp("SIP/1898-0000000b", ""Call for 5555"") in new stack
    -- Executing [5555@mobile-tnt:2] Goto("SIP/1898-0000000b", "from-external,s,1") in new stack
    -- Goto (from-external,s,1)
    -- Executing [s@from-external:1] NoOp("SIP/1898-0000000b", "") in new stack
    -- Executing [s@from-external:2] NoOp("SIP/1898-0000000b", "Received call from 1898") in new stack
    -- Executing [s@from-external:3] Hangup("SIP/1898-0000000b", "") in new stack
  == Spawn extension (from-external, s, 3) exited non-zero on 'SIP/1898-0000000b'
    -- Executing [h@from-external:1] NoOp("SIP/1898-0000000b", "Call Hung up") in new stack
    -- Executing [h@from-external:2] Wait("SIP/1898-0000000b", "5") in new stack
  == Spawn extension (from-external, h, 2) exited non-zero on 'SIP/1898-0000000b'

I want to execute Originate application after the Hangup. Is that possible without AGI?? If possible then how to do that?


#10

Use a local channel in the originate and put the delay in that.