• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2745
  • Last Modified:

Asterisk 1.8.12 limiting incoming calls to one per sip extension

Hi All,

I have a user that requested to have four lines configured on his Cisco 7960 phone with each line per softkey.  Ideally, he wants all incoming calls to roll over to each softkey as opposed to having call waiting so it'll be easier for him to pickup via the keys as opposed to having to fiddle with switching back and forth for call waiting, i.e. first calls rings extension #1 (softkey1), second incoming call rings to softkey2, and and so forth.

So my logic, and of course correct me if I'm wrong:

1) configure four different sip extensions in sip.conf, i.e. 100, 101, 102, and 103 and set "busylimit = 1" for each extension.
3) configure the sip extensions per each softkey on the Cisco 7960 phone
4) configure the extensions.conf for the incoming call do to the following:
exten => s,1,Answer()
exten => s,n,Dial(SIP/100,10,tr)
exten => s,n,Dial(SIP/101,5,tr)
exten => s,n,Dial(SIP/102,5,tr)
exten => s,n,Dial(SIP/103,5,tr)
exten => s,n,Voicemail(100@context,u)
exten => s,n,Hangup()
exten => 102,Voicemail(100@context,b)

Open in new window


does that sound correct or is there a better/different way to do so.

essentially, I just need to limit each extension to one call and have it rollover to the next extensions.

Much appreciated for guidance.
0
jetli87
Asked:
jetli87
  • 5
  • 4
1 Solution
 
José MéndezCommented:
That doesn't sound correct, Asterisk  will try to connect 4 different calls one after the other regardless of what happened to the first one.

Try this:

exten => s,1,Dial(SIP/100,10,tr)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?b1:vm)
exten => s,n(b1),Dial(SIP/101,5,tr)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?b2:vm)
exten => s,n(b2),Dial(SIP/102,5,tr)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?b3:vm)
exten => s,n(b3),Dial(SIP/103,5,tr)
exten => s,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?b4:vm)
exten => s,n(b4),Voicemail(100@context,b)
exten => s,n(vm),Voicemail(100@context,u)
exten => s,n,Hangup()

What I'm showing is the logic of using the GotoIf() to achieve what you need.

HTH
0
 
jetli87Author Commented:
Perfect!  I figured i needed "gotoif" but didn't know the code for busy detect.  Will try and get back to you.
0
 
jetli87Author Commented:
to better understand the your code, how does "b1:vm" work?  If busy is detected, send the call to b1.  Otherwise, if it's not busy, goto voicemail?  Correct?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
José MéndezCommented:
If it didn't find the user busy, then the call rang up to the limit (10 or 5), and then went to voicemail as unavailable.
0
 
jetli87Author Commented:
got it. When using "Dialstatus" flag, is "congestion" a usable option?  is that the interchangeable with "busy" or is there a different use for it?
0
 
José MéndezCommented:
0
 
José MéndezCommented:
Is the code working for you?
0
 
jetli87Author Commented:
yup, works perfect.
0
 
José MéndezCommented:
Glad to hear that mate.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now