Ring Groups combined with Conference or somekind of invite users

Guys, question here, its for a doorbell scenario

i have some extensions like
8000 , 8001 , 8002 , 8003
8000 => doorbell
9000 => ring group with members 8001 , 8002 , 8003
8010 , 8011 => other users , not part of a ring group => they can only join a conference

when the doorbutton calls, 444 , my conference, i can join that conf with 555 (8010 user), so when i leave, also the doorbell is kicked out…

i do that with below code…
BUT Then i need to join the call with a softphone, thats not easy …
What i want is that if the doorbell calls 9000 or 444 , i can join the conf as admin, but also all softphones are ringing, they can also join as ADMIN as well (marked user), so the doorbell is kicked out at the end of the call?

Is that possible?

code:

[default]
exten => 444,1,Progress()
exten => 444,2,Wait(1)
exten => 444,3,ConfBridge(1,myconferenceroom,default_user)

exten => 555,1,Progress()
exten => 555,2,Wait(1)
exten => 555,3,ConfBridge(1,myconferenceroom,admin_user)


exten => 9000,1,Answer
exten => 9000,n,Queue(ring,t,,,30)
exten => 9000,n,PlayBack(vm-goodbye)
exten => 9000,n,HangUp()

[ring]
strategy = ringall
context = default
member => SIP/8001
member => SIP/8002
member => SIP/8003

Or maybe another approach, is that the doorbell calls 444 , and then the conference is inviting sip users automaticly? so the users 8001/8002/8003 can join , but they need to join as marked admin user, so when he 8001 or … leaves, everyone is kicked out,… in this scenario, i dont need a ringgroup

question why do you need a conference ?
do you really need that more than one user can talk with the doorphone

if it is because you want 801X to also be able to answer it
just let them use Pickup instead
on the call from the doorphone add a PICKUPMARK=door
and then create a extension that will to Pickup(door@PICKUPMARK)
also just for fun playaround with (you own server that can provide a wav file of a door bell)

