Hello, I think I have encountered an odd bug in Siemens C460 IP/dect handsets, which is a bit annoying, and I'm not (yet) sure how to get round it without lots of hacks. Basically, on all external incoming calls, we set: exten => s,n,SIPAddHeader(Alert-Info: Bellcore-dr2) This causes handsets (i.e. Cisco 7960 / Grandstream / aastra) to set a different ring cadence so to differentiate between external and internal calls. Other handsets that do not support Alert-Info: just ignore the presence of this header. When this header is set in a call to the C460 IP, it does not alert, in fact it does not respond to any INVITE requests; asterisk just retries the requests a few times and then gives up. Anyone able to reproduce? I have firmware version 010700000000 / 041.00 I suppose as a workaround I could add an astDB entry for these extensions, and a bit of logic in the dialplan to tell asterisk not to add the header for extensions that have that flag set. Regards, Rob -- Robert Lister - London Internet Exchange - http://www.linx.net/ sip:robl at linx.net - inoc-dba:5459*710 - tel: +44 (0)20 7645 3510
Robert Lister wrote:> Hello, > > I think I have encountered an odd bug in Siemens C460 IP/dect handsets, > which is a bit annoying, and I'm not (yet) sure how to get round it without > lots of hacks. > > Basically, on all external incoming calls, we set: > > exten => s,n,SIPAddHeader(Alert-Info: Bellcore-dr2) > > This causes handsets (i.e. Cisco 7960 / Grandstream / aastra) to set a > different ring cadence so to differentiate between external and internal > calls. > > Other handsets that do not support Alert-Info: just ignore the presence > of this header. > > When this header is set in a call to the C460 IP, it does not alert, in fact > it does not respond to any INVITE requests; asterisk just retries the > requests a few times and then gives up. > > Anyone able to reproduce? I have firmware version 010700000000 / 041.00 > > I suppose as a workaround I could add an astDB entry for these extensions, > and a bit of logic in the dialplan to tell asterisk not to add the header > for extensions that have that flag set. > > > Regards, > > > > Rob > >I can replicate this behaviour too using an S450IP when an Alert-Info header is present. I have reported the issue to Siemens so hopefully this will be fixed in a firmware update in the near future. cheers, Paul.
Hello. Is it possible to check if SIP chanell is busy in asterisk? I have N accounts from my provider and i can dial only one call per account. I wanto my asterisk to check if first acount is busy, if yes try second and so on.. I was wondering if ChanIsAvail will suites my needs but i have read here http://www.voip-info.org/wiki-Asterisk+cmd+ChanIsAvail that is not good. Any other solutions? Regards Arkon
Jakub Syrek wrote:> Hello. > Is it possible to check if SIP chanell is busy in asterisk? > I have N accounts from my provider and i can dial only one call per account. > I wanto my asterisk to check if first acount is busy, if yes try second and > so on.. > I was wondering if ChanIsAvail will suites my needs but i have read here > http://www.voip-info.org/wiki-Asterisk+cmd+ChanIsAvail that is not good. > Any other solutions?See the doc/queues-with-callback-members.txt - it has good samples of GROUP_COUNT and OUTBOUND_GROUP commands. Regards, Atis
> See the doc/queues-with-callback-members.txt - it has good samples of > GROUP_COUNT and OUTBOUND_GROUP commands. > > Regards, > AtisAccording to this i wrote macro like this below, is it correct? [macro-call] ;sip1 - firs channel from sip outgoing cals operator ;sip2 - second channel from sip outgoing cals operator ;sipn - N channel from sip outgoing cals operator ;ARG1 - outgoing telephone number exten => s,1,SetGroup(${ARG1}) exten => s,2,GotoIf($[ ${GROUP_COUNT(${ARG1})} < 2 ]?dial-ok) ;outgoing number was called previously by someone else? exten => s,n,NoOp(-- Call destination was previously called and its busy --) exten => s,n,Hangup ;we can dial ;now chack witch chanel is free to meake a call with exten => s,n(dial-ok)GotoIf($[ ${GROUP_COUNT(sip1)} > 1 ]?sip1-busy) exten => s,n,Dial(SIP/sip1/${ARG1},25,m) exten => s,n,Hangup exten => s,n(sip1-busy),GotoIf($[ ${GROUP_COUNT(sip1)} > 1 ]?sip2-busy) exten => s,n,Dial(SIP/sip2/${ARG1},25,m) exten => s,n,Hangup ;and so on to last one exten => s,n(sipN-busy),GotoIf($[ ${GROUP_COUNT(sip1)} > 1 ]?all-busy) exten => s,n,Dial(SIP/sip2/${ARG1},25,m) exten => s,n,Hangup ;every channel is busy exten => s,n(all-busy),Hangup
I thing there was an error in last version of my macro, correct one (i hope): [macro-call] ;sip1 - firs channel from sip outgoing cals operator ;sip2 - second channel from sip outgoing cals operator ;sipn - N channel from sip outgoing cals operator ;ARG1 - outgoing telephone number exten => s,1,SetGroup(${ARG1}) exten => s,2,GotoIf($[ ${GROUP_COUNT(${ARG1})} < 2 ]?dial-ok) ;outgoing number was called previously by someone else? exten => s,n,NoOp(-- Call destination was previously called and its busy --) exten => s,n,Hangup ;we can dial ;now chack witch chanel is free to meake a call with exten => s,n(dial-ok),SetGroup(sip1) exten => s,n,GotoIf($[ ${GROUP_COUNT(sip1)} > 1 ]?sip1-busy) exten => s,n,Dial(SIP/sip1/${ARG1},25,m) exten => s,n,Hangup exten => s,n(sip1-busy),SetGroup(sip2) exten => s,n,GotoIf($[ ${GROUP_COUNT(sip2)} > 1 ]?sip2-busy) exten => s,n,Dial(SIP/sip2/${ARG1},25,m) exten => s,n,Hangup ;and so on to last one exten => s,n(sipN-busy),SetGroup(sipn) exten => s,n,GotoIf($[ ${GROUP_COUNT(sipn)} > 1 ]?all-busy) exten => s,n,Dial(SIP/sip2/${ARG1},25,m) exten => s,n,Hangup ;every channel is busy exten => s,n(all-busy),Hangup