same => n,SIPAddHeader(Alert-Info: <http://192.168.0.2/tones/doorbell.wav>)

Hey, thnx, the reason why i want a conference, is because we are using also websocket clients, its a custom app , those clients can only join a conference, not pickup…

so my intercom needs to start a conference, when doorbutton is pressed, so i hear a music on hold background => that already works

At this point my websockets users can join the conference, to speak with the person => already OK

But i need to start a dialplan for my normal sip softphones, they need to be able to join conference too, with an invite system or whatever is possible :slight_smile:

thnx!

OK, well the obvious cause of action is to fix your custom app :slight_smile:
but until then, you can use Originate

[default]
exten => 444,1,Answer()
same => n,Originate(Local/9000@default,app,ConfBridge,myconferenceroom,default_user,,a)
same => n,Set(__PICKUPMARK=door)
same => n,ConfBridge(1,myconferenceroom,default_user)

please note I have not teste the syntaxin the sample
also no need for using Wait or Progress just use Answer

your websocket clients just need to be able to call numbers then you can make an extension that do Pickup

exten => 666,1,Pickup(door@PICKUPMARK)

ok, gonna try it out, first with a normal SIP user instead of a group, then it should like below?

exten => 444,1,Answer()
same => n,Originate(SIP/8002@default,app,ConfBridge,myconferenceroom,default_user,,a)
same => n,ConfBridge(1,myconferenceroom,default_user)

also , second question, in this case, the first caller is added as default_user, the sip users that are being called, by ring group, how can you define them that they are added as admin?

edit; should it be like below, se 8002 is added as admin?

exten => 444,1,Answer()
same => n,Originate(SIP/8002@default,app,ConfBridge,myconferenceroom,default_admin,,a)
same => n,ConfBridge(1,myconferenceroom,default_user)

well the easy way is just to let originate call the dialplan and not use an app

Originate(SIP/8002,exten,default,9000,1,,a)

change this to

SIP/8002

or

Local/8002@default

ok, thnx for all feedback, i was testing it out, not gonna use a group for now

tried this below:

exten => 666,1,Answer()
same => n,Originate(Local/8002@default,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Set(__PICKUPMARK=door)
same => n,ConfBridge(1,myconferenceroom,default_user)

the intercom called 666 => enters the conf , already OK (music on hold)
then 8002 is being called , but i see as incoming call “sip:anonymous@anonymous.invalid”
How can i set there are correct called id name?

so far so good, i can pickup, but i want 8002 to enter as admin_user, and not as default_user
because the person who picksup, always terminates the call, so the doorstation need to leave, is that possible?

and last, if i want to add more sip numbers te be called simultanously, can i just change to for example :

exten => 666,1,Answer()
same => n,Originate(Local/8002@default,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Originate(Local/8003@default,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Originate(Local/8004@default,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Set(__PICKUPMARK=door)
same => n,ConfBridge(1,myconferenceroom,default_user)

edit: asterisk is all new to me :slight_smile:

yes you need some more dialplan magic

change Local/8002@default to Local/8002@DoorPhone
that way the call to use user go through a snip of dialplan that set callerid to something useful

[DoorPhone]
exten => _X!,1,Set(CALLERID(all)=Door Phone<1234>)
same => n,Goto(default,${EXTEN:3},1)

hmm, tried below :

exten => 666,1,Answer()
same => n,Originate(Local/8002@DoorPhone,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Set(__PICKUPMARK=door)
same => n,ConfBridge(1,myconferenceroom,default_user)

[DoorPhone]
exten => _X!,1,Set(CALLERID(all)=Door Phone<8003>)
same => n,Goto(default,${EXTEN:3},1)

The doorstation is 8003 => calling to 666 , but 8002 isnt being called :frowning:

i see this error:

[Jan 11 11:15:22]     -- Executing [2@default:1] Dial("Local/8002@DoorPhone-00000002;2", "SIP/2") in new stack
[Jan 11 11:15:22] WARNING[511][C-00000003]: chan_sip.c:6352 create_addr: Purely numeric hostname (2), and not a peer--rejecting!
[Jan 11 11:15:22] WARNING[511][C-00000003]: app_dial.c:2596 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)

this works below, will have a look at the problem of anynymous later

exten => 666,1,Answer()
same => n,Originate(SIP/8002,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Originate(SIP/8004,app,ConfBridge,myconferenceroom,admin_user,,a)
;same => n,Originate(Local/8002@DoorPhone,app,ConfBridge,myconferenceroom,admin_user,,a)
same => n,Set(__PICKUPMARK=door)
same => n,ConfBridge(1,myconferenceroom,default_user)
;
[DoorPhone]
exten => _X!,1,Set(CALLERID(all)=Door Phone<8003>)
same => n,Goto(default,${EXTEN:3},1)

in this case 8002 and 8004 are being called, but how can i change that if 8002 or 8004 picks up, 8002 or 8004 wil enter as marked admin user? so when 8002 or 8004 aborts the call, the conf is closed?

thnx!!

edit: seems because of this anonymous, it seems video isnt working either anymore :frowning:

video urgh not sure that Local support that
to fix callerid you probaly need to play around with the diffrent options to Originate “c”
and to get video to work I’ll suggest change Local/8001@ DoorPhone back to SIP/8001

same => n,Originate(SIP/8003,app,ConfBridge,myconferenceroom,admin_user,,a)

  • a - Originate asynchronously. In other words, continue in the dialplan without waiting for the originated channel to answer.
  • c - The caller ID number to use for the called channel. Default is the current channel’s Caller ID number.
  • n - The caller ID name to use for the called channel. Default is the current channel’s Caller ID name.
    so maybe try and se what happens
same => n,Originate(SIP/8003,app,ConfBridge,myconferenceroom,admin_user,,ac(200)n(300))

or

same => n,Set(CALLERID(all)200<300>)
same => n,Originate(SIP/8003,app,ConfBridge,myconferenceroom,admin_user,,a)

this is so hard :frowning: , always “sip:anonymous@anonymous.invalid” when 8002 is being called
but maybe i can live with that, or search for it later

but is there a way to make 8002 or whatever user that joins the conf is an admin ? because its up to the person who accepts the call, to hangup/kickout the door intercom

thnx!!

The problem would be Originate, rather than Local. By default origninated calls are set up as slin.

is there no other way? using the dial for inviting SIP users to the conference room?

dont understand why this all is so difficult :slight_smile:

i also read something about callfiles?

this thead was a similar question, seems he resolved it with callfiles? but i have no idea how the plan should look like

they are just a file version of originate

Question, can your custom app make calls or only receive ?